Breadth Versus Depth

One of the things I constantly struggle with in my software development consulting career is balancing breadth versus depth.

When I graduated from JMU in 2005, I was not deep in anything related to my career. I had a very broad knowledge of computer science, Java programming, and a few pointers for where I should look next to learn more. I started working in an enterprise environment developing software (a really disfunctional environment - but that's another story) at Freddie Mac. I expanded my breadth in learning about version control systems, configuration management, handling myself on a team of developers, and many other real world software development topics. I became deeper in my knowledge of Java and the Java Virtual Machine stack.

At the same time, I deepened my knowledge of computer science while taking classes at Virginia Tech to earn my Master's degree. I dove deep into the relatively obscure realm of genetic algorithms and their application to software testing.

Throughout my seven year career to date, I've bounced back and forth between depth and breadth. I made a conscious decision to focus on Python development once I picked it up in 2007 and ran with it. The tradeoff was a regression in my depth in the JVM stack (although I still find Clojure very interesting) for a depth in the Python ecosystem.

Bad attempt at visualizing what I'm writing in this post

Above image: A really poor attempt at drawing what I'm writing about in this post.


This relates to Coding Across America in a direct way because I do struggle with how long to spend in each city. Certainly if I spent all four months in Austin, TX, I'd learn a lot about the city, the people who live there, the local spots to check out, and the technology scene there. I could inundate myself in Austin's culture. But that wouldn't serve the goal I'm trying to achieve on my trip.

A few weeks ago when I spent six solid days in Austin, it felt like a good amount of time to get to know the area. However, I had already been to Austin for long weekends a couple of times. On the other hand, I did not exhaustively research where to go in Austin before my trip. So I'm hoping a combination of research and discussing with people who've lived in cities before is enough to get me over the learning curve of understanding a location so that 5-10 days in most cities is enough.

Perhaps that's erring on the side of breadth, but that's the goal. This isn't a trip about Coding Across Memphis, TN. It's about the United States as a whole. Better to have more destinations with shorter stints in cities both large and small rather than a few longer stays in cities that may skew the results towards a vision that isn't accurate (say, Palo Alto, Seattle, Austin, and Boulder for instance).