Interview with Rod Stephens and a book giveaway

Rod Stephens is a well known author and host of the VB Helper and C# Helper websites. On the C# Helper Blog he posts useful code samples for C# .NET. He has written more than a 20 books and 200 magazine articles, mostly about Visual Basic and C#. During his career he has worked on an eclectic assortment of applications for repair dispatch, fuel tax tracking, professional football training, wastewater treatment, geographic mapping, and ticket sales. His VB Helper web site (www.vb-helper.com) receives more than 7 million hits per month and provides three newsletters and thousands of tips, tricks, and examples for Visual Basic programmers.

He has authored numerous books on VB, including:

and the recently released WPF Programmer's Reference and Visual Basic 2010 Programmer's Reference.

In anticipation of the release of several new titles, I asked Rod to share a few things about himself and answer a few questions about Visual Basic.

1. Tell us a bit about yourself.

I started out as a mathematician and was studying logic in graduate school but, when the professor I wanted to study with unexpectedly left the school, I started taking algorithms classes and got hooked. I took every algorithm class offered by MIT in whatever department offered it (Mathematics, Transportation, Computer Science, Chemistry, I even did some algorithm work for an art project with the Media Lab).

My first two books were about algorithms (Visual Basic Algorithms) and graphics (Visual Basic Graphics Programming) and I still enjoy algorithms, graphics, and mathematical programming, although I don’t get the excuse to do as much of that as I’d like these days.

I currently live in Boulder, Colorado where I play volleyball, ski, and generally enjoy the Rocky Mountains. I have a wife, two kids, and four pets. (Sometimes it seems like a pet retirement home. We have an 18-year-old cat with failing kidneys, a 15-year-old deaf dog who recently had a stroke, a blind bunny, and a normal healthy bunny—the oddball of the bunch. They all seem happy, though. I guess they should be a lesson to us all about finding happiness where you can even if things aren’t perfect.)

2. On a typical day how many hours a day do you spend programming?

I probably spend about 2-4 hours a day programming and another 4-6 hours writing about programming. Of course I also spend a fair amount of time answering emails, posting examples on my two web sites VB Helper (www.vb-helper.com) and C# Helper (www.csharphelper.com), sending my banking information to Nigerian ex-bankers, and other miscellaneous busywork.

Once in a while, when I get really lucky and have nothing else pressing to do, I shirk all of my duties and spend a whole day programming. Then I can get some really complicated stuff done. (Once I even had a client with an extremely urgent need for some algorithmic graphics work and I “got” to spend about 20 hours programming in a single weekend. It was fun in an exhausting sort of way.)

3. What do you think is in store for VB 2 years from now? 5 years? 10 years?

This is a tough question. Sales of new software versions is driven by new features not bug fixes so Microsoft tends to add new things to the language even if they aren’t needed. I think Visual Basic is just fine (in fact, Visual Basic 6 was pretty fine, too) but you can bet that they’ll add something every two years. For example, LINQ is interesting and can let you do some remarkable things with very little code but I don’t know anyone who was suffering for its lack.

That being the case, you can’t really predict new features based on what’s missing or not working. Instead you need to look at what other markets and technologies might drive new features.

With more computers providing multiple cores and 64 bits, more support for parallel and 64-bit computing is probably on the way even in the short term. Much higher levels of parallelism is probably also coming a bit farther down the road as computers come out with 8, 16, or even more CPUs.

Microsoft has long pushed tablet computing and they probably won’t give up on that, particularly if some device such as the Kindle opens up and makes those devices more popular. Multi-touch is cool but the systems that support it are expensive and don’t seem to be really catching on with most users.

WPF will probably continue to evolve. Much of its underlying architecture is locked in so there’s probably a limit to the improvements we can expect but hopefully the form designers and other support for it should continue to improve and as graphics hardware evolves hopefully WPF will try to keep up so we can take advantage of any new features. (One I’d particularly like to see is hardware and software support for 3D shadows.)

If you really want to look down the road, 3D television sets are here now so computers with 3D screens should be possible reasonably soon. Whether anyone wants them (or can be convinced to buy them) is another matter.

