Archive for Community

Spreading your Wings: Seven Tips to Help Find a New Job

ButterFlyJust as a butterfly takes time to change from a caterpillar, I too have been changing this year. I had a set of goals that started forming last July and were solidified by December. Now I’m ready to take flight on one of those goals.

I started looking for a new job last July, but I realized I wasn’t quite ready to leave my team. In February I started actively looking again. I have spent the last five moths looking and I can now say I am the proud owner of a cool new job. I start right after my two week vacation which starts today. (And there was much rejoicing.)

I will miss my current team, but my new job is close enough to still have lunch with them and they do attend the OC SQL User Group meetings.

I wanted to share with you my journey and the seven tips I found most helpful.

Tip 1: I made a list and I checked it twice

I’m a detail person with OCD tendencies. So I made a list. As I’ve mentioned before that I like mind maps, so I created one for my dream job. It had everything I wanted, including things like the size of the company, the size of the team, and things I didn’t want to be responsible for. (Knowing what you don’t want to be is as important as knowing what you do want to be.)

Here is a list of things to consider for your list:

  • What is the ideal company size?
  • What is the ideal team size?
  • How much overtime are you willing to endure?
  • Are you willing to support a 24 hour uptime?
  • What parts of SQL Server or other products do you want to work with?
  • What parts of SQL Server or other products do you not want to work with?
  • How old can the technology be?
  • What are you willing to give up so that you can have other items from your wish list for new job?
  • What kind of commute are you willing to endure?

Tip 2: I found a Mentor

I am a strong proponent of a having ( or being ) a mentor and I blogged about it here. I knew I was going to start looking for a new job in February, so I started looking for a mentor in December. That allowed me to find one that could help me figure out how to get a new job. You see, this is the FIRST job where I didn’t have an “in”. I knew someone at all the other places I’ve worked.

Here are some of things my mentor helped me with:

  • He gave me advice on where to look for jobs.
  • He gave me advice on areas I should read up on that would help round out my current skill set.
  • He also kept reminding me to blog. This was probably the best advice he gave, because it came up in my interview.

I wanted to make sure I was qualified for the dream job I wanted so I had him quiz me. (Yes, I passed.)

Tip 3: I signed up for job alerts

I found that Indeed.com had the best search engine. What they do is they get feeds from other job search websites and compile them into a single list. You can set up several alerts and they’ll email you with new entries that match your criteria. Other websites have this same feature, but I found them to be inaccurate. One of them actually sent me jobs that had absolutely nothing to do with my skill set.

Here are some tips:

  • I created a temporary email address just for recruiters and the job search websites. Now that I have a job I don’t have to worry about my normal email being flooded by recruiters who are still trying to find me a job.
  • I created job search alerts on multiple sites, but Indeed.com was the best.
  • I created a job search that had keywords I wanted (like SQL and Database Developer) and I excluded words in the search as well (Oracle is not for me).
  • I created an additional job search that also included a minimum salary. This was always my first email to read, and it’s the email that I found my new job.

Tip 4: I networked

This might be hard for some people, but networking is a great tool. You can network with your past teammates through lunches or LinkedIn. You can attend user group meetings and talk to the other attendees. Here is a link to find a local PASS chapter. Networking also helps you refine your wish list and weed out things you hadn’t considered, but came up in conversations. While networking didn’t find me my new job, I did get to spend time with past colleagues and they did try to get my foot in the door. It just wasn’t meant to be.

Tip 5: I blogged about my everyday accomplishments

My mentor was very adamant about this, and I’m so glad he was. If he hadn’t seen a post from me in two weeks, then he reminded me to write one… on anything. I did make sure I participated in in the T-SQL Tuesday blog party every month. I found the best way to find out who the current host of the blog part was to look up the twitter hash tag, #TSQL2sday.

Why, you may ask, was this such a great idea? Well, it was brought up in my interview. “Mickey, I was going to ask you about sub-queries, but I read about it in your latest post.” There was at least one other interview question covered on my blog as well. (That was really awesome by the way.)

It also gives you a great reference for your abilities.

Tip 6: I asked questions

Before I went to my first interview I researched questions I should ask. I Googled questions to ask, I asked my mentor, and I went through my wish list to create a list of questions to ask at my interviews.

