What Is an Expert?

I recently got into a converstion with Jonathan Cogley at a meeting of the Washington DC Ruby Users Group. Cogley is the CEO of a Thycotic LLC, a small consulting firm in the DC metropolitan area. His company also produces an ASP.NET-based security product called "Secret Server."

After conversing for a while, he asked me what I did. Without really thinking about it, I casually mentioned that I did Java ... and ASP.NET ... and database design ... and few other technologies. I added that I was also becoming very interested in Ruby on Rails.

He looked at me strangely, and then asked a very probing question: "How do you stay on top of all those technologies?"

At the time, I provided, I think, only a moderately accurate answer. I said basically that I was always learning, and that I made a concerted effort to pick up new technologies and expand my knowledge of the ones I already knew. I also mentioned that I typically buy quite a few text books each year, more than most other technologists that I've ever met (I actually budget for it). I also mentioned that I typically augmented that with some of the excellent web-based resources that have cropped up in recent years.

Well, that seemed to satisfy him at the time, but I wasn't really satisfied with the answer. It led me to think more about the state of "being an expert."

So, what is an expert?

Here's two possible definitions:

  1. An expert is someone who is deeply knowledgable about a particular subject, such as a specific technology.

  2. An expert is someone who can deliver an expert-level solution using a particular technology.

Let's examine a real world scenario. On one of my consulting engagements, my boss came to me and said, "We'd like to use you on this new project, but the project is going to use Technology X. I know you don't know X, but there's going to be a four-week requirements phase. Can you come up-to-speed in X by the end of four weeks and get the project done?"

My response: "Sure. No problem. Bring it on."

In this project, I first assisted the customer in divining what the requirements needed to be to accomplish the desired objectives. I probably had more impact on the success of the project at this phase than I, or anybody else, did during the implementation phase. Nevertheless, by the time that the requirements phase had been completed, I was more proficient in the necessary technology than the client's own in-house developers.

So, to go back to Mr. Cogley's question, "How do I stay on top of all those technologies?" As I said to him at the time, I do buy a lot of text books, and I do actively read web-based technology sites on an ongoing basis. But the full answer is really more subtle.

You see, I've always tried to be an expert in the field of web development, but more of a generalist in terms of any particular technology. Additionally, I've tried throughout my career to hone my skills as an expert problem solver. Along with that, I've cultivated the ability to learn technologies rapidly.

So, given the two definitions of "expert" that I provided above, I represent #2. I'm the guy who delivers a quality solution, ruthlessly crunching through any problems I encounter along the way. Oh, don't get me wrong, I certainly have deep knowledge in particular areas, such as database design, or creating charts using the JFreeChart library. But I've constantly striven to ensure that I'm the sort of technologist who can craft a quality solution using virtually any set of technologies.


No comments yet. Be the first.

Leave a Comment

Comments are moderated and will not appear on the site until reviewed.

(not displayed)