Software Steeplechase

Hayden Steep’s development obstacle course. (Java, JEE, and beyond)

August 16, 2006

Virtual Java Interview ‘06 (Breadth of knowledge VS. Depth of knowledge)

Filed under: Java, General

canidate (smiling): Thank you for taking the time to see me. I’m excited about becoming a web developer for Turbo-MegaWidgets.

interviewer (smiling): No problem. I’m glad you could come in on such short notice. Why don’t you start by telling me about the technology you are familiar with.

interviewer (straight-faced): For example, we would like someone who knows how to program in Java, C#, Ruby, Python, Perl, PHP, C++, and Lisp. Can you do this for us?

canidate (forlorn): I’m sorry, but I’m only experienced with Java and know very little about those other programming languages.

interviewer (jolly): Ha ha ha ha! That’s perfectly ok! We focus on Java technology here at Turbo-MegaWidgets. I just use that as an ice-breaker to assure you that we don’t focus on breadth of knowledge here. As long as you have expertise, or depth of knowledge as we like to say, then you’ll do just fine!

canidate (relieved): Whew! That’s good to know, because it would be hard to become proficient in so many different areas of technology.

interviewer (smiling): No kidding. I’m glad to be doing business analysis these days, the thought of it makes me shiver. Anyhow, let’s get back to the interviewing shall we?

interviewer (straight-faced): We’re looking for a Java developer who has an in-depth understanding of using the Rational Unified Process, Extreme Programming, or Agile Methodologies to implement EJBs, Servlets, JSP, Velocity, Custom Tag Libraries, JSTL, XML, Ant, Maven, JUnit, TestNG, JDBC, Hibernate, iBATIS, Struts, Tapestry, Java Server Faces, Javascript, AJAX, GWT, Spring (all of it), AspectJ, WebServices, SOAP, how to configure CVS, BugZilla, Tomcat, JBoss, HypersonicDB, MySQL, Apache Web Server, Eclipse or another IDE, and an Applet in a twisted pair tree.

canidate (jolly): Heh heh heh! You almost got me again!

interviewer (straight-faced): I’m not joking this time.

canidate (nervous): Oh… well…. I created a Javascript “rollover” one time… on a JSP…

interviewer (dismissive): Don’t call us. We’ll call you.

While talking with a contact recently, he marveled at the breadth of knowledge you had to have in order to be a competent web developer. The explosion of frameworks and tools over the last 10 years has had the affect of putting more responsibilities on fewer engineers.

When I started professional web development only a few years back in 1998, there were dedicated programmers responsible for framework architecture, configuration and build management, database design and maintenance, and so on. This setup had the by-product of allowing each programmer to develop an expertise, or depth of knowledge, in the area for which he was responsible. It was easy to bring new-hires into this environment because it wasn’t essential that they ‘knew everything’, but more important that they were bright and could immerse themselves in their duties.

Today there are many tasks that have been made easier through the use of good tools. It would be financially irresponsible to pay the same number of developers to fill roles with narrow scopes. This has benefited developers by allowing them to be involved with more aspects of projects than was previously possible. This increased responsibility requires a breadth of knowledge that makes developers feel important (humility aside, something most of us care about a great deal), but it also puts a burden of responsibility on us to stay on the upward curve. Whereas the old teams depended on many smart developers, the new teams depend on smart and studious developers.

Comments »

The URI to TrackBack this entry is: http://steep.blogsome.com/2006/08/16/virtual-java-interview-06-breadth-of-knowledge-vs-depth-of-knowledge/trackback/

No comments yet.

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>



Anti-spam measure: please retype the above text into the box provided.

Get free blog up and running in minutes with Blogsome
Theme designed by Jay of onefinejay.com