While browsing Facebook (which I almost don't do anymore), I came apon the following question:
Does typing fast make you an efficient/productive programmer?
In this post I will give you my take on this topic.
It makes you only marginally faster overall if you are able to type fast. But there are other things that can make you a more efficient developer. (See long answer)
There are some things that really make you a more efficient developer
- Practice your craft
- Think it through
- Know your tools
- Look for pragmatic solutions
- One step at a time
- Ask for help
In order to become good, or "fast" at something, you need to practice whatever it is you are doing. It is not enough to follow a tutorial and then think you can develop it at a normal speed.
Practicing on various different projects makes you get to know the ins-and-outs of the programming language or framework. You always find yourself researching stuff, but as more experienced you become, the less you need to look up, the faster you are off the bat.
Many beginner developers make the mistake by "jumping right in". This gives you a little head start, but not for long.
An ill-planned software execution can have fatal consecuences (for efficiency and otherwise). If you code without planning ahead, you could end up with a construct that is difficult to maintain. You could end up having to refactor big chunks of your software, which could set you back hours, days, or even weeks.
Thinking programming through becomes also faster with the above mentioned practice.
Practice and adecuate planning will get you a long way, but you can do even better by knowing your tools.
Be informed about which tools even exist in the market that can make your work easier/faster. The text editor is probable the most important one, but not the only one. Other examples of tools you want to get right are: terminal/console configuration, browser, debugging tools, operating systems.
It's not only important to have the best tools at your disposal, but also to configure them right and know the best/fastest ways to get things done. Take your time to get to know keyboard shortcuts, and plugins you could install for example in your text editor. Also, code snippets are a great way to improve your speed as a developer.
Sometimes if you are too much in a hurry, you might overlook a simpler way to solve something. This could be a more thought-through solution for the problem you are solving, or not trying to "reinvent the wheel".
Most of the times you don't need the 100% solutions. My motto is: Write 90% of the solution with 10% of the effort. If you try to implement the absolute perfect solution, you'll end up taking exponentially more time to finish the solution.
Some developers try to develop all at once and then at the end find out the 1000 lines of code they wrote don't work.
It is much more efficient to develop in small steps and make sure every step works, before continuing to the next.
If you get stuck on something, some programmers tend to let their ego get in the way of asking others for help. There is no shame in asking for help when having a programming problem. Everyone gets stuck at some point.
Being an efficient developer sure is a desireable skill. And you can reach it in many ways.
The best way to become efficient however is practice, practice, practice!
Photo by Fabian Irsara on Unsplash