Let me take you to a short journey how I started with programming, where it went to, and how the actual methodic, thinking and doing evoled. This will have the following posts:
- It all started with i=i+1
- Melting the metal
- Going to Windows 3.11, I need (MS) access
- Why is there any system without a database? Going to VB6 and Excel VBA
- Oh, this is real OOP? Here are C# and .net
- Doing architecture
In It all started with i=i+1 I outlined how I started to program, and why. The why is pretty necessary. When people just start to make money, I am sure they will never ever reach the quality of people who have fun doing it. Never. I had a lot of passion for it. Sometimes I sit 10 hours in a row in front of the screen making my mother crazy. Back in these days it was not distinguishable for my mother if I just play games or program. Actually for her it was just “sitting there and playing”.
What did I learn then? I
- didn’t learn OOP
- had no idea of good abstractions, encapsulation, information hiding… because assembler doesn’t give you these things out of the box
- didn’t do problem solving in terms of analysis
- didn’t had any idea of project leading, budgets, time frames to be hold
- didn’t do any pair programming, I don’t remember that I ever worked with anybody back then. Just on my own.
But what I learned was
- Taking care of the most performant and effective code. I counted the clock cycles of each single statement to minize and optimize the time a certain routine needed. Who does do that in normal work life today? It is expensive and time consuming, so it is pretty rare.
- to make it happen, self motivated. It was never that funny and relaxing since then to just do it. Because there were nobody who could tell you that it was not good enough, or not well written. When it looked great, it was great. And it was.
- Considering today’s complexity in writing code, John D. Cook had a nice definition of how it feels when developing. He stated “Often C++ is the last human-generated language in a technology stack before you hit metal”. When doing assembler, you are literally melting the metal.
- doing it on my own. There was no internet, and very few people doing the same thing. You get used to be on your own. To try. To fail. And to start all over.
This experience still moves me. I am not going out of my comfort zone when I do something new. I ain’t out of it when something is really hard to beat. I just do it.
Then I finished “high school”, actually there isn’t anything like this in Germany, it is… more complex. Like German language, the school system is … hard to explain to anybody. I did recover another love. It was playing guitar. I was heavily listening to all kinds of music, but there have been exactly one that made me taking the burden of mastering an instrument. That was Randy Rhoads’ Mr. Crowley – and other songs from him.
What can you learn as a programmer from musicians? That’s pretty easy:
- There is no way around for musicians to not work as a team. This will probably the topic of another post.
- Be always the worst in the band – so you can learn from the others. There is some kind of magic in it. When you are sourrounded with people who just can do, they get you on their level. With an easyness that is not understandable you improve while doing.
- Music makes you mastering complexity. When there is a real hard piece to be learned, it is not possible to just go through it. And then play it. It has to be separated in pieces that are easy, and pieces that may be played a million times to be able to do it properly.
Music teaches analysis and team play. Unpayable. When you play alone, it is enjoyable. But when you’re playing with other people, and you are in (read as “in rhythm”) it is… magic. It is not comparable with any other feeling you ever have in your life. Believe me.
If you are an experienced musician, or at least are able to read and understand note sheets, you may want to answer this question:
Please consider these things when you thinking of a certain comparison:
- the speed of this song
- the finger set that you have to play, esp. the slides in the first fast part
- the fact that you have to follow that rhythm – 16 trioles, 32, quintoles even doubled, and then 7 toles.
Who is capable of that.. easily? Yes, there are more complex pieces of work. Sure. But I love this one.