Author Topic: Ot - C++  (Read 3300 times)

0 Members and 1 Guest are viewing this topic.

Offline HotSnoJ

  • Knossos Online!
  • 29
    • http://josherickson.org
Can anyone tell me what the best C++ book is for beginners/newbies/me is? Since I will be one....someday. I wanna learn 'cuz my fav modeling program source is going to be released soon. So I'd like to modify it for my own use.
« Last Edit: October 08, 2002, 02:49:36 pm by 516 »
I have big plans, now if only I could see them through.

LiberCapacitas duo quiasemper
------------------------------
Nav buoy - They mark things

 

Offline mikhael

  • Back to skool
  • 211
  • Fnord!
    • http://www.google.com/search?q=404error.com
I recommend several books (each for different reasons):

C++ In Plain English, 3rd Edition by Brian Overland. This book has a good basic reference and a pretty handy tutorial. The tutorial handles some examples slightly differently than most texts, thus offering a different perspective when trying to understand difficult concepts.

The C++ Programming Language, 3rd Edition, Bjarne Stroustrup. THE reference by the man himself. He's quite opaque at times, but still a very handy reference.

C/C++ Programmer's Reference, 2nd Edition, Herbert Schildt. An excellent reference, with good notes on the differences between C and C++ and what to look out for.

I'd also recommend a book on datastructures and algorithms. I haven't found one that suits my tastes yet though.
[I am not really here. This post is entirely a figment of your imagination.]

 

Offline Stealth

  • Braiiins...
  • 211
i don't know C++ much, i've been learning Java

 

Offline Ulundel

  • Big press poppa
  • 210
I got pretty good book. 200 pages and looooots of math. :shaking: :D

 

Offline vadar_1

  • Mr. Crispy
  • 29
  • .
    • http://dynamic4.gamespy.com/~freespace/hosted/fullcircle/
Learn Pascal, its incredably easy, just learn the basics of it, then once your down with the syntax, you can just learn C++ yourself with the help of a few websites. I know uh... 6 or 7 languages now, and ive never needed a book. Waste of time.
"Shockingly, checking Draw Lines Between Marked Icons draws lines between the marked icons. " -Volition quality help files

Projects;
The Full Circle Project (site down - server side problem)
Paradox (site down - server side problem)

 

Offline RandomTiger

  • Senior Member
  • 211
I used Sams 21 days and C++ for dummys, the latter wasnt that great. But I recommend reading at least two different books so you get an even feel for things.

I recommend you read up of C as well:

The C Programming Language - Prentice Hall

And when you think you are getting really good at C++ buy:

Effective C++ - Scott Meyers

and relise that you are not, but will be by the time you finish his book.

Also vadar_1 is right, Pascal is a great teaching language to ease you into c or C++. However not sure I agree with his comments about not needing books.

 

Offline mikhael

  • Back to skool
  • 211
  • Fnord!
    • http://www.google.com/search?q=404error.com
Quote
Originally posted by RandomTiger
The C Programming Language - Prentice Hall

D'oh! How could I forget that one?

Quote

And when you think you are getting really good at C++ buy:

Effective C++ - Scott Meyers

and relise that you are not, but will be by the time you finish his book.

I hear both good and bad things about this book. Care to go into some more detail?

Quote

Also vadar_1 is right, Pascal is a great teaching language to ease you into c or C++. However not sure I agree with his comments about not needing books.

I don't know that I would ever recommedn Pascal for much of anything. It sits firmly down there with COBOL in my estimation. ;)

Anyone who says you don't need books to learn a language is kidding themselves. At the very least, you'll need something that clarifies the syntax and helps lay out gotchas, etc.  The Web, whilst helpful, is not always the best way to go.

Also, never underestimate the value of a class. While classes tend to be quite slow and often very boring, there's no substitute for having a real honest to goodness instructor who can help you understand both the question you want to ask, and the answer to that question.
[I am not really here. This post is entirely a figment of your imagination.]

 

Offline RandomTiger

  • Senior Member
  • 211
Effective C++ - Scott Meyers is without a doupt a brilliant book, those who say different obviously didnt do their reseach before they bought this book.

It is a short book based on 50 points about C++.
You cannot learn C++ from this book.
You must already know C++ very well to make any use of this.

