The most important habit to become a great developer

Posted by Gjermund Bjaanes on January 11, 2015

What is the most basic and important aspect to getting really good at something?

Well, that’s easy, it’s practice. It’s doing that thing over and over again. Just keep on doing it.

The same goes for coding.

The principle can be easily remembered by a nice little acronym. ABC.

Always Be Coding!

This is a really simple concept many people seem to forget. The only real way to improve as a software developer is to code. Sure, you can read books and get lots of theoretical knowledge. But it is worthless if you don’t know how to use it in practice. Without sufficient experience you will be a slow error-prone developer. Nobody wants that. So get your code on!

David Byttow wrote about ABC in this great article about landing an engineering job:

https://medium.com/@davidbyttow/abc-always-be-coding-d5f8051afce2

 

10, 000 Hour Rule

Malcom Gladwell said in his book ‘Outliers’ that it takes about 10,000 hours of practice to become a real expert in a field. This is true for artists, artisans, craftsmen and of course also programmers. I don’t know exactly how accurate the rule actually is, but the idea that you have to work A LOT to become a master is certainly fantastic. To achieve this you have to practice. All the time. Every day. Always Be Coding. If you don’t, you will never be a true master of your trade. You can be OK, good even, but never a true expert.

You don’t have to buy into the rule that there is some predetermined number of hours you need to practice something in order to become one of the best. No matter how you look at it, its a great concept that I hope inspire to think of work as something that you need to put into anything you want to be good at. I can’t stress this enough.

 

How to actually code every single day

This is the hard part where people often seem to fall short. It’s not enough to intend to code every day (in this case, it’s not the thought that matters). People tend to procrastinate. Something “important” comes up (“Oh, a new episode of nameOfSomeShow. I’ll just watch that first”), or they just don’t know what they should do. Pull yourself together and set some real goals and commit to them. Its not enough to say “Im going code every day”. You have to actually make a mental commitment and stick with it. Make an alarm on your phone to sit down and code after dinner every day. If you just sit down and start something, it will be easier to continue.

One way to achieve this is to create a project on Github (or use one you already have) and make commit to it every single day. You will get a streak on Github that is very rewarding to look at, and it is not so easy broken as a simple promise. It is also a good way to boost your Github account.

Don’t just code on the job, code in your free time as well!

 

Practice

You can (and should) code on a project of your choice every day. A simple side project that you might not want to sell or use for anything particular other than to practice and learn some new technologies. I have several small prototype and for-fun projects simultaniously.

But this is not your only choice. You can deliberately practice programming using Code Kata’s. Code Kata’s are repeatable practice sessions you can perform. Its a simple problem that you are supposed to solve and improve on each time you code it. You start from scratch every single time. The time frame is perhaps 30 minutes or an hour. It should be doable for everyone to do a couple of Kata’s every day. The point of a Code Kata is not the answer. The entire point is what your learn as you do them.

Read more about it on: codekata.com

 

When to not code

Like with everything else taking a break once in a while is important also. Just not too often. That is what vacations are for. Other than that, I think you should try to code a little every day, and try to code a lot most days. After all, the more you code, the better you get. And you do want to become great, right?

So remember to Always Be Coding.


Follow me on Twitter: @gjermundbjaanes