SQL Server and .NET Training and Career Development

A number of years ago, I wrote a blog entry entitled "Who is Responsible for your Career?". It was perhaps the second most popular post I ever wrote (judging by reads and referrals), and it generated a large number of comments and other blog entries, both pro and con.

Part I: Conferences

A number of years ago, I wrote a blog entry entitled “Who is Responsible for your Career?”. It was perhaps the second most popular post I ever wrote (judging by reads and referrals), and it generated a large number of comments and other blog entries, both pro and con.

In the past, it was common for an employer to work with their employees and pay to keep their skills current. While this still happens, in this age of high employee (and employer) turnover, many companies are more circumspect about how much they will spend to keep their employees keep up-to-date. At the end of the day, it is your responsibility to make sure this happens and there are many good reasons why you should strive to do so and many ways in which you can do it.

Outsourcing is becoming a key challenge to developers. There are people in other parts of the world that are willing to do your job at a fraction of the cost. One of the things that we, as developers, need to do in order to combat this effect is to make sure we add more value than an outsourced developer can provide. Early on in my career, I realized that I enjoyed working at home and so designed my systems to be very amenable to remote maintenance. In doing so, I inadvertently made my job more amenable to outsourcing! I now have clients all over the east coast, and on occasion have done work for companies overseas. The reason why these clients have not left me, even though I tend to charge more than they like, and have had more health problems than they would like, is that I add enough value to justify what I charge.

There are a number of things that I do that allow me to add value to the work I do for my clients, and maintain my skill level. The resources that I regularly use/participate in include:

  • Development-oriented magazines – including MSDN Magazine, Dr. Dobb’s and Software Development Magazine
  • Blogs – I write my own blog, and follow regularly perhaps 100 other blogs. I do not read every post (which given the volume on some of the blogs would just be impossible) but try to at least read the title of all the entries, picking and choosing those entries worth additional effort.
  • Books – I read at least one technical manual a month, and in addition I might pick up a few books a year that I intend to use purely for reference.
  • Technical Forums – I am a moderator on the www.asp.net forums and, in my opinion, the ability to leverage the knowledge of the entire community using the products you are using is critical to your performance on the job. I will return to this topic in Part II of this series.
  • Online resources – Many sites offer a lot of searchable information of value. For example, the Microsoft MSDN site, the Microsoft knowledgebase, and community sites such as this one or SQL Server Central, etc.
  • Conferences – I attend several technical conference a year and find them a very effective means of learning new skills and honing existing ones.

In this, the first of a series of articles aimed at paths to career development, I will discuss the value of conferences, and how to extract maximum benefit from them.

Why Attend a Conference?

This time of year, as conference season begins, brings up a lot of conversation about the cost of conferences, as well as their value relative to other possible sources of career development. A conference does have a number of advantages over other possible skill enhancing possibilities. The number and diversity of sessions at most conferences allows you to either get an overview of a large number of topics, or immerse yourself in a single topic. For many people, simply getting out of the office, away from most phone calls, and focused on learning is the best way to learn a new skill. One less tangible benefit of a conference (although arguably the most important) is the ability to network with developers with similar interests. If you are active in newsgroups or web-based forums, you will often meet up with people you previously only knew from on-line interactions. This networking can extend the benefits of the conference way beyond the conclusion of the physical event.

The key to gaining the most benefit from a conference is to have a clear goal in mind, rather than a vague plan to “learn some new stuff”. For example, at one time I was in the planning stage for the build of a large new computerized employment selection test system. The client was interested in using C++, a relatively new language at that time, rather than C, my language of comfort and choice. Having assured my client that this would almost certainly not be a problem, I decided to attend a C++ conference in order to make sure my assurances were well founded.

I immersed myself in C++ for almost a week, to the point that my head almost hurt. When I got back home, my first call was to my client, to advise him that he would be better off sticking with C for the first part of the system, which was a fairly simple data entry test, and then developing the second portion of the project, which was a word processing simulation test, in C++.

From what I learned at the conference, I realized that, in terms of functionality, C++ would offer little extra over C for the data entry test part of the system and, indeed, that throwing in C++ as a requirement might decrease reliability and badly affect the schedule. On the other hand, the word processing simulation test element of the system was perfect for C++ and would benefit enormously from the object oriented nature of the language. While working on part one of the system in C, I continued my study of C++ and ultimately delivered the complete system on-time, on-budget, and with a product that greatly exceeded the customers expectations for reliability.