It gives you some very specific advice about particular C++ issues.
So specific what you learn will not be applicable to any other language.

I never actually put much of this book into use but reading it gives you an understanding of C++ you cant get from your general learn it in however many days.

To be honest I cant remember why is was so good, that probably means its time to read it again. I just remember it being a real eye openner.


I havent done any proper C++ for a while sadly. All C.
Leave it for now but consider it when you are more experienced.

I remember Amazon reviews being helpful. I bought it purely on that basis: http://www.amazon.co.uk/exec/obidos/ASIN/0201924889/qid=1034118975/sr=2-1/ref=sr_2_3_1/202-4392549-4888659
« Last Edit: October 08, 2002, 06:05:46 pm by 848 »

 

Offline RandomTiger

  • Senior Member
  • 211
Also 'Code Complete' is one of those great books no-one tells you about but everyone seems to have read. Its a general coding book covering an amazing amount of stuff.

Its for all programming in general, and its quite old and a few bits are out of date but most of it is great stuff that can be applied most programming languages.

On pascal, I tryed to learn C before uni using the book I stated before, but no internet back then to help out. I found it too difficult and left it. After a year of Pascal I came back to it using the same book and it made total sence.

---

Anyway hotsnoj, if you are truely starting from scratch and learning on your own steam you might find it quite difficult unless you are very motivated.

Buy at least two beginner books and do all the tutorials even if they dont seem relevent. Find yourself a good beginner coder forum to get help when you need it.

The most difficult thing about C/ C++, and the things that gives it all the power and speed are pointers. You must learn how to use these safely and properly. Once you have that nailed down you are sorted.

  

Offline mikhael

  • Back to skool
  • 211
  • Fnord!
    • http://www.google.com/search?q=404error.com
Quote
Originally posted by RandomTiger
Also 'Code Complete' is one of those great books no-one tells you about but everyone seems to have read. Its a general coding book covering an amazing amount of stuff.

...

The most difficult thing about C/ C++, and the things that gives it all the power and speed are pointers. You must learn how to use these safely and properly. Once you have that nailed down you are sorted.


I happen to be reading Code Complete right now. Its not just a a great general software development book, but its a glimpse back in time to what the industry was like in the late 80s and early 90s. :D

Pointers used to drive me batty--until someone rephrased things as "by reference" and "by value", and showed me an example of the differences in (of all things) VBScript. Suddenly all became clear. After that, it was a simple matter to follow on into pointer math. :)
[I am not really here. This post is entirely a figment of your imagination.]

 

Offline HotSnoJ

  • Knossos Online!
  • 29
    • http://josherickson.org
Quote
Originally posted by RandomTiger
Anyway hotsnoj, if you are truely starting from scratch and learning on your own steam you might find it quite difficult unless you are very motivated.

Buy at least two beginner books and do all the tutorials even if they dont seem relevent. Find yourself a good beginner coder forum to get help when you need it.

The most difficult thing about C/ C++, and the things that gives it all the power and speed are pointers. You must learn how to use these safely and properly. Once you have that nailed down you are sorted.


Yup I'm sorta motivated. I want to make it (Blender) more FS(2) friendly. Thought I don't doubt that someone else here could do a better job and tons faster. Along with playing with the FS2 source to make my own game (eventuly).
I have big plans, now if only I could see them through.

LiberCapacitas duo quiasemper
------------------------------
Nav buoy - They mark things

 

Offline Stealth

  • Braiiins...
  • 211
actually i'd say learn Assembly.

it's hard as hell, but it teaches you a whole lot about computers

 

Offline CP5670

  • Dr. Evil
  • Global Moderator
  • 212
I would agree there; that's probably what I am going to try and learn once I can free up some time. I guess it does not have a whole lot of practical utility, though.

 

Offline mikhael

  • Back to skool
  • 211
  • Fnord!
    • http://www.google.com/search?q=404error.com
Quote
Originally posted by Stealth
actually i'd say learn Assembly.

it's hard as hell, but it teaches you a whole lot about computers


Which assembly is that? x86? 6080x? there's an assembly language for every chip out there. That's not the way to learn a computer language--much less one to play around with the source code for a program written in C/C++.

