Sunday, August 28, 2011

The Clean Coder

I enjoyed this tiny book very much. Robert C. Martin lays down here many important issues that many programmers should be aware of.

I will not even try to write a review of the book - I just want to point out some things that influenced me. In general, I like soft-software books, I mean without the code, just mentoring. I like that Mr Martin is recalling the days of his early programming adventures, when he was a high school geek or 2* years old passionate hacker. That means to me that he has a distance to what he does even though he is a passionate and claims himself being a professional. Someone I want to learn from about programming.

Number one (and this an interpretation, not a quote) you don't have to be experienced to be a professional. I know it sounds silly. But there is, I guess, a space for unexperienced-professionals. What I mean is that everyone can behave professionally. Experienced-professionals for me are the ones who tried to behave professionally, they succeed, and they follow their path no matter what. The attitude is the power.

When I was 19 years old I remember working with so called "experienced" programmers. They were supposed to teach me, and I was supposed to learn. Thankfully there are many sources of knowledge and I could take a different path. I can easily see now the difference between an experienced and experienced-professional developer. Thanks to that book I can also define it.

Second thing is about prioritizing and learning. Never more ocasional priority inversion. If there is a task that is more important, don't do other one because it's easier. Don't even follow the internal dialog, about how right is it to work on another task while the most important one can wait a bit.

One sentence was really nice. It was about practicing after work. He recommends 3 hours a day (quite a lot I must admit). I will put it in bold: Practicing is what you do when you aren't getting paid. You do it so that you will be paid, and paid well.

And one more thing. If you don't follow TDD (or any other discipline that is as effective as TDD), you can stop calling yourself a professional. I like that he says that with no illusions, that there may be another way of being a good programmer who doesn't write automated tests for his/her code. No, there is not.

Anyway, I recommend that book a lot. I'm still on my way to be professional, but I guess that this book indicates one of the best ways to succeed.

And the cover is there for a reason, astronomy has a lot to do with programming.

Friday, August 12, 2011

Basic needs of programmers

If anyone thinks that the most important thing for programmers is the ability to code - they're wrong. Even if it is a super interesting project that involves millions of users it will fail if programmers have no possibility to meet their basic needs. And I'd like to stress the word possibility.



How many of us, programmers, were sitting in front of a computer for hours without eating, drinking or going to the toilet? Do you remember this project that you had once, when you just have to finish in three day and one test is not passing or you want to make this query run even faster that it could? Or just refactor the code before pushing it so it shines more that it needs? And you were this hacking-freelancer that will do the best project ever! Yes - a freelancer working from home.

It works completely different in the office. You start working with a coffee, water, little chitchat with everyone. You see people going one after another to the toilet, eating snacks, walking around. And then on of them brings the news: there is no running water in the builiding! OMG!! Panic!! How are we gonna pee after first three coffees? We have to go home!! Everyone needs to pee in the exact same moment! Dear God!! I didn't drink anything but maybe I'll need to pee! I have to go home! There is no water running!! NO WATER!!

Forget about programming. This is not freelancing at home, this is working in the office. Even if you don't have to pee, you will leave just because the toilet is out of order. And there is always that argument of Maslow's pyramid.

BTW. I need to pee (excrete) and I'm the only one left in the office... shit...

Thursday, August 11, 2011

Khan Academy subtitles

Thanks to sharing knowledge and open-community I discovered a very badly page ranked website called Khan Academy. Of course if I had followed TED more carefully I would have known about it before.

I mentioned open-community because it was Melodie, friend from Couch Surfing, who showed me the Academy. Moreover, we found it in a paperback Creative Commons magazine... just saying that I was there because of ECOOP 2011 (programming conference) makes me dizzy. Too much knowledge sharing! I will write a summary of ECOOP soon, but let me get back to Khan Academy now.

The Academy is simply a great place to learn. One teacher, good teacher, trying to explain the magic of math, physics, biology, chemistry, organic chemistry, astronomy, economics, banking and more in a very approachable... especially math. I realize that many people know about it, but I didn't so I'm still under its influence. By now I have gained around 130,000 energy points, and 67 badges! What a great way to make humans want to learn. Shame that I cannot share my rank using some kind of a widget.

As I finished a degree in computer science, I must say that the way this guy explains math is just awesome. Anyway... there are subtitles. Everything is subtitled in English, which is a base language for others. I translated first video to Polish! I was shocked when I saw that this is the first video translated to Polish on the Academy. Ever!

We Polish people need this Academy for our kids! It should be subtitled in Polish to terminate the stagnation of our education system! OK... I don't believe in that, but it can start something, can't it? Why didn't I have a teacher like that when I was in high-school? Or better, why the hell didn't my teachers know about it? It is already 5 years old!

I think I'll write a petition to students' governments of English Philology departments around Poland. Who knows, maybe together we can translate it in one term, cause by myself I'd need 46 years to finish...

Polacy, do roboty! :)