>What do you guys think of the Sam's book?
I don't trust any book that you can finish in 21 days, 24 hours, or 10 minutes or claims to be for dummies or idiots. They tend to gloss over important concepts (assuming the author is competent), but more often than not the author could use a bit more learning before trying to teach.
>Don't want to learn a style and then try to unlearn nasty habits..
Unless you have an ace C++ programmer who has a knack for teaching holding your hand the entire time and guiding your studies, you're going to learn bad habits. That's a part of the process, and believe it or not, unlearning bad habits can be more instructive than learning the right way from the get go. That's not to say that you should
try to learn bad habits just so that you can unlearn them, of course.
>Scalar data just meant single values, much like int, unsigned short int, or even char.
Bingo. C++ just makes you pick them individually instead of lumping everything together into a scalar type.
>List of course is for several, list styled values.
C++ has the same thing, though lists are called arrays, and because C++ doesn't roll many types into one, you have a truly homogeneous list. That is, an array of int can only hold integer values. Heterogeneous lists are possible, but you have to take advantage of polymorphism or generics.
Also note that there's no native string type in C++, so an array of char is used to represent strings. So in C++ strings count as an aggregate type instead of a scalar type. That's an important concept to remember because it trips up a lot of C++ beginners.
>but how do you work around it in the programmers point of view? perl had no limits on size.
Perl (4 and 5, I'm not sure how the implementation changes in 6) does have limits on size because it uses C data types under the hood. You just never hit that limit, and if you choose your types wisely, you're not likely to hit it in C++ either. For example, if you're representing the age of a person, you don't really need the full range of a scalar integer (size_t, IIRC, which is typically an unsigned 32-bit value), right? It's reasonable to assume that an unsigned 8-bit char (0 to 255) can represent the possible age of a human until we get some really awesome longevity drugs.
>I'm also having trouble understanding Linked List, as well as strings.
Linked lists are fairly pervasive regardless of the language, and I'm surprised you haven't worked with them in Perl before. You can find a somewhat thorough dissertation on them using C-style syntax
here. Strings are very very simple. They're just arrays of char with a trailing special character to mark the end of the string. The special character is called nul, and has the value 0, or '\0'. That's it. Just make sure your array of char ends with '\0' and you've got a string.
>I've built a few programs and many many example exercise questions..
>but none of them feel like they have any point to it.
It might feel that way, but any practice is still practice.
>where else do you guys suggest to go for a really thorough
>tutorial, explanation, guide, and information source for C++?
This forum is good. You really won't find a single resource that covers everything because there's just too much to cover. I'd recommend following the threads here as you'll find the majority of the problems beginners encounter and the resulting advice from very experienced and talented programmers.