3. Mai 2019

Improving as a developer – Tips & Tricks

Take your time off

When you are programming it is easy to get stuck on a hard to solve problem. When you are stuck in a rabbit hole it is good to take a step back and try to solve it later. Good examples for a short break include:
– Go for a walk
– Exercise
– Doing another task you are not stuck with (Interleaving)

These tasks get your so called diffuse mode of thinking to work. The diffuse mode is a complement to your focused thinking and lets you think more outside of the box then if you were thinking about the problem. Even found a solution for any problem when showering? Yep – that’s what diffuse mode thinking is.
Exercise can also help you to create new connections in your brain. This will help you to solve more complex problems when you need to. Also developing healthy sleeping habits will take you a long way to be more present during the day and will help your mind to recover.

Approaching boring tasks early and effectively (Pomodoro)

When you need to do task you don’t really like to do it is easy to just procrastinate and to not do it until later in the day. This leads to you thinking about it all the time during the day as you still need to do it later.
A good practise against that is to use a technique called Pomodoro. This technique tells you to divide your time in 25 minute steps (the duration can be changed based on your needs). Do two to three pomodoro iterations in the morning to accomplish the not so pleasant tasks. This shifts the focus to the process of doing the things instead of doing the things itself.

Learning a new framework

When starting to learn a new framework you should first try to grasp some of the basic concepts of the programming language. Then you should use a pattern called spaced repetition to go deeper. What this means is you should not do a huge amount of learning each day but to learn some new things every few days and repeat the ones you learned. This puts those new concepts into your long term memory and you can memorize them better than if you did it in one go. After each session you should try to think about what you have learned and maybe write it down (e.g. in a blog post like this one).

Most of the frameworks share a common idea. You should try to transfer those key ideas from one framework to another. For example the pattern dependency injection will be used in most modern object oriented frameworks. If you know how this works then you can master new frameworks way more easily than if you do not know this concept. This so called chunking (creating smaller packets of information) leads to new and interesting ways to see technologies and where they share similarities between each other.

Use analogies to learn concepts

Analogies are a good way to teach other people abstract concepts. WordPress as an example has named their way of altering the core functionality of the software filters as an example. This can be used as a great starting point for teaching the concept. A filter in real life can change a liquid flow from having sand in it to it having no more sand in it. If you put in clean water however the filter does not change anything. Hence the name of this concept can also be used for explaining it which is really cool. However naming is always a difficult problem in software engineering. For example in the WordPress Space there are now two completely different technologies which use the concept of so called hooks. They are fundamentally different from each other in terms of technology. So be prepared to adjust your thinking when necessary.

Look for an enriching workspace

Working at a place where you can be creative and learn a lot of new things should be your preferred way of looking for new opportunities. The people around you will impact your thinking and your creativity in general. This is a big opportunity to grow for novice programmers.

Practise makes perfect

As always no master was born in software engineering. Practising your programming skills weekly will help you to become a better programmer and be more efficient.

“Every great developer you know got there by solving problems they were unqualified to solve until they actually did it.”

Patrick McKenzie