Advertisement

C++ Workshop - Introduction

Started by May 14, 2006 01:11 PM
261 comments, last by Melvin18 15 years, 8 months ago
I was looking at the book that seems to be the front runner (Sams Teach Yourself C++ in 21 Days) at Amazon and here is a snip from one of the reviews:

Quote:

First and foremost templates and the STL are not covered until Day 19, which means that all the code samples until then use the old C libraries.


I don't have the book yet and would really be discouraged is this was the case. Does anyone have it that can verify?
SDBradley
CGP
"A person who won't read has no advantage over one who can't read." ~Mark Twain
Quote:
Original post by Fruny:
If you don't plan on teaching it as part of the course, there is no point to even begin. I don't want to get involved in a "C with classes" course.



Wow...It's important to note that there's a difference between the "C++ Standard Library" and the "Standard Template Library."

Many of the textbooks on the list at the beginning of this thread cover neither Templates nor the STL and were ALL highly recommended books. This, I believe, is because both templates and the STL are considered intermediate, not beginning concepts.

I feel this is incorrect, however. Templates are an integral part of the C++ language and any textbooks which do not cover templates were removed from my list immediately. Likewise, some of the books (including Beginning C++ Game Programming) included a chapter on the contents of STL, but never addressed the topic of "templates." A large portion of the book contains exercises and examples that uses the STL. While it's nice they gave an early introduction, I fail to see how someone can effectively grasp the concepts and benefits of the STL if they are unfamiliar with the concept of a template. Sure, they might be able to use the STL as a library of containers and algorithms, but the syntax will seem strange and they will be unable to leverage the power of templates themselves.

So we will cover templates as part of the workshop. Whether or not we cover the STL depends on whether or not I can find a textbook which suitably covers the subject matter as part of a "beginning C++" book. And for the record, I do not believe that teaching and/or learning is ever a waste of time. I'm going to repeat that so that everyone understands my position.

The pursuit of knowledge or the desire to share knowledge is NEVER A WASTE OF TIME..

The Standard Template Library is just that...a library. It happens to use templates, and it happens to be filled with nifty little containers and algorithms. But NOT delving into the templates contained within the library doesn’t make learning C++ any less effective then NOT learning DirectX immediately. There is always time for a more thorough investigation into the Standard Template Library once the basic syntax and semantics of the language are fully explored - including Templates.

Cheers!
Jeromy
Jeromy Walsh
Sr. Tools & Engine Programmer | Software Engineer
Microsoft Windows Phone Team
Chronicles of Elyria (An In-development MMORPG)
GameDevelopedia.com - Blog & Tutorials
GDNet Mentoring: XNA Workshop | C# Workshop | C++ Workshop
"The question is not how far, the question is do you possess the constitution, the depth of faith, to go as far as is needed?" - Il Duche, Boondock Saints
Advertisement
Quote:
Original post by IronGryphon
I was looking at the book that seems to be the front runner (Sams Teach Yourself C++ in 21 Days) at Amazon and here is a snip from one of the reviews:

Quote:

First and foremost templates and the STL are not covered until Day 19, which means that all the code samples until then use the old C libraries.


I don't have the book yet and would really be discouraged is this was the case. Does anyone have it that can verify?






If, by "old C libraries," he meant using char[] and char* to represent arrays of characters and an address in memory which contains character data - accompanied by iostream objects and the << and >> operators for console input...then yes.

But using char[] and char* as "strings" serves a higher purpose then to act as a text container. Using char[] and char* helps teach the relationships between variables, arrays, the const keyword, and pointers. Pointers are one of the most difficult concepts for beginning C++ programmers to grasp. Giving them more exposure to the practical uses of addresses and dynamic memory allocation is a good thing. I'm tired of tutoring people on the dynamics of the * operator because they learned std::string before they learned what an address in memory was. "What's a char* const? Why does this function ask for a const char *? All I know how to use is std::string."

For what it's worth, I didn’t see any printf's and scanf's when I was looking through the book, however. Have faith people. [lol] I'm looking at 10+ popular books, trying to determine which would be the best to learn C++ by. I wont lead you astray. As you can see from a recent post, I'm against learning "C before C++," so I'll look for a book which clearly teaches C++ and not C.

Cheers!
Jeromy Walsh
Sr. Tools & Engine Programmer | Software Engineer
Microsoft Windows Phone Team
Chronicles of Elyria (An In-development MMORPG)
GameDevelopedia.com - Blog & Tutorials
GDNet Mentoring: XNA Workshop | C# Workshop | C++ Workshop
"The question is not how far, the question is do you possess the constitution, the depth of faith, to go as far as is needed?" - Il Duche, Boondock Saints
Quote:
Original post by londonman
I have a question how will people still be able to learn c++ if they don’t have the book


I would believe that a good deal of the core teachings will come from those conducting the workshops. The books would probably be used as a reference. The person running the workshop can probably use examples in the book to possibly help clarify some of the things they will explain. You can probably look up examples for anything that is discussed in the workshop, but ina n effort to possibly keep everyone on the same page, the book would be strongly preferred.

We'll bring your children up in the classic English manner, by making them learn latin, and beating them half to death in a single sex environment.
Quote:
Original post by Strider_Hiryu:
I would believe that a good deal of the core teachings will come from those conducting the workshops. The books would probably be used as a reference. The person running the workshop can probably use examples in the book to possibly help clarify some of the things they will explain. You can probably look up examples for anything that is discussed in the workshop, but ina n effort to possibly keep everyone on the same page, the book would be strongly preferred.



