A software developer with 3-5 years of experience has to be exposed to a lot of technologies and tools, especially if he/she has been developer for over a period of time like 3 to 5 years.
It is not possible to be proficient in all of the skills listed below but it is important to have mastery over few skills and familiarity with most of them.
Again, I would like to add that learning software development/programming is a journey rather than a destination, so please don’t feel overwhelmed by the list below.
1. Computer Fundamentals
- Basic understanding of Operating Systems
- Computer Networking
- Operating systems
- Client server architecture
2. Programming Languages
Programming/coding is the most important task as a developer and you will be involved in writing lots of codes, implementing logic which are error free.
If you are familiar with atleast one language you can work with pretty much other languages because most programming languages only vary in syntax but the underlying logic remains the same.
Most colleges teach programming in C, C++ and Java, but nowadays schools and colleges has adopted python as a teaching language because of ease of using it and wide variety usage.
It is also important as to what kind of development you want to do, for web development : JavaScript and PHP are the most popular languages. For mobile development its swift & java for android, enterprise development will use C# and Java. A software developer with 3-5 years of experience also recommended that developer know multiple languages.
For example a Dot Net developer will be using C# for back-end, JavaScript for front end and python for data intensive work.
Languages: 1. C#/Java 2. Javascript/Typescript 3. Python
3. Front-End skills
As for front end HTML5 & CSS3 are the building blocks. For css library bootstrap is recommended and javascript library would be jquery
Front-End Skills: 1. HTML 2. CSS 3. Bootstrap 4. Jquery
4. Front-End Frameworks
If you are a full stack or a front-end developer, you will be pretty much using a framework as its fully battery included and would minimize use of complex javascript codes and help with speed development with cleaner code. Angular, VueJs & React are the most important frameworks
Frameworks: Angular, VueJs, ReactJs
5. Back-End Technology
You should be familiar with atleast one back-end framework such as asp.net for Dot Net, Spring boot, NodeJs, Django, Flask, PHP
Widely used Back-End Technologies: NodeJs for Javascript developers, ASP.NET/MVC for Dot Net developers, Spring boot for Java developers, Django, Flask for Python developers
6. Data Structures & Algorithms
This skills are an invisible skills unlike others, these skills don’t give instant outputs but learning these can improve your coding and make you a better programming. It also helps to improve logical skills and helps in problem solving. Data structures & algorithms are the most important skills for a software developer
- Data Structures: Arrays, Heaps, Stacks, Queue, Hashmap
- Algorithms: Searching, Sorting and other complex algorithms
7. Database management
Structured query language, the ability to write complex procedures
Relational: MS-SQL, MySql, Oracle, PostgreSql Non-Relational: MongoDB
8. Scripting
Scripting is essential if you are a sys-admins, it is also important for developers when it comes to deployment, linux commands come in handy to manage, copy, delete files in the server. If you may want to use version controlling such as GitHub, the github comes very much handy.
Scripting: Windows command line, Linux Commands, Git Bash
9. Content Management Systems
CMS to build quic websites
CMS like WordPress, Magento, drupal
10. Deployment
A software developer should also be familiar with deployment, learning this skill will make you less dependent on other IT people. Also if you build web applications but you don’t know to host it, you cannot show your work to the world.
So it’s important to learn it
Azure, AWS, script knowledge, other cloud servers
11. Support/Maintenance
Most of the times if you are working for big corporations, chances are you will be working with an already existing applications and supporting them
Skills: Debugging, reading other peoples codes
12. Communication skills
It goes without saying that one must have the ability to explain technical jargon’s to non- technical people for example clients or managers. It would also be helpful to have some salesmanship skills but not necessary.
skills: presentation skills, persuasion skills, sales skills.
Thanks.