Never stop learning

There are two types of programmers: the one who continues to learn, and the one who stagnates by doing the same thing over and over again.

Through my programming career, I have met older programmers with more years of experience. Yet, the number of years of experience is rarely a particularly good indicator of how good a programmer somebody is. There is a difference between having 10 years of experiences, and 1 year of experience repeated 10 times.

I work as a self-employed consultant. To stay relevant, I have to continue to learn. Among my self-employed consultant colleagues, there is a saying that you want to avoid getting “frozen in”. “Frozen in” means staying at the same place for too long, not learning anything new, and eventually only have irrelevant skills that are not marketable.

Therefore, when you feel that you are just going through the motions doing the same thing over and over again, you should consider switching to a new project. In the past, when I have felt that I only was fixing bugs and developing new features without learning anything new, then I have gotten bored and switched place. I need to be challenged to not get bored.

By getting different experiences, you continue to develop your craft and become a better programmer. Even if you learn something new on the side and never work with it professionally, it will still influence the way you think and solve problems.

I have worked with a lot of different programming languages, environments and tools. Currently I am mainly doing development in .NET/C# with Blazor, and have been doing so for a couple of years. It is a great programming language and framework. However, it is not really my passion. I feel like I know these things by now, and I am getting more interested in looking around to see what else is out there.

I have become interested in functional programming languages. On my spare time I have checked out F#. I also find Elixir interesting. And just yesterday I heard of Roc which also looks interesting.

Even if I have not gotten to use F# professionally, it still has influenced the way I write C# nowadays. Even in object-oriented programming languages, it is very much possible to apply thinking from functional programming languages.

I think there is something appealing with the newer system languages, such as Zig, Odin, Jai and Rust. However, I would like to explore the functional programming languages more, since I believe that it is an inherently better paradigm for solving problems. That is what I want to explore next, to find out if that is true and get better at.