Getting Started in SQL Server

  • FargoUT (12/10/2010)


    This was an excellent article! I even forwarded it on to the manager of a company who was asking me for help in determining what sort of skill requirements someone should have so he could screen out potential applicants.

    Craig, an accolade better than this just doesn't exist!

    Excellent article!

    Wayne
    Microsoft Certified Master: SQL Server 2008
    Author - SQL Server T-SQL Recipes


    If you can't explain to another person how the code that you're copying from the internet works, then DON'T USE IT on a production system! After all, you will be the one supporting it!
    Links:
    For better assistance in answering your questions
    Performance Problems
    Common date/time routines
    Understanding and Using APPLY Part 1 & Part 2

  • I loved the article. If only I've read something like this sooner, I wouldn't be in the situation I'm in. Oh well, at least I know what to go for and work on. πŸ˜€

    Thank you for this article.

  • Very well written article, even someone of 10+ years experience its nice to read something and think, I haven't touched on that area of SQL for a while (or even not at all) maybe I should go and read up and see what's new.

    qh

    [font="Tahoma"]Who looks outside, dreams; who looks inside, awakes. – Carl Jung.[/font]
  • quackhandle1975 (3/16/2011)


    Very well written article, even someone of 10+ years experience its nice to read something and think, I haven't touched on that area of SQL for a while (or even not at all) maybe I should go and read up and see what's new.

    qh

    Thanks for the kind words, qh.


    - 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[/url] | Forum Netiquette
    For index/tuning help, follow these directions.[/url] |Tally Tables[/url]

    Twitter: @AnyWayDBA

  • 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. (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?])

    But there are a couple (or a couple of couples) of things in it that I don't really agree with, although mostly the disagreement is minor.

    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 what we might call a "trainee DBA" or a "trainee database developer" with pretty well no knowledge at all of databases. This is partly because we know that most UK Universities don't teach anything about databases in their CS degrees (or at least, not anyting more that you could easily teach in third grade) so people with CS qualifications usually don't know anything about databases (or at least nothing practical - they may learn some abstruse theoretical stuff, but not how it fits to the real world). And it's partly because many people (including me) remember that 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 a Music degree, or a Mechanical Engineering degree, or a French Literature degree, or a Maths degree, or a Literae Humaniores degree or even no degree at all and 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). 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.

    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.

    Also, I think you are missing what is really the top technical level; this is the guy who is perfectly happy when he hasn't a clue how to do something, who doesn't care if he has to look things up or consult someone because he doesn't have the expertise, but also doesn't care if 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. Maybe that's level V? 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?

    Finally, I accuse you of telling people to shoot too low: Database Architect "is an end goal for a career". 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?

    Tom

  • 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! :w00t:

    (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. πŸ˜€

    (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[/url] | Forum Netiquette
    For index/tuning help, follow these directions.[/url] |Tally Tables[/url]

    Twitter: @AnyWayDBA

  • Well done article. Initially when I saw the header, I thought this is the kind of Howto Article that makes me visit this site but it turned out to be rather useful advice. I have been supporting SQL-based applications with limited touches on the backend SQLserver itself, until I ended up supporting smaller SQLserver mini-data warehouse that I'm constantly pulling mailing list or other reporting. I kept relying on SQLserverCentral.comj's different STAIRWAYS. πŸ˜€

  • Thanks for the kind words. I'm glad folks are still getting use from this article.


    - 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[/url] | Forum Netiquette
    For index/tuning help, follow these directions.[/url] |Tally Tables[/url]

    Twitter: @AnyWayDBA

  • Evil Kraig F (10/28/2011)


    I figure I'm about average for most DBA/Devs in ability, time availabily, and desire.

    I'm glad they republished this article. Very well written, Craig.

    As to the quote from more than 2 years ago and it's really not my job to judge but, you, good Sir, were head and shoulders above most folks that I've met that claim to be 8's and 9's in SQL Server even "way back" in 2011. That doesn't make either one of us a 10 but you really don't give yourself enough credit even to this day. πŸ˜‰

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Thanks for this article. I'm going to use it to explain (actually as evidence) that what I've been saying about what a DBA really does is true. I hired in as a DBA and everyone agrees that's what I am yet it has been impossible (it's been five months) to get access to the database servers so that I can do my job. The servers have been idle while I develop systems on my laptop. They have other windows stuff and personal email stuff on these servers so maybe that's why they're reluctant. Who knows. There's enough of a work backlog in numerous areas so I've been able to do development, design and architecture work, and SSRS reports but all served from my laptop. Really. No one has technical background to know what privileges I should be allowed so they are very reluctant to let me have what I need. Ruins the job - I thought I was getting into the ground floor of a start up. I have 20 years of DBA experience (Oracle/SQL Server) so that's not why they're nervous.

    All that to say that if anything can help, showing them your article will, because it explains exactly what I want them to know about what a DBA does and shows that there's a lot more to it than they think. They are familiar with Microsoft Access so the concepts of having to manage anything for a database is completely foreign to them.

    Again, thanks!

  • Pharmkittie: Good luck! Situations like that are another side of why I'd written the article, for anyone who just didn't understand what our jobs really looked like. I'm very glad that this still has pertinence years later. I probably should attempt at some point to update the SSAS/RS region, but I still haven't seen anything significant nailed down about that region. I haven't had a chance to work in the BI arena. I've been lucky/stagnant at the same contract for a long time now.

    Jeff: :blush: Thank you.


    - 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[/url] | Forum Netiquette
    For index/tuning help, follow these directions.[/url] |Tally Tables[/url]

    Twitter: @AnyWayDBA

Viewing 11 posts - 31 through 40 (of 40 total)

You must be logged in to reply to this topic. Login to reply