And of course there will be changes to database programming because there always are with each new release. Over the years we’ve had DAO, ADO, ADOX, RDO, RDS, UDA, ADO.NET, datasets, LINQ to SQL entities, etc. To paraphrase Mom in Futurama, “Ladies and gentlemen, for the 17th year in a row, the future of database programming has arrived.”

4. What programming language do you use the most?

Right now I probably use about 45% Visual Basic .NET, 45% C#, and %10 Visual Basic 6. The C# book markets are strongest so that’s where publishers are putting most of their effort.

However, many books (including mine) provide Visual Basic versions of the code available for download so don’t write a C# book off without at least looking into it. If you like the topics it covers, it may be worth your while even if the examples in the text are in C#.

5. What would you consider to be the coolest program you wrote?

I wrote the graphics piece for a coaching tool for professional football coaches. It let you draw the routes that the different players were supposed to follow. Later it could test a player to see if he could draw his route correctly for different plays. The New Orleans Saints and New England Patriots were two of the first teams to use it. Since then, the company that made the program was bought but now every team uses something similar.

I’ve also made some pretty cool three-dimensional programs including a ray tracer in Visual Basic 6, but those were more or less for fun not for commercial use.

6. What books would you recommend for a programming newbie? A Visual Basic newbie?

This depends on the newbie’s background. For example, if you’ve done a lot of programming in some other language, then you can jump right into a new language with a pretty advanced book. My book “Visual Basic 2010 Programmer’s Reference” might be a good choice.

For a beginner with no experience or who’s a bit computer-phobic, I would recommend an “idiot’s” or “dummies” book. Blast through that as quickly as comfortable and then move to a more in-depth book.

For C#, my newest book “Stephens’ C# Programming with Visual Studio 2010 24-Hour Trainer” might be a good choice for beginners. I really like its format with text, a step-by-step example, exercises, and a video screencast to give serious newbies a lot of ways to approach the same material.

After you get the hang of the basics, there are several books I recommend. For general coding principles, read “Code Complete” by Steve Mcconnell, “Writing Solid Code” by Steve Maguire, and my book “Bug Proofing Visual Basic,” which was written for Visual Basic 6 but which uses general concepts. Several other books including “Debugging the Development Process” also by Steve Macguire and “The Mythical Man-Month” by Frederick Brooks and some interesting perspective on why it’s so hard to predict project schedules and how things can go wrong.

You should also read a bit about other technologies that you will be using. For example, if you’re going to build databases, read my book “Beginning Database Design Solutions.” It’s amazing how many people build databases without really understanding how they work or what steps you need to take to make a database maintainable. I have nothing against self-taught DBAs (in fact, they are often extremely knowledgeable in their fields and can be the “go to” person in an office) but a little formal knowledge can make everything so much easier.

Other technologies that you may want to look into include WPF (I have a book on that), ASP or ASP.NET, VBA, and web services. Also algorithms and graphics just because they’re so interesting and fun.

(As you can probably guess, I read a lot, write a lot, and can never find enough time to learn everything I want to know.)

7. Choose one: Excel 2003 or 2007?

Excel 2003. Excel 2007 would be fine if it weren’t for the ribbon interface that makes it next to impossible to find any of the tools you’ve been using for years. (Remember what I said about new features driving sales?)

8. How did you learn to write code?

I took the usual beginning classes as an undergraduate. A particularly horrible professor almost ruined it all for me but when I started taking algorithms courses I rediscovered how much fun it is. For me, writing a particularly tricky algorithm or graphics program is like solving a puzzle.

9. Any tips for people trying to learn VB or .NET?

Take your time. These are extremely expressive languages and it takes years to master them completely. If you add in all of the related topics (database programming, network programming, internet, XML, WPF, etc.), and you take into account the fact that everything is constantly changing, you may never be able to master it all.

But if you work at it a bit at a time, learning a new trick or two every day, you’ll eventually amass a huge amount of useful techniques and tricks.

