This is day nineteen of the SQL Advent 2012 series of blog posts. Today we are going to look at how to improve your tech skills. This really is a continuation of the Stay relevant and marketable post from yesterday. Here are some things that you can do to improve your tech skills

Attend usergroups

Attend your local usergroup meetings, there is always some expert that comes to do presentations.

Answer questions

I still think answering questions is one of the best ways to improve your skill. Join a QA site like stackoverflow, head on to a specialized site on stackexchange, here is a list of all of them http://stackexchange.com/sites You can hit some of the forums on this site. For SQL server, you can also try SQLServerCentral

If you are not comfortable with answering yet or if you realize that the questions are too difficult, don’t worry about, just start by lurking. What you will find out over time is that every month you will be able to answer more and more of these question. This is because the questions are pretty much the same but some little detail might be different. Take a look at [the ten most asked sql server questions and

their answer]6, these 10 questions pop up on a daily basis, after a while you will be able to answer these in your sleep

Lunch and learns

No time you say to improve your skills, do you take lunch breaks? If so consider doing lunch and learns, get into a conference room, fire up the projector and then either look at code with the team, do design, watch videos, whatever floats your boat

Get involved with an open source project

A good way to improve your skills is to get involved with an open source project. Pick a project download it, then pick it apart. Start reading through the code, notice how things are done, ask yourself why it was done that way. Would you do it the same way? If you pick a big enough project, there will be many contributors, can you tell that the code was put together or does it pretty much look like it was written by one person. Are standards followed, how many design patterns are used

Read books, read code, read blogs

There are many classic list of books that every programmer should read

Here is just a small list that you can choose from, I grabbed this from stackoverflow

Code Complete (2nd edition) by Steve McConnell

The Pragmatic Programmer

Design Patterns by the Gang of Four

Refactoring: Improving the Design of Existing Code

The Mythical Man Month

Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin

CODE by Charles Petzold

Working Effectively with Legacy Code by Michael C. Feathers

Peopleware by Demarco and Lister

Coders at Work by Peter Seibel

Patterns of Enterprise Application Architecture by Martin Fowler

Test-Driven Development: By Example by Kent Beck

Practices of an Agile Developer

Don’t Make Me Think

Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin

Domain Driven Designs by Eric Evans

The Design of Everyday Things by Donald Norman

JavaScript – The Good Parts

Getting Real by 37 Signals

The Annotated Turing

Agile Principles, Patterns, and Practices in C# by Robert C. Martin

The Soul of a New Machine by Tracy Kidder

Here Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky

Pragmatic Unit Testing in C# with NUnit by Andy Hunt and Dave Thomas with Matt Hargett

Rework by Jason Freid and DHH

JUnit in Action

Reading code is also a good way to improve your skills, head over to the frameworks you use the most and start digging around in the API, look at the example code.

Read blogs of subject expert, study their code and techniques, if something is not clear don’t hesitate to leave a comment asking for some info or further explanation

Practice by doing katas

If you have ever done Karate you will know what a kata is, it is basically the practice of forms. You can take the same approach with programming. Here is a great post that goes into some more detail: Using Code Katas to Improve Programming Skills

Blog

I found that blogging has been very good for my tech skills. It keeps me sharp and since I blog about new things it keeps my skill set up to date. When blogging, your readers will tell you when the code is wrong, so you have to make sure everything is tested and will run as shown in the post. Since you will have to do some research when writing these blog posts, your skills will improve and expand.

An added bonus is that I have a code library that I can access anytime I want.

Write a book

If you are a masochistic type of person then I recommend you write a book, almost everybody in the tech world that I know swore that they would never write a book again when they were done…….and yet they did. In order to write a book you have to spend a LOT of time doing research, making sure your code is correct and much more. Once you are done with this if you were not a subject expert you will be now. The worst part of writing a book is the initial feedback you get pointing out all your mistakes, if you are not thick skinned this could become a problem.

Listen to podcast, watch webinars

I get a lot of my tech info from podcasts, I like it better than listening to music at times and it makes the commute or run more enjoyable. The benefit is that you will learn something, you also might hear about some new shiny thing and then you will want to check it out when you get to the computer. There are many things I have learned from podcast, I also look forward to the next episode

That is all for day nineteen of the SQL Advent 2012 series, come back tomorrow for the next one, you can also check out all the posts from last year here: SQL Advent 2011 Recap