Q: I read your "Back to Basics" article in Developer Update (http://www.sqlmag.com/articles/index.cfm?articleid=49610&). I've previously worked as a network/telecom/hardware/software support manager but I'd now like to start a career in programming. I know almost nothing about programming except for some classes I took years ago. Can you suggest a starting point for me?
A: Programming is more or less a generic task done by several different groups of IT professionals. So, I think the starting point for you is to look at some of the broad IT categories and see which one best fits your goals and expectations. The idea is to concentrate on an area in which you can be successful. So, let's look at four primary categories of IT professionals and what their skill sets are:
- Database administrator (DBA). DBAs work with database systems, such as Microsoft SQL Server. They can focus on two areas: systems administration and programming. In the systems administration area, the tasks include setting up accounts and permissions for database users as well as monitoring a database's runtime performance. However, good DBAs go beyond just running a report. They optimize data access. For example, they evaluate stored procedures' execution plans, optimize stored procedures' code, and optimize databases' indexes. Good DBAs are proficient in the skills covered by the Microsoft Certified DBA (MCDBA) certification.
- Traditional IT professional. The traditional IT professional is more of a system engineer. In large organizations, IT professionals might specialize in the setup and maintenance of a single server product (e.g., Windows Server 2003, Microsoft Exchange Server), whereas in small organizations, IT professionals might need to work with half a dozen or more server products. A talented IT professional not only knows how to open a user-management console to add a new user but also understands how to optimize products through administrative programming and other tools. Although the IT professionals' primary focus isn't programming, having some programming experience helps them be successful. These types of professionals become proficient in the skills covered in the Microsoft Certified Systems Engineer (MCSE) or Microsoft Certified Systems Administrator (MCSA) certification.
- Information worker. Microsoft is promoting a new category of IT professionals known as information workers. At my company, information workers are specialists at customizing applications and client desktops. They typically customize products in the Microsoft Office suite. In Office 2007 that includes client applications such as Excel and server applications such as Office SharePoint Server. There are many certifications associated with information workers, so I'm not going to list them all but they include the Microsoft Office Specialist (MOS), Microsoft Certified Technology Specialist (MCTS), and Microsoft Certified Desktop Support Technician (MCDST). For more information about some of the training available to information workers, I suggest going to http://www.microsoft.com/learning/mls/elearn/iw.mspx.
- Software developer. Software development is the traditional focus of programming. However, talented software developers do more than just write code. They also solve customer problems and design and document systems. In my opinion, a good software developer needs about 5 years of experience to be able to work independently. These developers are proficient in the skills covered by the Microsoft Certified Solution Developer (MCSD) and Microsoft Certified Application Developer (MCAD) certifications.
Taking into consideration these four categories of IT professionals, you should determine the type of development you want to pursue in your career. A good place to review the skill sets in all of the Microsoft certifications is at http://www.microsoft.com/learning/mcp/default.mspx.