There are essentially two ways this workshop can be set up.
1. Instructors/tutors "teach" the information, and use a book as a reference.
OR
2. Students "learn" from a book, and use the instructors/tutors to help them clarify things which they do not understand.

This workshop is designed to use method 2 - Students "learn" from a book, and use the instructors/tutors to help them clarify things which they do not understand.

If you do not have the book, you will be at a serious disadvantage. Without the book you have no information to "learn," as the tutors will not be writing tutorials or a separate textbook. Additionally, questions that are asked and answers given will reference page numbers and line numbers of code as shown in the book. So again, without the book you will be unable to reference the material.

If you do not have the textbook you can still answer other people's questions. If you have a previous version of the textbook you can read along with us and ask questions, however keep in mind that answers may be given along the lines of "Check page 22, third paragraph for the answer." - in which case this will be meaningless since your book may be different from others.

If you wish to participate, and gain anything useful from this, I HIGHLY RECOMMEND you purchase the textbook.

Picking the Textbook:

I've narrowed the list down to 4 books, as you can see from the primary post and I've found a bookstore that carries all 4. I am going right now to make a final examination of the books. So the "official" textbook of the workshop will be posted this evening.

Cheers!
Jeromy Walsh
Sr. Tools & Engine Programmer | Software Engineer
Microsoft Windows Phone Team
Chronicles of Elyria (An In-development MMORPG)
GameDevelopedia.com - Blog & Tutorials
GDNet Mentoring: XNA Workshop | C# Workshop | C++ Workshop
"The question is not how far, the question is do you possess the constitution, the depth of faith, to go as far as is needed?" - Il Duche, Boondock Saints
Quote:
Original post by jwalsh
I've narrowed the list down to 4 books, as you can see from the primary post and I've found a bookstore that carries all 4. I am going right now to make a final examination of the books. So the "official" textbook of the workshop will be posted this evening.

Cheers!




ohhh i hope its sams...




_____________________________im not 1337 enought to have a cool sig
Advertisement
The official textbook is: drumroll please....

Sams "Teach Yourself C++ in 21 Days (5th Edition)".

You can purchase a copy online here.

A word about the text:

After looking at over a dozen textbooks I settled on "Teach yourself C++ in 21 days." The reasons for this are as follows:

  • It covers the majority of relevant C++ topics briefly enough to be an easy learning tool but thoroughly enough to be a useful reference
  • It explains things in an easy to read format by accompanying all concepts with complete example programs, without spanning several pages
  • It answers the majority of beginning C++ questions I see appear on GDNet.
  • All examples include the code listing, output, and an analysis of the code
  • All examples include line numbers for easy reference
  • It includes a brief summary, questions & answers, quizzes, and exercises at the end of every chapter.
  • It's 5 editions have been widely read by many individuals and so it's had a chance to "mature."
  • The easy reference cards on the back and front inside covers are useful reference items
  • It rings up at around $35. Cheaper then "C++ Primer Plus" at around $50.00, and my personal favorite "C++ How to Program" at $99.00.

Now, with all of that said it begs the question: "Do I believe this is the best textbook by which to learn C++?" - No. After my research I've concluded that there is no best book by which to learn C++. Each book had its strong points and weak points, and I was required to weigh each of those things against each other. In the end, this book had the fewest glaring weak points.

In particular, this books fails to explain the "Nitty gritty" details of specific concepts, which is to say its perhaps not as technical as I would like. At the same time, it doesn’t go into the standard library as much as I would prefer, nor does it have sufficient coverage of std::string - though it does explore its own String class, and discusses what is necessary to build such a class.

As would be expected, myself and the other tutors should fill in the relevant information at the appropriate time. My goal is to make sure that anyone who participates in the workshop finishes it with a good beginning understanding of C++, ready to take on the more intermediate and advanced components of the language. We'll see if I succeed...in 21 weeks.

Cheers!
Jeromy Walsh
Sr. Tools & Engine Programmer | Software Engineer
Microsoft Windows Phone Team
Chronicles of Elyria (An In-development MMORPG)
GameDevelopedia.com - Blog & Tutorials
GDNet Mentoring: XNA Workshop | C# Workshop | C++ Workshop
"The question is not how far, the question is do you possess the constitution, the depth of faith, to go as far as is needed?" - Il Duche, Boondock Saints
Nice!! We have the official book!!!

Sams Teach Yourself C++ Programming in 21 days

Great choice :)

Keep up the good work jwalsh...


I can't wait for the beggining of the Workshop. I'd be glad to help as a tutor :D





------------------------------"Carpe Diem!""Failure is the prequel of success"_.-:Jimbo:-._
Quote:
Original post by jwalsh
At the same time, it doesn’t go into the standard library as much as I would prefer, nor does it have sufficient coverage of std::string - though it does explore its own String class, and discusses what is necessary to build such a class.


*sigh* [sad]

Quote:
As would be expected, myself and the other tutors should fill in the relevant information at the appropriate time.


And you guys better listen to what we say rather than follow the book blindly. [evil]


"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." — Brian W. Kernighan
This is a great idea you are doing here, jwalsh. I think I didn't spend enough time learning C++ and jumped into SDL and 2D graphics and I would like to go through this course to relearn the basics and probably remember lots of things that I forgot.

One question, I have the 4th edition of the book, do you think it would be alright to use for this course? Or should I go out and buy the 5th edition?

This topic is closed to new replies.

Advertisement