2004-03-20
| Table of Contents: |
| Rate This Article: | Add This Article To: |
( Page 1 of 4 )
In this extensive interview, Chris Sells, one of the Windows developer community's most well-known contributors, covers a range of subjects. Sells discusses his early programming experiences through the activities that lead to his level of notoriety today
DevSource: You may know Chris Sells for any number of things, including his Web site, his books (such as ATL Internals and Windows Forms Programming in C#), his more controversial posts (like, "Why do we need duals?" and "My personal problem with the GC"), his conferences (including the ATL DevCon and the XML Developer's Conference), his tools and source code libraries (like RegexDesigner and Genghis), his oft-quoted list of Microsoft interview questions, his status as Microsoft-designated "Software Legend," or even the centerfold that spawned his site's logo.
However you know him, it's not surprising that you do. Chris has been a prolific member of the Windows developer community for more than ten years, authoring/co-authoring eight books (with four more in the works), giving hundreds of hours of public presentations, hosting four conferences, writing more than three dozen articles, posting countless messages to E-mail lists and newsgroups, and filling a Web site that serves more than 100,000 visitors per week.
More recently, you might know Chris because of his obsession with Microsoft's newest operating system-to-be, Longhorn, and his work on MSDN's Longhorn Developer Center Web site, along side other-technologied brethren: Duncan Mackenzie on C# and VB.NET, Kent Sharkey on ASP.NET, VS.NET and Whidbey, Brian Johnson on Security and VC++, Matt Powell on Web Services, Christa Carpentiere on Data Access and Storage, Steve Kirk on Architecture, and Frank Redmond on the .NET Framework.
DevSource: Chris, let's get right to it: How the heck did you get here?
Sells: The first time I touched a computer was at the Duluth public library, when I was 7. It was a 120-column paper feed terminal directly connected to the Univesity of Minnesota (U of MN), and I used it to play Maze and Hunt the Wumpus. I was hooked. I started programming nearly full-time on my own Apple ][+ at age 12 (although they still made me go to high school during the day). After six years of Applesoft Basic, I graduated to Pascal, FORTRAN, C, and ultimately C++ in college at the U of MN, where I got my B.S. in Computer Science. My first paid programming job was working as a student on a dBase bug database—and by that I mean, tracking actual bugs for the U of MN Plant Pathology Department. In retrospect, given my start with bugs, it's not surprising that I ended up so developer-focused.
After college, my first job was as an integrated voice response (a.k.a. "voice mail") programmer under System V R3 Unix. That job attracted Intel to me, because they were defining the Windows Telephony API (TAPI), along with corresponding telephony hardware and software. That job is where I got my first taste of corporate life and building (and debugging) a complete stack, including new hardware, new firmware software, new drivers, two new API implementations (TAPI and the TAPI Service Provider interface), and new applications. Tracking bugs in a system like that is quite a challenge, and I think the experience drove me to sit as far away from the hardware as I possibly could!
The Intel job made a big impression on me for two reasons: Mike Woodring and Paul Crutcher. These were guys that were honing their skills, giving each other code reviews in their dorm rooms, while I was drinking at my fraternity. They both had an enormous impact on my coding skills and on my continued quest to improve those skills.
Intel made one more impression on me: a deep distrust of large corporations. They're willing to start you on a project without really being invested in whether you're able to finish it or not. (Microsoft doesn't really fit this mold, as I'll discuss later.) My constant fear of the ax dropping on my work again pushed me to look for another job.
It was just before the Internet book when I found Don Box and DevelopMentor (DM). Don and I hit it off during his second presentation ever of the now-famous Essential OLE course; it launched DM and Don into the limelight. I'm convinced that my time at DM, learning to communicate the most arcane concepts in a way that was understandable, and even enjoyable, changed me forever. Plus, Don's personal goal to get everyone to achieve the same level of fame that he had gave me enormous opportunities to get myself out there, starting with answering questions on the DCOM Mailing List and ballooning from there in ways that I never could have imagined.
During my eight wonderful DevelopMentor years, I wrote, taught, spoke, consulted, ran a product development team and built up my Web site. Of all of those activities, the Web site has been the most enduring. It started simply as a list of resources I wanted to mention in my classes, but could never remember. Those links still exist on the site, but now I use my Web log for such things (mostly so that I know where to look when I need the link again). Gradually, as I built samples and tools and collected Microsoft interview questions and my writing, the Web site grew to encompass all kinds of wacky things. I guess folks like it, although it still baffles me why so many people visit to see my eclectic assemblage of random bits and bobbles. The Web site continues even into my Microsoft years.
Given my stated discomfort with large corporations, you may wonder why I would choose Microsoft, an international corporation of more than 55,000 employees. Well, when the Internet bubble burst, two things happened. One, I found that I'd done pretty much everything there was to do in the IT industry except work for Microsoft. Two, I found that after running DM's now-defunct software division for three years, I didn't want to go back to the road. So, after an unhappy year of traveling, I started flirting with Microsoft in earnest.
Of course, the large corporation thing was always in the back of my mind when I'd spurned Microsoft's advances in the past, but they won me over with a sweet gig: it's my job to deeply understand the new technologies in Microsoft's next operating system so that I can direct and contribute to the content that gets collected and arranged for budding Longhorn developers on MSDN. And, I get to do it mostly from my house in Oregon.
Anyway, Microsoft isn't really a large corporation in the traditional hierarchical, your-manager-tells-you-what-to-do-and-that's-it kind of sense. Instead, Microsoft is 55,000 loosely federated individuals all empowered to get up every day to do what they think is best for the customer. MS executives provide goals, to be sure, and those goals trickle down to you via the long corporate chain between you and Bill (my own chain has nine links), but the goals are guidelines in which you have a lot of wiggle room. I grant that the MS organization and culture is far from perfect and it takes some real getting used to, but it can also be a very freeing environment, which was quite a pleasant surprise.
DevSource: How'd you wind up with .NET in the first place, much less as a rock star? (And why do you think you earned so much attention?)
Sells: After turning up my nose to Java in favor of ATL, a managed development environment was a bitter pill to swallow. However, on Saturday, November 10th, 2001, I got the .NET religion (I know this because I blogged about the experience the next day, not because I have that kind of freakish memory). That's the day when I sat down to rewrite an application that I'd written before in C++ and MFC. The experience was transcending. I'd played with Java and enjoyed it, to be sure, but I never thought that the lack of control would really fly in anything real. But that day, when I wrote my simple little .NET application and saw how much time I was spending writing the actual logic and how little time I was spending on the drudgery of a native application, I was reborn, having accepted .NET as my personal savior.
Plus, the development environment was so wonderful that I was able to write my application with almost no knowledge of the .NET Framework Class Libraries. I could learn as I went along with IntelliSense, which I'd never really had in C++. The combination of the development experience and the development environment, resulting in applications that were very acceptable in terms of performance and memory footprint, flipped a bit in me, and now I cringe if I have to do native programming.
As to the "rock star" thing, I certainly don't think of myself that way, in spite of Microsoft's accreditation. I've always had strong opinions and a need to share them, which is why various mailing lists, newsgroups, and particularly my site are filled with what I think is the right way to do things, whether it's a chunk of code, a helper tool, an article, or a bit of editorial. Apparently, folks like what I do and how I do it, which has lent me a touch of notoriety. Do I deserve it? I don't think so. There are plenty of folks much smarter than I. However, while I try to be humble, I have to admit to being proud of the work that I do, so I tend to brag (a.k.a. âshameless self-promotion). I like to think that it's the quality of work that I do that attracts people, but it's certainly fair to say that the quantity of work and the amount that I promote it probably plays an equal factor in my overall reputation.
DevSource: You make a big deal about your affection for .NET. Why? What makes it so special?
Sells: There's no greater zealot than a heathen converted. : )
![]() |
|


