Letter from a Novice

One day in March, 1995 I found myself reading this little message on my computer monitor:

[#: 288196 S10/Have You Heard?]
[25-Mar-95 20:34:55]
[Sb: Readers for my new book]
[Fm: Steve Heller 71101,1702]
[To: all]

Hi!
I'm looking for some readers for a book I'm working on,
which teaches people how to program, using C++ as the
language. The ideal candidate is someone who wants to 
learn how to program, but has little or no knowledge or
experience in programming. I can't pay anything, but 
participants will learn how to program, and will be 
acknowledged in the book, as well as getting an 
autographed copy. If you're interested, please reply by
e-mail.

Steve

As I considered my response to this message I felt a little trepidation for what was to come. I have known only one profession: nursing. I had owned and used a computer for only a little over two years at the time and thought DOS was too difficult to understand. Not only had I no prior knowledge of programming, I had very little knowledge of computers in general. Yet, what knowledge I did have of the computer fed my curiosity for more, and as my love of the computer grew, it soon was apparent I had no choice. I replied by e-mail, waited impatiently for several days, and then...

I jumped to the sound of an ominous knock at my front door. A sense of foreboding heightened with every step I made toward the sound. Cracking it open, I saw dark bluish-grey clouds hanging low overhead, threatening to unleash their contents at any moment. The tenseness of the postal worker's expression changed suddenly to an implacable smile as he quickly slipped a large envelope into my unsuspecting hands. Almost as soon as I realized I held the envelope, I looked up again to find the postman gone. The sky began to swirl, though there was only a hint of a breeze on my face. A slow shudder engulfed me as I quickly locked the door.

Half dazed, I was left standing at my doorway, staring at my name on the envelope, written in a handwriting nearly identical to my own. Confused, but with a penetrating sense of courage, I tore open the mysterious yellow mailer. It in turn seemed to be the catalyst for the rupturing of the sky, and my roof and heart pounded in unison. As the contents of the envelope spilled out on my lap, I caught a glimpse of the words “Who's Afraid of C++?” on the looseleaf manuscript. I was briefly frozen by a paralyzing shiver that gripped my body, as I began to wonder what would become of me. What did this mean? What was C++ and why should I be afraid of it? What was I getting myself into?

And one more question, most mysterious of all: Who is Steve Heller?

Never in my wildest dreams would I have ever expected that I would end up reading every page of this book with utmost attention to detail, leaving no word unturned, no concept overlooked, no hair on my head left unpulled for the next nine months of my life. But, if we were going to make this book as clear as possible for anyone who wanted to read it, there was no other way.

The process of writing this book was an enormous effort on both our parts. Neither Steve nor I could have ever imagined the type of dialogue that would ensue. It just happened; as I asked the questions, he answered the questions and I asked again. The exchange would continue until we were both satisfied that I “had it”. When that happened, Steve knew the right wording for the book, and I could move on to the next concept. It was an experience like no other in my life. It was a time filled with confusion, frustration, anger, acceptance, understanding, and joy. The process often gave cause for others to question my motivation for doing it. Admittedly, at times my frustration was such that I wanted to give up. But it became my mountain, and I had to climb it. I would not accept defeat.

The material was not the only source of my frustration. There was the inherent difficulty that Steve and I had in keeping communication flowing and speaking the same language. We found we had very different writing styles, which added another obstacle to our undertaking. He, the ultimate professional, and I, the incorrigible misfit, finally managed a happy medium. We corresponded on a daily basis, almost exclusively by e-mail. Through that medium it was our challenge to get into each other's minds. He had to learn how I thought and I had to learn how he thought — not an easy task for an expert and a novice who were total strangers.

What you are about to read is the refinement of the writings of the mind of a genius filtered through the mind of a novice. Ideally, the result of this combination has produced the best possible information, written in the most understandable form. The book as you see it is considerably different from the original version, as a result of this filtering process. For that same reason, it is also different from any other book of its kind. To our knowledge, this is the first time that someone with no previous background in programming has been enlisted in the creation of such a book. Of course, it took tutoring, but that tutoring is what led to the simplification of the text so that future novices could enjoy a relatively pain-free reading experience.

During the first few months of this process, I had to take it on faith that somehow all of this material would eventually make sense. But late one quiet night while first reading about object-oriented programming (the creation of “classes”), I was abruptly shaken by the most incredible feeling. I was held spellbound for a few moments, I gasped and was gripped with the sudden realization and awe of the profound beauty of the code. I had finally caught a glimpse of what programming was really all about. This experience later led me to write the following in a letter to my sister:

Programming is SOOOO gorgeous. So fine, so delicate. It is so beautifully spun with silk threads, tiny and intricate. Yet like silk it can be strong and powerful, it all depends on how you use it.

At last, I had “gotten it”. Within these pages the beauty lies dormant, waiting to be viewed only when the work has been done and the mountain scaled by those who embark on the task of learning. It is an exquisite panorama and a most worthy journey.

Further Adventures in C++

That was in 1995. As I write this years later, I have gained further insight into the art of programming. When Steve Heller asked me to help with the writing of the second part of this book, originally published as Who's Afraid of More C++?, I felt that shiver down my back again. I groaned, knowing full well this time what I was getting myself into and wondering if I had the stamina to do it again.

Well, I did and we had another book. I also have the answers to the questions that I asked myself those years ago.

I have learned what C++ is. It is a computer programming language. It is an immense language, it is a complicated language, and it is a very powerful language. I learned through the writing of this book that C++ can be molded and shaped to do just about anything you want it to do. It convolutes, twists and turns corners. You can play hide and seek with it. Yet, in the hands of an expert, it is amazing to see it come to life.

As Steve and I wrote this book, I became more than a test reader, I also became a usability tester. Through this role I saw just how complicated writing a program is. I had already seen all the source code for the home inventory program that Steve wrote for this book, and was amazed to see just this one little screen of words to show for all our efforts. I knew what was underneath that screen. I knew all the hours, the false starts, the redos, the polishing that it took to get to where we were in the program, and I could not believe that so little showed for our efforts.

Just when Steve thought he was done with it, I was quick to inform him that indeed he was not. It didn't take me long to “break” the program, causing more redos. Then there were things I wanted in the program to make it just a little easier, or a just little prettier. Back Steve went to the compiler. Actually, I think this was as much of a lesson on software design as it was on “more C++”. There is so much to think about when writing a program; you have to program not only what you want it to do, but also what you don't want it to do.

I can't say that there is no reason to fear C++. It is a difficult thing to learn, but no more so than any other language, including human spoken ones. It takes interest, work, and practice. But I think that as with any difficult subject, it can be mastered with the right learning tools and a competent teacher. I believe Steve to be a natural teacher and in this book, he has created an excellent learning tool.

As for the other question, Who is Steve Heller?: he is now my husband. Even after all the trouble he caused me with C++, I figured anyone who has the same handwriting as I do must be my soulmate.

Susan Patricia Caffee Heller
Sulphur Springs, Texas

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset