I was reading Denis Gobo’s blog the other day on phone interviews and the last question on his list of questions to ask during a phone interview stuck with me. It is not because I have never heard this question before or that I did not have an answer to it, it was because I was on a phone call with someone at Microsoft right before reading this post and the question came up during the conversation. I was basically describing the strength of Solid Quality’s mentors when the Microsoft person asked: How do your mentors learn new stuff about SQL Server since you are the ones that help us out with education others about SQL Server.
So my question is “How do you improve your skillset”? Are you like the many DBAs I have come across that basically only improve when they encounter something new at work and have to figure it out? Or are you like the few people out there that actually consume as much information about SQL Server they can get their hands on? Do you take classes expecting the material in the class to answer every question you have or do you take classes expecting the material and instructor to lead you down a path of independent research that will answer your questions? Do you read about SQL Server either through books, blog postings, or online articles or do you actually study the material?
Do you make use of classes you attend?
Too often people expect to take a week long class and come away with only answers and no further questions. They often feel that the trainer let them down if questions left over at the end of the class that could not be answered. This leads many training providers to provide a series of what I call “water-down” classes that answers a few basic questions about SQL Server without providing an opportunity for the students to hear about all the different pathways of technology that exists in this complex database application, which may actually lead to other questions that the course is not designed to handle. Sure if you are an absolute beginner, some of these classes are fine. If you are a database administrator with a few years of experience under your belt, these classes often leave you with a “this that all” feeling in your stomach after spending all week taking the class.
Having written a few advanced level classes and delivered dozens more, I have come to the realization that the ultimate goal of any class should not be that of trying to teach the students everything they need to know about topic A. You will always fail if that is the goal. It should be to lead the students down a pathway of instruction that will lead the student to ask more and more questions about the topic until the students are exhausted and the instructor is exhausted. The worth of the instructor will be the number of levels of questions that they can answer about the topic before coming to the end of their knowledge. A level 1 instructor may only know what is in the instructor’s manual, but most instructors delivering advanced level training should have a large body of experience on the topic and should be able to answer questions on multiple levels and give examples to support their answers. Your goal as the student of the class is to take the instructor down through as many levels of the topics as you can, don’t expect free consulting, but do expect the instructor to be able to relate the material to your environment in such a way that it leads you to ask a few more questions. An example would be if you are talking about memory and the instructor mentions “MemToLeave”. You should make sure the topic is covered by asking what it is, how is it configured, how do you see it, how does SQL Server components interact with it, is there a difference between 32-bit and 64-bit, what errors crop up that point to this, and does knowledge of this affect my understanding of my current or past environments?
At some point in time, the instructor should start saying “I don’t know”. I know most of the “experts” out there and anyone who refuses to state that they do not know something is either too arrogant to be an instructor and probably do not know as much as they think they do or they really do not know enough about the subject to know that there is something deeper to know about the subject. The old saying “you don’t know enough to know that you do not know enough” is often the case when dealing with many “people out there and is especially true with many database administrators.
How was the material and instructor for the last class you sat through? And most importantly, did you spend the majority of the class asking questions or did you just sit there and listened to the instructor repeat what was on the slides or in the manual?
Read or Study
Do you read information on SQL Server all the time or do you actually study the information? Over the course of my career, I have read thousands and thousands of pages of SQL Server material but probably have only really studied a few hundred pages. What is the difference? The difference is reading and studying a topic is taking the information you have just read about and saying “Oh, that’s what that is” and taking the information you just read and spending the next hour, day, or week digging into your SQL Server learning about the topic through hands-on exploration. A lot of people read, very few actually study and if you need to know the information a month or year later, it is those who have studied the information that may actually remember it enough to utilize it to solve their problem or simply to have a flag pop up in their mind that says “What a minute, I remember something about this”. Readers rarely remember enough a year later to make use of it to solve a problem and usually find themselves having to read something over and over again each time they need it.
Another example of reading versus studying would be when someone states a “fact” about a topic in SQL Server. What is a “fact” about SQL Server? Try this one: “Creating clustered indexes on your tables dramatically increases the number of page splits you have during inserts or updates”. You should then try to prove that “fact” with your own examples and research. Is this true for your system? How do you know it is or is not true? What method can you create that will prove or disprove this “fact”? What other information did you learn from the act of proving or disproving this “fact”? The simple act of questioning everything will often lead you to discover stuff about SQL Server that you never really knew existed.
Well enough of my disjointed ramblings about improving skillsets and if you noticed, I really didn’t answer the question on how I improve my skillset. To answer this question, I improve my skills by independent research. I keep a long list of questions on SQL Server that I do not know the answer to, questions come from students, my own research, reading books, blogs, etc. Whenever I have a chance I try to answer those questions through a little hands-on research, bugging someone that may know the answer or hoping the question is answered from reading about the subject in many different formats and having that moment we often get “Oh, that’s how it really works”. Often I find my list of questions growing and growing with no end in sight but hey, having my list grow and grow is actually telling me that I still care enough about my skills to ask questions. When I do not have any questions on my list, I take this as a sign I am burned out and need to take a break and energize myself again.