Roadmap to start with software development

Intro

Passed week I had been asked several times about my recommendation on how to become a software developer. I had shared my thoughts on this and think it would be valuable to share them here as well.

My professional background covers 5 years of specialized education in the university (standard amount of years to get a higher education in Russia) and 15+ years of work with startups, outsourcing, consulting and product companies and running my own business in Russia and abroad in the international environment.

The original posts had been intended to a fresher in the computer science faculty, but I think it could be applied to a wider audience who are also want to become a software developer.

The roadmap

Often simple action wins over an overthink strategy on how to reach the goal. So the first recommendation would be to simply do something and learn from a result to adopt and do next steps more clever.

I would like to recommend you this book to read before your graduation

Code Complete by Steve McConnell

It is very valuable about general programming. May be it worth to read it twice - one during your studies, another one after you get an one year of working experience.

Then I want to recommend you to read this my publication

Broad vs Narrow specialisation

It will make some things clearer for you.

Also I would suggest this one

The modern education and place of AI here

It should help you in your studies



Which programming language should you choose?



All of this languages are just instruments. You have to learn them to solve a task at front of you.

At first it would be good to specialise in the one field to master it deep enough, but later it will be good to broaden your skills and expertise.

You should focus on the fields which has big market share and good capacity for growth. You should analyse market for this.

However, it is possible life brings you opportunities which are different from your plans. Often this is a God providence regarding your life. Seriously consider them too.

You need near 10 000 hours of practice to master the chosen field. So it will take near 5 years to become a professional.

However, the quality of this hours and years also matters. Generally speaking, if at your place you feel you don't grow professionally, then likely you are at the wrong place and you should move further.

At HackerRank you can prepare your general programming skills.

If you are interested in data science, you can go to kaggle and solve the challenges there.

If you are interested in cyber security, you can train yourself in penetration testing on this platforms

Root-me.org
https://owasp.org/search/?searchString=guide
https://portswigger.net/web-security/all-labs
https://github.com/OWASP/wstg
https://w3challs.com/
https://notsosecure.com/sql-injection-lab
https://cyberpolygon.com
https://cyberpoly.ru
https://www.cysecurity.org/
https://www.hackthebox.com/

Your main issue is you barely know anything about the life and work. Unfortunately, academic environment lacks this information as well.

The best thing for you is to find out real engineering job or open source project. If you face with requirements you don't meet, then just develop necessary skills in your free time.

Ask your teachers is there any project you can contribute to? Google summer of code is also a good place to chose a good project to work on and horn your skills.

Otherwise, I would start with hacker rank task first until you feel comfortable with easiest tasks they offer.

After it go to the kaggle to practice data science tasks.

LinkedIn profile: Dmitry Kazakov