Live data from Hacker News

Core competencies of great hackers

giraffesoft.ca

81–90 of 116 posts

Re: Core competencies of great hackers

#81

Earlier quoted context omitted.

Typing faster helps everyone. Programming is more than just writing code. It's communicating with people, documenting bugs, documenting code, etc. If you're telling me you never run into a situation in which being able to type faster would help you, then I'm saying I don't believe you. This very conversation is easier to have if you can type your thoughts as you have them whilst not being distracted by hunting and pe…

Right, but as with everything there's a cost to learning to type faster. My typing is already fast enough that I don't think it's worth it. I don't hunt and peck, or look at the keyboard very much, but I definitely don't touch-type (I taught myself, and use all the "wrong" fingers).

If you don't have to look at the keyboard then you know how to type. Don't get hung up on whether it's proper or not. When people say someone doesn't know how to type, it explicitly means they have to look at the keyboard.

however, as a programmer who does have to type a lot, using the correct fingers would help you in the long run because at some point you will have repetitive stress problems, so bit the bullet and do it. The cost is tiny and certainly nothing to fear or put off.

Re: Core competencies of great hackers

#82
"We haven't met a single great hacker that relied on an IDE, although we hear they exist. " -- fcuk you. Really. Just an over generalization/stereotyping at its worst.

I am a good hacker, and yes I use an IDE (eclipse to be exact). I have to code java for living (mobile), and I think I am one of the earliest developers in java, and i used to use Textpad, and Vim at my early days. I guess, in your eyes that makes me a "better developer", but the truth is that some IDEs really make your life easier. Much easier.

In mobile you have to re-invent the wheel over and over again. From UI, to basic things as a string tokenizer, and it is impossible to memorize everything (some of your team memebers implement different functionalities). IDE's auto completions are very very useful. Also the refactoring facilities and debuging tools are really useful.

I do use Vim for programming in LUA (does it make me cool?), and I really miss a lot of these tools. Simple things like variable highlighting, jump to definition are missing, and it makes the code a pain to read (especially if it s not yours). If you decide to change a variable name, good luck, you have to do string search/replace, and the potential for errors is huge.

While a good programmer HAS to be comfortable and good in command line, just because they use an IDE doesn't make them less of a people.

And the best programmers I have had the chance to work with used IDEs. These guys implemented a LUA VM in J2ME from scratch, in a couple of months.

I have noticed that this really shallow and douchebag-y attitude comes from people that use mostly Ruby. It seems that in their eyes, if you don't use Ruby and textmate, you suck.

But really, fcuk you.

Re: Core competencies of great hackers

#83
post #53

Typing speed? Not sure how much code people here write per hour, but I doubt typing speed is a real issue (the ratio of my staring at the screen thinking versus coding is probably 10:1).

I can understand the "that's not the bottleneck" argument. But the problem with going too far down that road is this: Imagine if you had to wait one second for your keyboard to respond to any key you type (and one second between keystrokes). You could still produce awesome code and be a great hacker, but can you look me in the proverbial eye and tell me that this would not handicap you in some way? Think about the co…

This.

Re: Core competencies of great hackers

#84

Typing speed? Not sure how much code people here write per hour, but I doubt typing speed is a real issue (the ratio of my staring at the screen thinking versus coding is probably 10:1).

The way I think of it - typing fast is an indication of familiarity with the environment. You can't be a good hacker without having logged countless hours in front of the screen, banging out code, emails, etc...

I guess I wouldn't arbitrarily set the cut off at some fixed value like 60wpm, but if you are slow at typing and need to look at the keyboard, you probably don't have enough experience.

Re: Core competencies of great hackers

#85
post #77

Earlier quoted context omitted.

You're wrong. Learn to type well and then come back and tell us it didn't make you a better programmer. If you don't know how to type, then you're wasting brain cycles looking for keys when you have to type, cycles that would otherwise be spent thinking up good identifiers and nice function names. Not knowing how to type also means you'll choose terse identifiers rather than clear ones because it's too much work typi…

Do you really spend that much time typing? I spend most time thinking :/ Obviously there's a lower bound, if you have to look at the keyboard then you probably need to improve, but the importance of being able to touch type perfectly is overplayed. Do all authors need to learn short-hand?

Guess what, if you typed faster you'd spend even less time typing... or, you'd spend just as much time typing but would produce more. Or a bit of both.

Re: Core competencies of great hackers

#86

Earlier quoted context omitted.

