A software developer 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.
3. Front-End skills
Front-End Skills: 1. HTML 2. CSS 3. Bootstrap 4. Jquery
4. Front-End 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
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 managment
Structured query language, the ability to write complex procedures
Relational: MS-SQL, MySql, Oracle, PostgreSql Non-Relational: MongoDB
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
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
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.