L' Eomot Inversé (10/27/2011)
I finaly got round to reading this article, after a vey long delay (it's been sitting in mt "to read" stack for the best part of a year). It's a great article. Reading it cheered me up. I wish I had read it earlier. Craig, thanks for this - it really is good.
Thanks Tom. It's always nice to hear about your work in an appreciative light a bit after the fact. I'm glad you enjoyed it... Now for the debate!
(Hey Kraig, I though you were supposed to write Evil articles, not Good ones? Or does your article quality change to match your nickname? [and if so, how do you organise to change the artcile quality for old articles when your nick changes? - or is that the problem I'm observing?])
I'm missing the last piece of that, we'll blame it on the lack of caffeine. I'll laugh later when I get the second joke. :-D
(There was some editing for length below, but tried to keep the flavor)
First, the level of knowledge a level 1 (raw beginner) applicant needs. This may be a left pond vs right pond distinction. Over here, many of us are prepared to accept ... no knowledge at all of databases. This is partly because we know that most UK Universities don't teach anything about databases
... nor do ours...
...so people with CS qualifications usually don't know anything about databases (or at least nothing practical ...An awful lot of Turing award winners and other CS gurus came into computing with no previous knowledge of it at all, so maybe someone with ... no knowledge at all of computing can quickly become competent at computing or database design or administration (think of Ted Codd, Chris Date, Charles Bachman, Tony Hoare, Cliff Jones, and many many more).
Agreed. As a further example of my agreeability, I'm self taught myself. I don't even *have* a degree.
And of course because some of us remember that if recruiters had wanted knowledge of computing when we were young we would still be mathematicians (or whatever) and not computer types. So the idea that a level 1 job requires a pretty good grounding seems wrong.
This is the crux of the issue, and you're right, this may be a job location issue. Most places I've worked for when looking for a Junior in the United States (I can't even speak for Canada) will not accept a complete newbie. The time investment in training someone who hasn't even attempted to train themselves is not considered valuable to the business unless it's an internal hire or an intern... or desperation.
Next is your description(s) or level III - or rather stopping at level III. To me, someone who can only do half the job is nowhere near the top. If they can't combine being the guru, the guy who knows everything in their specialities with being able to motivate and steer a team they need to learn new skills. Maybe it's a level IV - but we need some people who can do both halves of that.
I agree, and they exist. The sad fact is though many people, again in the US, who create the job listings really do only need solid technical competency but a senior in ability to lead a team. It's a horrible phrasing that's being perpetuated through our market. They really are separate skillsets to me. I've witnessed far too many very good people who just simply cannot learn the necessary social skills to hold a team together well.
I've also been told my definition of a Level III is a bit extreme. To me, a Level III technically is someone who walks into a room with (as an example) Jeff Moden, Gail Shaw, and Paul White, and not only holds their own easily but brings a new idea or two to the table. Please note.. I'm NOT a III technically... yet. The majority of the world is just a II (Just a Bill for anyone who remembers school-house rock!)
Also, I think you are missing what is really the top technical level... there's no-one to consult because no-one knows the answer, and is going to move the state of the art forwards because he is too stobborn to accept defeat. ... Let's ask, was Ted Codd as a database developer what you would call level III or was he level V? Was Chris Dace level III or was he level IV or was he level V?
That's like asking me to rate the effective level of DaVinci in Art, or Madam Curie in her research skills, or more aptly, was Euclid (sp?) an effective mathmatician.
I can't. I have to deal with the 99% of us.
Finally, I accuse you of telling people to shoot too low: Database Architect "is an end goal for a career".
I'll give you the point that was perhaps a poor turn of phrase, however, not everyone is able to become a mental giant for others to stand on. Most of us will simply ride their shoulders, due to a thousand external factors. Family involvement in free time, outside interests, a throttled business environment disallowing direct interaction, and other internal factors of ability and intellect.
I've seen far too many self-styled architects without enough knowledge to feel that it IS something that needs to be called out as an ability you reach for along the way, and it's not quickly achieved, if ever. And, to be perfectly honest, I was one of those people for a bit.
Surely we should encourage people to aspire to the job that combines database architect with overall application and system architect and line manager of database development (or even line manager of all development, IT, and support - there are such jobs, and if you are good you can get there, even if you are not quite good enough to reach what I called level V). Or maybe to some other job that's a bit more than database architect, even if it doesn't combine all those other things?
I believe the real difference here is that you combine technical and managerial competence into another tier of ability. I do not. Technical competence is all that's required to be a III, in my opinion and experience. External skills to SQL Server (which I have, I consider myself a level I SysAdmin and VB.Net coder, and a MySQL admin I, amongst others) should have little to nothing to do with your rating as to your ability in SQL Server. Now, should there be some kind of holistic rating, discussing your ability across all products and interoperability? Most likely. That was a bit much to try to wrap around for an article of this depth.
I agree with you that once you start reaching the upper tiers of knowledge in a product you need to make decisions about where you want to go. It has taken me over a year of catch up just to try to have intelligent discussions with the gurus around here, to understand knowledge they take for granted. To catch up will require yet more time in just learning the engine that deeply, years in fact. I figure I'm about average for most DBA/Devs in ability, time availabily, and desire.
Where in there do you propose someone who's trying to keep up with the product, learn all the ins and outs of the in depth components of the product, and do their real job come up with the time to do the same with another major piece of the development cycle? I've been doing this 10 years, and I'll admit I'm not always gung-ho about keeping up my training. Usually I'm just exhausted from work and my brain wants to take a Tequila vacation for an evening... or my gf would REALLY like it if I didn't bring a tome out to the restaurant for dinner.
From my perspective, the people you're speaking about don't work in databases, they're dedicated to computers in general, or are gifted far beyond the rest of us. For many in the industry it's a fight just to stay current, never mind figure out the nuances of NUMA (as an example) beyond: "It multiplies these counters in the monitor, and we need to change this and this... the white paper says so." I'm afraid this is something we'll probably go round and round on. You speak of the occasional god, I'm talking to the staff.
- Craig Farrell
Never stop learning, even if it hurts. Ego bruises are practically mandatory as you learn unless you've never risked enough to make a mistake. For better assistance in answering your questions | Forum Netiquette
For index/tuning help, follow these directions. |Tally TablesTwitter: @AnyWayDBA