I have been asked twice in the past two weeks how someone can get started with SQL Server. This seems like such an easy question but I don't feel like I am providing them with the right response so I am turning to the community for support. My advice was to download SQL Server Express, SSMS, and Adventureworks. I then recommend a basic T-SQL book that will teach selects, updates, inserts, deletes, etc - the basics to get them going. I then recommend a few sites such as SSC, MSSQL Tips, SQL Skills for research and articles. A guy I was talking to today asked about projects, or labs to do with Adventureworks to teach some real world type stuff. This was a hard question for me as my experience came from Real World stuff. I am the accidental DBA who just had to start working with it, no formal training until after doing DBA tasks for 10 years. As a Database Professional who is active in the SQL Community, how can I better coach and instruct the up and coming future DBA's who are looking to me for direction. It is so much easier for me to coach a Jr DBA, but for some reason I am stumped with the person who barely knows what SQL Server is.
For me the need to learn something is driven by another need. If someone is self studying SQL Server then there can be a lack of purpose so my suggestion would be to imagine a business case that needs a SQL solution. I think I have mentioned before in an answer to a different question that picking something close to you such as a hobby can make the work easier to comprehend. As an example start by writing a database to catalogue your DVD collection may be? Once that is in place (with normalised tables for Directors, Actors, Studios, Genres, etc) then you can expand the project to become a DVD lending library so you need to add the ability to have more than one copy of a film and also have customers and so on. Building on something that is familiar along with something that has a need and a purpose means you have a project that will incorporate lots of parts of SQL Server and finding out how to solve the problems will accomplish the learning/teaching. Also, get them on to this forum and we'll help along.
All your suggestions are great. Other things that come to mind are SQL Saturdays. I am not sure where you live but the training is free and a great place to "catch the SQL bug" :) Here is the site. Look for one near you.
http://www.sqlsaturday.com/ I would also add looking for a SQL Server user group in your town. Most can be found here.
http://www.sqlpass.org/PASSChapters.aspx In addition, when I first started talking to my son about databases I talked about things he could relate too. Perhaps that would be a good place to start. Like family budgets, family member birthdays, or speacial events. I think it's great you are trying to help. Just another sign of how the SQL community continues to rock! Cheers!
I think you covered the basics, and sqlaj had a couple of good additions. Just to be a little more specific, for people that barely know what SQL is, I would recommend The Manga Guide to Databases. It is definitely a little bit goofy, but it provides a surprisingly good primer and it assumes no knowledge databases at all. It certainly won't take anyone from beginner to pro, but it will take someone who has never heard of a database at all to the beginner stage. I would also look at
simple-talk.com along with the sites you recommended. One other thing that I know some will disagree with, but the moment I decided to learn SQL, I started prepping for the certification exams. I did this primarily because it gave me a structure to my studies and a goal to aim for. I know that those things don't matter to some people, but I found the goal helped me stay motivated and the structure kept me moving forward.
The only thing I would add is that PASS is generally very US-centric - there isn't much activity outside of the US. There are local organisations, for example in the UK we have [SQLServerFAQ] for user groups and [SQL Bits] as our conference... Another thing that hasn't been mentioned is forums... Obviously the fact that you are reading this text means that you've already found / engaged with a forum in some sense - but the act of having to ask your question in a sensible and answerable manner can actually be a great help... :
I would also suggest the person try to shadow a DBA and see what they do on a daily basis. When a DBA is working on a project they could sit beside them and the DBA could explain some of the things they are doing.