Lessons learned after a year as a junior developer
May 09, 2020
I wanted to write my observations after a year (now even almost 1.5 year) of programming professionally. This is what I feel now about some bad habits that I had. I tried to add solutions for each of them.
Since the beginning I wanted to soak up as much knowledge as I could. I had this feeling that if I don't learn everything connected to my job, I will lose it sooner or later. That is partially true. It would be true only if I didn't learn anything during my first months and later. I had big expectations from me. Again, it was partially correct way of approaching career.
Big ambitions are great, they will make your job more fun and at the same more demanding. What I didn't understand or didn't want to understand is that my skill raises gradually, so task that I do has to reflect the skill that I currently posses. My mistake was that I was getting angry at myself that couldn't handle the task. I felt that I should posses skills required to complete task, but the truth was, I knew so little to even grasp the basics of it. Why? Because I was new to programming (still I am) and this kind of task is out of my reach. Some of them are to this day.
So to make your job more joyful, do tasks that are a right fit for you. Keep them demanding, so you can grow.
Lesson learned: Make your work challenging, pick your battles according to your current level
From what I experienced, this problem may concern programmer of any level. There are some programmers that get used too much to certain tools, programming paradigm, language etc. They think that if they worked for the last two year using some tool, it's the best solution out there. Of course, it might be true, but this approach make some of those programmers look foolish. It can mean that this person cannot learn anything new or is too afraid to learn.
In my opinion correct approach is to be as objective as you could. When you choose a tool for your new project, keep in mind that the tool that you used a year ago, may be outdated. That there is a faster and easier way of solving some problem that you had in the past. You fixed that problem from a year ago with X, but Y may be a cheaper with the same amount of work put in.
Lesson learned: Keep your mind open. New skills can make your skill set even more desirable on the market
Think before doing
The Code Cowboy is an approach to coding that I was practicing since the beginning (and I think every new programmer does that). The Code Cowboy doesn't think before solving problems, person like that only types on the keyboard whatever feels great in context of some vague understanding of the problem. It's wrong because this approach can lead to many problems. It may lead to situation where you'll have to delete a lot of code that you just typed in. It means a lot of time and money will be wasted, so it means no new features for your project.
I found that after some time, that I have to approach problem solving the other way. I had to think, before typing. Usually I put some notes, written by hand or digitally, before starting the actual job. It made my job easier, more joyful and meaningful. Now before typing I can have written down multiple solutions to a problem. For the easier tasks it may be better to just go and do it. In the end, the more complicated problem, the easier it is to complete it when you have your notes.
Lesson learned: Think before doing. It will save your time and make your job more meaningful since you'll feel more aware of what you do.