By far the most asked question I get is “Which programming language should I learn first?” or “Which project should I build?”
Now there is technically nothing wrong with these questions, but by asking these questions you are hindering your abilities to become a developer.
The Problem With These Questions
It is easy to see why people ask these questions, because it is hard to know where to start when learning development, but by blindly following the answers to these questions you will most likely steer yourself to failure since these questions fail to take into account your situation.
If I told you that you could become a web developer in 6 months if all you did was become an expert in the language BrainF*** that may sound exciting since this will lead you to the career you want. The problem is, if you try to spend 6 months using a language like BrainF*** you will hate everything about programming since this language is specifically created to be impossibly difficult to work with.
The same issue occurs with projects. If I told you that you could land your dream job if you just built out an array of boring accounting applications you would probably build those projects, but would you actually enjoy the process? Probably not since you are not passionate about those projects.
In both these scenarios, the best case is you landing a job but hating the months/years that lead up to it and most likely also hating programming as a whole. This is the best case option. More than likely you will burn out from boredom and hatred towards the language/project you are working on and just quit before landing your first job.
I do not want this to happen to you so instead I want you to ask different questions.
What Should You Be Asking?
Instead of asking what you should learn/build, you should instead ask yourself what you are passionate about and enjoy most. Do you enjoy building beautiful UIs, or do you prefer to build complex logic based APIs? If you enjoy designing UIs then CSS is most likely a great language for you to learn while if you want to build APIs then using something like Node.js may be a good option for you.
These language may not be the 100% most desired or optimal languages depending on the job market, but they are what you are passionate about and that is infinitely more important.
It may also be difficult to determine what parts of programming you enjoy the most. This is why it is important to experiment with many different aspects of programming until you find the one that clicks with you the most. Once you find the parts of programming you enjoy the most you need to stick with it and not let market trends or other people influence your languages of choice.
What most people don’t realize is that companies don’t really care what languages you know as a junior developer. As long as you are are passionate about learning and have some programming skills that is all that matters.
How To Choose The Right Project?
So hopefully at this point you are focused on a few languages that are your favorites which means you can start thinking about which projects you want to build. You may already be typing into Google something like ”What are the best projects to build in X language?” If this is you then stop immediately. This will lead to the same level of burnout and failure that I mentioned at the start of this article.
Instead you need to ask yourself what your passions are. Do you love video games? If so try building out your own really simple game. Maybe you are a sports fan instead. If that is the case try to build out an application that compiles sports data together from various APIs.
Most likely you have at least 1 or 2 passions outside of programming and those passions are the perfect candidates for project ideas. I know when I was learning I built a ton of projects around what I was passionate about at the time. These projects include a few simple games, an application to find underground metal bands, a League of Legends stat tracker, and many more. These are the things I was most passionate about at the time and I loved every second of building those projects.
I also hit tons of roadblocks when working on these projects, but my passion towards the topic meant that I never gave up. I wanted to build these projects for me so nothing was going to get in my way and stop me. If I was just building a generic ecommerce app or TODO app I would have surely quit as soon as I hit my first major roadblock.
Best of all. These projects actually helped me land a job much better than the more highly recommended types of projects since they were unique and stood out among the hundreds of other résumés.
It is crucial that you focus on how you can make programming fun by learning the languages related to what you enjoy most in programming. It is also crucial that you focus your time on building projects related to topics you are passionate about. This will ensure that you will not only stand out in interviews but also that you will not burnout and quit.