Live data from Hacker News

Ask HN: How do I become a faster programmer?

news.ycombinator.com

31–40 of 71 posts

Re: Ask HN: How do I become a faster programmer?

#33
IMHO, right now no one really can answer that. There are tools that can help you speed up, such IDEs and online resources; and of course nothing replaces practice and experience: the more experienced you are, more patterns of code you're gonna have from top of your mind, essentially allowing you to jump faster ahead.

The real problem now, is that the programming languages are now trying to solve a weird dichotomy. Do you want a language which syntax allows you to express your ideas in as few lines possible? Or do you want a language in which the syntax itself is not that important (you'd be OK with inconsistencies and lack of idioms) but that would have all batteries included?

So I believe in this case you will need first figure out your programming identity before worrying about your speed.

If you feel that speed for you means writing fastly well defined algorithms, you might want to take a look at the modern functional languages. In them, it really doesn't matter if you type fast or slow, or if you can think fast or slow, all you need to worry about is to use the proper idioms properly to achieve an implementation goal. If you manage to choose the right idioms in the very first time you're writing something, you'll be debugging just tiny typos.

If you feel that speed is getting things done fast - even if it means you might be brute forcing your way out of the problem - you might want to take a look in languages with very rich standard libraries like Java, PHP or Go. All of them have issues with their syntaxes (respectively verbose, inconsistent and bland) but because they have extensive standard library all you will to memorize and practice is the call for tools they offer.

Then, I believe you will be able to say you're faster.

Re: Ask HN: How do I become a faster programmer?

#34
Code things in the absolutely simplest way you can think of and be ready to throw it away at any time when you think you understand the problem enough and have a good solution. Don't spend hours trying to design the perfect system, spend those hours coding it stupidly with the thought that you're going to throw it away later. Sometimes you do throw it away (but now you've gained a lot more experience with this particular problem, so coding it again will be a lot faster and with higher quality), sometimes you don't.

Either way, to code fast you just have to code a lot and throw stuff away a lot. Don't listen to people telling you to stop and design the program properly in an organized way before writing a single line of code, it almost never works properly.

Re: Ask HN: How do I become a faster programmer?

#35

The first step is to insure that you have increased your regular typing speed (wpm or words per minute) by doing the regular keyboard speed tests. Keep doing these until your average speed is in the 200 range or higher. By doing this you will also increase your reading speed which also helps increases your programming speed. Your mind is the fastest thing you have, it is the translating of what you are thinking or se…

I assume you were speaking of CPM (characters per minute) and not WPM (words per minute). Otherwise, I will really would like see you typing on a keyboard that must be a hell of a show :p

Re: Ask HN: How do I become a faster programmer?

#36
I would say:

1) get rid of distractions 2) stop creating bugs 3) get really good in debugging

This sounds a little odd bug getting rid of distractions (set all you favorite websites in /etc/hosts to points to 127.0.0.1) forces you to focus on the problem. Stop creating bugs is impossible, but you can make your best afford to test your code and write good code (read the book "clean code") But I think the biggest speed improvement is if you are really good in debugging. It can take a good debugger to find a bug in a distributed system in 15 minutes, a inexperienced developer can spend over a day and have no clue what the problem is.

Re: Ask HN: How do I become a faster programmer?

#37
I think the most important is to practice. If you program a lot, you will eventually be able to do it faster. Your brain will develop a library of common patterns you will be able to recognize and quickly implement. You will also have to overcome common problems, such as over analyzing. I found I can do this by first coding, and then thinking.

Other suggestions, such as using vim or an IDE, or practicing typing, I feel, will only provide you with a small boost.

Re: Ask HN: How do I become a faster programmer?

#38
Joe Armstrong, creator of Erlang and industry veteran:

Most time isn't spent programming anyway - programmer time is spent:

a) fixing broken stuff that should not be broken

b) trying to figure out what problem the customer actually wants solving

c) writing experimental code to test some idea

d) googling for some obscure fact that is needed to solve a) or b)

e) writing and testing production code

e) is actually pretty easy once a) - d) are fixed. But most measurements of productivity only measure lines of code in e) and man hours.

http://erlang.org/pipermail/erlang-questions/2013-September/...

Re: Ask HN: How do I become a faster programmer?

#39

By first becoming a slower programmer. I know it sounds very zen-like, but when you give it some thought, you'd discover that most of your time is spent bug fixing. Worse for us embedded guys, as it's really easy to get into the build-download-run cycles and each takes much more time than a typical run cycle on a .NET environment, for example. Just realize that actual coding is the easy part, and concentrate on slowl…

Very much this. Software development is not a race to write down text to a file. The majority of what we do is thinking, the coding part is the final result. What does the user need to do? What can go wrong? How does this fit into the overarching system? Does the design need to change to accommodate this feature? and so on.

> At the moment I feel like I have no choice but to go at the pace that my mind allows me to operate at.

This is perfectly fine and exactly where you should be. If you force yourself to work through problems faster than what your brain wants you to do, you will make mistakes and spend more time cleaning up after yourself.

Following from that, to be a faster features developer, I have one simple solution: write less code. It's taken me 10 years to understand the wisdom in this but I assure you it's true. You will move faster, you will write better code, and you will stop hating your past self so much.

As much as some people argue against this, software development is a creative process. Creativity takes time. There are times where you are writing rote, boring code, and for that you can speed up with editor tools (IDE stuff as another commentor said) and learning to type faster, but make sure you recognize when you need to slow down, and you'll find yourself becoming much more productive.

Re: Ask HN: How do I become a faster programmer?

#40
I don't think a good programmer is a fast programmer.

Good programmers can solve problems and move beyond obstacles. Mediocre (or bad) programmers can do some basic things but quickly hit walls and don't know how to proceed.

Building quality software takes time. There's no way around it.

> At the moment I feel like I have no choice but to go at the pace that my mind allows me to operate at.

That will always be the case.

The only way to be "faster" is if you have more knowledge about the domain you're working with and the technologies you are using.

Post reply on HN