5 Tips to become a Kickass developer

My learnings from the past two years

I would not categorise myself as a great programmer as I have been writing production quality code for just two years now. But I would like to share some tips that I have learnt over these two years that have made me more productive.

1. Think about design before you write code: In my first year I had the impulse to dive into the code right away without thinking too much about the design or the structure. This resulted in a lot of wasted time as the code I produced had to refactored again and again. I sucked at code reviews and had to justify why I wrote it in a particular way.

Due to the proliferation of web and mobile technologies it has become much easier for developers to hack together a prototype without giving much thought into code design. This mentality is carried out in the jobs as well but we need to understand that there is a lot of difference between a prototype and a full-fledged production system.

I have started giving more emphasis on code design and structure. It may have increased the time taken to write code, but it has saved me a lot of time that was previously wasted on refactoring and finding out the source of bugs.

2. Automate as much as you can: I used to overlook things like continuous integration as I thought it will take a lot of time to setup. This resulted in a lot of manual repetition of the same sequence of steps.

A lot of times we ignore automation as we are lazy to set it up or we think that it will not be of much use. But automation can save you a lot of time. If you are spending 30 minutes on something per day that can be automated you can save around 10 hours a month or 120 hours a week if you are willing to give 4–5 hours to automate it.

I have automated a lot of my workflows over the past month and now whenever I see an opportunity that a particular repetitive task can be automated, I go ahead and automate that first. This has contributed a lot to my productivity.

3. Books are your best friends: There is so much material available on the web in form of online courses or tutorials that anyone can start learning and writing apps or games. That has decreased the importance of good books for a lot of people.

I also used to think that why should I buy a book when I can learn everything from web. But I was wrong. A good book written by an experienced developer can lead to a lot more improvement than any online tutorial or course. The book goes into the depth of topics and give you a lot of insights that why the author choose to implement it in a particular way.

The book takes you on a journey of the developer and tells you about the mistakes which he made during his working years. This can save you a lot of time if you do not make the same mistakes.

4. Find a good mentor: I cannot stress more on the importance of a good mentor. A good mentor will not only help you to improve as a developer but will advice you on how to proceed in your career.

You must try to choose someone who is not part of your team but someone you admire a lot. He/She preferably must have a similar career path that you aspire for.

A good mentor can save you a lot of time and help you make important decisions as he might have been through the same things at some point in his life. If you cannot find someone in your company try reaching out to someone on the web. A lot of great developers will be willing to help you if you willing to reach out to them.

5. Choose the right tools and libraries: There are so many choices of tools nowadays that it can be confusing to choose the perfect one for you. A lot of people still prefer Vim for their development tasks while others may be comfortable with sublime text. Git is slowly replacing other version control systems like SVN. A lot of open source high-quality libraries are released every year which can save you a lot of time.

You must be very careful while choosing the right tools and libraries for your project. Do not use a library that is quite recent and has not been tested much in production, as it can come to bite you and become a source of issues that will be very difficult to debug afterwards.

Invest your time and money in learning tools like git, jenkins etc that can save you a lot of time in the long run.

Do not rush yourself into writing shitty code due to pressure of deadlines. Writing good code is similar to producing great art. It takes time and patience to become a master code craftsman. Keep yourself up to date with the latest technologies and be open to learning new things.