$('someElement')

Thursday, August 24, 2006

Day One (Introduction): On Becoming an Engineer

Yes, another blog. They say one is born every second these days; they being the author(s) of some article I recently read in some publication somewhere or another. Another blog...

My aim with this blog is to share some of my knowledge (yes I have some) and opinions (indeed, I have many) in the matters of the underlying and emerging technologies of the web. I do not profess to be an expert in web technology as a whole, as that would be quite a wide sweeping general statement and untrue. I do, however, take pride in the fact that I am becoming an expert engineer. Notice here, the bolded words, because understanding why I phrased that statement like that (vs. saying "I am an expert web development engineer") is important in understanding who I am, and understanding a little bit about who I am is important for the weeks and months of posts to come (if I aim to make an avid reader-of-my-blog out of you, which I do).

Constraints

Constraints are very important to apply to any mechanical, electrical or software system. Without them steam valves would rupture under too much pressure, circuits would melt or malfunction causing damage or injury, and the wrong people might acquire your sensitive data. Yes, applied to systems constraints are a necessity. This even applies to systems of people. My wife tells me that her father had a favorite saying: "The instant there were two people on this planet, they needed rules", which is the truth if you sit and think about it (or you can even stand and think about it if you like). But...

NEVER EVER EVER apply constraints to your identity or your capabilities. You do that, and then BAM, you're caged. You say "I am a this", or "I am a that" in reference to your profession, and it tells me you're convinced that that's really all you are. You've pigeonholed yourself ("...oh, that's Joe the accountant"). I am much more interested in what (or who if you prefer) you are becoming, what you aspire to and what you are ultimately capable of than what your current job title on your paycheck says you "are". I'm not trying to imply that you care what I think, remember I'm just expressing a little bit about myself here so you can relate to my forthcoming articles, viewpoints and rants a little better.

So sure, technically, my job is that of a web development engineer. It says so right here on my shiny little "job title". I am not, however, a web development engineer. I am not a systems engineer, nor a process engineer. I am not an engineer. I enjoy engineering, am very good at it, and am becoming better at it every single day. I love to solve complex problems and work with new technology. I know a bit about that, too, because I got my (professional) engineering start in the nuclear power field. But I don't think I'll ever learn enough to the point where I'll sit down and say "I've done it, NOW I am a true [blank]". In fact, the second I can say that about anything is the moment I give it up completely. Nay, even before that... if I'm at a point where I feel like I COULD learn it all, reach the top of what's available... that's when it's not for me anymore. That's why you won't find me climbing Mt. Everest (I know I can do it so why bother, lol).

The Real Pinnacle

You won't become an expert at anything just by doing it for an X period of time. Likewise, you won't become an expert at anything just by learning all the different variations of how to do it. I am of the opinion that the term "expert" is a relative and subjective term. For example, in my kids' eyes I am an expert magician; I can make quarters appear from behind their ears. If you can do something better than another person (or that they can't do), and can then TEACH them how to do it, you are an expert. There is nothing more to it than that. You can even get better at teaching, or can find an expert teacher-of-whatever-it-is to teach you how to teach it better, and eventually become an expert teacher (or is that expert expert?). It's a beautiful, ongoing, recursive process; a never ending story of discovery, mishaps and eventually, progress.

So since I feel like there is much more to learn in this field, and I don't feel that I've achieved some magical level of knowledge, I won't say I AM a web development engineer. And since I feel that I possess the know-how (or the know-how to acquire the know-how) to engineer arbitrary systems in arbitrary domains, I won't say I am a WEB DEVELOPMENT engineer. I am at a point now, though, that I have enough knowledge to share with others, and perhaps teach someone how to engineer (either generally or for a concrete application). However, I hesitate to call myself an expert engineer because I know I have a lot to learn about teaching and transferring knowledge. So, I'll just say that I am becoming an expert engineer, and I'll say it proudly.

The bottom line is, if you have something to offer and are willing to share it, you're my kind of people. And that's who I am. Don't worry, in future posts I will actually share concrete examples and maybe even some code :-).

-Ryan Gahl
I work as a professional software engineering consultant, specializing in web-based (inter/intra/extranet) applications, Ajax, and C#. My services can be purchased by calling the following number: 1-262-951-6727
I am becoming an expert engineer.