I cannot say it was a conscious or well-informed decision when I first started coding back in 2000. I just fell in love with coding as soon as I wrote my first line of C code.

That said, love is not enough to pick something as a profession and build a career on top of it. There are many options to choose from on the hopefully long path of life, and I would like to tell you my story.

A long path. Karower Teiche, Berlin.
A long path. Karower Teiche, Berlin.

Disclaimer: All the terms I mention in this article are only defined by my perception, which might (and probably will) be wrong.

Software engineering vs coding

I intentionally used coding in the title of this article. It is the year 2022, and it is still arguable whether software engineering is really an engineering discipline or not.

I do not care about this debate though. From my point of view, software engineering formalizes how software teams work together, how software is tested, how software is rolled out to production, how individual software components talk to each other, and so on. For instance, I consider both TDD and Agile Software Development part of software engineering.

Coding is an art

When it is my turn to write the code that will implement the required task, it is time to show my art. Right, I see coding as an art, and every coder’s art is different.

You have to think carefully before writing each line, which is totally different from laying bricks. That is why I never liked copy-and-paste programming or Stack Overflow Driven Development. In my opinion, each line of code is an opportunity to improve and to grow. There is always a better way to do something. So the fun never stops.

The joy of continuous learning

Technology is changing rapidly. There is something new to learn every day. If I did the same thing over the last 22 years, then I would have been bored by now. Continuous learning is definitely challenging, but luckily there are many tools for learning.

I am persistent

If what you are doing does not allow you to repeat things, then it is a challenge. I love challenges. I love solving hard problems.

I am so persistent that I can spend hours, even days, solving problems since I was a kid. Coding is a never-ending challenge for me.

Power of repetition

Do not underestimate the power of repetition and hard work, though. You need that to see patterns easily and come up with different solutions quickly.

When I was a student, I used to code almost all day long, usually until morning, missing many classes or sleeping at my desk. When I first had a full-time job in my 20s, I used to code until 2am every night. I was able to do this because I enjoyed doing it. It was not work; it was fun.

Does it have to be fun?

I believe there are many software engineers out there who do not enjoy coding that much but still earn good salaries. In my humble opinion, even though this is totally fine, being a really good coder requires persistence, and persistence is very hard if you do not enjoy what you are doing.

I am impatient

This may sound contradictory, but I am impatient to see results. Coding usually has a fast feedback cycle where you can easily try and throw out things. It is quite easy and cheap to start over if you do not like what you have come up with.

Personally, I try to optimize for simplicity. Therefore my go-to question after finishing an implementation is: “Is this simple enough?” If it is not, I just start over. You rarely have this possibility in other professions.

In a nutshell

I consider myself lucky since I am doing what I really enjoy and get paid for it.

That said, coding is very challenging, which is both good and bad. It requires commitment, continuous learning, and hard work. I hope my experience gives you a hint and makes it easier for you to decide on your career path.