C++ Expert Jesse Liberty
|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 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
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
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
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
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
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
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
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
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:
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.