As a beginner developer, you probably have your head all over the place, trying to grasp many complex concepts, on multiple media. The task seems daunting, and you can start getting desperate and thinking that you’ll never succeed. They are many pitfalls on the road of the aspiring developer, here are some of the one I encountered, so you can avoid them!
1. Searching too much for a language to start with
Well, if you search for videos about starting your software developer career, you’ll see dozens of titles like the following:
“Best languages to learn in 2020”,
“What’s the best language to start software development ?”,
“Why learning python in 2020 is useless?”.
Well let me tell you, these are clickbaits, nothing more.
Most of these videos don’t provide any useful advice, they’ll just list you the most used languages in the industry.
Stop searching for the “best language”, there is no such thing.
Most languages were created to answer a need. Each of them has its pros and cons, and so their specific use.
If I had to give advice, I’d start with a widely used language, because it’ll be way easier to find help if you’re learning a language with a large community.
2. Worrying too much about your IDE setup
Just like the “best language” video, there are dozens of videos about the VScode extensions you need, the best IDE, etc…
In my opinion, as a beginner, you shouldn’t worry too much about your IDE setup. Most of these extensions are made to make your life a bit easier or to improve your productivity.
These are fantastic tools when you’re working on a project, but as a person who seeks to learn, it doesn’t really matter, and won’t improve the way you learn.
I’ve spent too much time searching for the best VScode extensions while having no clue of why I should use them.
Now, these extensions answer some needs I have as a developer, like code completion to code faster or linting, but you don’t need them to learn a language or a technology.
3. Participating and taking care of the endless debates about the good/bad technologies
Well, there are once again tons of these debates, and I think you shouldn’t care at all about that.
I’ve made the mistake to read numbers of blog posts like:
“Why [random framework] is trash”,
“Why you should use [insert random library] instead of [insert other random library]”.
These articles are a huge waste of time. If you found a technology you like and that is relevant on the market, then use it, even if this random developer on the internet says it’s total trash.
I’ve read so many articles about how bad react is.
Still, react is the most widely used JS framework on the market, and it is not a 500 lines article explaining why you should use vanilla JS instead, that is going to change this fact any time soon.
I encourage you to use your own opinion and to stay open-minded. Yes, sometimes people will give great criticism, and you’ll change your mind, but what’s the point of reading a never-ending article about how bad JS is, since (and it’s not going to change soon), every frontend developer will have to use it anyway?
4. Asking yourself if it’s a good idea to start programming in 2021
This is the wrong question to ask yourself.
You’re probably taking a new path in your career and this is scary. Content creators know it and want to capitalize on this fear. So, again, they release clickbaity videos like: “Will there still be jobs on the market in 2021?”, “Is it too late to learn programming in 2021?”.
I’ll save you some time, with the most obvious answer ever:
We are more than ever relying on the internet and digital products, and the pandemic showed us that this tendency is not going to stop anytime soon.
Yes there will be jobs available, yes it will be easier if you’re qualified, and yes you’ll probably struggle if you’re not competent. Period.
The right questions to ask yourself are more:
- Do I really want to do this job?
- Why do I want to do this job?
- Am I willing to do what’s necessary to become good at it?
These are questions you’ll have to answer by yourself, and not get the answer from a content creator, however smart he may be.
5. Being afraid of trying new things
Well, you’ll have to balance this point with the next one, but I’ve heard so many times things like: “Don’t try using any framework before being a pro at x, y, z thing in JS”.
Well, what do you have to lose to try something?
Just try things if you want to. Try to understand things with your current level of knowledge.
It will give you strong feedback on where your current level is, how well you understand the basics of your language, the DOM, the way your browser works, etc…
Also, you’ll be way more confident on why you’re using this framework/technology and why it is widely used in the industry.
For example, if you want to be a react developer but you’re not there yet, try starting a project with create-react-app, see what you understand in the code, see what you don’t, take notes about some syntax variations you don’t understand, and learn them, check the docs, etc …
6. Jumping from technology to technology
To contrast with what I just wrote on the last point. You should avoid jumping from one technology to another when learning them, it’ll be inefficient.
For example, trying angular, vue, and react is a good idea, even if you just want to use one, to see how things are evolving or just out of curiosity.
But it’ll be very inefficient if you decide to learn a new framework every 3 months, even more as a beginner.
It takes time to be good at something. So when you’ve chosen a learning path, try to stick to it as much as possible if you want to improve.
7. Studying too much or not enough
I’ll assume you’re a normal person with normal brain abilities.
Learning software development from scratch will take some time, repetitions, and dedication, and you won’t be good at it by doing it 15 minutes a week.
Applications that give you a little code problem to solve every day are good to start, but you’ll need to dedicate yourself to real projects and coding problems if you want to improve substantially.
Don’t expect any magical results if you’re coding once a week for 30 minutes.
If you’re passionate about it and want to code every day, that’s a great start.
But don’t burn your wings.
Your learning curve is never a straight line. You’ll have some moment of ecstasy where you’ll feel like you’re Linux Torvald (Okay maybe not that much), and some moment where you’ll struggle and feel completely stupid.
Studying costs energy, even if you don’t feel it when you’re successful. You’ll need that energy for the time when you face a problem that will need more brainpower, and that learning won’t be as smooth as it used to be.
Don’t feel guilty if you are tired and want to take a day (or two) off coding, it’s perfectly fine.
Don’t forget that these “code every day challenge” are just productivity tools to help you achieve your goals, not an actual goal in itself.
In the end, you should ask yourself why you want to be a developer. Is it the only thing that matters in your life? probably not.
For me, it’s just a job that I like to do and brings me money.
I like it, but I still prefer being with my friends or enjoying my hobbies. If you think the same, then you should find time for these things as well.
Your life has already begun, so don’t wait to be hired to start doing things you like and shape your life the way you want it to be.
8. Know the difference between understanding a concept, and master it
We’ve all seen these comments on the internet: “Yeah CSS is super easy”, “HTML is not even a language”, “React is the easiest framework to learn, it’s super easy”.
Yeah, the internet is full of god-tier, 200 IQ, software developers. The truth of the market is very different.
It’s easy to think you’ve mastered something because it seems very simple, but it’s not that simple.
Things like CSS or HTML are quite easy to understand, but still, in your career, you’ll probably see terrible HTML code with no semantic meaning, CSS files that are a total mess, code that is so hard to read that you’ll want to rewrite it from scratch.
For example, pretty much all CSS concepts are very easy to understand, but to create good, maintainable, and responsive layouts, consistently, it takes quite a lot of practice (at least for me).
That’s why working on real projects, is a good way to see where you’re currently at, how much you need to rely on the docs, how often your code breaks, etc …
Once again you should try to find a balance between being confident in your skills, and staying humble. Be proud of your achievements, but keep in mind that learning is a road that never ends.
9. Getting desperate
Don’t get desperate and start thinking you’ll never succeed.
Keep in mind that if you went this far, you’ll find a way to go a step further. This way you can go very, very far.
You’ll probably struggle in your way to be a good developer. And that’s a good thing. Because once overcome the difficulties where others have given up, it makes you stand out and this will make you more valuable on the market.
- Don’t worry too much about the noise around you, just focus on your work!
- Stay open-minded and don’t be afraid to try new things.
- Find a good balance between studying/working and your personal life!