Advertisement

Programmer at 40+?

Started by December 30, 2010 02:34 PM
58 comments, last by tstrimp 13 years, 10 months ago
Quote: Original post by tstrimp
Anyone who thinks typing skill doesn't matter when programming should try programming on a netbook or touchscreen. Productivity drops dramatically. If you're a hunt and peck typist you are not going to be nearly as productive as someone who doesn't have to spend any time thinking about what their fingers are doing.


Being able to touch type is a lot more important than typing speed imo. If you are accurate and don't need to stare at the input device, I think you'd do fine on anything. I know the reason I can't work fast on a netbook is because I end up hitting the wrong key every once in a while because the space is cramped. Ive used touch screens before that I think I could keep up a good clip on. Haven't developed with one, but I think if the touch keyboard were big enough to fit my hands I could develop on it without much trouble.
Fast typing is very important. The more barriers you can remove between brain and computer the better, and slow / inaccurate typing is definitely a barrier.

Sure, in theory you do all your important work just thinking, but in reality that isn't the case. Does anyone really plan out every line of an application before they starting typing? Most programmers I have worked with use prototypes and iterative development while programming. They write small sections of code, and test it to verify it does what they think it does, and refactor as they go. If I am able to put my ideas into the IDE twice as fast as someone because I am a more proficient typist, that gives me roughly twice as many iterations as the other developer in the same timespan. If we both finish the same feature in two hours, who has spent more time testing and refactoring their code.

Edit: I'm definitely not the only one who thinks this way.

Quote: We are typists first, programmers second.
At least four times a day, I walk into a room having no idea why I entered that room. I mean no idea whatsoever. It's as if I have somehow been teleported into that room by an alien civilization. Sadly, the truth is much less thrilling. Here's what happened: in the brief time it took for me to get up and move from point A to point B, I have totally forgetten whatever it was that motivated me to get up at all. Oh sure, I'll rack my brain for a bit, trying to remember what I needed to do in that room. Sometimes I remember, sometimes I don't. In the end, I usually end up making multiple trips back and forth, remembering something else I should have done while I was in that room after I've already left it.

It's all quite sad. Hopefully your brain has a more efficient task stack than mine. But I don't fault my brain -- I fault my body. It can't keep up. If I had arrived faster, I wouldn't have had time to forget.

What I'm trying to say is this: speed matters. When you're a fast, efficient typist, you spend less time between thinking that thought and expressing it in code. Which means, if you're me at least, that you might actually get some of your ideas committed to screen before you completely lose your train of thought. Again.

Yes, you should think about what you're doing, obviously. Don't just type random gibberish as fast as you can on the screen, unless you're a Perl programmer. But all other things being equal -- and they never are -- the touch typist will have an advantage.
Advertisement
Quote: Original post by Eelco
Writing some useful programs is not the same as being an excellent programmer.


Ok, what exactly is an 'excellent' programmer then, if not someone who can write useful programs that contain few to no bugs?

I've known a lot of people who claim to be 'excellent programmers', who can sit in their dark rooms for days on end hacking out amazing programs. However they tend to get a truly 'excellent' dumbfounded staring look on their face when you ask them how something works, or if some part can be changed,...
Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.
Quote: Original post by tstrimp
Fast typing is very important. The more barriers you can remove between brain and computer the better, and slow / inaccurate typing is definitely a barrier.

Sure, in theory you do all your important work just thinking, but in reality that isn't the case. Does anyone really plan out every line of an application before they starting typing? Most programmers I have worked with use prototypes and iterative development while programming. They write small sections of code, and test it to verify it does what they think it does, and refactor as they go. If I am able to put my ideas into the IDE twice as fast as someone because I am a more proficient typist, that gives me roughly twice as many iterations as the other developer in the same timespan. If we both finish the same feature in two hours, who has spent more time testing and refactoring their code.

How did you come to that conclusion? You would get roughly twice as many iterations if you spend roughly 100% of the time typing. I don't know if I'm stupid but for me it's more like 10% of the time typing and 90% time thinking. Typing faster would just leave me a tiny bit more time to think.
Quote: Original post by Talroth
Quote: Original post by Eelco
Writing some useful programs is not the same as being an excellent programmer.


Ok, what exactly is an 'excellent' programmer then, if not someone who can write useful programs that contain few to no bugs?

