It is very common for beginner software developers to be confused about the tech-stack to learn.
At least, I was confused.
And I post this article to help you pick what to learn to help you avoid confusion to some extent. Below are steps to help you pick tech-stacks to learn in 2020 without stress.
1. Get Rid of All the Noise in your Head.
You have heard or read a lot of things that are affecting your choice.
PHP is dead!
Python is a bae!
Java is enterprise!
JavaScript is weird!
All these make it difficult for you to choose what to learn easily. So you are confused.
To reduce your confusion level, clear your head and empty your mind.
It is easier said than done but you have to do it anyway because it the starting point of getting rid of most of the common problems beginner software developers are facing.
2. Know Your Purpose:
Many beginners want to learn coding because of some perceived benefits. So, they are in a hurry to get the benefits but they are confused because they don't go about it the "right" way.
The first thing to do is to ignore those benefits and ask yourself:
why do I want to learn?
Is it to get a Job (work for companies) or make things (work for myself directly)?
Then, you will be clear about the next step to take. Even if you are not clear about your next step, don't panic because we have got you covered.
Keep on reading!
3. What "Platform" Do I Like to Work With?
It is very important to be clear about the platform you want to work with to be less confused.
Is it?
- Web
- Mobile
- Machine Learning
- Virtual Reality
- Security
- Or others.
Then Pick One "Platform" You Love.
4. Picking A Programming Language/Framework.
If I want to work for companies and I like to work as a web developer, the next move is to look for international, local and remote job's requirements.
Then look for recurring stacks with little things to learn.
Note the recurring stacks with Notion or Habitica. Just make sure you keep a record of recurring stacks. Then...
5. Going Specific:
You maybe confused because there are a lot to learn.
Therefore, I would ask myself again:
Is it possible to specialise to reduce the number of things to learn?
Frontend or Backend.
Then, check job's requirements for each of them.
Rinse & repeat.
6. Then Pull the Trigger:
Pick a programming language/framework you feel is widely used in your field or the one that makes most money based on your findings.
That is your choice because everything comes with it's downside.
So, be ready for the consequences of your choice.
7. Case Two: Working Directly For Yourself.
You will still use the same methodology but in this case, you may need to check freelance websites and have additional skills like selling, marketing, networking, emotional intelligence and all those business stuff.
8. After Picking Programming/Framework, What Next?
Stay connected here or follow me on twitter: Shakespeare of Code
One more thing:
Are you struggling to build projects with HTML, CSS & JavaScript? Or you just want to transition to tech without struggling unnecessarily, check out: You Too Can Code
Top comments (17)
If you are truly new, part of figuring out what you need to learn is where you can get that education. If want to build for the web, you can do that via being self-taught. You can aim for just learning HTML, CSS, JS(w/Node.js and Express), a database, and be fine. If you want to do something more science driven, ie program rockets, you are going to need to look at getting a degree in computer science.
Because of 3. I usually recommend Python, when starting is difficult to define a platform to aim for; you are new after all, what do you know, I started with an idea and not long after I found other areas where more interesting for me; with Python you don't have all the bases covered, but almost and it may not be the best choice for some application but is never the worst either. And also is easy to learn, easy to write and most important easy to read and there are an incredible abundance of documentation for all levels from books to tutorials, blogs and courses, etc.
Great! Thanks a lot for the input.
I'm new (a little over a year coding, 6 months of it working a freelance gig). I was exposed to Go early on due to my bootcamp internship. I really like it. It is easy to read and if you can't find a Go solution Python is pretty close reading-wise. It forces you to think about where your variables are stored (via pointers), handle errors at every point (it can be verbose, but you can write helper functions to minimize this).
I think C language will good for beginners. As a basic language, C is too good and easy to learn and helpful to learn other languages. So, I prefer to go with C in beginning. I am working on PHP from last 4 years. I have started learning C before my career started in PHP.
nice article thank you
in these days, I believe in learning and practicing fundamentals rather than jumping from what is hot or what is dead. when I became advance enough to see the difference, I'll choose learning something else. In these days, I do ruby and ror. all these languages are just the tools. if you don't know how to use a tool, you will not know how to use others. for not professional programmers, I believe learning the fundamentals like algorithms, design patterns, and testing are more important
Thanks! I am glad you like it.
I like JavaScript... and React..lots of libraries
Ok...It is great you like JavaScript. I hope it is serving you well.
Learn C. It's the real deal. Not for lamers though.
Yeah! We all somehow feel the programming language we work with is the real deal.
Thanks for the comment
Refer to 1. C is as "real deal" as Python, PHP, JS, etc. All depends of what you are trying to do with it.
There are so many choices and that is why beginners have to be smart about picking what to learn not be too confused.
Thanks for the input.
I work full-time with Java. As much as I would like to expand my horizons, when it comes to having time off, I usually feel like programming is something I don't want to be doing at home.
FINALLY someone is not afraid to publish the TRUTH
"PHP IS DEAD" - long live "NODE"
:)