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.