You want to play with assembly and use it to learn about the way computers work? Go pick read Knuth. Anything else is wasting your time. Sure its a made up assembly for a made up processor, but no one can teach you the ropes like Knuth. If you can't take what you learn from THOSE books and apply it to programming of any sort, you're wasting your time trying to program.
[I am not really here. This post is entirely a figment of your imagination.]

 

Offline aldo_14

  • Gunnery Control
  • 213
Firstly, IMO there is virtually no point in learning x86 assembly... it's hideously complicated due to the constant revions (and need to preserve backwards compatibility).  Not to mention the main fact - that most compilers are now efficient enough to outdo all but the most expert assembly programmer.

The real use for assembly is embedded systems - the chips in phones, cars, microwaves, etc.  Although many microProcessors are shared in multiple apps, you'll really need to learn about the general architecture of this stuff, rather than for a specific chip type (this applies to PC processors, too).

I'd suggest getting a book like (my textbook for CompArch last year) Computer Organisation and Design (Patterson & Hennessy - complex, tough, but informative) to leanr the basics... but you'll really need to do proper courses to leanr.  and to become a good pro, you'd probably need to do something like a CES degree (I do Computer Science, which is less hardware focused than this - although we do do some assembly EmbSys programming and work on compilers this year).

If  you're learning a language like C++, and you want to be able to use other languages as well (and also to understand the code a bit better), I'd strongly suggest you try and find a good textbook on data structures and algortihms, so you can help recognise the code better.

Finally (for either type of programming), take a course in it, even if it's just a few months long.  There is no better way to learn than through practical use - I always see the point of my Uni lectures as providing a foundation for developing experience, rather than just gaining knowledge.

 

Offline an0n

  • Banned again
  • 211
  • Emo Hunter
    • http://nodewar.penguinbomb.com/forum
"I.....don't.....CARE!!!!!" ---- an0n
"an0n's right. He's crazy, an asshole, not to be trusted, rarely to be taken seriously, and never to be allowed near your mother. But, he's got a knack for being right. In the worst possible way he can find." ---- Yuppygoat
~-=~!@!~=-~ : Nodewar.com

 

Offline CP5670

  • Dr. Evil
  • Global Moderator
  • 212
The main reason I would be learning this stuff is for computer science theory (I'm going into analysis, but I would still like to know some discrete math); I don't care much for actual practical programming. :D

 

Offline aldo_14

  • Gunnery Control
  • 213
Quote
Originally posted by CP5670
The main reason I would be learning this stuff is for computer science theory (I'm going into analysis, but I would still like to know some discrete math); I don't care much for actual practical programming. :D


You can't go into CS theory if you don't understand how poeple USE the computer.  It's a 2 edged sword - programmers need to understand how the machine works and how to best use it, and the hardware designers need to understand how programmers use the hardware or their new designs and ideas will end up as virtually unusable to everyone else.

 

Offline mikhael

  • Back to skool
  • 211
  • Fnord!
    • http://www.google.com/search?q=404error.com
Quote
Originally posted by CP5670
The main reason I would be learning this stuff is for computer science theory (I'm going into analysis, but I would still like to know some discrete math); I don't care much for actual practical programming. :D


This is why you read Knuth, CP. By creating an imaginary processor with an imaginary instruction set, Knuth keeps you focused on the theory.
[I am not really here. This post is entirely a figment of your imagination.]

 

Offline CP5670

  • Dr. Evil
  • Global Moderator
  • 212
Quote
You can't go into CS theory if you don't understand how poeple USE the computer. It's a 2 edged sword - programmers need to understand how the machine works and how to best use it, and the hardware designers need to understand how programmers use the hardware or their new designs and ideas will end up as virtually unusable to everyone else.


Well, I will just be studying this stuff as a side hobby; professionally speaking I am going into a somewhat different field anyway (pure math; special functions, fractional calculus, and that area), so you will not have to worry about getting messed up hardware from me. :D

Although it might be nice to learn some practical C++ programming anyway just so I can play around with the FS2 source...

Quote
This is why you read Knuth, CP. By creating an imaginary processor with an imaginary instruction set, Knuth keeps you focused on the theory.


I have heard a bit about this one in various places on the internet, and it looks like just the right kind of thing for my purposes. Need to take a closer look at this next time I get a chance to visit a local bookstore...