I’ve been asked a few times how to spot a good software developer and it struck me that how to become a better software developer is also an important question. So here’s my answer to that.

This assumes a developer that runs a Mac, but the same principles apply for developers using other platforms.

  1. Keyboard shortcuts

    Using keyboard shortcuts is more efficient than pointing and clicking with the mouse. On the Mac, there are basic ones that work across most applications such as Copy (Cmd+c), Cut (Cmd+x), Paste (Cmd+v), Close Window (Cmd+w), Quit App (Cmd+q) as well as application-specific ones, especially for your text editors and IDEs. Learn a few at a time. It will slow you down initially, but it will be worth it in the long run.

  2. Automate your programming tasks

    Use tools like rake, fabric.

    As someone who writes code, you are in a unique opportunity to automate tasks. If you can write a bit of Ruby, rake is an excellent tool that lets you build and run tasks with. There are many clones and similar tools available for in other languages. Whenever you see tasks that you need to perform more than a few times, you should write some code to automate it. The more you write, the better you get and the more time you save.

  3. Automate your non-programming tasks too

    Use hammerspoon.

    Don’t stop automation at programming tasks. Automate everything. For example, when you AirDrop an image or video to your Mac, it goes to your Downloads/ folder. I automate it so that these files are automatically moved to my desktop. So I can just hit F11 to activate Exposé to show Desktop, access the file immediately — usually dragging and dropping it into an app or double clicking it to open it. I use hammerspoon which exposes Mac APIs so you can have access to the system in Lua. If you prefer, Phoenix is a similar tool, but uses Javascript.

  4. Learn to communicate better. Talking and writing

    Communication skill is underrated. As a developer, you need to be able to communicate well to both understand the requirements of the system you are building, and articulate the value and functionality of the system you have build. This has to be done both verbally and in writing. Practice. There is no way around it.

  5. Learn about sales and marketing

    Developers often complain that business users and partners do not understand how much work it takes to get a piece of software to work. The reverse is true. More often than not, developers care too much about the technical details of the software they work with and neglect the users and business behind it. Sometimes a simple piece of software can do wonders for users and have tremendous business value. We don’t always have to build and sell complicated pieces of software to make a difference.

    Taking up a marketing or sales role, such as technical sales can give a great opportunity to widen your skill set and understand the business side of software.

  6. Don’t stop learning

    The IT industry, especially the software programming industry is still very young and growing rapidly. There are multiple programming languages created every year and many frameworks and libraries created every month. While we have to be judicious about how we spend our time and not waste time on chasing after fads, it is important to always be learning and staying up to date in the industry. You should always be able to look back to the code you write a few months or even a few weeks ago and tell yourself that you now know a better way to do it.

  7. Ship products

    Lastly, ship. As a developer, if you can only do one thing, that would be shipping code. Always put yourself in the position where you can ship products. If there isn’t possible in your current job role, run a side project. Ship.