Here are few of my questions

  • What would an average week look like for me?
  • What tools do you use besides SSMS? (This was very important to me since I’m a Red Gate junkie.)
  • What are you looking for in an employee?
  • How many databases do you have and what are their sizes and versions?

On my second interview I asked: Is there anything that stands out that might make you think I’m not a good candidate? That was a hard question to ask. I actually read it to them. They were impressed. They had to think about it. After they answered it, they turned the table and asked me the same question. It turned out we had the same concern, I would be moving from a HUGE company down to a SMALL company. But, that is also an attribute we were both very excited about. They like the fact I like structure. It’s something they want to (slowly) move too. And I want to be at a small company. That was on my wish list.

Tip 7: I was picky

I did work with a couple of recruiters, but their attention span wasn’t the best. My mentor called them “a necessary evil” and I agree. Whenever they called, I would only be willing to set up an interview if the potential job met my wish list to my satisfaction. I also was picky about what time of day I was willing to meet for interviews since I still had a day job.  There was one job that looked perfect on paper, but they neglected to list DB admin duties and I was only interviewing for DB developer positions. They were really interested in me and I in them, but I stuck to my guns and passed on a second interview.

I’m glad I did, because my new job was worth the wait.

T-SQL Tuesday #44 – Whoa. Déjà Vu…It Happens When They Change Something

 

Bradley Balls  (b|t) is hosting this month’s T-SQL Tuesday blog party. The party was started by Adam Machanic (b|t) in December of 2009.  The topic this month is Second Chances. Bradley has asked us to write about something we would like to have changed if we were given a second chance. I’m going to write about something that I actually was given a second chance to do differently.
Setting the stage


[Neo sees a black cat walk by them, and then a similar black cat walk by them just like the first one]
Neo: Whoa. Déjà vu.
[Everyone freezes right in their tracks]
Trinity: What did you just say?
Neo: Nothing. Just had a little déjà vu.
Trinity: What did you see?
Cypher: What happened?
Neo: A black cat went past us, and then another that looked just like it.
Trinity: How much like it? Was it the same cat?
Neo: It might have been. I’m not sure.
Morpheus: Switch! Apoc!
Neo: What is it?
Trinity: A déjà vu is usually a glitch in the Matrix. It happens when they change something.


The Matrix (1999)

First past

This is an ironic topic. Today is the last day at my current job and the topic I’ve chosen to write about has to do with one my first assignments four and half years ago. I first arrived at my company in January. Do you know what happens in January? The Sales Team has a new structure that needs to be applied to all of their reports as of yesterday. That particular year, they added a new layer to their hierarchy. The database model couldn’t handle it and neither could the reports. I proposed a new model using recursion, both in the database model and in the reports and it was approved. It proved to provide flexibility in the years to come. It had one flaw remaining though. It had maintained the current practice of assigning Clients to Sales People. That doesn’t sound too bad, until you know that when a Sales Person leaves, all of their Client records have to be updated… one by one by someone in sales. It also caused problems when there wasn’t a Sales Person available to assign to the clients right away.

Changing direction

This past January I had an opportunity to improve upon my original design. I simply changed directions. In the past, each Client had a Sales Person and each Sales Person had a Territory. Now, each Client has a Territory and each Territory has a Sales Person. If someone leaves, only ONE Territory record needs to be updated with a new Sales Person. If a new Sales Person is not available, then the Territory still shows up in the reports. This change was completely transparent to the report users.

I created a sample database model to show the relationships.

TSQLTuesday44 - DB Model

Data Model Created in Erwin

The cherry on top

The best part came a month after the new model was implemented. The Sales Team needed to have a single Sales Person represent different Territories in different Parent Territories. That was not possible with the old model. A Sales Person could only have one Territory, but with the new model it was possible… and it was already in place.

Thanks for all the fish

Thanks go out to Bradley Balls for hosting this months T-SQL Tuesday blog party. Please visit his website at http://www.sqlballs.com.

T-SQL Tuesday #43: Give Me a Key Lookup Operator for $1200, Please

My good friend Rob Farley (b|t) is hosting this month’s T-SQL Tuesday blog party. The party was started by Adam Machanic (b|t) in December of 2009.  The topic this month is on Plan Operators that are used in execution plans to tell us how the Optimizer is going to run our query statements.

What is a Key Lookup Operator?

