Constant learning is an important concept as a software developer, especially as a consultant.
Regarding skill distribution, there is often talk of generalists as well as specialists. In reality, t-shaped people are in demand. T-Shaped describes a generalist with at least one specialty. This is e.g. a fullstack developer with specialization in backend technologies with Java. However, this full stack developer is also familiar with frontend technologies and knows what the current trends are there. Not in depth, but he knows and can orient himself. For companies, T-shapend individuals are also very valuable, as they not only gain a specialist, but also a person with additional areas of knowledge. As a result, the person can also take on additional tasks. Especially in SCRUM teams T-Shaped people are in demand, because they can adopt different perspectives and are flexible in their tasks.
That’s why I try a new programming language every year and try to learn the different trends in programming languages that way. Programming languages are not everything, but they are the cornerstone for further technologies. It is therefore important to know different ones in order to have an answer for every situation.
I achieve this among others with AdventOfCode. The AdventOfCode is an advent calendar with programming puzzles. Every day in December, from the 1st to the 25th, there is a two-part puzzle to solve. The solutions can be solved universally with any programming language. Each year I choose a programming language, typically a programming language I have almost no experience with or a programming language I want to go into more. This automatically gives me a fun introduction to a programming language, and I quickly learn how the different language features work. Last year this was Kotlin, this year I expect to try Go.
What I also always find very interesting when learning a new programming language and technology is how other developers develop with the programming language. That’s why at AdventOfCode I also look at many other solutions, besides the language I used at AdventOfCode also solutions from other programming languages.
After an introduction to a programming language through AdventOfCode, I usually try my hand at the programming language with smaller projects. This way I get to know the ecosystem of the language, like frameworks. I also get inspiration from many other projects, e.g. via GitHub in the respective programming language.
Learning different programming language also reinforces the knowledge of individual programming languages, as many concepts and aspects are shared between programming languages. Also, there are many aspects that are different in different programming languages, like memory management and typing.
These different aspects are the reason why I am always happy to learn a new programming language.
Written on October 29th, 2021 by Lasse Schultebraucks