Tools of the Trade

“If the only tool you have is a hammer, you tend to see every problem as a nail.”

Abraham Maslow

The Gist

We met most Fridays in the Spring 2014 semester at UNC-CH to practice using a variety of software development tools to build our experience and confidence. This site captures all of the prepatory materials (e.g.,narrated screencasts) and coding exercises we used.

We don’t have a solid plan at the moment about hosting TotT again at UNC. If you’re interested in helping out, please speak up in our Gitter chat channel.


Tools of the Trade (TotT) is a recurring meet-up for students who want more practice finding, learning, applying, and evaluating tools used in modern software development. The goal is to build experience and confidence in a friendly, fun, collaborative environment. Every week we will:

  1. Pick a tool or topic of interest (e.g., Git, Ruby, Backbone, Pandas, BDD, ...)
  2. Do a bit of background reading or video watching as time permits to prep for our meeting.
  3. Meet face-to-face to hack on practice problems and small projects together.
  4. Help one another and share our experience in-person and online.

We currently have meet-ups planned on the topics listed in the navbar with many more possibilities for future sessions. Content and pages will continue to appear over time.


We met on most Fridays in the Spring 2014 semester starting at 3 PM.


We met in Sitterson Hall, Room 011 on the UNC-CH campus.


In our first session, we will set up a consistent, shared development environment using Vagrant and VirtualBox. If you join us after the first session, please give the setup instructions a shot before you attend. If you get stuck, don’t be afraid to show up and ask for help.


Consider joining us if you:

  • want a gently guided introduction to a variety of software tools,
  • want dedicated time to practice coding in a collaborative environment,
  • want to improve your ability to tame unfamiliar languages and libraries,
  • think learning a bit about tools such as git, Python, jQuery, NodeJS, MongoDB, and Sinatra sounds like fun.


Like most artisans, we software developers use many specialized tools to practice our craft. Tools to make our wares available to millions of users. Tools to store, search, analyze, and visualize vast amounts of data. Tools to convey information and insight to others. Tools to automate the repetitive and error prone. Tools to express our thought-stuff as functioning software. Tools that beget new tools. And like in other professions, not a one is a golden hammer. To build successfully, we must use appropriate tools.

Choosing the right instruments requires awareness of their existence, knowledge of their function, practice in their application, and evaluation of their alternatives. Here, our discipline presents both a unique opportunity and challenge: the population of tools at our immediate disposal is mind-boggling and growing at an accelerating pace. There is almost certainly a perfect combination of tools for every software development project, and there is almost certainly a project using any particular combination of tools. We cannot hope to master, let alone know about, all of them a priori. We must be nimble in our ability to find, learn, apply, and evaluate tools as the situation (our problem, our team, our client, our employer, etc.) demands.

Graph of GitHub repository growth since its inception.

Graph from the 10 Million Repositories post on the GitHub Blog

I strongly believe practice “hacking” builds this agility. Taking time to discover a new tool, install it, run its “hello world”, read its documentation, think about its use, create small examples, apply it to some pet project, compare it to other tools, and so on provides us invaluable experience. It builds our confidence so that we might step-up to unfamiliar tools, learn them quickly, and master them eventually. It adds tools to our belts, albeit few out of millions. It fulfills our desire to learn and build new things. It entertains and provides a chance for collaboration.

Most importantly, it improves our ability to wield the endless tools of our trade.