Typing faster helps everyone. Programming is more than just writing code. It's communicating with people, documenting bugs, documenting code, etc. If you're telling me you never run into a situation in which being able to type faster would help you, then I'm saying I don't believe you. This very conversation is easier to have if you can type your thoughts as you have them whilst not being distracted by hunting and pe…

Right, but as with everything there's a cost to learning to type faster. My typing is already fast enough that I don't think it's worth it. I don't hunt and peck, or look at the keyboard very much, but I definitely don't touch-type (I taught myself, and use all the "wrong" fingers).

What about the cost of not learning it? Like potential neck pain, slower thinking, over-reliance on code completion (it takes your brain some processing time to decide what will be long enough to produce the right completion but not too long to waste keystrokes), less ability to communicate effectively.

And the cost of learning it is laughable. You just have to practice a bit for 3 days to learn to get the right fingers on the right keys from memory. The key to learning quickly is that you try to reproduce some text on the screen while NOT LOOKING at the keyboard, and you go as slowly as you need to avoid looking up (well, down), it doesn't matter if it takes 15 seconds for one keystroke at first. The important thing is to try a recall from memory at all costs before you finally know you've really completely forgotten and then look it up. And you do like this for each letter. You'll reduce your latency and learn the whole layout quite fast. After that it's just a matter of practicing for a few weeks and you'll be up at a reasonable 30wpm in no time.

Re: Core competencies of great hackers

#87

Earlier quoted context omitted.

Typing speed is important for the reason the article mentions -- micro-interruptions. Most of the time, you just have to type a few words, and the editor will complete the rest for you. Fine. But a lot of the time, you are typing a symbol for the first time, and autocompletion doesn't really help. It breaks your flow if you can't type this symbol quickly and correctly the first time. (It is also worth pointing out th…

Programming isn't about typing. Therefore, you shouldn't be sitting there thinking "how do I type this"? Typing being second nature frees up more time for thinking.

Actually I think thinking like: "Do I really need to type all this? There must be another way... I really need a break." is more prevalent.

Re: Core competencies of great hackers

#88

Earlier quoted context omitted.

Only as far as the carpenter's is knowing where the nail goes.

Not sure I can really argue against the analogy - because you can take it anywhere. e.g. A lumberjack can rip through a tree, but a good carpenter can cut a piece of wood so that it uses the grain, there isn't waste, etc, etc. In the context you're working in, being quicker is never as good as getting it right. You could argue that a carpenters output is limited by their use of tools. If they can't nail or saw fast e…

"A coder could type quickly and produce reams and reams of really bad code - this is happening every day. Another coder could type 1 wpm and still produce something of immense value every day."

Huh, ok. Now, if you take the 1 wpm programmer that produces great code and teach him to type 50 wpm, what happens?

I claim there is no programmer in this world who wouldn't end up more productive (be it by a small or huge margin) if he learned to type faster. And given the ridiculously small ratio of effort to rewards at the lower stages (say, below 50wpm), saying it's not worth the effort is like saying buying more RAM or disk-space or bandwidth is not cost-effective today.

Re: Core competencies of great hackers

#89
post #77

Earlier quoted context omitted.

You're wrong. Learn to type well and then come back and tell us it didn't make you a better programmer. If you don't know how to type, then you're wasting brain cycles looking for keys when you have to type, cycles that would otherwise be spent thinking up good identifiers and nice function names. Not knowing how to type also means you'll choose terse identifiers rather than clear ones because it's too much work typi…

Do you really spend that much time typing? I spend most time thinking :/ Obviously there's a lower bound, if you have to look at the keyboard then you probably need to improve, but the importance of being able to touch type perfectly is overplayed. Do all authors need to learn short-hand?

More like "do all authors need to learn longhand? Printed lettering is fast enough".

Re: Core competencies of great hackers

#90

One of my early mentors taught me that "it's not how fast you type but what you type" that matters. I think his lengthy career as a journalist, designer, photographer, M$ engineer, Apple engineer and Google Engineer have proven him correct. The analogy with understanding/familiarity with your tools is weak. The only important tool for an engineer is his brain. (PS I abhor the term hacker)

"One of my early mentors taught me that "it's not how fast you type but what you type" that matters."

Are you saying an increase in typing speed brings a proportionate decrease in thought quality? Otherwise you obviously end up more productive if you increase typing speed.

People who compare poor coders who type fast with great coders who type slowly are utterly missing the point. Typing faster is about self-improvement. It's about having more fun at coding while being more productive. If it also makes you better than the next programmer, then great, but it's not the point.

Post reply on HN