Two Dozen Insanely Essential Programmer Utilities*

Lately I’ve been focused much more on Web development.  Along the way, I’ve discovered a number of utilities that are simply essential to successful coding, depending of course on which frameworks and libraries you are using.  Here’s a sampling, intended only to pique your interest, not to explore any of these in depth…

Sublime Text 3

SublimeBack in the 1980s I was working in Unix and C, and I tried a number of editors. Emacs and its cousins were the big winners, though I was known to use VI in a pinch.  In the 1990s I went through a period of skipping back and forth between Borland’s IDE and Microsoft’s for C (though when  C++ and MFC was released, the battle was over).  For a while I tried different editors with Visual Studio, but Microsoft’s integrated environment just kept getting better and soon I settled in.  It stayed that way for almost two decades.

What is shocking to me, is that with Visual Studio 2013, VS is better than ever, yet I’ve really fallen for Sublime Text.  It is fast, has some terrific plug-ins and makes certain kinds of programming… if not easier, then at least more pleasant.

Don’t get me wrong, if I’m programming what I think of as a Microsoft technology (WPF, ASP.NET MVC, Windows 8, etc.) I’m still using VS, but if I’m programming JavaScript (etc.) then Sublime has suddenly taken my heart.  I’ve written it up here, and published a Pluralsight course on using Sublime here [To be posted on Pluralsight soon]

Chrome Dev Tools

Chrome has become my debugging environment of choice for Web applications.  Press F12 for their basic tool – and what a tool it is.    Powerful on its own, you can add plugins, such as the one for Angular (Batarang) that gives you insight into Angular’s scope and much more.    In addition, the Chrome store is chock full of free developer plugins, one of the most essential of which is Rest Console for testing REST Web Services.  There are others that do the same job, but I’ve grown fond of this one. 

Web Essentials For Visual Studio 2013

While we’re on the topic of plugins and such, an absolutely, err, essential extension for Visual Studio is Mads Christenson’s Web Essentials.    This brilliant extension to Visual Studio 2012 or 2013 adds features for CSS, HTML, JavaScript, TypeScript, CoffeeScript and Less.  It provides minification and bundling, Intellisense in CSS3, Browser tips and validation, image preview, color swatches, jsHint(!) auto-complete braces, smarter indentation and much much more.

BootStrap

It is frankly difficult to imagine going back to web programming without Bootstrap.  For those of us with little or no design skills, Bootstrap is a life-saver; offering more beautiful and professional looking web applications out of the box.  Combine Bootstrap with related-commercial themes and you’ve got a launching pad to creating your application in record time.  I’ve created a course on Web Application Development [to be posted on Pluralsight soon] with Bootstrap and Service-Stack (see below) that illustrates how essential Bootstrap can be. 

Service-Stack

ServiceStackI admit it, when I first looked at Service-Stack, I was entirely skeptical.  It struck me as an open-source alternative to ASP.NET MVC and Web API and why would I want that when I have MSDN Ultimate and can get the “real” tools for free? 

Instead, what I found was a powerful web service engine that was extremely easy to stand-up and that provided a host of related services such as snap-and-play Dependency injection and an incredibly simple ORM.  Given its incredible speed and how light-weight it is, and how easy it is to learn, it has quickly earned an essential place on my virtual-shelf.

GitHub For Windows

Okay, I had no trouble with VSS, really liked SVN, loved Hg, but just can’t get my head completely around Git.  Nonetheless, I love Git for how easy it is to branch and merge, and let’s face it, all the cool kids have moved to Git and the contest is pretty much over. 

So, I had Phil Haack on my podcast to explain it to me,  and I bought and read the book he recommended, and I played the silly Git game but the truth is I’m still more comfortable in GitHub For Windows than I am in the Git shell.  

 

ReSharper (or CodeRush?)

I struggled with this one for years, because there are three great contenders for this kind of Visual Studio extension that helps you with code-completion, refactoring and generally improving and speeding up your work: one from JetBrains (Resharper), one from Telerik (JustCode) and one from DevExpress (CodeRush).  All three are terrific, and while they don’t do exactly the same things, they are mutually exclusive.    I have to admit that I wonder frequently if CodeRush wouldn’t be a stronger choice for me, but at this point I’m committed to Resharper and it is hard to imagine using Visual Studio without it.   I heartily recommend reading extensively about all three before making a decision; each has much to offer.  But do use one of them, it is a crime not to.

ExamDiff Pro or Beyond Compare