I've known a lot of people who claim to be 'excellent programmers', who can sit in their dark rooms for days on end hacking out amazing programs. However they tend to get a truly 'excellent' dumbfounded staring look on their face when you ask them how something works, or if some part can be changed,...

Uh, ok? I suppose there is a point relevant to this thread hidden in there somewhere, but im missing it.


Range of skills, depth of understanding, inventiveness, fluency, those are attributes I associate with excellence.

Anyone can write a few useful programs, by sheer virtue of the fact that programming is such a powerful tool that there is an endless amount of useful things that can be done with a single screen of code; and their implementations can all be googled in a second. Doing so requires none of the above attributes. Ive seen people write useful programs not even realizing an imperative language executes statements sequentially in order.

Again, im not saying its impossible to be an excellent programmer no matter when you started; absence of proof is not proof of absence. But im not holding my breath, thats all.
Quote: Original post by Drathis
How did you come to that conclusion? You would get roughly twice as many iterations if you spend roughly 100% of the time typing. I don't know if I'm stupid but for me it's more like 10% of the time typing and 90% time thinking. Typing faster would just leave me a tiny bit more time to think.


Let me expand on the area you emphasized.


Quote: Original post by tstrimp
If I am able to put my ideas into the IDE twice as fast as someone because I am a more proficient typist, that gives me roughly twice as many iterations as the other developer in the same timespan.


I didn't say that someone who types twice as fast as someone else has twice as many iterations. If someone is able to express their ideas twice as fast as someone else they will be able to get roughly twice as many iterations.
Advertisement
Quote: Original post by tstrimp
I didn't say that someone who types twice as fast as someone else has twice as many iterations. If someone is able to express their ideas twice as fast as someone else they will be able to get roughly twice as many iterations.

Your example doesn't account for build times or rebuild times when you miss a semicolon or spell something wrong in the haste of speedy typing.

Accurate typing and smart thinking will save you a lot more time than fast typing in the long run.

Also, having twice as many iterations doesn't mean you are working faster it just means that you are doing more. If a slow typer can write a perfect piece of code in 10 minutes that passes every test in 1 iteration it could still be faster than a fast typer who finishes the same code after 3 iterations.

When you're doing bugfixing typing speed is even less important as the fixes are very often just a couple of keystrokes with hours at a time digging through code or doing runtime testing.
Quote: Original post by Eelco

I have quite often tried to teach 20+ people how to program, and its not easy for them.
[...]
Do you actually know of any outstanding programmers that started after 25, or is that belief of yours based in faith?


Your small sample size might not be significant.
I suggest you to read this paper: The camel has two humps
It appears some people have inherently what it takes to be a programmer, while the larger chunk of people does not.

[Edited by - UnshavenBastard on January 2, 2011 2:26:22 PM]
Quote: Original post by way2lazy2care
Your example doesn't account for build times or rebuild times when you miss a semicolon or spell something wrong in the haste of speedy typing.

Accurate typing and smart thinking will save you a lot more time than fast typing in the long run.


Why do you assume typing faster leads to more typos? It doesn't. I would be willing to bet those who type fast are also more accurate than those who are less comfortable with their typing skills. More often than not, I don't have to think about typing mistakes. It feels wrong. My fingers know when I transpose letters even before I see the problem.

Quote: Also, having twice as many iterations doesn't mean you are working faster it just means that you are doing more. If a slow typer can write a perfect piece of code in 10 minutes that passes every test in 1 iteration it could still be faster than a fast typer who finishes the same code after 3 iterations.


Ahh, the mythical programmer who doesn't write any bugs... Show me a programmer who writes non-trivial code without any bugs and I'll concede this point to you. They simply don't exist, and even if they did, the vast majority of programmers would still benefit from being able to type faster.

Quote: When you're doing bugfixing typing speed is even less important as the fixes are very often just a couple of keystrokes with hours at a time digging through code or doing runtime testing.


Typing speed is less important, but knowledge of your programming environment is even more so. By typing speed, I'm not just referring to how fast you can type The quick brown fox jumps over the lazy dog, but also how quickly and efficiently you can use your programming environment.

It doesn't matter how good of a programmer you are. You WILL be a better programmer by being able to touch type without thinking and knowing your IDE or editor of choice inside and out.
No, you are programmers first, typist a far distant second.

Fourty years ago programs were "written" on punch cards. Tomorrow programming could be done with dictation. A week later, with a direct neurolink. Typing is just the current fad, and can be as easily left behind as AGOL 68.

This topic is closed to new replies.

Advertisement