CIPS logo

Canadian Information Processing Society


CIPS logo


News from National -- Current Articles

12/14/2001 8:37:20 AM
C++ Expert Jesse Liberty
Interview by S. Ibaraki, I.S.P.

This week, Stephen Ibaraki, ISP, has an exclusive interview with Jesse Liberty (at Jesse is a highly respected international authority on C++, C#, and application development.

Q: First of all, thank you Jesse for agreeing to this interview. What does your family think about your career as a noted author?

A: I'm not sure how noted I am, but my family very much enjoys that my career generally allows me to work at home, and to set my own hours. Sometimes this means that each day I can work any 16 hours I choose; but by and large it has been a great experience. I spend about 1/3 of my time writing, the rest of my time is spent on contract programming, consulting and training.

Q: For your latest book on C# and .NET development, you were on tight deadline. Please expand on the topics you were forced to delay?

A: While the deadline for the C# book was very tight, the O'Reilly editors were emphatic that they would prefer to be late to market if that was what was required to maintain the very highest quality. This meant that we didn't cut any topics, nor did we skimp on the editing cycle. In fact, the editing of the book took nearly as long as the original writing! That said, you can only cover so much in any one book. Many of the topics that I devote a chapter to (ADO.NET, Web Services, and so forth) could each be expanded into a book of its own. I felt so strongly about expanding on some of these topics that I'm writing more books,. For example, I'm about to release Programming ASP.NET.

Q: Jesse, can you expand on how .NET is so different: a new way to build distributed desktop applications; a new way to produce mobile applications; very different from classic COM (no class factory, doesn’t use IUknown, no registration in the registry)?

A. One of the great pleasures of working with .NET is that you do not have to deal with COM except to work with legacy applications. DCOM was a true nightmare, but distributed programming with .NET is quite straightforward. The entire COM infrastructure goes away, and working with remoting in .NET is far easier than it ever was in COM. It turns out that .NET does not use the registry at all, so that mess just goes away. Of course, if you do have COM objects, .NET gives you a straight-forward mechanism for importing COM objects into the .NET world. All in all, distributed programming just got a lot easier.

Q: What is C#?

A: C# is a new programming language specifically designed for .NET. C# combined the syntax of C++ with many of the rapid application development features of VB6. It turns out that C# is very similar to Java in many ways.

Perhaps the best way to think about C# is as a successor to C++ and Java, building on the lessons learned in both. Speaking as someone who has been programming in C++ for ten years (and who has written a dozen books on the subject) I must tell you that I love working in C#. It is simply a pleasure. In fact, I was so taken with C# when I started playing with it, that within a few weeks I decided to turn my entire focus to .NET development. For the past year or so, all of my writing has been on .NET.

Q: What are your tips for learning the types defined in the .NET base class libraries since this is the heart of .NET and not necessarily learning the syntax of C# or other supported languages?

A: My approach to learning .NET is this: start by understanding the fundamentals of the language. Then go on to building applications. Along the way you'll find a need to understand more advanced topics, and you can take these on as the needs present themselves. There is no reason to memorize very much of the Framework; the classes are divided into reasonably intuitive namespaces, and you can tackle them as the needs arise.

Q: Your experiences as a respected and widely known guru would be of benefit to many veterans. Can you detail your personal history and how you came to write? What personally prompted you to enter the computing field? What led you to becoming a note expert on application development?

A: I think you overstate both my reputation and my abilities, but I'm happy to tell you how I came to write. I started with computers in 1971; working on a Monrobot "desktop" computer at Lafayette High School in Brooklyn. In 1984 I was working for Citibank, building a database for technical support for their on line banking service. In1987 I was a VP in Citibank's Humanware organization; working on user interface design. In 1988 I became an independent programmer and built (among other things) PBS's Learning Link bulletin board for teachers and students. In 1992 I went to work for Ziff Davis to build the Interchange Online Network, and switched from C and Unix to C++ and Windows. About six months later I received email from an editor who had read my postings on comp.lang.c++ and who wanted me to write Teach Yourself C++ In 21 Days.

I wrote the first edition of that book at night while working 60 hour weeks for ZD. We hoped to sell 15,000 copies; eventually we sold over a quarter of a million. During the next few years I wrote a few more Teach Yourself and Unleashed books for SAMS, two books for Wrox and a few books for Que. Last year I got my hands on .NET and shortly after that I called O'Reilly and asked (begged) to be allowed to write Programming C#.

I have held two principles in my writing: first: be a programmer who writes, not a writer who programs. I spend about 1/3 of my time writing, the rest of my time is spent coding. My second principle is this: You won't be in the room when the reader is confused, so be as clear as possible. That's it. My goal is to make technical material understandable to working programmers.

Q: Can you share your 20 leading tips for those thinking of getting into the computing field? Can you describe your role with your company and how you plan to shape the company one year and two years into the future, and in the long term?

A : Liberty Associates, Inc., has developed a small network of world-class programmers that we interact with and call upon to help with projects. I believe in building projects with very small teams: ideally 3. I hope to build the training aspect of my business around .NET and to continue to look for interesting projects. My ideal project is one in which a mid-size company wants my help in setting a goal, designing a solution and implementing it quickly and on budget.

Q: For those relatively new in the computing field and for seasoned veterans, which 10 areas should they target for future study, what are the high-growth areas, and can you provide specific advice?

A: I'm not sure I can identify ten areas, but I can say this: Microsoft has "bet the company" on .NET and I intend to focus my own energies on the technologies that .NET enhances. Thus, I recommend expertise in C#, .NET, ASP.NET, XML, SQL and so forth.

Q: You are highly regarded for your books and I have reviewed a number of them over time. I have no hesitation in recommending all of them for the seasoned professional. Please describe your books, how and where they are available? How did you get involved in being an author of books and what would be your 20 biggest tips drawn from the book on C sharp? What additional books are you planning in the near and far term? What would you do different if you started again, having gone through this authoring experience over the years?

A: You are very kind. My principal books are these:

Programming C# is a tutorial in C# and .NET. The first part of the book offers a tutorial in the language, the second part focuses on building Web and Windows applications and Web-services . The third part teaches advanced aspects of the Frameworks.

Programming ASP.NET is a definitive tutorial on ASP.NET and building web applications. We hope to have this book on the shelves early in 2002.

Teach Yourself C++ In 21 Days is my flagship book on C++, and has sold over a quarter of a million copies. It has been translated into a dozen foreign languages, and offers a step by step approach to mastering the fundamentals of the C++ language. I also wrote Teach Yourself C++ In 24 Hours which is a somewhat lighter, easier approach to the same material.

Clouds to Code (Wrox) is a memoir of a sizeable project in C++ and teaches the fundamentals of object oreinted analysis and design in the context of a real project.

You can read about all of my books on my web site: - click on books. I am committed to providing superior support for my books, and you'll find source code, errata, a FAQ and related materials on my site. You'll also find a link to a private support discussion center I provide to my readers, and you can buy my books on my site, typically at a 30% discount.




Copyright © 2000, 2001 Canadian Information Processing Society All rights reserved. Terms of Use Privacy Statement