What I learned so far as a software developer
- Published on
- · 5 min read
This is something I'll update whenever I learn something interesting. I've developed software for over 2 years now, both professionally and as a hobby. Here are some lessons I learned along the way.
Summary
- Readability takes precedence over optimization
- Set a reasonable pace
- Practice makes perfect
- It's impossible to know everything
- There is always someone to learn from
- Take breaks whenever needed
1. Readability takes precedence over optimization
There was a time I felt so clever to write
highly optimized code that ran as fast as possible. Whenever I
revisited this code after a long while, I had no clue what I did
back then anymore. It always took me a good portion of my time
to get back into the code before doing the work I actually came
for. More often than not, those optimizations were unnecessary.
Code should first and foremost be written for humans to read
and understand. If you believe that a certain code path
might be a performance bottleneck, then test it. Add metrics
to measure the execution time for the paths in question and
analyze them later.
2. Set a reasonable pace
There was a time I wasn't patient, and I still suffer from this sometimes. It regularly takes time to solve a bug or complete a feature. And often, learning something new takes longer than anticipated. When I feel the need to be in a hurry, I should ask myself what the reason for it is. I could finish this tomorrow or the day after tomorrow and focus on issues I know I can fix until my brain starts clicking. Sometimes I am confronted with something completely new. It takes time to come up with an idea. The more experience I get, the better I become at dealing with such situations. Now I try to stay patient and not put myself under pressure. I work better when I can stay calm and organize my thoughts to develop an idea. And it will definitely benefit my mental health. It can be the most difficult thing on earth to not pressure myself, and I won't always keep myself from doing it. That's okay. I should still do my best to prevent myself from doing it, though. It can harm me for a long time.
3. Practice makes perfect
Doing something consistently over and over again helps me become proficient. It's not about spending all of my mental energy in just one sitting, but constantly doing it over a long period of time. Repetition is what makes me better at what I do. If it's something I rarely use I would have to search the web to find out how to use it, otherwise, if it is something I use on a daily basis I could probably do it with my hands behind my back. This is my brain slowly learning patterns and saving them.
4. It's impossible to know everything
Especially at the beginning, I thought I could learn everything for a good portion of my developer career. But each time I learned something new, a whole new world of other concepts and techniques opened up. It may seem tempting to try and learn it all, but it's a never-ending endeavor. There will always be another library or framework and another cool thing I could also learn. The only thing that happens is that I would slowly start to burn out because I never seem to reach my goal.
Better to just settle on what I know well and learn
on-demand when I really need to learn it. This keeps me sane
and my motivation up. It's possible to be effective without
knowing everything and I use this to my advantage, learning
along the way when necessary.
5. There is always someone to learn from
Technology is such a large field that you'll never learn everything. Other developers have learned different things than me. This puts them at a knowledge advantage in certain things. My colleagues might be better at backend, CSS, or low-level stuff while I have my own strengths. I could learn from them, and they can learn from me. This is never something I should be jealous about or take to my heart. It's actually awesome that I could make connections to people that can enrich my knowledge. I get years of experience I could profit from to increase my knowledge and I also get years of failure to learn from, so I don't have to make the same mistakes.
6. Take breaks whenever needed
My brain will need frequent breaks. A break
helps it recharge and process the information it previously
consumed. I basically enable it to catch up. Maybe I should do
something completely different instead of just coding such as
getting a cup of coffee, taking a short walk, or any activity
that allows me to leave my computer.
I notice how my performance degrades more and more before I take
any breaks. After I return from it, I notice that I'm back at it
and can perform again until my next break. There were times I
didn't take care of breaks because I wanted to get my stuff
done. It turns out I would have finished way faster if I
would've let my brain rest for a little every once in a while.
A good rule of thumb is at least a 5-minute break each hour and a longer one of up to 30 minutes after 4 hours. I should just listen to my body and adjust my breaks accordingly. When I begin to feel tired, my performance will degrade and have problems concentrating which means I should take that break.