Live data from Hacker News

Ask HN: How do I become a faster programmer?

news.ycombinator.com

1–10 of 71 posts

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

#3
Build a network, and ask for help whenever you are trying to do something unfamiliar. The problem is never how fast you write code, but how quickly you can add new features.

Having a large and supportive network allows you to quickly overcome obstacles and piggy back off of other people's expertise while developing your own.

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

#4
post #2

To gain speed, I'd say get extremely familiar with whatever standard library your language/platform of choice uses. Disclaimer: I am not a fast programmer.

Agreed. one of the biggest speed boosts you can have is not needing to look up the documentation for your tools every thirty seconds.

So, either get more familiar with the tools, or use simpler, more effective tools, or both.

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

#5
Anything brand new will be taxing on the brain, once you have solved a similar problem though it will be easier and faster. Just another case of learning and utilising what you've already learnt.

Everyone has their own pace, some may just be naturally faster and that is ok. They also might make more mistakes (bugs).

As other posts have mentioned, learning the language and libraries will help you massively.

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

#6
You are faster when you solve a given problem for the second time in your life.

By solving a problem I mean not just decomposing it mentally but also executing the solution with chosen technical framework.

Practice a lot, pick a framework or two and understand its inner workings very well - that's my advice.

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

#8
Actually cranking it out faster might be possible, but is probably not useful. You will see the biggest gains in speed by learning how to code in such a way that saves you labor in the long run. Expressing your ideas concisely will allow you to accomplish more with the same amount of code. Expressing them clearly will allow you to spend less time puzzling about it later. Tooling and library selection is also big. Know what will save you time and know how to use it effectively. Lastly, it's also important to know when to stop trying to abstract and perfect, and just write dumb code to get things done. You've got to have a good balance of smart and dumb.

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

#9
You can't program (correctly) faster than you can think. However, you can practice the translation from thought to code by understanding your language really well and by getting a lot of experience with the kinds of things you do.

For example, the first time you code a linked list, it's going to take some time to get used to how it works and to program it correctly. The second time, you might still need to look something up. However, once you got used to the abstraction, you can simply type it down as fast as your fingers allow.

This has nothing to do with what your actual goal is but rather it's the process of translating your thoughts to a particular abstraction that you can directly write down in code in a particular framework (the programming language). This abstraction layer varies for different programming languages and you simply need to get used to it and gather experience.

I think of it as trying to speak a foreign language, e.g. English for myself. I'll never get faster than in German at saying what I want to say (albeit, there might be cases where English is way more efficient). The entire process is simply limited by how well I'm able to translate thought into the abstraction layer of speech. As everybody will tell you, this skill is greatly enhanced by actually using the language in various contexts until it becomes intuitive.

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

#10
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 slowly and properly designing what you're going to build and reviewing what you just wrote. If I'm building something complicated, I'd take a day, maybe more, just to think about it slowly. You can't rush a thought process. I'd implement it, and I'd review it multiple times before even running it. Makes for the fastest development, unless you're just thoughtlessly hacking on something inconsequential.

Post reply on HN