Andrew C. Oliver
Contributing Writer

The 10 tools every modern developer should use

analysis
Jun 8, 20174 mins

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

pile of tools blue duotone
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 README.md 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.