Having identified your core reasons for attending a conference, in terms of skills enhancement and so on, you need to weigh these potential benefits against the cost of the conference – both in terms of the actual cost of attendance and time away from the office. If you decide the potential benefits of a conference outweigh the costs, and can convince your management of this, then the key questions become:

  • Which conference to attend
  • How to get the most out of it
  • How to pay for it and/or minimize the cost

Which Conference?

As soon as conference season starts, I receive advertisements and emails for numerous conferences. The ones I choose to attend are simply the ones that most closely match my current needs. For broad coverage of all aspects of Microsoft development, Tech Ed , or the Professional Developers Conference (PDC) are probably the conferences to attend. PDC is more future-oriented and happens only when Microsoft has new technology to announce, whereas Tech Ed focuses more on shipping technology. If you work extensively with Visual Studio, then VSLive is an obvious choice. Similarly, SQL PASS is good option for SQL Server developers and DBAs.

However, if you have very specific requirements then a more specialized conference may be a better bet. For example, I work on a number of systems that target the Pocket PC and, as such, will be attending the Microsoft Mobilized and Embedded Developers Conference in May. The MIX conference in March interests me because this is the Microsoft oriented conference that will focus on what is often called Web 2.0. I write about and use ASP.NET for my development, and things like IE7 and Atlas need to be a part of the Web sites I will be doing in the next couple of years.

I would be remiss if I did not also mention the Code Camp conferences. These are always free and always held outside of normal work hours. Since my blog post in 2003, Code Camp has become a viable option for people who do feel that conferences cost too much or take you away from your job for too long. For many people, especially those just starting out or with fairly general needs, Code Camps are a wonderful way to get the conference experience with limited, or possibly even no cost (presuming that there is a Code Camp close enough to you that you do not need a hotel).

In a similar vein, user groups offer single evening a month chances to get some of the benefits of a conference, with generally a single session, but lots of chance to network. My local .NET user group occasionally has “Geek Dinners,” where there is no technical content, just networking while eating good food.

Getting the Most out of a Conference

In order to extract maximum benefit from a conference you need to understand exactly what it is you need to achieve, prepare thoroughly, spend your time at the conference wisely, network extensively and try to participate fully in the whole conference experience.

Preparation

It is vital that you set out clearly exactly what it is that you intend to achieve at the conference, and then a plan for how to accomplish it. Sometimes this planning will form part of a formal proposal for conference attendance. If you are required to submit such a proposal, try to focus both on the benefits to you (and therefore your projects) in terms of skills and personal development, as well as other immediate, tangible benefits to the company, such as:

  • Recruitment opportunities
  • Obtaining a deeper understanding of your company’s customers
  • A full conference report (possibly including “live” conference blogs)

Most conferences post a schedule long before the conference. While it is possible/likely that this will change, it is a good place to start. You can use this schedule to determine what sessions you want to attend. Always try to have a back up plan in case your first choice session turns out to be a dud.

For some of the larger conferences, you might even find that a thoughtful attendee creates an XML version of the schedule, along with a PDA compatible program to read it. Loading this up prior to the conference (and noting where you got the XML, in case there are updates) can be a huge help. Printed conference guides are nice, but often whipping out your Pocket PC Phone can be faster and helps you to “travel light”.

If you are involved in a relevant newsgroup or forum, find an appropriate way to make it known that you will be attending the conference. This will allow you to pre-plan some conference networking. One of the forums in which I participate often makes available a Wiki for conference attendees from the forum, and then posts a short message with a link to the Wiki on the forum, with all other communication taking place on the Wiki. Using a Wiki for this purpose is quite pleasant and may enable you to arrange valuable meetings with other forum members (at my last conference, I was even able to arrange a shared ride from the airport to our hotel, saving us each a non-trivial amount of money). If there is no one else in your group willing to host a Wiki, perhaps you could start one? There are a number of open source Wiki code bases around, including Open Wiki.

