A Developer’s Toolbox

“No home is complete without a proper toolbox. Here’s April and Andy’s: A hammer, a half eaten pretzel, a baseball card, some cartridge that says Sonic and Hedgehog, a scissor half, a flashlight filled with jellybeans.” – Ron Swanson, Parks & Recreation (video)

toolbox

While many of us laugh at April and Andy’s toolbox contents, the statement Ron makes is a valid one. We all need, in some capacity, a toolbox to properly equip us. Developers and non-developers alike, we need a specific set of tools to get our jobs done.

But just because we have a tool in our own ‘toolbox’ doesn’t mean someone else will use it in the same way, or use it at all. For example:

  • Do we all need the same tools? No
  • Do we all use the same tools? No
  • Do we all use the same tool in the same way? No
  • Will we use the same tools throughout our careers? More than likely, no.

Another element to keep in mind is that sometimes we need more than one tool to solve a problem. In fact some problems require the use of multiple tools together to solve a routine task. Check out the crow intelligence video below (an oldie but a goody):

So listing the name of tools I use is somewhat misleading. Will my list of tools help you? They could, or they could have the opposite effect. Also, tools can become obsolete over time – look at the Google Earth API.

But with these things in mind, below is a short list of some of the tools found in my toolbox, organized by price [Note: I use Windows as my OS both personally and professionally]:

  1. Notepad ++ (Free): Think Notepad on steroids; it’s simply amazing. A source code editor that supports a lot of languages (I haven’t found one that isn’t supported yet). Plus the creators compare it to ‘free speech’ and ‘free beer’ on their website; clearly you can’t go wrong with this product.
  1. OSGeo4W (Free): The Windows package of: GDAL/OGR, QGIS, GRASS, MapServer, OpenEV, uDig and others. From what I have used and seen I am a huge fan and it’s made my life so much easier. Some of the tools you can tap into with GDAL are incredibly powerful and can produce some amazing things, sometimes superior to Arc- products, plus it’s free. I am not sure about other OS’ and I am pretty new to the scene but if you ask The Googles, you should be able to get what you need.
  1. Eclipse IDE (Free): While I complain a lot about Eclipse, it’s a pretty cool tool. You can customize the environment in any way you like, including a whole suite of amazing plug-ins. However, a forewarning for beginners: it’s not the easiest tool to setup and anytime Java updates you may encounter some issues. But if you are willing to weather the storm, you will enjoy this product as a developer.
  1. Git (Free/$): When a colleague first showed me Github I was extremely weary of it but it’s been extremely useful to me both personally and professionally. I have been able to learn new tidbits and tricks and improve my overall knowledge all while meeting others in the development community. Git tools, specifically Github for Windows (Free), provide a way to sync your work with the Github community. Most of the Git tools are free but a few do have a small cost.
  1. GIMP (Free): An amazing raster graphics editor. GIMP was the first open source tool I ever used so I am somewhat biased. Overall, I find it much more usable than Photoshop and hey, it’s free.
  1. Adobe Illustrator CC ($$): An amazing vector graphics editor, especially for cartography and graphic design. I have tried to use the free and open source software, Inkscape but in my opinion, it simply isn’t the same as the Illustrator product. While I am very resistant to fork money over for something that has a free alternative, this is one of the instances I recommend going with the paid version.
  1. Adobe Acrobat Pro ($$): Love, love, love this tool! Whether it be for combining multiple documents, creating professional forms, and/or scanning documents and redacting private information (for reference). I do recommend getting this when you purchase a new PC, it’s usually a much better deal than the monthly pricing Adobe lists on their website.
  1. Esri ArcGIS Advanced ($$$): I don’t want to start an ArcGIS vs. QGIS debate and to be honest, I don’t have much experience with QGIS but since this is what I know, I am adding it to my list. This goes back to one of my comments above; as my career progresses this tool may or may not be on it but for now it’s on the list (please don’t send me hate mail). The package includes: ArcMap, ArcToolbox, and ArcCatalog among other items. Be ready to sell your first born on this product; it is quite spendy.

Monetary Guide:

  • $ Broke and/or young professional approved. 🙂
  • $$ A larger investment but worth it if you can afford it.
  • $$$ You better check (and re-check) your bank account before making this kind of purchase.

So tell me, what tools do you use?

Advertisements

Which tool is the right one?

A tweet from Matt Kremer last month (listed below) sparked something greater with me that I wanted to share with others. Enjoy, and please comment on your own experiences, too!

Almost two years ago I was sitting with a colleague enjoying a cold beer and he mentioned something that has stuck with me ever since, “GIS is a tool, we use it to produce results but if we don’t understand what we need, it’s useless.

So incredibly true! As someone who has worked in many different sectors, I’ve applied GIS technology to many different departments, areas and projects.

Two years later, Matt’s tweet hit home yet again. As a developer – code isn’t the end goal, it’s a tool, like GIS is, to produce something great. Is it always the answer? No. But it could be.

What I’m getting at is – don’t think of the means to solve a problem, think about the end product (but remember that end product can change over time, too). Here’s a list of some of the questions I think to myself before initiating anything in my life:

  1. Why do this?
  2. What is the goal/purpose?
  3. Will I have help? Guidance? If yes, how much?
  4. What is the anticipated timeline?
  5. What do I expect to see when I’m done?

After answering some of these questions, we can better define the means, and which tools best suit our purpose and goals. Will we always use the right tool for the job? Not always but we can try our best to solve the problems that we face to find solutions – and I think that’s a pretty cool thing.