Knowledge expected from a software developer with 3-5 years of experience.

software developer

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

  1. Basic understanding of Operating Systems
  2. Computer Networking
  3. Operating systems
  4. 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

  1. Data Structures: Arrays, Heaps, Stacks, Queue, Hashmap
  2. 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.

About the author

Siddharth Singha

View all posts
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments