News from National -- Current Articles
C++ Expert Jesse Liberty
Interview by S. Ibaraki, I.S.P.
This week, Stephen Ibaraki, ISP, has an exclusive interview with Jesse
Liberty (at http://www.libertyassociates.com).
Jesse is a highly respected international authority on C++, C#, and
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
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
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
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
You can read about all of my books on my web site: http://www.LibertyAssociates.com
- 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.