I also strongly recommend that you learn more than one language. Seeing the ways different languages approach a problem helps make a lot of programming concepts clearer. Often you’ll learn techniques in one language that are can apply to another. Over the years I’ve worked in about a dozen different languages and I’ve learned something from each of them.

10. What is the first program you ever wrote?

I wrote all of the usual beginning programs for classes. One of the first programs I wrote on my own showed projections of a hypercube being folded up from a 3D cubes into a 4D object. That program displayed its results on a line-drawing terminal so you couldn’t draw over anything like you can today on a raster screen.

I also remember a 3D start chart program I wrote for an astronomy class. I worked hard and got a B while my friend who baked a cake with a HR diagram on it showing star lifetimes got an A. Go figure.


Thanks Rod!

Now on to the giveaway. Post a comment below and answer at least five of the interview questions I asked Rod and you'll be automatically entered to win one of the following fabulous prizes!

The Prizes:

First Prize: Visual Basic 2010 Programmer's Reference — published March 8th!

Visual Basic 2010 Programmer's Reference

Microsoft Visual Basic (VB) is the most popular programming language in the world, with millions of lines of code used in businesses and applications of all types and sizes. The new release of Visual Basic 2010 is tightly integrated with the Windows operating system and the .NET programming environment. Renowned VB authority Rod Stephens provides a comprehensive guide to Visual Basic programming, including the latest enhancements to the VB language and programming environment with Visual Studio 2010 The tutorial is packed with detailed and practical code examples that show readers how to master all of the features of VB.

Second Prize: Microsoft Office Outlook 2007 Inside Out (1st Edition)

Microsoft Office Outlook 2007 Inside Out

Learn everything you need to know for working with Microsoft® Office Outlook® 2007–from the inside out! This book packs hundreds of time-saving solutions, troubleshooting tips, and workarounds for using Office Outlook 2007–all in concise, fast-answer format. Whether you are upgrading from Office 97 or Office 2003, you'll be able to dig in to the work-ready resources that help you take your Outlook 2007 experience to the next level. This information-packed complete reference lets you discover what's new and shows you how to get the most out of Outlook 2007. Learn how to manage your time and tasks, schedule meetings and appointments, sort and filter contact data, set security options to help guard against viruses, and more. Plus, you'll get an easy-to-use companion CD packed with custom resources and a fully searchable eBook. With INSIDE OUT, you get all muscle and no fluff!

Third Prize: Microsoft Office Access 2007 Inside Out

Microsoft Office Access 2007 Inside Out

Learn everything you need to know for working with Microsoft® Office Access 2007–from the inside out! This book packs hundreds of time-saving solutions, troubleshooting tips, and workarounds for using Office Access 2007–all in concise, fast-answer format. Whether you are upgrading from Office 97 or Office 2003, you'll be able to dig in to the work-ready resources that help you take your Access 2007 experience to the next level. This information-packed complete reference shows you how to get the most out of Access 2007 and find out what's new. You will learn how to design more-efficient databases, streamline data entry, find the information you need, and work with tools to produce effective forms, reports, and queries. In addition, you'll begin to explore strategies for database design and advanced table design. Plus, you'll get an easy-to-use companion CD packed with custom resources and a fully searchable eBook. With INSIDE OUT, you get all muscle and no fluff!

Note: The links above are affiliate links.

