The 10 tools every modern developer should use

No matter what language you use or platforms you support, there is a core set of tools everyone needs to have

The 10 tools every modern developer should use
Credit: Thinkstock

Years ago, all you needed to be a developer was an editor, a compiler, and hopefully some kind of revision control system. (Sadly, many developers still don’t use revision control systems properly.)

These days, you need to know more even for basic software development. Here’s the top 10 list of tools every modern developer should know and use:

  1. Git and GitHub: Although there are companies that still use Subversion or CVS even, let alone the awful Clearcase, you probably shouldn’t work at one of them. Git is now a basic skill like tying your shoes or spell checking.
  2. SSH: Yeah, I know: You’re a Windows developer and you don’t know no stinking shell. But you’re going to run into having to create an SSH key or do other SSH stuff. So you may as well learn now.
  3. Terminal Services or remote login: Even if you’re a Linux or Mac person, sooner or later you’ll have to deal with Windows. These tools are how you will connect in.
  4. Amazon Web Services: AWS isn’t just cloud, it is the reason you don’t have to wait on IT. There are other cloud providers, but you’ll have to deal with AWS sooner or later. AWS has gotten so big that you can’t know all of AWS any more, but you do need to know at least the EC2 stuff.
  5. JavaScript: You don’t need to know it cold, but this is the scripting language of the now. If a product or tool is going to add a scripting API, it will probably be for JavaScript.
  6. Bash and PowerShell: Sure, more modern devops tools are handy, but sooner or later something isn’t going to work and it won’t have quite what you need. So, expect to need to know how to write a basic restart script, grab an error code from an exiting command, or do a few things in a loop. That’s what Bash (in Linux, many Unixes, MacOS, and Windows 10) and Microsoft’s PowerShell let you do. Bonus: Add a tool like Grep (PowerShell’s equivalent Select-String is more wordy) and you’ll be an even more powerful deity.
  7. MongoDB: You need to know how to work with at least one document database. MongoDB is the easiest to learn. Whether you’re ultimately going to use MongoDB isn’t relevant; what matters is learning how to deal with a new-generation database. If you’re going to use an index like Apache Solr, which is document-shaped, or you’re going to work with a more columnar structured database, the MongoDB skills will transfer.
  8. Curl and Invoke-RestMethod: Most software now has a REST API. On Mac and Linux, Curl is the command-line tool that lets you test and tweak and even script against a REST API. In PowerShell, it is Invoke-RestMethod (although like everything on PowerShell, it requires more typing). There are GUI tools like Postman that accomplish the same work, but a serious developer needs to be able to move past a point-and-click interface for efficiency’s sake.
  9. Markdown: This is the format of the file in GitHub. You should be able to read and write a simple Markdown document. And that’s easy because it has just seven symbols: (# is a header, ## is a subheader, * is a bullet, __ and ** are bold, _ and * are italics, ` is monospace, and --- is a break or rule). Markdown editors often have extensions but those are the basics. From that basic markup language, you can get slides, PDFs, and HTML. Often these output formats can be consistently formatted with CSS or some other way. Best of all, you don’t end up with smart quotes in your code samples.
  10. Basic HTML: I can’t make a decent-looking web page to save my life; I’m a back-end developer. But whether you’re going to stub something out or have to parse HTML, you will need to know basics of the web markup language.