The Optimizer uses indexes to retrieve the fields needed from a table. If there are missing fields in the index being used, then the Optimizer has to go back to the Clustered Index to get the other fields. This has to be done for every row in the table. This action is noted in the execution plan by the Key Lookup Operator. The RID Lookup Operator is used instead of the Key Lookup Operator when a Clustered Index is not used and a Heap is used instead.

Show Me the Money

For my example I used the AdventureWorks2008R2 database. I ran the following query and looked at the execution plan.

SELECT
	c.CustomerID
   ,c.PersonID
   ,c.StoreID
   ,c.TerritoryID
   ,c.AccountNumber
   ,s.BusinessEntityID AS StoreID
   ,s.Name AS StoreName
   ,s.SalesPersonID
   ,st.Name AS TerritoryName
   ,st.CountryRegionCode
   ,st.[Group]
   ,st.SalesYTD
   ,st.SalesLastYear
   ,st.CostYTD
   ,st.CostLastYear
FROM
	Sales.Customer AS c
	JOIN Sales.Store AS s ON c.StoreID = s.BusinessEntityID
	JOIN Sales.SalesTerritory AS st ON c.TerritoryID = st.TerritoryID
WHERE
	c.StoreID IN (1284, 994, 1356, 1282, 992, 1358, 1280)

 

TSQLTuesday43 - KeyLookup

Two indexes were used to retrieve all the fields needed from the Sales.Customer table. The ix_Customer_StoreID index was missing the TerritoryID field so the Optimizer had to go to the PK_Customer_CustomerID Clustered Index to retrieve it. If you add the cost of both operators, then 66% of the cost of the query was used to retrieve fields from the Sales.Customer table.

For reference I removed the Clustered Index to show you what the execution plan would look like when a Heap is involved.

TSQLTuesday43 - RIDLookup

 

Since there was already a good index for the Customer table, I added the TerritoryID to the INCLUDE part of the index script. This turned the index into a covering index. A covering index is an index that contains all the fields from a table that are needed by a query statement. The INCLUDE part of an index allow extra fields to be part of the index, without the overhead of the data being sorted. Any fields that are part of predicates or filters should be part of the index, all other fields from the table should be part of the INCLUDE. Be cautious though, don’t throw the whole kitchen sink there. Those fields still take up space.

TSQLTuesday43 - Index

When I ran the execution plan again, I saw that the Key Lookup Operator was removed and the total cost to retrieve the fields from the Customer table was now reduced to 12%. This would also be true if the table was using a Heap instead of a Clustered Index.

TSQLTuesday43 - CoveringIndex

The Bottom Line

When you see a Key Lookup Operator or a  RID Lookup Operator, look to see if it makes sense to modify the corresponding index to be a covering index.

Thanks for all the fish

Thanks go out to Rob Farley for hosting this month’s T-SQL Tuesday blog party. Please visit Rob’s blog at http://sqlblog.com/blogs/rob_farley/default.aspx.

Shameless Plug for Grant Fritchey’s (b|t) Book: SQL Server Execution Plans, Second EditionYup, this is a shameless plug for one of my FAVORITE books. Grant did an outstanding job on this book. He goes through the majority of the execution plan operators, discussing what they represent. He also goes into how best to read an execution plan and how changing your query can affect the operators that are shown in the execution plan. I highly recommend adding this book to your collection if you don’t already have it.This book is available from Red Gate. You can download a FREE eBook, buy a hard copy from Amazon, or if you are lucky you can pick up a copy from a Red Gate event.

 

T-SQL Tuesday #42 – My Journey on a Roller Coaster

Wendy Pastrick (b|t) is hosting this month’s T-SQL Tuesday blog party. The party was started by Adam Machanic (b|t) in December of 2009. The topic this month is on the Long and Winding Road.

Anticipation of the roller coaster

Today is T-SQL Tuesday, literally. I’m sitting in Mother’s Market Cafe, drinking my coffee and succumbing to the fact that I should be part of this month’s blog party. You see, I wasn’t going to write this month. I didn’t know what to say, but then I read Pat Wright’s (b|t) T-SQL Tuesday’s post and I was inspired to write about my journey, because it has been a tough one.

Getting on the roller coaster

I went to Cal Poly, San Luis Obispo to study Mathematics in the early 90’s. The first thing I did was sign up for a computer programming class because I knew it was going to be important, but I had no idea how important. My third year there I realized that I didn’t like my major. (Too much theory.) I struggled with the decision to study computer science or statistics. I took what I thought was the easier path, Statistics with a concentration in computer science. Pro tip: It was not the easier path, but I don’t regret it.

My first dataset I worked with was on a 10 year study of lobsters. I found that I liked data. I also found that I absolutely loved the one whole database design class that was available. I graduated in 1994 without a job. Why? Because jobs were scarce in the field of statistics where I was moving to and Dice and Monster had yet to be written. I did however have an opportunity to teach… computer programming. Specifically, Microsoft Visual Basic and I liked it.

The roller coaster goes up

As time went on I went from teaching to consulting. I liked programming, but I wasn’t in love with it. I did love writing SQL and I was good at it. I kept finding myself on the teams who wrote the business objects. Once in a while I would even get a say in the database design.

The roller coaster goes down

While I did enjoy writing business objects and SQL, I did not like the way I was treated by some of my colleagues and even a manager that I had. As my self-esteem was walked all over by these people, I got more and more dejected. After I had my second beautiful daughter I decided I was through with IT and that I would never return. (Ominous music played here.)

I went back to college to be a high school Mathematics teacher… And that didn’t work out too well for me, so I went back to what I knew best, computer programming. With my self-esteem low I took a position I was over qualified for. I met some great programmers at this new company and some real big jerks whom we shall not talk about. After three years I left the company.

The roller coaster banks left

I had always wanted to pursue being an artist and this seemed to be an opportunity to do so. I was able to pursue being a jewelry designer and a glass artist for three years before reality started to set back in that the private education my daughters were enjoying cost money. Money that my art was not bringing in. Pro tip: This is not the profession to get into during a recession. I had to go back… and I didn’t want to.

The roller coaster goes up

I refused to go back to being a VB.net programmer. What else was there? A friend of mine had a position at his company authoring reports. He needed someone to come in and convert old Crystal Reports to SSRS reports and to author new ones.  I had worked with both Crystal Reports and SSRS in the past so I accepted the job. The most amazing thing happened. I enjoyed my work and there wasn’t anyone tearing me down. In fact, there was someone on the team who took the time to rebuild my self-esteem and I am so happy he did.

The roller coaster goes faster

A year ago I realized that I wanted to learn more about writing better queries, data warehouse design, SSAS, and everything else about the SQL Server stack that I could absorb. I started attending a few conferences. I started looking for user groups and blogs to read. And the cherry on top was finding our SQL Family who encouraged me to start teaching again. This is the best ride ever.

Retrospective

How does this tie into technology? Well, it’s more about how we tie into technology. Different personalities tie into different professions. Twelve years of my career were spent working with the wrong technology. I shouldn’t have pursued computer programming for all those years, but database programming. Unfortunately, back then you had to do the database administration as well as the database programming and the administrators life is not for me.

As I move forward with my career I am eager to learn more about the SQL Server stack and to build relationships within the SQL Server community. I also look forward to how the SQL Server stack continues to change to the meet the needs of the world.

Thanks for all the fish

Thanks go out to Wendy for hosting this months T-SQL Tuesday blog party. Please visit her website at http://wendyverse.blogspot.com.

T-SQL Tuesday #41–It All Started with A Flower

T-sql Tuesday
Bob Pusateri (B|T) is hosting this month’s T-SQL Tuesday blog party. (Thank you Bob!) The party was originally started by Adam Machanic (B|T) just over three years ago. The topic this month is “Presenting and Loving It”. This is an interesting question for me, because it touches most of my life.

For those that know me, I’m very artistic, in fact I have an art minor and even tried to be a full time artist for a couple of years. The first time I remember teaching others about a topic, was in 6th grade. I taught my class how to make paper flowers by cutting out individual petals. Answering the class’ questions was my favorite part of the presentation.

Jump to 1994, which is when I graduated from college. Jobs were not the easiest to find. Probably because Dice.com hadn’t been written yet. So my first job out of college was teaching Microsoft Office to professionals, and within six months I became an MCT. I taught Visual Basic for two years before the travel got to me. I had some great classes and some boring classes, but I don’t think it was as exciting as presenting at SQL Saturdays.

