Sunday, April 3, 2011

11 Months of Languages, Frameworks, and Tools

About this time last year, I was still in school and interviewing with a few very different companies. Talking to other students yielded a number of opinions about languages and the career paths they implied. I haven't found my experiences thus far to be anything like the oft-heard

"taking a Java job means you'll be doing nothing but Java for 30 years"
Being employed by a consultancy is a little different than landing in a business committed to one language, but I've found that even within these companies the changing directions of business require and embrace many different languages, frameworks, and tools.

The Java Shop

My first programming job was very database-centric. Referential integrity was the goal, and database triggers were the chosen path. Triggers were the choice because data was dealt with directly through SQL from an unknown number of sources, in addition to applications. Our constraints were also slightly more difficult than column-level constraints could handle.

The applications were written exclusively in Java, and yet during my time there I barely touched Java at all. Instead I was directly in the database. Most of the work was in Oracle's PL/SQL, but like so many businesses, there was a transition from another database vendor in the works, so my day-to-day work still wasn't limited to just one database vendor's language.

The Internal Java Project

My first project for ThoughtWorks was at TWU, where the students continued development on TWU XVII's Chronicles. The technology stack was traditional for a Java webapp here, but still required us to develop our knowledge of several different markup languages, programming languages, frameworks, and tools.

The .NET Shop

In early October I headed to Los Angeles for a project in Microsoft's .NET. We were adding features to a webapp here as well, but it initially didn't have any MVC components. Instead, it was code-behind. This meant that while a lot of the Java project was similar, there have still been many additional programming languages, frameworks, and tools to learn.

Project Technologies, 11 Months into Programming

Markup Languages
Programming/Database Languages


  1. Fluent NHibernate is my personal favorite.

  2. How much in-depth do you really know these? Just curious.... I mean, in my time here I have experienced an equally long list of technologies - but I just feel like I have skimmed the surface...

  3. @Shweta:

    My short answer is well enough to test-drive code, which is the barrier for me to feeling comfortable as a billable consultant.

    Certainly we worked extensively in Spring, and thus Java in TWU. JUnit came into play there, as did a personal favorite: CAS.

    For the last seven months or so we've been doing a roughly 60/40 split between JavaScript and C#. The C# stuff all gets tested with Visual Studio's integrated framework (mistake! use NUnit!). Our JavaScript was initially jQuery tested with YUI's unit testing framework. It has since shifted to being implemented in Ext JS with Jasmine tests.

    Our functional tests are through Twist, which means that developers automate the business-friendly steps with Java code.

    I've been lucky to be on a team with only six developers, which affords the opportunity to wear a lot of hats. I imagine that the larger the team, the more likely the team has used a framework or technology that individual developers have not.