I’ve used ExamDiffPro for years and I find it an intuitive and very powerful diff program.    You can feed it a folder and it will compare everything in the folder and all its children folders.  It makes editing the files a snap and is essential for merging branches in source control. That said, my boss, Lino Tadros, tells me that Beyond Compare is, and I’m always willing to try new things, so has become (temporarily at least) my current diff engine.  Whichever you choose, do have one in your toolkit because the built-in merge for Git doesn’t, err, compare.

AutoHotKey

The job of AutoHotKey is to reduce your typing and to keep your fingers on the keyboard. Some of the macros I make with it are tiny but essential (e.g., control-l to go to the end of the line and control-; to move right one character).  I use others to reduce typing (@gm translates instantly into my email address).  And I use others to replace lengthy but common blocks of text.  I also use it to fix all my common spelling mistakes and to get the capitalization right on words like RadioButton.  Wikipedia has an excellent article covering AutoHotKey in depth.

ClipX

A powerful, easy to use clipboard history.  Say no more.  I don’t understand why this still isn’t built into Windows, but thank goodness that ClipX exists. 

Evernote

There are a million good reasons to use Evernote, but one of them, for me, is to take notes on hacks and programming fixes that I suspect I’ll want to use again.  Evernote has a wicked-fast search and I hate that feeling of “I solved it before, now what the hell did I do?” With Evernote, I can find out, quickly and easily.  It is also a great place to stash all sorts of information, and it has become my (incredibly reliable) repository of record. 

Trello and BaseCamp

Trello is everything I need in a small, free Kanban board.  I put my projects in, create cards for tasks, annotate them and generally keep track of what I have to do and when. If I’m collaborating with a small number of others it is terrific, and my family is using it to coordinate all that has to be done to apply to college!   There are a couple paid upgrades well worth checking out, but it is quite amazing how much you can get done with the free version. 

We use BaseCamp at Falafel and it is terrific for keeping track of multiple projects and knowing what needs doing and who is doing it.

Skype, Go To Meeting and Lync

If you work remotely it is easy to become isolated. At times, a quick consultation, especially with screen sharing is essential, and these three products meet all my needs:

  • Skype for one on one, small conferences, screen sharing and for IM
  • Go To Meeting for larger conferences and screen sharing presentations
  • Lync for everything Skype does but scooped to my company (Falafel Software)

Twitter, Facebook, LinkedIn, Yammer

These social media each break down the barriers for those of us who work alone at home.  I use them as follows

  • Twitter: mini-blogging, asking questions and generally keeping in touch with a very broad audience
  • Facebook: restricted to just close friends and family. I started out using it for just about anyone, but there is real value in having a place to keep in touch with people you know well.
  • LinkedIn: professional contacts, and my network is very large
  • Yammer: Social media for a company or organization.

Pluralsight

I know it is self-serving (I am a Pluralsight author) but this is an essential resource for me. I often begin my study of a new topic by watching one or more Pluralsight courses; and I have to say as objectively as I can, that most of them are first-rate. 

FogBugz

I haven’t had to use a bug tracker for some time (because for a long time I was a technical evangelist rather than a full time coder) but my wife (who is in QA) uses FogBugz and from what I can see it is an essential tool.   I will probably install it for myself very soon.

Other Essential Utilities

Here’s a list of other utilities that I always install and that greatly enhance my productivity. I’ll write about them in the third installment (the second installment is here).

  • Fences: to keep my desktop organized
  • DropBox: to keep my shared files organized
  • HighTail: to share large files easily
  • Parallels Access: to get to my desktop from my iPad mini
  • VLC Media Player: to play those codecs that Windows Media Player chokes on
  • RegEx Buddy: to create and test regular expressions
  • Oracle VM and GennyMotion: to test Android apps
  • TestComplete – for full application testing
  • Audacity: for editing audio, especially my podcast
  • Camtasia: for creating and editing videos
  • HyperSnap: still my choice for capturing and editing screen images
  • Windows Live Writer: the only tool worth discussing for creating blog posts
  • TheBrain: for creating incredibly powerful mind-maps

Based on feedback to this posting, I’m also evaluating a number of new (to me) tools including SourceTree and numerous others. I’ll follow up soon.


* A programmer’s wife says to him, “Go to the store and get a dozen eggs. If they have sausages, get two.”  He comes back with two dozen eggs.

About Jesse Liberty

Jesse Liberty has three decades of experience writing and delivering software projects and is the author of 2 dozen books and a couple dozen Pluralsight & LinkedIn Learning courses. He was a Senior Technical Evangelist for Microsoft, a Distinguished Software Engineer for AT&T, a VP for Information Services for Citibank and a Software Architect for PBS. He is a Xamarin Certified Mobile Developer and a Xamarin MVP and a Microsoft MVP.
This entry was posted in Essentials, Opinion, Tools and Utilities and tagged . Bookmark the permalink.