Technologist

My Programming Toolkit

I got back to being a technologist in early 2013 after years of focusing on my career as a “Technology” Manager. I got to do some coding in Python at work but more interesting was the time I spent over weekends playing around with open source languages and tools at home.

This is when I read “The Pragmatic Programmer: From Journeyman to Master” by Andrew Hunt and Dave Thomas – a book I should have read at the beginning of my career. It nevertheless gave me several “aha” moments as I connected with the basic mistakes I committed as a programmer. In particular, I enjoyed the chapters around “The Basic Tools”. I remembered how I always used vi as my code editor and carried my personalized vimrc profile along with unix-like command like interface for Windows.

I created my own development environment and enjoyed the weekends and holidays working on my personal pet projects. This carried on for about 2 years but after I signed up for a new job, I started to focus on setting up things at work and could not spend time on my personal technology projects. After about three years, I logged back into my personal development environment. I started with upgrading Eclipse and VirtualBox to latest versions. Surprisingly, I did not feel as rusty as I did three years back.

The list of installed software I had documented helped a bit but realized it will be more helpful for future to also document the nitty gritties involved while going through the setup. Hence this blog!

My tools:

IDE: Eclipse – having started my career as a Java developer and wanting to setup my personal development environment with 100% open source stack, Eclipse was a natural choice. I was amazed at how the ecosystem had matured over the years, with excellent plug-ins to deal with all development needs. A far cry from the days I was a programmer when I had to write code using gvim, compile on the commandline and debug using print statements!

Editor: vi (Vrapper plug-in) – I believe in “The Power of Plain Text” and appreciate an editor that forces discipline. During my early programming days, it was annoying to use vi with the constant switching between editing and command modes. But after I got used to it, I am yet to find a basic editor to beat it! Vrapper plugin brings in the power of vi to Eclipse code editor.

Source code version control: git – EGit plug-in provides git integration for Eclipse. I started my career with cvs but this is one area that has evolved over the years with git emerging as the leading open-source distributed version control system.

Language plug-ins:

Java: JDT – Eclipse started with Java and I always installed it with JDT by default.

Python: Pydev

PHP: PHP Development Tools (PDT)

Virtualization: Oracle VirtualBox – helped me get back in touch with unix / linux. And also enables to test java programs in linux environment. I have Ubuntu desktop on my virtualbox.

Unix-like command line interface: Cygwin

Git repository sharing: SCM Server

Desktop sharing: TeamViewer

Document editor: LibreOffice

LAMP stack runtime: XAMPP

The books I enjoyed reading

My reading habit with non-academic books started as a small boy when I ended up with three dozen “Phantom” comics novels that was gifted by one of my seniors when he shifted out of town. I avidly finished reading the entire lot during my summer vacation. As a teenager, I remember reading a few Hardy boys novels but that was all.

I finally took to reading habit when I was about 21 and in my fourth year of engineering. My first novel was a fiction “Negotiator” by Frederick Forsyth. The very next book was Ayn Rand’s “The Fountainhead”. It took several hours across several weeks to finish the book and I became a Ayn Rand fan. I followed it up with her “Atlas Shrugged”.

Between 1999 and 2001, I was into fiction novels and should have read about two dozen of Frederick Forsyth, Ken Follet, John Grisham and others. After that my interest in books and particularly fiction tapered off. For the next 10 years, I was a sporadic reader and my reading was limited to non-fiction. I read whenever I stumbled upon an opportunity to pick-up a book. A few books I remember from that time are “Good to Great” by Jim Collins and “The Black Swan” by Nassim Nicholas Taleb.

I started as a keen reader again in 2011 as I wanted to explore my interests in Anthropology. It changed to Agile, Software Development and Leadership in 2013. I would have read more than 50 books during the three year period from 2011-14.

As I started with my interests in running and cycling coupled with a new job in November 2014, my reading routine took the back seat once again. But I put in the effort to list down more than 100 books that I remembered reading since 1997. I have listed some of my favourites under Anthropology, Agile, Software Development and Leadership. I hope I get sufficient time to grow this list over the years.

The ones I enjoyed…

Anthropology:

Guns, Germs, And Steel: The Fates of Human Societies Jared Diamond
Collapse: How Societies Choose to Fail or Survive Jared Diamond
Origin of Species Charles Darwin
The Naked Ape: A Zoologist’s Study of the Human Animal Desmond Morris

Agile:

Succeeding with Agile: Software Development using Scrum Mike Cohn
Agile Software Development: The Cooperative Game Alistair Cockburn
Lean Software Development: An Agile Toolkit Mary Poppendieck
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation Jez Humble
Dave Farley

Software Development:

The Pragmatic Programmer: From Journeyman to Master Andrew Hunt & Dave Thomas
Clean Code: A Handbook of Agile Software Craftsmanship Robert C. Martin
Design Patterns Erich Gamma & Team
The Mythical Man Month Fred Brooks

Leadership:

The Fifth Discipline: The art and practice of the learning organization Peter Senge
The Human Side of Enterprise Douglas McGregor
The Speed of Trust: The one thing that changes everything Stephen M.R. Covey
Good to Great:Why Some Companies Make the Leap…and Others Don’t Jim Collins
Drive: The Surprising Truth about What Motivates us Daniel H. Pink
Outliers Malcom Gladwell
The other 90% Robert Cooper
The Black Swan: The Impact of the Highly Improbable Nassim Nicholas Taleb
Out of the crisis W. Edwards Deming
The Innovator’s Dilemma: When New Technologies cause great firms to fail Clayton M. Christensen
How to get your point across in 30 seconds or less Milo O. Frank
Team of Teams: New Rules of Engagement for a Complex World Stanley A. McChrystal