Vesa Karvonen
Posts: 116
Nickname: vkarvone
Registered: Jun, 2004
|
|
"average" is jargon for "incompetent"
|
Posted: Apr 25, 2006 10:57 PM
|
|
I like working with programmers who write a bit of code and then ask themselves "is there some simpler way of doing this?" If the answer is yes, they stop and redo it before going on.
Michael, based on this criteria, you'd like working with me. ;-)
I think that filling in the types after working dynamically would be just like this, and it is just like the "Fast Green Bar" rule in TDD.
I doubt it would happen. Why would a programmer who never revisits his code break habit to add type annotations after getting his code to run without crashing immediately?
The thing that is sad, is that there are so many programmers who never revisit a line of code after they have typed it. They don't sketch the contours, they start at the corner of the page and try to move outward in elaborate detail.
Yeah. I wish I could tell you in more detail, but that is so true.
I think that a huge problem in our field (programming / software engineering) is that it is too easy to start. Anyone can write a "Hello, world!" program and, sadly, after doing it, many people seem to think that they are competent programmers. I've seen many "programmers" who never really read books about programming techniques. They barely know how to use for -loops and actually don't use them in many cases where they would actually simplify things. The complexity (eloborate detail) of the designs (code) they produce is incredible. In most other engineering fields, such designs would be killed before reaching production - the design flaws would be plainly apparent (e.g., a house with the only exit on the third floor) or the cost of building and maintaining physical objects of such complexity would be plainly prohibitive (e.g. you just can't pack an arbitrary number of gears into a wrist watch).
I think that "average programmer" is jargon for "incompetent programmer" or, at least, that's the way it seems to be used. For instance, adoption of a higher level language that could significantly help to improve the productivity of capable programmers is often prevented by considerations of the form "where can we find (average) programmers who can program in that language". Learning a programming language is one thing that a competent programmer can do in a reasonable amount of time.
Still, I don't think that incompetence is the fault of individuals. Individuals can learn and become competent. The fault is in the system that tolerates, or even rewards, incompetence.
|
|