Open the hood
What I love about Software Engineering
Recently I started to realize what I love most about my job and side projects: Solving problems which force me to look one layer below.
I really like developing software, but like all activities sometimes it´s fun and sometimes not. Programming can be boring and really frustrating. It can be tiresome to debug problems or finding good ways to build something.
I always think of programming in layers. Programmer work in a space they feel comfortable. When you are building websites with HTML, CSS and Javascript you usually don´t think about operating systems or compression algorithms that much. But sometimes bugs or problems appear that need you to look deeper. It is like driving a car. You need to look under the hood to fix problems or do maintenance work, but usually you don´t care what´s in there. Some work I did recently forced me to look at stuff I didn´t understand before. At first it is frustrating to face a problem you cannot fix in your comfort zone but after some research and many questions it can become really interesting and rewarding. You learn many new things and it helps you understand work you did before or will do in the future much better.
That was also the point I realized the beauty of open source, again. If you work with technology you can take apart, you have a good chance you can help yourself when you are stuck with some issue. I love to look at the code of open source projects I am using and digging through Github and Stackoverflow to find a solution. If I´m lucky, I may find the part of the code that is responsible for what I am doing. The best part is understanding the problem and probably finding a solution. It is fun and rewarding if this results in patch, pull request or workaround. Helping other with the same problem is a nice bonus, too.
I love jumping between these imagined layers. For me that´s the spirit of programming and open source. Finding something interesting, working through it and learning in the process.