The Rules:

  • No purchase necessary to enter or win.
  • One entry per family/household.
  • U.S. and Canada residents age 18 and over only.
  • You must post a comment by Monday, March 29th, 2010 at 8:00PM EST and answer at least five interview questions to be eligible. A sentence or two is sufficient.
  • First time comments are held for moderation by WordPress. I will approve all comments as soon as possible. As long as you comment before the deadline you will be entered, even if it doesn't actually appear on the site before the deadline. If you have trouble leaving a comment, contact me ASAP.
  • Three winners will be selected at random (using Excel's RAND() function). I will put all the entrants into a spreadsheet, insert the RAND() function into a helper column and sort by that column. Top three names are the winners.
  • Use a valid email address that you check regularly so I can contact you at the conclusion of the contest.
  • If a message to your email address bounces, or you don't respond with your mailing address within three days, I will give the prize I would have given you to the next person in the sort order.
  • Prizes will be mailed on Saturdays only. Look out for my email so you can respond in a timely fashion.
  • I reserve the right to edit entries (for example, to remove links).

Good luck!

About JP

I'm just an average guy who writes VBA code for a living. This is my personal blog. Excel and Outlook are my thing, with a sprinkle of Access and Word here and there. Follow this space to learn more about VBA. Keep Reading »


Related Articles:


Share This Article:

Share and bookmark this articledelicious buttonfacebook buttonlinkedin buttonstumbleupon buttontwitter button

comment bubble 8 Comment(s) on Interview with Rod Stephens and a book giveaway:

  1. Hey JP!

    Nice interview … embarrassed to say I'd never heard of Mr. Stephens, but now I have and a couple of new websites to check out. Thanks!

    My Q&A:
    1) I live in Delaware but work in PA for a large home furnishings company that you've probably heard of. I've been programming (a term I used loosely) for about 3 years and am completely self-taught (mostly by you, Jon Peltier, and Debra Dalgeish).

    2) Typically, I spend about 80% of my day using Excel, about 1/2 of that doing some sort of programming … always looking for new features to incorporate or efficiencies to gain!

    5) I recently completed an add-in that is essentially a switchboard giving users access one-click access to approx 50 different reports. Without using this add-in, users would have to waste time searching our intranet for these reports and even then, it's not obvious if/when the report was updated or by whom. Feedback from all users (incl C-level mgrs!) is great …

    7) I prefer XL07 — once you're up the learning curve, the layout is more intuitive and I love having 1 million rows. Plus, the Ribbon lets developers do so many cool things!

    8) My learning was entirely trial & error … once I realized that ANYTHING I could do manually could also be automated, it was just a matter of having the patience to try. My initial approach was step-by-step … write a section, test it … write another, test again. Now, I'm a bit more confident and alot more knowledgeable so it goes quicker. I've established a decent size library of code snippets (love NET Co library by XL-Dennis), which makes developing faster.

    JP, keep up the great work — the blog is awesome and Code for X-O is a great site!

    rgds, ray

    • 2) 1
      4) VBA
      7) 2007!
      8) from the book
      9) buy a good book and start programming from that book. Then think up a tiny program and start building that.

  2. Harry Peltz writes:

    I'd like to know more about his thoughts on VBA vs. VSTO.

    • I think VBA is a lot easier to use but I can see what Microsoft is trying to do with VSTO. They're trying to make it safer (harder to insert viruses) while allowing access to the .NET programming model.

      Unfortunately as with a fair bit of Microsoft's security stuff, it's pretty hard to use so most of the "typical" users I know don't bother. They either use VBA or come from the other direction and use VB to control the Office apps. Although lots of the more power-user types that I know use VSTO.

  3. I got curious when I scrolled through the article and read:

    "U.S. and Canada residents age 18 and over only."

    I wonder why You guys still abuse the rest of the world.

    • Dennis,

      I would, but the shipping costs and extra handling required are prohibitive. When the prizes get bigger (read: more $$) I'll open it up internationally.

    • I've sent a few books to places farther away and sometimes it costs a LOT! Shipping to Europe is sometimes not too bad but shipping to many places can cost a lot more than the book itself. One person I talked to had a book shipped from the US to Israel and (if I remember correctly) it had to travel by diplomatic pouch so cost something like $75. And soon I'll probably be sending a book to Sri Lanka that will cost about as much as the book.

      Sometimes I compromise by offering to give the book if the winner pays postage (and often I pay anyway–just using that as a way to judge interest).

  4. Nice blog and website … lots of good info!

    2 — Currently only an hour or so each day, as I'm just starting out.
    4 — definitely VBA6
    6 — started with the programming chapter(s) in one of the Excel Inside & Out books, using Power Programming (by Walkenbach) to take my code a step further
    7 — XL03 … just can't get used to XL07's layout
    8 — Primarily, I use the macro recorder while I complete a task then look at the resulting code. Sometimes hard to wade through the extra junk, but it's worked for me so far …

This article is closed to any future comments.
excel school learn dashboards