At the beginning I found that most of the students in the classes were not very engaging. It was like pulling teeth to get them to ask questions or even to voluntarily answer the review questions. So I devised a plan. I brought a bag of Hershey’s Miniatures and I tossed them to the students who asked questions. Let me tell you, by Friday they were all asking questions. As time went on, I tried other things. I brought in monopoly money and handed out a pink $5 for leading questions. They loved that too, but the best idea was my version of Jeopardy. I divided the class into two teams and they had to name each other. Then they answered the review questions and any questions I made up as a team. Now I had team spirit, cooperation, and fun in my class. The best was the class that named each other “The Banana Slugs” and “The Sage Hens”. (Why sage hens? Because if you scare them, they can die. True story.) That one week class had so much fun that one of them wrote me a letter thanking me. But speaking at SQL Saturday is still better.

In 2002 I was so fed up with the way I was treated as a programmer that I tried to leave the field. I had always wanted to teach math, so I went back to college that spring and taught high school algebra that summer. (What was I thinking?) Presenting at SQL Saturdays is WAY better than that.

Which brings me to 2013 and SQL Saturdays. At SQL Saturday I get to present on whatever I want, providing they pick my abstract of course. At SQL Saturday the only people in my class are people who want to hear what I have to say. When I was an MCT, some of my students were there because their boss made them. Nobody is forced to attend a SQL Saturday. At SQL Saturday’s I can be me because I’m representing myself, not the company I work for. This also means I can give my friends hugs, eat lunch with my friends, and not talk for five days straight.

When it comes right down to it…

The number one reason why I like presenting is the same reason as 30 years ago, I like to answer questions and teach people. (And I still like to bring chocolate to my sessions too…all though I might try bacon.)

Speaking Engagements–Engaging Speaking

71 VetteThis past September (2012) I attended my first SQL Saturday in San Diego. After the SQL Saturday event I went to the after party where I had the opportunity to network with some wonderful people. One of them being Benjamin Nevarez (b|t). He asked me if I had thought about speaking at a SQL Saturday. I told him that I wasn’t considering it for another year. He told me, “Why wait? Speak at the next SQL Saturday. There will be one in Orange County in the spring.”

I thought the idea was insane. I hadn’t done any technical speaking in years, like over 15 years….and I’ve never written my own content.  OK, once I wrote my own content, but that was also over 15 years ago.

But he got me thinking…

By November I had decided I would submit an abstract to TWO SQL Saturdays one in Orange County, and the other in San Diego in the fall. By December I had bought myself a laptop and had decided to speak at FIVE events in 2013. It’s the end of March, and guess what? I’ve already spoken twice, I will be speaking again on Thursday, and then I finally get to speak at the Orange County SQL Saturday. I added up all the possible engagements and I have a possible NINE events for the year (4 User Group Meetings, 4 SQL Saturday Events, and if I’m a lucky ducky the coup de grace… PASS Summit). I’ve also just agreed to organize and moderate a Women’s In Technology (WIT) panel for the Orange County SQL Saturday. I’ve very excited to have a panel of women talk about how to get our youth involved in STEM programs (Science Technology Engineering and Mathematics).

I’m addicted

I’ve enjoyed myself so much speaking at the events. Yes, I was nervous, but it is so gratifying to share knowledge, to help solve problems, and to watch the light bulb go on when they see how they can leverage their new found knowledge.

Where to find me this year

If you would like to hear me speak about SQL Server Reporting Services, you can find me at these events.

My Come Back From The Speaking Grave

I started my career in 1994 at a training company, QuickStart Technologies (now QuickStart Intelligence). I spent my first 2.5 years there as a Microsoft Certified Trainer (MCT) teaching Visual Basic 3.0 and 4.0 amongst other classes. I was one of their best trainers and I can thank them for that. They didn’t just hand us our Microsoft curriculum and told us to “Make it so”. They invested time and money into us. We took classes each year from outside trainers on how to give presentations. They were some of the most helpful training I’ve ever had, boring as hell, but incredibly helpful.

In 2006 I helped start and become the president of The Southern California Glass Guild for LA and Orange Counties. The training I received at QuickStart paid off. I was able to lead the monthly meetings and occasionally present on a topic.

