I Don't Like Programming
I have a bad habit of annotating books with a pencil. I do it all the time I read a book and find something interesting, something worth taking a note of, and instead of taking a note on separate piece of paper I just underline the thing.
Today I was sifting through the book "The Pragmatic Programmer". You know, the kind of thing you do when you are bored, or just want to kill some time. You don't actually want to apply the brain power to what you do. Yeah, I was doing that and I came across this underlined paragraph reading
Learn at least one new language every year. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut.
And it got me thinking.
It was not the first time I read this particular piece of paragraph, but today it made me realize a couple things about myself.
I'm the kind of person who'd sit in silence for hours (my colleagues wouldn't agree) and go about observing people doing things, any kind of things, work, chores, routine - literally anything. I like to watch people go though the very basic routine of solving problems. Somebody struggle to resist the temptation to punch someone, somebody else figure out the ways to avoid social interactions, and somebody else put another
case statement in a
switch with 67 other
People always find a way, good or bad doesn't really matter when it comes to go home at the end of the day, and watch TV.
We - Programmers - are the same breed. We too like to find the quickest and shortest possible solution to our problems, and the voice of the experience says that most of us tend to find a solution within our comfort zone. We don't like to step out of the boundaries and seek a solution that could be more efficient, in parts because we don't realize that such a solution might exist.
And we don't realize it because we are too busy brushing up our language skills that we almost don't give a shit about what other language is out there and what kind of problems does it solve.
There are a lot of programming languages in the wild, most of them are general purpose languages (Ruby, Python, C++, C#) which has evolved over time to solve most common problems, and some other are domain specific (SQL, MATLAB, RegEx) which has evolved to solve really specific problems. Now, certainly you can solve math problems with Ruby, render graphs using some library or extension and perform computations over a large set of data but if you try to solve the same problem in MATLAB not only it would be a lot less amount of code, it would be a lot easier and efficient. But you still decide to do it with Ruby, or Python, or whatever language you are comfortable with because you don't know MATLAB.
The point I'm trying to make here is that you should not choose a programming language because it is easier to code in, or the syntax is pretty, but the kind of problems it can solve for you.
I remember how I started learning to program in BASIC language, but the day I came across Visual Basic and wrote my first GUI program I was blown away by how simple it was to create a window with all kind of controls and pretty interface. I learned C, C++, a little bit of Java, PHP, Ruby, Python, then Go, had a little taste of Scala too and tinkered with Perl and many other languages, but I never thought about why I liked it so much to juggle with languages, until today.
Today I realized that I'm a kid learning to arrange Jenga blocks in different ways to make many different shapes, and every time I make a new shape with my blocks I learn something new. I learn to balance the blocks to make a tower, and in process I also learn how the physics operate on the world around me. It is a process of learning new things, and applying new approaches to solve problems. It could be a trivial thing for people who are more experienced than me but I am the kid who find it amusing to make new shapes with some wooden blocks. My dinosaur might not be a perfect replica of Tyrannosaurus but hell - some time ago I didn't knew I can make a dinosaur with these blocks.
So, yeah, there is that. I don't like programming, I don't like to write code. The only thing I like is to solve problems. And I'll keep finding ways to solve those problems with a new approach. That is what makes me happy.