Many of the Microsoft conferences offer pre-conference Workshops and these are well worth considering, especially for less experienced developers. They are often geared towards providing a thorough grounding on topics that will be explored in detail in the conference sessions, and therefore can really help focus your efforts and time time at the full conference. A good “SQL Server Development” workshop, for example, might provide practical, tried-and-tested techniques in core skill areas such as administration, T-SQL programming and performance tuning as well as advice on choosing the right tools for the job, and so on. They also represent a valuable opportunity to network with a smaller group of professionals with similar requirements.

Spending your Time Wisely

As noted earlier, conferences generally offer a vast range and number of sessions. This can be daunting (and frustrating, when two perfect sessions are scheduled for the same time). However, an advantage of a number of sessions is that even if one speaker is, let’s say, sub-par, in another hour or so, you have another chance. Alternatively, if you realize the session is going nowhere in the first 10 minutes, you can often sneak in a little late to your second choice session (although make sure you sit at the back or at least at the end of a row if you have this strategy in mind). Furthermore, a conference CD or DVD often allows you to revisit sessions you got to, or virtually attend sessions you had to miss.

Virtually all conferences have activities beyond the daily technical sessions, and you should take advantage of them. Birds-of-a feather events allow you to get together with people who share something in common with you. It might be a technical interest; it might even be a gender (“Women in Technology” etc). Ask the Expert sessions and roundtable discussions can often be very valuable. Interacting with someone whose book you have read, or whose session you have attended, can allow you to ask questions that might not otherwise get asked. The value of the wisdom of the community cannot be underestimated: interacting with both experts and other community members can add great value to your conference attendance.

How about the exhibition hall? Forgetting for a moment the endless swag (how many t-shirts do you really need?), what else can you get out of the exhibition hall? The secret for a technical user is to separate the sales people from the technical people. Sometimes nametags with titles can help, sometimes not. By working through a level or two of sales and marketing people, I have on one or two occasions ended up talking to the founder of a company whose product I was interested in. Often contact at this level can be very helpful when you actually come to work with the product.

Coping with the Cost

Why do conferences cost so much? These days, a 4-day conference is likely to cost between $1500 and $2000. Add on travel, accommodation and subsistence costs and you are looking at a considerable investment.

Robert Scoble has a great blog entry on why conferences are so expensive. Robert is particularly knowledgeable on this topic, as he has previously run conferences for Fawcette. Some of the numbers are eye opening. A hot dog lunch for $30? Five dollars for a Coke? Yikes.

If you are a regular employee, you stand the best chance of having your time paid for and conference expenses covered. Most medium-to-large development shops will have a conference budget that will probably allow for developers to attend at one or two conferences a year. However, smaller organizations often have no specific policy in place regarding conference or training. If you find yourself in this situation, be creative! I have negotiated deals where the employer paid me for my time and I paid the expenses for the conference. I know people who have negotiated different splits, with the company paying for the employee’s time and hotel, but the employee paying for the conference. If you are a valued employee who has a history with the company, it can be a win-win situation.

Consultants sometimes have to be even more creative. If you are a blogger with a regular following, you might be able to get a Press Pass to the conference. It worked for top-tier political bloggers at the 2004 Democratic and Republican National Conventions in the US. If you have a good relationship with a publisher, online journal or similar, you might be able to get a pass to the conference in exchange for a conference review article or time spent at their booth. I have done exactly this when I was a columnist for the Pervasive Developers Journal many years ago. When the powers that be at the Journal heard I was not planning to attend, they made me a deal I could not refuse.

Finally, the expense of a conference can, to some extent, be minimized. Early bird discounts can help, though these days they tend not to offer more than 10% off. If you are a MSDN member, MVP or a member of a user group, there might be other discounts available, so check the registration web site early.

You can usually count on most breakfasts and lunches being provided by the conference, with a number of receptions at night providing dinner possibilities. (But how many overbaked veggie samosas and questionable cocktail-sticked nibbles can one man take? – ED)

Significant savings can be realized by avoiding the conference hotels. At a recent Las Vegas event, the conference hotel charged $200 per night but I was able to get into a nearby hotel for $75 per night – a significant saving over 5 nights. Even accounting for cab fares the savings can be significant (and, personally, I enjoyed the walk). However, be careful with this. Don’t lodge so far away from the conference hotels that “after-hours networking” becomes impractical.