10 Tools to Make You a Better Software Developer
’10 Tools to Make You a Better Software Developer’ is an article by Natasha Postolovski’s, a self-taught developer, now working as a software developer at ThoughtWorks in Australia. You can follow her on Twitter at @npostolovski.
If you’re reading this article, it says something important about you: you care about your craft, and you care about your career. While it’s obvious that practice and experience will make you a better software developer, here I’m going to try to list 10 things that can also help to make you a better software developer that you may never have thought of. If I’ve missed any tools that you’ve found helpful, please make sure to mention them in the comments.
CodeWars
Small programming challenges are an excellent way to level-up your skills. Like doing scales on the piano, juggling a football, or doing quick sketches in a notebook, programming challenges allow you to strengthen and expand on your programming fundamentals. They’re also an excellent way to increase your familiarity with programming languages you don’t have a lot of experience using. CodeWars features hundreds of programming challenges graded by difficulty, and across various languages. There are many similar websites out there, like Project Euler, HackerRank, etc. But my favorite thing about CodeWars is the ability to see the most highly-rated solutions after you’ve submitted your own. I almost always have something new to learn from these top-ranked solutions.
Evernote
Software developers are confronted every day with a great deal of information to remember. New technologies, keyboard shortcuts, requirements for software, and best practices to follow. At a certain point, many of us reach a limit on what we can hold in our heads. Evernote’s free tier provides you with an ‘external brain’, a place to dump learnings, articles, information, and keyboard shortcuts or commands you want to remember. Because it’s cloud based, it’s always there when you need it. Some good candidates for notes in Evernote include:
- Commands you occasionally need to remember but often forget
- Best practices for the language you’re programming in
- Diagrams of how the system or product you’re working on fits together
- Photos of whiteboard sketches and retrospective notes
- Articles you want to read later
- Screencasts and tech talks you want to watch
- Notes on things you want to learn one day
Sip
Sip is an incredibly useful, simple, and super-charged color picker for front-end development. You can ‘sip’ any color on your screen to grab it in a variety of formats, including hex and RGB values. It’s also fun to see the names of colors after you’ve grabbed them. My favorite so far is ‘Tickle Me Pink’.
Trello
Trello is a lightweight and free project management tool. It’s an app that allows you to create columns or ‘swim lanes’ and place cards in any of them. These cards can represent work to be done, or tasks to be completed.
Though your team may use a more heavy-duty project management tool like Jira, Trello can be an excellent way to manage your own personal workload, to keep track of side projects, or to manage the things you want to learn. Getting organized about your work and your learning will help you to become a better developer. You can take a look at some of these public Trello boards for inspiration.
Atom
Atom is a relatively new code editor created by GitHub. It’s free, open source, and it looks great. It’s also extremely easy to use. Though you might use a more feature-rich IDE for your development at work, Atom is a fantastic tool for hacking at scripts, or working on side projects. One thing that helps Atom shine in comparison to other code editors is its markdown preview mode. You can write notes in markdown and see an inline preview; extremely useful when working on Readme files and other documentation.
Unity
Unity is a free, end-to-end game engine that makes it easier to create professional, multi-platform games than ever before. It’s common among software developers to put game development into the “seems awesome, but too hard” basket, but with an influx of high quality tutorials and constant improvements to Unity’s tooling, game development has never had a lower barrier to entry. By dipping your feet into a very different type of programming, you’ll gain insights and ideas that will make you a better programmer all-around, and you’ll probably have lots of fun in the process.
Code Climate
Code Climate is an automated code analysis tool that grades your app on test coverage, complexity, duplication, security, style and more. It comes with a free two-week trial. Even if you’re not prepared to take the plunge to pay, Code Climate can give you lots of valuable insight into the code quality of your latest personal project, or—if your team is open to the idea—of the product or service you’re building. As a software developer, you probably have a sense for code smells: things that could be better. Yet, it can be difficult to know where to start when you feel like lots of things are wrong with your code. Code Climate is a simple tool to give you an actionable starting point when trying to make things better.
The Raspberry Pi and Arduino
The Raspberry Pi is a credit-card sized, single-board computer. Because of its small size, extensibility, and affordable price; there are all kinds of fun things you can do with it. People have turned Raspberry Pis into tiny servers, sensor hubs, security systems, musical instruments, lighting controllers, and more. It’s a fantastic tool for using programming to interact with the physical world. The Arduino is similar, but is a microcontroller rather than a fully-fledged computer. You’ll need to use a combination of electrical components and programming together to make it do interesting things.
IFTTT
‘If This Then That’ is a service that makes it easy to glue notifications, emails, and updates together in interesting ways. People have used IFTTT to trigger a fake phone call after sending a text message (to escape a boring conversation), turn on AC when the temperature reaches a certain point, or to receive an SMS alert before an important meeting is due to start. IFTTT can also integrate with internet of things, devices like smart lights. You could program your smart light to flash whenever your favorite football team scores, for example. There are thousands of possible recipes you can create with IFTTT. Have fun with it!
CodePen
CodePen bills itself as a playground for front-end developers. The site has simple premise: to present your code and output in an easily shareable format. The site is full of impressive front-end development examples, from intricate animations to a 3D city. Though the site makes it easy to rapidly prototype front-end code, it may be most valuable for the sheer amount of creativity and inspiration available from its contributors, who will redefine your idea of what’s possible with today’s front-end technologies, and inspire you to try new things.