First of all: Against my usual "strictly informational blogging"; policy, this is gonna be personal :)
I recently developed a kind of feeling for what I want to be when I grow up. I want to be awesome!
While this might come pretty late (I'll be 24 by the end of march), I am kinda happy that I seem to have found a goal worth aiming for.
By now, some of you might think "Being awesome? That's kinda unspecific…"; and I have to agree, it is. I still don't really know what will help me earning my money two years from know (once I finished my Masters degree). I only know that I want to be awesome at what I do, not just average. That's basically what I'm striving for, "being awesome at something";.
Ever since I started studying at university, I began to really enjoy learning new things and getting better at things I already know something about.
While this, most of the time, evolves arround topics in applied computer science (concepts of networks, security, programming, …), I try not to keep it strictly that way.
Back in school, I decided to chose chemistry and politics as my majors. Partly because I managed to receive good grades, but also because I could easily be motivated to learn about theories of how people/atoms should organize to form a well functioning society/molecule. In retrospect, I think it might have been because chemistry and politics tried to focus on the fundamentals. While biology started to bore me with memorizing citrate cyles, math bored me because I didn't really see the basic concepts behind it.
That might be why computer science always seemed interesting to me. It's basically a huge bunch of fundamentals which makes learning new things really easy. In the beginning, I kinda thought programming was fun. Learning about how computers manage things in memory and doing things on a level which is close to the hardware itself seemed like a fun use of fundamentals. The sad part of the story is, that programming lost a LOT of its appeal when we were being tought about details of certain programming languages cough java cough without ever having experienced developing a a REAL program.
Questions like "This is an anonymous inner class, what does this mean for the scope of the variable xyz if it has been previously initialized yadda yadda yadda"; only resulted in me thinking: "WTF, what does this have to do with me?!";. It was basically math in 11th grade all over again. Being tought things that have virtually NO pratical use for me whatsoever and nobody explaining WHY it is a neat thing to have those constructs. Naturally, We were tought about object orientation and why it's good to reuse code, but that's like telling africans how important it is not to eat too much high fructose corn sirup… It basically is good advice, just at the wrong place and the wrong time.
This was the time when I focused most of my attention to building computer networks and their security. Ever since the first Counterstrike-ridden LAN parties of my youth, I already knew something about the problems of getting computers to talk to one another. So telling me about the concepts of networks and the problems was something I could easily find interest in. Security itself seemed interesting because breaking stuff is always fun and I already tried to break stuff (e.g. copy protections) in my early days. This was also the time when I first came accross stuff like assembler and took a sneak peek into something that I should encounter again several years later.
If you came this far, you have read a lot of text and I think it's time for a reward (as usual XKCD has something related):
Alright, by now you've learned why I got interested in security and networks. While doing my bachelors degree, I spent some years working as an intern administrating servers, tweaking the security of networks and even a whole semester connecting things (my thanks go out to the people at T-Systems and the Fraunhofer Institute I worked with over that time. I learned a lot of interesting stuff, especially how you've got to pay attention to what's USEFUL, not what's better in theory).
By now, I'd say I have a pretty firm grasp on what's going on in the bits and bytes while shoving data over the wire and how to provide people with a system that allows them to work without too much of a hassle. Over the last few months, the amount of learning new and interesting things in this area pretty much came to a halt. There is only so much new things you can learn while doing this stuff on the side. The day-to-day "keeping the system working"; part of the job simply takes a lot of time and the "playing with new stuff"; part got smaller and smaller.
Luckily, I found some new fundamentals to be interested in! I didn't really develop interest in it myself, but I kinda got my nose poked on it when I got the chance of visiting a lecture called "the fundamentals of current programming languages and virtual machines";. At first, I didn't really know if should take the lecture, me being not particularily interested in the other programming classes of the last semester, but one of my favourite professors (www.kriha.org) seemed to be very fond of the external lecturer so I thought it might be worth to give it a try.
And by god, it was SO worth it. I still remember the bikeride home after the first lecture. It was like the feeling you get when your foot falls asleep and you move it for the first time after some minutes. It feels kinda numb, but with a buzzing sensation all over it. Exactly this was the state of my brain on the bikeride home.
The first few lectures were about the principles behind the programming language lisp and how to build your own lisp interpreter. While lisp might not be the prettiest language to look at, it certainly is one of the languages that seems to be the "purest";. It basically has only the concepts of lists and everything you'll deal with is a list.
For somebody who likes the fundamentals behind all of the computer magic, it's a perfect example to be tought that programming actually can be fun. It's like drowning a kid in a pool filled with candy (I might have to work on that metaphor, but you get the idea).
After having build our own system of numbers, defined true and false, implemented our own loops and other fundamentals with the help of Lisp, we moved on to Smalltalk. While smalltalk itself sure is a LOT prettier to look at than lisp, it still keeps some of the "living inside the basics of my own system"; which I just didn't see in Java, UML and all the other boring things I was forced to memorize in former lectures.
After this lecture, I went on my internship semester and learned a lot of interesting things about Wireless LAN and Networking as previously mentioned. And even in my bachelors thesis, I decided to look into "anonymous filesharing"; which is basically a combination of the fundamentals of scalability, security and networking.
I didn't really have the time and motivation to do anything in smalltalk or lisp these days and it kinda got lost for a few months in the back of my head.
It came back when I started to play arround with ruby. I actually don't really know WHY I took some interest in ruby, but I am pretty easily interested in "new"; technologies, so it might just have been a link somewhere. When dealing with ruby, I had the ability to find some of the concepts (closures, open classes, higher order functions, …) that still buzzed arround in the back of my head packed within a nice little package that didn't require too much learning to be able to actually produce usefull things. I got interested in the virtual machines ruby is being executed on, watched a few talks on jruby and read whichever blog posts dealt with the topic. I didn't always understand everything, but I was eager to learn.
Luckily, with the beginning of my Master degree studies, I had the chance to cash in some ECTS for watching those talks, reading those blogposts and packaging them into little pieces and doing presentaions about them myself. (Thanks to kai(kaijaeger.com) btw for answering me a lot of the questions about typing systems, dynamic binding etc. This helped me to understand a lot of things better).
I still have got a lot to learn, but at least now, learning about things like proper object orientation, inner anonymous functions etc. starts making sense to me. I don't really have a "what does this have to do with me"; situation anymore.
Ok, if you came this far, you're probably longing for another picture ;) Here we go:
By now we have covered a lot of the "learning"; aspect of my headline. Also a part of the being awesome part and virtually nothing about running. I'll now try to fill up the remaining "learning"; part and then close with the running section (just so you know what you can expect).
As you got this far, you know that I started to find a liking in programming. By february the 15th, I will even have a new part-time job involving programming work which I'm certain, will allow me to get some of the practice I need while still being fun and paying the bills.
To fill up the rest of the learning part, I'd like to talk about another thing I found interest in: presenting stuff!
Actually I already started to present stuff back in my childhood days when I ?voluntered? to read two A4 pages in front of a filled church at my communion. After that went well and my grandfather said I looked and sounded like a major, public speaking started to be fun. As every child being hit by pubertiy, public speaking lost its appeal for a years, but it came back and I found interest in it when I read the first articles about the important fundamentals of giving presentations. I started watching presenters like e.g. Steve Jobs and pay attention to HOW they presented their products/technologies instead of focusing on the product/technology itself. When having a seminar on the topic of presentation during in the end of my bachelors degree, I started really enjoying it and to this day, I try to learn how to organize information and present it, so people are actually interested in what I have to say. Another motivation for me might be the fact, that while reading "G√É¬∂del, Escher, Bach: an eternal golden braid"; by Douglas Hoffstadter, I started actually being interested in math and music, because Mr Hoffstadter connects them with computer science by using their bare fundamentals (which is how they are supposed to be looked at in my opinon).
So a short summary:
- learning: good
- fundamentals: interesting
- putting those two together: fun!
Now: What does this have to do with running?
I started running some months ago. I never was in particularily good shape, I managed to pass the cooper test (12 minutes of running) only by a few seconds back in school and when starting to study, I gained a few (5+-x) extra kilos which I don't really think belonged there.
In the beginning, I tried riding my bike to lose some weight. While this was kinda fun, even after an hour, I wasn't really powered out and I just didn't wanna invest any more time in it.
I don't even know what got me to start jogging, but the important fact is that I started it.
Over the first few tries, I couldn't even run a kilometer without being out of breath and feeling every inch of my body. By the end of last year, I managed to run an hour without feeling uncompfortable or being out of breath. At first, it was pretty boring and only the small advances you manage to be able to get in the beginning were motivating me to keep trying. Just as in learning about new things, the initial "curve of success"; is what keeps me going.
When grasping a connection between something new and something you know for the first time, I feely happy. This is probably because of the endorphins (aka: opiates) a human brain releases to motivate for something of importance. I think this small addiction is basically what keeps people going or making drug-use so addictive (hello there, smokers!).
Interestingly enough, this also happens when you run for some time. It's called a "runners high"; and is one of the most fun feelings you can get. The pain simply fades away and you start smiling while keeping allowing you to keep your pace.
As in learning, there is also the other extreme when it comes to running. People tend to say it feels like "running against a wall";. This feeling creeps arround you for the first few kilometers and seems to jump into your mind basically out of nowhere. You start feeling weak and your body tells you to simply stop it, go home and take a nap. It comparable to the feeling you get just before the start of a presentation ("stage fright";) and kinda similar to an "I don't wanna learn this, it seems useless"; situation. While I don't know about the learning part, the stage fright and the "running against a wall"; can simply be broken by not listening to what your body tells you.
And once you have "broken the wall";, it's honey and unicorns all over the place!
I usually try to listen to podcasts while jogging, so I can be high from running AND probably from learning at the same time :)
Wow, seems I actually have managed to write a LOT of things that have been roaming arround my mind for the past few weeks. I might have forgotten important aspects or even drifted away from the main topics, but at least I got it on paper :)
Thanks for reading through it…
So what about you?
- Do you also like principles?
- What motivates you when going for a run? (or why don't you?)
- Does your "educational career"; involve something similar to my initial dislike for e.g. Math?