Category: Blog

  • The Lighter Side of Technical Interview Questions

    I hate those puzzle type interview questions. I am sure that they show some level of aptitude about something, but I’m not typically a puzzle person. I’m a let’s solve this person, and I rarely figure out the answers.

    Someone send me this interview text, which supposes that someone tried one of those questions on Nobel Prize winner Richard Feynman. It’s rather humorous.

    Note that I wouldn’t recommend this. Likely your application would be scrapped by the second or third answer you gave to this.

  • MCM – The Knowledge Exam

    I recently took the knowledge exam, and I loved it. I thought it was a great exam. I have taken ten or twelve Microsoft exams and this was the first time that I crossed the two hour mark in an exam. Actually, with my time to review the questions and the comment period, I was in the testing room for the full three and a half hours.

    The exam is covered by an NDA, as all exams, but I think this exam has the potential to really mean something in the real world as people learn more about what knowledge and skills it requires, and the people that pass the exam show off their knowledge in a variety of ways. I can’t go into much detail, but I do want to tell you a little about the experience.

    Note: I cleared this post with the MCM people to be sure I didn’t disclose any information

    The Exam Experience

    I took my exam at a standard Prometric testing center, with people in the room with me working on other Microsoft tests, A+ certifications, Cisco exams, etc. The only difference I noticed in registering was that there were only two test centers in Colorado offering the test. I ended up at a center that was 3 or 4 miles away from the center where I have taken other tests in years past. That surprised me for the knowledge exam as it didn’t seem different in format than other exams.

    As in the past, I had to empty my pockets, putting my wallet, phone, money, etc. in a locker. I did take two dry erase sheets of paper, two markers, and my ID into the room. I had a testing cube in a room with a dozen others, and as a nice touch, there were some soundproof headphones to wear, allowing me to block out other sound. It was a little annoying to wear over 3 hours, but they were nice to prevent interruptions as people came into and left the room.

    The testing engine was the standard Prometric module, a Windows 3.1-era looking set of windows that presented questions with multiple choice answers, allowed you to mark a question for review, move forward and backward through the  test bank, and had an exhibit button at the bottom when there was a relevant image to view for the question. Some questions have a single answer, some have multiple answers and there are radio buttons or checkboxes available to mark on the screen.

    As I take an exam, I work through all questions, but if I have doubts, I will mark the review button and perhaps not even answer the question, coming back to it at the end of the first run through the exam.

    With this exam I marked every question for review, even if I thought I knew the answer.

    I read every question a couple times, making a few notes here and there, trying to make sure that I understood what was being asked and what SQL Server could do, and then only then read the answers. As I read the answer, I tried to compare that particular item with the question requirements and make a decision about whether it could be true.  Once I was through all four I sometimes had one answer, and sometimes had more than one. Then the process of trying to compare the answers with each other took place, with me ending up marking one of them.

    After a few questions, I decided to keep some metrics. I can’t give you raw numbers, but I tallied the questions that I was very confident about. When I got through the exam, only skipping a few questions, I found that I felt confident in more questions than I expected, but that worked out to be about 25% of the total. So I wasn’t sure, or was sure I wasn’t sure, of 75% of the answers.

    At this point, there was a difference in other exams. The proctor had told me I could sign out and back into the exam if I needed water or the restroom. That surprised me because in the past I haven’t been allowed to leave the room during a test. However I was fairly exhausted after spending two hours going through the questions. I signed out, walked to the rest room, had a drink from the water fountain, and stood in the hall for a few minutes, trying to empty my mind. I walked back in, showed my empty pockets, and then went back to the test.

    The second time through, moving a little faster, I ended up changing about 8% of my answers, and as I re-read questions, I felt fairly confident in about 40% of my answers. There were 5% of the questions that  I just didn’t know, but overall I had more confidence at the end of the exam that I’d done well than at the beginning.

    I finished the exam, took the comment period to leave some notes for the exam authors, and then collected my “proof of testing” and left. Since this is a beta exam still I didn’t get a score and will find out how I did in the next 30 days.

    Does it test you?

    As I mentioned, I loved this exam. I think it was well written, and I’d like to see more exams written like this. Unlike in the past, where it has felt that exams focused on new features or depended on you memorizing a few things, this exam required you to deduce the answer, using your knowledge. There is no page in Books Online that will provide the answer to these questions. You have to really think about SQL Server and decide how it is used to develop a solution.

    There were about 4% of the questions that I felt were memory questions. In other words, if you had memorized some fact, you knew the answer. If you hadn’t, you didn’t. But the vast majority of questions required you to read a problem, issue, or requirement and then deduce which of the possible solutions would fit. Often I could reduce the possibilities to two, but it was hard to decide which one I thought was the better fit.

    The scenarios and requirements felt real to me. These are the types of issues you find in the real world, and while simpler in scope, they reflected the type of work you have to do as a SQL Server DBA on the storage engine. The answers were actual possibilities that you would choose to do, or look at and explain to someone else why they wouldn’t do that. It felt like this exam was written more from the practical SQL Server side than from the “make sure everyone knows how to use MDW” or “make sure we ask about Service Broker” type of questions I’ve seen on previous exams.

    There were a few typos and grammar items, which I left feedback on, and there were a few places where I felt the semantics of a question were confusing, but overall I felt this exam tested my knowledge. I’m not sure if I passed, but I wasn’t overwhelmed or underwhelmed by the exam. I got tested, and I’m glad I took it.

    The Lab

    I haven’t scheduled the lab exam, and only recently learned that if I’m one of the first xx to get through the Knowledge Exam, there are a few vouchers for the lab available. If I passed, I will probably take the lab, but if not, I don’t think I will for now. The $2000 is a steep price, but it’s also not necessarily worth the cost at this point in my career. If I were to go back to consulting, then I would make the investment, but for now I won’t use the certification and I don’t want to spend that much money for the bragging rights.

    I also don’t have the time to study for the lab. With a 6 hour window for someone to test my knowledge of SQL Server, I think I’d really need to spend a lot more time on preparation and practice with the SQL tools. As interesting as that sounds, all of the writing and presentations I’m working on, as well as daily work on SQLServerCentral keep me plenty busy.

    Prep

    I mostly watched the MCM videos on TechNet that were produced by SQLskills. I have to say that I think those videos have a great introduction in every one that explains the exam. The videos cover the breadth of the material you need to know, meaning all the possible topics, but not to the depth you need. I was glad that I had read a number of white papers, blogs, and articles on the topics since that helped me understand the questions. I was also regretting not reading a few more of them.

    I also was glad that I’ve had years of experience working with SQL Server and learning about it. I am not sure you could get a week long boot camp and get through this exam. The domain of knowledge is just too wide to cram in. And the fact that you have to think through and deduce answers means you have to really understand the information. I think this exam builds upon years of experience, though not necessarily decades. If you’ve had 4+ years of work with SQL Server, and worked on a variety of problems and technologies within SQL Server, you just need to make sure you are comfortable knowing where each technology can be used, and how to implement it to solve a problem.

    The Takeaway

    As with building a presentation, this exam forced me to learn more. The pressure I put on myself to make an honest effort to study forced me to dive more deeply in topics that I know something about, knew the theory, but not the details. I had to learn a lot more about Resource Governor, Service Broker, Extended Events, SQL CLR, and more in a way that I hadn’t bothered in the past.

    I also think that most of this knowledge, whether I passed the exam or not, is valuable information that I can use to work on SQL Server systems. Hearing the lectures from Paul Randal, Kimberly Tripp and the rest of the SQLskills team made me more interested in attending one of their Immersion events. I felt that the examples and analogies they used in the videos, while simplified, were not overly contrived. They were based on the situations that someone would find in their daily work, or at least, could find in their daily work. Hopefully most of you don’t experience disaster recovery events on a regular basis, but understanding how some of the internals work, how some of the technology is implemented, can help you better plan for those rare events that likely will occur at some point.

    This exam is built for someone with experience, years of experience managing, configuring, and tuning the database engine in SQL Server. It’s worth pursuing if you want an accomplishment you can be proud of, but the preparation and training you can get for this exam will be worth your time since it will be useful on a regular basis for the rest of your career.

  • SQL Source Control Webinar

    The 8th SQLServerCentral webinar, featuring SQL Source Control, is coming in a couple weeks. I’ll be hosting again, and this time my good friend, Andy Leonard, will talk about lifecycle management and source control as a part of that.

    You can register here.

    I believe in source control, mostly as a way of organizing the work of many different people and providing some insurance. It’s not often that I’ve rolled things back, mostly because I’m loathe to check things in that don’t work, but I have had to track down changes from older versions when a deployment didn’t go well, or someone quit and we weren’t sure what they had changed in code.

    SQL Compare would help somewhat here, but it has been more convenient for me to use Source Control systems, primarily Visual SourceSafe in the past.

    I haven’t seen this presentation from Andy, but I like hearing him talk, and I’ve been impressed with other talks he’s given in the past.

    Don’t forget to register here for the webinar on Mar 24, 2011. It’s at 5pm GMT, which is a nice, not-too-early 10:00am MST for me.

  • T-SQL Tuesday #016 – Aggregation

    It’s that time of month again, time for Adam Machanic’s (Twitter | Blog) T-SQL Tuesday blog party. This month the party is hosted by Jes Borland (blog | @grrl_geek) and the topic is Aggregation.

    And I’m late.

    I planned on doing this yesterday, I really did, but I got busy and had to let it slide. A quick story, just to participate in the party.

    The Ordering Report

    Years ago I worked for a company that imported products from overseas. We imported wood products, and it was an interesting business. Mostly because the products we imported were not uniform. A sheet of 4’ x 8’ plywood, made of an Oak that is imported from South America, might not be the same as one imported from Africa. Even if it’s the same species, we had many customers that would only want one or the other.

    We even had customers that would want wood from one mill, but not another. Add to that the fact that your inventory is often sold in advance, while it’s being milled or shipped (literally on ships) from overseas. That meant that there were times when our any supply chain issues would cause our inventory to vary dramatically, with “available” dates sliding all over the place.

    Needless to say, it was a complicated process, but my boss wanted an ordering report to help the supply department decide how much of each product to order. It was a somewhat important process since the trees sometimes were not cut until a purchase order was sent from the US.

    I built the report, which used a rolling average of usage from the previous 3 months, along with factors from the previous few years to account for the seasonal nature of our customers and aggregated SUMs and AVGs across our product line. The report was deployed, and sure enough, I had my boss and the lead supply manager in my office complaining the next day.

    Apparently my report was “broken” since they both had run the same report, same parameters, and had gotten different numbers. I spent days checking the aggregations, sure that somewhere I had a calculation error that would come up with certain parameters. Eventually I realized that the constant inventory shifts were actually affecting the reporting. A simple explanation, but not a good reason for my boss.

    My solution? I decided that the daily inventory shifts, which were sometimes reversed by salesman just as quickly as they were made, weren’t helping matters. Instead I built a job that ran every night and pre-populated a table with all the aggregations needed for all products. Essentially simulating a simple cube, with limited measures for aggregation. The report ran against this table, and was the same for each day, all throughout the day, for all people that used it.

    After a few months of using the report, and comparing it’s recommendations to the previous guesses made by the supply department, they decided that it was good enough for them and the daily aggregation was close enough for them to use.

    Two added benefits to my overnight aggregation? First, the report would run quicker since all the aggregations were done overnight and not on the fly. Second? We could allow the people in the department to add an “adjustment” to the recommended order, raising or lowering the amount, and then store that value. Essentially making an interactive report that everyone in the department could see.