Friday 17 May 2013

Finding the Real Programmer

A question or shall I say, a quest to find the Real Programmer has gone in vain so far. Yes, a real programmer, the one we hear stories about. I too like any budding programmer turned too the most powerful tool at my disposal, Google. After searching for quite some time I have drawn my conclusions which I want to share with you.

I have made a small test that helps you determine whether you are a real programmer (or not).  So are you ready to face the moment of truth. There are two question you have to answer and be truthful about.

Question 1: Do you breathe? Can you touch yourself ? Can others see you ?
Question 2: Can you code? Forget how you code or what you use?

If the question to the first question is yes, then it's safe to say you are Real. If second answer is yes, then you are programmer, to sum it up you are a Real Programmer.

So, why this eternal debate? I assume that it has got to something with our quest to get better at programming. I don't understand when people say:


Real Programmers use emacs/vim, while idiots or fake one's use IDE's


I say to hell with it. Aren't we, as programmers supposed to use things that make our life easier and us more efficient? Surely, earlier IDE's  may not have been good enough to satisfy the programmers at that time. But that doesn't mean that today people who use IDE's are idiots who can't do things by themselves. Don't think whats cool work with what makes you more efficient. If you can code better in IDE's that's fine, if you are amazing with the emacs/vim/notepad be my guest. But both parties should put down their swords down and work towards progressive code and better software.

This question at Programmers S.E. made me laugh, but after going through some answers/comments I felt that we are still very caught in the Real/ Unreal things that Real things that matter may get left behind. IMO we should not be categorized by what tools we use, programmers may be categorized by their experience and knowledge. It's amazing that you can debug code by scanning the code, but even if you have to fire up a debugger, you don't have to sink in shame.
These tools are made for you and by programmer's. If it were a bad thing it would not have been done in the first place.

For me a good programmer is one who remembers that first, we have to solve problems and code is just a tool for that.

Similarly another debate I fail to understand is the one of Windows vs. Linux vs. Mac. When you head over to The Verge's forums, you are sure to find apple fanboys going to microsoft tribe to post a rant or vice-versa, this is less of an issue specific to programmers but it doesn't mean that we are untouched by this trend. When it comes to frameworks we are always at war against other language/frameworks. Every discussion on the frameworks has a comment like X sucks Y rules.

I think that this war will not make us better programmer. As for being Real, the real programmer does not care about Windows/Linux/Mac more than he cares about the problem at hand.


Monday 6 May 2013

Jeff Atwood, Joel Spolsky, Thanks for Stack Overflow!

If you code regularly chances are you might have stumbled upon Stack Overflow, a Q/A site for passionate programmers where they answer questions and get answers to their problems.




Via this post I would like to thank Jeff and Joel, the founders of Stack Overflow for this wonderful gift to the internet.

I have no qualms in saying that the two sites that make me a better programmer are Coding Horror and Stack Overflow.

When I started programming, things outside the textbooks used to excite me more. But the walled garden that Indian Education is has little room to accommodate such people, in such times I came across Stack Overflow and I was surprised by two things

  1. Show Respect-Get Respect  :  The place I come form in India, people don't show respect to unknown people face to face, let alone the internet. But here I was seeing people showing respect not only to those who gave answers but also to those who asked questions (although If your questions is like "X framework vs Y which is better, chances are you will get a good load of people closing your question).
  2. Advice, not just answers: There are two ways doing things,  one is getting them done anyhow and the other is getting them done correctly. At Stack Overflow, people not just take time to solve your problem, they also advice you on how things could be done better. Of course if you want an instant hack to solve the problem, you get it, but the person who gave you that hack might just leave a note like:-
Hey this is just a hack, if you want that you not face problem in the future do this:
             function foo(){
                       //correct code here
             }

That's something that commands respect.

Another thing worth mentioning is the community moderators. They actually take time out of their schedules to keep their favorite site free of span by closing questions that violate the guidelines or are too broad to have a specific answer.

Jeff, Joel and their team at Stack Overflow has successfully devised an online discussion system that brings out the best answers and keeps the spam to the minimum.

Stack Overflow has now expanded to Stack Exchange, a group of 90 Q/A websites ranging from coding to cooking, from game development to science fiction and photography and bicycles to physics. Making internet a better place.

Having said that, its not necessary that you have to ask to be at Stack Overflow, if you are one those people who can solve pretty much anything by themselves there are several stupid, question-asking, solution-hungry programmers like me who would love to hear from you.

Here are a few big guns on SO


And of course we all are famous in some circle, aren't we ? :)