Here is a list of mistakes I have made, and still make from time to time. Since I think I must not be the only one who has trouble handling these mistakes, I decided to share them with the world!
Let me know what you think, if you too struggled with them, and if you'd like to add more mistakes to the list!
I think I will never repeat that enough, but the worst thing you can do to your career is to keep your mouth shut when you don't understand something.
Not knowing is not a mistake, it's not a sin.
You won't bother people with your questions, on the contrary, you should surround yourself with people that love sharing and teaching. How do you intend to get unstuck and learn from problems you encounter if you never ask for help ?
Of course, the web can give you an answer, but will it suit your problem correctly ? Do you really understand why you have this problem and why the solutions you found worked ?
Knowledge is the best tool against bugs and complicated situations.
Some people will even get mad if you stay on your own and never ask for help when you struggle. You are wasting your precious time, as well as the project's time.
You can't evolve as long as you don't know your weakness and your strength. Take feedbacks into account and act on it (the acting part is the most important 😉).
Just like the point above, you will learn so much from talking to people, exchanging opinions and beliefs.
Fear of making mistakes is a big problem if you want to grow as a developer, and as a human being.
A wise man once said "You miss 100% of the shots you don't take"(thank you Michael Scott), so would you rather fail because you didn't do what you wanted, or fail trying ?
In reality, I believe there is no such thing as "Failure". No matter what you do, you are building something. You are learning new things, experimenting, maybe meeting new people, and, most importantly, you are living.
Would you qualify the life of a person who never failed because he never did anything, a successful, productive, happy life ? Well, I hope not.
If you can only cook one meal, you will, after weeks and weeks of eating the same dish over and over again, be completely unmotivated to eat, you will be bored, you may even start hating that meal.
It's the same thing when it comes to coding. Few people like doing the same things over and over again. If you want to have a successful and fulfilling career, you need to learn new skill sets.
This doesn't mean you have to learn everything and anything. You can become an expert in your field, keep up with the latest news and updates, and be curious about alternatives.
Or, if you are interested, become a real Swiss Army knife!
Programming is, I believe, an everlasting school.
The best way to lose time is to code without planning ahead. Did you ever start working on a new feature, encountered a problem, kept coding and tried every bit of code you could find on StackOverflow without success ? Well, this is because you need to think before coding.
You need to truly understand what you have to do, and how you are going to do it. Of course, you can get stuck on a problem that you couldn't plan beforehand, but it will happen less often.
One advice that I like to give is this one : If you get stuck for too long, maybe you should try to find a workaround, think about another solution. There is not always one solution to a problem.
I will always say this,
Being a developer is not about writing code, it's about solving problems.
This is one of the most important coding principle. Document your code ! I tend to forget to do it, and I strongly regret it when I go back to my previous undocumented projects. I get lost and I waste my precious time.
But the real problem is when it comes to big projects in a company. Lots of different people work on the same things, and everyone thinks and codes in a different way.
Adding comments to your code will improve communication with the rest of the team and onboarding new people will be a lot easier.
A way to add less documentation is to code simpler programs/functions. Your code doesn't have to be the shortest possible. A short program that nobody understands adds little value compared to a longer, well-structured program with self-explanatory variables and good comments 😉
Being able to code 24/7 is not the most important skill in IT. Speaking English, curiosity, motivation, charisma, creativity are all skills that can truly boost your career and help you get job interviews.
Being invested in the IT community by writing blog posts, sharing knowledge is also a great thing. Technology watch is really important as well, it shows that you are invested and that you try to be up to date.
Practicing a sport, having a creative hobby, playing an instrument. All these skills, that are not related to programming, say a lot about your character, and you should not only promote what you can do, but who you are.
Okay, you're not a one-trick pony anymore. You've got a lot of new skills and you're trying to expand your soft skills. But know that you need to capitalize on those skills!
You need to talk about them, let your team know that you have new areas of expertise. You can ask for new responsibilities, a raise, or even start looking for a new job.
The world is you oyster !