This last weekend I had the pleasure of presenting my first SQL Saturday Session (#177) up in Silicon Valley. My presentation was on the tablix controls (Table, Matrix, List) in Reporting Services and was entitled Tablix – The Rubik Cube of Reporting Services.

When I first finished the session, I thought I had done so poorly. I had technical difficulties with my monitor which meant I had to present with my back to my audience, which I hated. …. But then something happened. My students smiled at me. They thanked me. They asked questions. They didn’t leave in the middle of my presentation.  And my friends who attend my class told me I did well. So now when I’m asked how it went, my answer is it went great.

The biggest difference between being an MCT and a SQL Saturday trainer, is the materials that you teach from. As an MCT, my materials were created for me, even my demos.  As a SQL Saturday trainer, my materials were typed by my own fingers and my demos came from my own imagination. Which meant, I had to buy a laptop because I didn’t own one. I had to think up what I wanted to talk about it and how I would get my points across. I spent 2 months on and off preparing for my one hour session, probably about 30 hours of time.

What advice would I give to a new speaker?

I would actually give this advice to anyone who wants to improve their speaking.

  • Invest time into your presentation skills. I was lucky to take classes on speaking, but if cost is an issue, then there are other ways.
    • You can join local Toast Masters group.
    • You could also have an experienced speaker critique you and give you pointers.
  • Go watch other experienced speakers, even if you aren’t interested in their topics. You are there to watch how they present and how they engage their audience. I have three favorites and if you ever get an opportunity to watch them speak, take the time to do so.
    • Grant Fritchey (b|t) – He is lively, he LOVES questions, and he has great demos.
    • Kevin Kline (b|t) – He has the best voice which means he speaks clearly, he looks at home while speaking, and I swear he uses mind control to get the slides to change. You don’t even see his hand move.
    • Jason Strate (b|t) – Jason has the same attributes that Grant and Kevin have. The first time I took a class from him, I was so impressed that I changed my schedule to take the other two classes he was teaching that day. That wouldn’t have happened if he was a bad presenter.
  • Video tape one of your presentations (make sure to get permission first). I will warn you, you won’t like looking at it, but you need to.
    • Look at your posture. Are you standing up straight? Do you look like you want to be there?
    • Look at your clothes. Are they distracting? Are they neat and clean?
    • Listen to your speech. Are you loud and clear? Do you use filler words like “um” or “like”?
    • Look at the use of your mouse and/or pointer? Are you moving it so much that a cat would pounce on it?
  • Make sure you know how long you will be speaking. (For some reason I thought I had 90 min. Nope, I had 60 min.) Bring a clock. The one on your phone is fine. I wrote down the following times on my cheat sheet. That way I didn’t have to do math in my head between remembering the next step in my demo and changing slides.
    • The time the session Started
    • The half point time
    • 10 minutes before the session ended
    • The time the session ended.

More pointers

My mentor gave me some great advice before I gave my first presentation, and on Wednesday when we meet, I know he’ll have some more for me. I’ve also observed from other great instructors some tricks that I used that worked for me.

  • Make 3 backups of your slides and demos, including the databases you need. Store them 3 different places you’ll have access to.
  • Install ZoomIt by Microsoft and practice with it.
  • Be prepared if ZoomIt doesn’t work (that is what happened to me).
  • Practice with your screen resolution at 1024 by 768.
  • Have a cheat sheet with any special code or numbers that you will be typing in your demo. Allen White (b|t) uses notepad in the background so that he can copy and paste. I LOVE this technique. It worked great for me. Nobody wants to watch you type a formula out. They want you to explain the different parts of it.
  • Look and sound confident, even when you’re nervous.

Conclusion

I know there are things I need to work on, but there always are. I enjoyed coming back from the speaking grave and teaching other’s technical content that I use and they might need. I hope that someday you can attend one of my classes.

T-SQL Tuesday #38 – There Is No Spoon

T-sql TuesdayJason Brimhall (B|T) is hosting this month’s T-SQL Tuesday blog party. (Thank you Jason!) The party was originally started by Adam Machanic (B|T) just over three years ago. The topic this month is “Standing Firm”. Jason had a great list of New Year’s words for this topic: Resolve, Resolution, and Resolute. I immediately thought of the word “Resolute” and how I am determined to have my blog be successful on my terms.

I have been given many talents, but writing “proper English” is not one of them. A simple blog post can take me hours not only to write but to reword, correct grammar and spelling, and make sure I’m consistent with my personal pronoun usage. But I am determined and Resolute about having a blog to share my knowledge and to proudly call my own. Thinking of my challenge I thought of Neo from The Matrix. He meets a prodigy at the Oracle’s home and she is bending spoons with her mind. Neo tries to bend the spoon by staring at it, but nothing happens. She tells him the secret is, “There is no spoon”. After he realizes she was correct, he is able to bend the spoon with his mind. Would he have been able to bend the spoon if he had never met her? Most likely not. He had to learn to see his reality differently so that he could achieve what he thought was impossible. Being able to write when it is not “my talent” can be approached the same way.

The first thing the “Resolute Writer” needs, is to determine where the weaknesses are and find tools to help overcome those weaknesses.

Tools For Planning

The first thing I do when I know what I’m going to write about, is I create a mind map. A mind map is a diagram that illustrates the ideas I have on a subject. All I need is a piece of paper and a pen, but since I’m a geeky girl…I use my iPad. I have this great program called Grafio. It allows me to create mind maps and save them as images. Here is the mind map for this blog post.

Mind Map T-SQL Tuesday 38

Since I love color as much as I love SQL, I color coded my mind map. The pink circle is my main topic, and the purple and aqua circles are used as my grouping mechanisms for the gray circles which contain the ideas.

Outlines are a great tool for working out the flow of a blog post. There are even products out there that turn mind maps into outlines, but I have not used them. Microsoft Word and simply numbering the circles on a mind map are other tools for creating outlines.

Ginger is a tool I use to correct not only my spelling, but also my grammar and word usage. However, it isn’t perfect. Technical languages like SQL can be challenging for Ginger, but overall I find Ginger to be a wonderful tool for me.

Help Beyond The Borders

When Neo was stuck in the train station in the third Matrix movie, he tried to will himself out just like he willed the spoon to bend. He found it difficult. I’m sure if he had been given more time, he could have willed himself out, but Trinity was willing to help get him out. Writing is no different. I can ask just about anyone in my life to proof read what I write, and sometimes I do. I had my husband Dan proof read my last blog post on Mentoring, and I had my daughter Victoria proof read this blog post.

Another way to improve my writing skills, is to write for someone else, because they will definitely have an opinion on my writing ability if it’s not up to par. For me, my first post for MS SQL Tips came out yesterday (Working With Multi-Select Parameters for SSRS Reports). I also try to visit different SQL forums to answer questions. This allows me to test my own knowledge as well as allow me to explain to someone else, with written words, how to fix their problems.

Finally I have a goal to participate in as many T-SQL Tuesday’s as possible. This gives me two things:

  1. A topic that I didn’t have to think up.
  2. A time frame to write (1 week) with a deadline ( 2nd Tuesday) that is manageable.

Follow the White Rabbit

The best thing I can do for my writing, is to be true to myself. If I’m true to myself, and my SQL code is sound, then a couple of misspelled or badly placed words won’t matter to the readers. They will remember my posts for the content.

In the end, writing is as scary as deciding between the blue pill and the red pill, but I choose the red pill and I plan to see how far down the rabbit hole I can go.

WANTED: Mentor – Inquire Within – Recruiters Need Not Apply

Mentors

A mentor is someone you can ask questions so that you can accomplish your goals. They are a sounding board for your ideas so that you can feel more confident about the direction you are going to reach your goals. It’s not the mentor’s job to tell you what to do or how to do it, but to provide guidance so that you can go down your own path. The mentor should shine a light down the path, and not carry you. Usually these goals are related to furthering your career, but they can also be more specific as well.

Being Mentored

There are many ways to be mentored. You don’t have to use only one technique at a time either. Below are a few of the techniques that I have used in the past.

  • Blogs and Forums: With the internet you can ask anything that comes to mind and there are endless answers to those questions…But which is the correct answer for you? This is a great avenue to find answers quickly, or in the middle of the night, but I don’t think this your only way to achieve your goals. Why? The internet doesn’t ask YOU questions. The internet doesn’t remind you that you are straying away from your goals. The internet won’t congratulate you when you achieve your milestones. The internet IS a great place to do research so that you figure out what goals you want to achieve.
  • Teams: Another method that I have used is the team approach. I gathered several others who had similar goals so that we could share our ideas. This is a great way to hear several ideas at one time. The others in the group might ask questions you hadn’t thought of as well. I tried this technique when I was an artist. I gathered several other artists together and we met once a month to share ideas on how to sell our art. We all worked with different mediums and our ideas on how to sell and even display our art was as diverse as the mediums we worked with. The only drawback was we were all at the same place in our careers. Sometimes we didn’t have ideas on how to get to the next level, because none of us had been there. I see the SQL PASS User Groups fulfilling this type of mentorship in my life today. I found this technique very rewarding, because as I received help, I was also helping others.
  • One on One: The traditional way, is having a one on one relationship with someone. It doesn’t have to be a long-term relationship. It can be just a couple of weeks, a couple of months, or a life time. My first mentor was a colleague at my first job out of college. We were both MCTs. He was a great speaker and programmer, and I was very shy. We would meet for lunch every two weeks and I would ask him questions on how to present better and how to be more assertive. We would discuss my questions and set goals for our next discussion. Today, 18 years later, we are working at our 4th company together.

If you live in a remote area, don’t think you can’t have a mentor. You can be mentored through email, Skype, Webex, and half a dozen other formats. The important part is to have a set of goals and commitment from both sides to work towards those goals.

How Do You Know If You Need A Mentor?

  • If you know where you want your career to go, but you’re not sure of how to get there, you may need a mentor.
  • If you have too many goals and don’t know how to prioritize them, you may need a mentor.
  • If you are reading this article, you may need a mentor…OR you may need to BE a mentor.

WANTED: Mentor For Mickey Stuewe

Yup, I’m looking for a mentor to help with my goals. Why? Because I’m a proactive person and I like to talk things through. I want to bounce ideas off of someone on topics to speak on at conferences like SQL Saturday and SQL PASS. I want to talk to someone about the different Microsoft Certifications and whether they will help me in my career. I need advice on how to obtain my “dream job”. I’m looking for someone who is encouraging and supportive. Are you interested?

T-SQL Tuesday #37 – RIGHT JOIN, LEFT JOIN, raw, raw, raw

T-sql TuesdayThis months T-SQL Tuesday blog party is being hosted by Sebastian Meine, PhD (blog). The topic is on JOINS. I’ve chosen to blog about how to rewrite a RIGHT JOIN I found this week in a stored procedure.The query was simple, but it was difficult to read without creating a data model and understanding the relationships of the tables. I decided to rewrite it to make it easier to maintain in the future. I have created a sample data model to demonstrate the problem and the solution. The data model has a table for Sales Reps,a table for Regions which the Sales Reps belong to (optionally), a list of Clients, and a linking table which links the Clients and the Sales Reps.

The query that was created, returns all the Clients and any associated Sales Reps with their regions, even if the Sales Rep is not assigned to a region. The original programmer used a RIGHT JOIN  to join the SalesRep table to the ClientSalesRep table. They also put the predicate for the SalesRegion table after the SalesRep table. While the Optimizer has no problem reading this query, I had to stand on my head to figure it out.

SELECT
   c.ClientID
   ,c.ClientName
   ,sr.Region
   ,srep.FirstName
   ,srep.LastName
FROM
   dbo.Client AS c
   LEFT JOIN dbo.ClientSalesRep AS cus ON c.ClientID = cus.ClientID
   LEFT JOIN dbo.SalesRegion AS sr
   RIGHT JOIN dbo.SalesRep AS srep ON srep.SalesRegionID = sr.SalesRegionID
										ON cus.SalesRepID = srep.SalesRepID
GO

I rewrote the query using only LEFT JOINS and each table had its own predicate. I found the LEFT JOINS made it easier to read and didn’t give me a headache.

SELECT
   c.ClientID
   ,c.ClientName
   ,sr.Region
   ,srep.FirstName
   ,srep.LastName
FROM
   dbo.Client AS c
   LEFT JOIN dbo.ClientSalesRep AS cus ON c.ClientID = cus.ClientID
   LEFT JOIN dbo.SalesRep AS srep ON cus.SalesRepID = srep.SalesRepID
   LEFT JOIN dbo.SalesRegion AS sr ON srep.SalesRegionID = sr.SalesRegionID

GO

I populated the tables with a million rows to see if the Optimizer would treat these queries differently. It didn’t. They had the same query plan, the same number of reads, and the same statistics, but it was easier to read.

Thanks go to Sebastian for hosting T-SQL Tuesday this month. Check out Sebastian’s blog, because he is blogging about JOINS all month.

%d bloggers like this: