FUD about what good programmer is
![]()
From time to time it’s nice to take your time to understand other blog’s posts. Not only read, also realize what are they taking about.
This time I found something that the first time I read it I agreed, but suddenly I realized that is a piece of FUD.It’s about “How to recognise a good programmer“. Where Mr Daniel tries to sell the idea of good programmer = a guy who lives and love computers. Even there is a point where he suggest that good programmers should work “some time” for free.
He proposes some key indicators that will help to identify a good programmer. Even if he warns that they’re not 100% sure, they will help. Well, I believe they will help managers to hire the wrong guy or a guy who works for free. Leaving the real good guys away, or at least those guys who are professional and will claim their rights.
I’d like to review some points here, so if you haven’t read the original post, you’ll be a bit lost.
#1 : Passion
Passion means hobby, not being a professional. A job, is a job, and it’s daily. If you suggest that your job doesn’t end in the office, you’re suggesting that you shouldn’t have a life, couple, children. Programming can be your hobby and your job. But if it’s your job, it should be in exchange for something (usually money).
Also you should have passion for what you’re doing at the expense of social smoothness. LOL. So I have to sacrifice my other hobbies, my friends or something if I want to be classified as a good programmer. Well, perhaps if I’m not capable of doing something, then I have to spend more time. But if someone is good, why he should spend that extra time? Wasn’t he supposed to be good?
#2 : Self-teaching and love of learning
I can say that curiosity is always good, but not at the expense, of course, of your life. Riding the bleeding edge of new technologies means risks, and as a professional you should realize that risk = time (your time). I’ve listened to lots of comments about new technologies with people that only speaks about that, and they do not realize of what those new technologies imply.
But it’s also good to read that if you ask for training is because you’re not a good programmer. Therefore, you should work your hours, also some for free as this guy stated before, and then return home and teach yourself new technologies to make the company (not your company) advance. Meanwhile you hardly have time to prepare your own food.
No my dear Daniel. You’re totally wrong. Programmers have life, and if the company wants something, the company should help to get it. I understand that managers love those poor geeks who are paid for 8 hours, work 12 and also at home learn new things and new technologies by themselves. All that “for free”. Yeah! I want that for my company. If I was greedy, of course.
And last point. If you’re asking a programmer about which technology should you use in your business. You’re nuts. You should be asking someone who analyse customer problems and turn them into software solutions (with the help of a bunch of programmers of course), but not with a guy who believes that a solution for the company starts by executing vim solution.cpp.
#3 : Intelligence
So good programmers were supposed not to have strong social skills, and know they’re supposed to have. Wow, Daniel, make up your mind. But really, whatever you or me or anyone does in his personal life, it’s not my matter. People is free, and they can be free and be also good professionals.
I’d really want to know what a “relaxed context” i, because for me is a place, out of the office with a tea or a coffe, enjoying a green park without the noise of the city.
#4 : Hidden experience
Again the greedy manager. Hire the guy who also does software in his free time, because that means that he will get more experience for the company. And if he has been doing it since he was 14, better.
People have different hobbies when they’re young. Programming can be one, but there’re hundreds. Music, languages, improve in their studies, sports. Perhaps if they do other things they can have an open mind to solve the problems.
How greedy can you be, saying that good programmers have to spend all his time in the computer (with the 20 pages CV, and not speaking about the quality). People have life, people do projects that perhaps are totally stupid to your eyes, but they enjoy with them. Beware of those who don’t do anything, but do not expect people to spend their lifes in front of the screen programming.
I’m not saying that personal software projects are bad. But when that means the only way for a programmer to improve. I guess he/she should change company. He’s being squeezed.
#5 : Variety of technologies
Learning a new technology is not the most funny thing. Usually you learn a technology in 1 or 2 days, and then you use it for a purpose. You have an objective and you use whatever you have (even if it’s new) to accomplish it. The funny thing is to build your project, not the technology.
And: What? EJB with Shell scripting…. They’re not totally unrelated, but the ways to be related are minimum.
Variety means that you’re not really good at anything, but you know a bit of everything. Being specialized means that you can fix exact problems in half of a blink and some managers will sell their kidneys to pay you for that.
People can be good in a technology if you train them or at least if you give them time to train themselves (Please, let them have a life, job is job). It’s better when someone can train himself to overcome a problem. But that means that perhaps in the CV the language or the technology you ask for, is not listed. Why? Give him time or training and in 2 weeks you’ll have your best employee.
#6 : Formal qualifications
Agree, but be careful with that. When you receive training (wow! yes, training) people can do two things: accomplish the bare minimum, or take advantage of it.
So, most good programmers started long before they started university? Some of them. But a lot of people take advantage of the lessons provided in the university. Perhaps you, Daniel, believe that those lessons are worthless. But when someone spends time on you for you to learn, it’s your call. I know good people from both sides (those who started before and those who started in the university). Therefore this point is another FUD indicator.
Final thoughts
Perhaps this should be a post on Daniel’s blog, but I prefer to reserve these words for my space.
When I read those indicators I imagine an evil IT manager thinking: how can I hire the cheapest and best “programmer” who in fact will do all of my job. I won’t train him, and he will work more for free because he likes that. And also I’ll take advantage of the experience he has in other projects, but I won’t exchange that for anything, I’ll only squeeze him.
Professional programmers have a life, they have a wife and they like to go snowboarding with their family (for example). Usually they need new challenges in other areas and you can find them painting, playing music or building ice sculptures. And some times, why not, playing some computer games.
And one more thing (or was it “one last thing”? I will never be Steve Jobs), the last one. About “Good programmers”, I accept it only if someone else call me that. I can say that my works is good or not (that’s why I’m a professinal), but I don’t like to call myself “Good programmer”. It’s like no one calls me that and I need to improve my self-esteem. You can say whatever you want about yourself, the people with say with that when you really show it to them.
Thank you for your time reading this. And I’m sorry if your eyeballs got red reading too many grammatical mistakes.
Trackback URL: http://fitri.manzanisimo.net/2008/01/13/fud-about-what-good-programmer-is/trackback/
Kat said,
2008-01-21 @ 1.44 pm
Maybe Daniel doesn’t have a life himself, which is the reason his list is so different than yours. I don’t know if you’re a good programmer or not, but you certainly are very intelligent on technical issues, friendly, kind and a very good person. To me, this is more important.
graffic said,
2008-01-21 @ 3.10 pm
@Kat: At least we’re able to express different opinions. About good programmers, if someone develops a test to detect them… he/she will be rich.
Outside the “professional” or “hobby” world of computers, the “good programmer” is not important. And even there, is only a part of the needed skills in any job. (You need to be able to communicate with others and blah blah blah…)