Ask HN: Is it possible to be a good programmer?
I think given the nature of programming as it stands it is not. It is possible to be good at thinking computationally, but when it comes to platform specific implementation details and changing requirements not much can be done.
10 comments
[ 3.0 ms ] story [ 37.2 ms ] threadI also disagree with you. Why do you think nothing can be done about changing requirements? I also don't see how a client/boss changing requirements makes me a bad programmer. This is in same line of thinking as saying someone is bad at sports because sometimes it rains when they go to the park to play.
AS for platform specific implementations details there are people who have built entire careers around being experts in platform specifics.
Being able to take vague and changing requirements in your stride and still deliver something that the end user actually wants (as opposed to what the end user asked for/thinks they wants), is the hallmark of a great programmer. The more I work as a programmer the more I realize that simply typing code is just a small part of my job (and the easiest part).
This is in same line of thinking as saying someone is bad at sports because sometimes it rains when they go to the park to play.
It's more like a player complaining that the reasons they suck is that all their teammates can never pass the ball right. Everybody can catch/score off of a prefect pass, what makes someone great is managing to adapt to and deal with a bad pass.
If you mean someone who knows everything about every facet of computing then that ships probably sailed too.
If you mean someone who delivers software that changes the way people live and work in meaningful ways then it's most definitely possible as I see the evidence every day.
Guess which two corporations want?
So, I think: yes, it's definitely possible to be a good programmer. If your work-activity furthers the larger goals that you're working towards (in an effective and efficient way), then you're pretty good in my book.
Its quite possible to be an expert at platform specific implementation details for various platforms, or to be good at analyzing new platforms and understanding those details, so that part is something one can be good at, or not, too.
Its also possible to be better or worse at designing software to be maintainable in the face of evolving requirements.