Need Advice as a Beginner in C++

Hello Forums I am 17 years old and a senior in high school. Allow me to explain my situation. Thus far, I have taken three years worth of compsci courses in high school, having taken the ap compsci a exam and the ib-hl exam in compsci. However, these courses were in java. I want to learn C++ because I feel that if I learn this language, I'll be able write code that is closer to the computer code.

Up to the start of my junior year, I got a A's in all honors/AP courses. An incident happened in my junior year and I received many failing grades and I will be looking at JC for my next two years of college. However, this does not hinder my passion for computer science. I want to learn everything about everything when it comes to this field, and I don't want to waste my next three years (senior year and JC) not learning anything about my intended major.

What do you suggest I do to get started? I know what it means to work hard. I am a self-learner and can learn very quickly. I am open to all information, suggestions, and advice. Thanks!
I want to learn everything about everything when it comes to this field


Not to discourage you at all, but CS is a massive field. Learning everything is just unreasonable, if not impossible. It'd be hard enough to even have a grasp on all of the different fields in CS.

What do you suggest I do to get started?

Read books. Go to amazon or something and order some interesting sounding books. I wouldn't really go for books that are just a language learning book. CS is way more than just learning various programming languages. I'm only in my second year at a CS program, and they just stopped teaching languages. I have one class that's had various assignments that used Python, and I'd never touched it before. I was just expected to learn it and do the work. My other class (operating systems) uses a ton of C, and C was never taught to me. Just had to pick it up.

My advice, go pick up some flavor of Linux, and a book about Linux. Go edit the kernel, add some random feature you think would be cool, then figure out how to compile and run it. A fun project to do is actually write your own shell. It's not overly complicated and you'll learn quite a bit. Or you can write your own scheduler. That's gonna be a lot harder, but you'll get some good OS knowledge.
Being a self-learner will take you very far. It is part of this field. Many times you will be studying by yourself to learn new technologies.

I will suggest study well all your math classes and pick up a book for C/C++ beginners. Java and C++ are sort of similar on syntax. I can suggest you 'C How to Program' by Deitel. It teaches you C in the beginning and in the last chapters C++. I think it is essential to understand C, since it is still used. And that way you can appreciate C++ (Object-Oriented Programming) more.

In the end, this is just a suggestion. Read what others in this forum tell you and then decide by yourself what to do with your studies.

Regards.
Are there any book you guys can recommend?
closed account (N36fSL3A)
I would recomend C++ For Dummies, check your loacal library or look it up on Amazon.
anything by bajarne stroustrop
closed account (o1vk4iN6)

I would recomend C++ For Dummies, check your loacal library or look it up on Amazon.


Why would you want to read a book made by a company who doesn't specialize in C++ but generic how to guides for people stupid enough to buy them?
> Are there any book you guys can recommend?

'Accelerated C++' by Koenig and Moo
http://www.acceleratedcpp.com/

@xerzi: that is completely wrong and shows you are going off the title. i bought it and its not made by a random guy its made by a guy who has programmed for thirty years, wrote numerous books on c++ and was hired at homeland security.
was hired at homeland security.


Much like these fine people: http://heavemedia.com/wp-content/uploads/2011/07/tsa-agents.jpg
closed account (o1vk4iN6)

@xerzi: that is completely wrong and shows you are going off the title. i bought it and its not made by a random guy its made by a guy who has programmed for thirty years, wrote numerous books on c++ and was hired at homeland security.


I'm not going off the title, I'm going off the company and the goals of their product line. The person who is writing the book is going to be placed under restrictions by this company.

If you want to learn C++ I'd say read the ISO manual. I'd suggestion books that deal with data structures/algorithms as they are language independent. If you pick the "wrong" one your program will be "slow" regardless of the language you choose. I also find some people asking why std::list doesn't have an operator[] to access an element.
Aramil of Elixia wrote:
@xerzi: that is completely wrong and shows you are going off the title. i bought it and its not made by a random guy its made by a guy who has programmed for thirty years, wrote numerous books on c++ and was hired at homeland security.


No he is right. I have one of the first few editions and that is the only book I've read where the author randomly talks about Tofu and compares inheritance and composition to making nachos in the microwave. Bjarne and others stay objective and only relate real world things to the examples. I fail to see where Tofu and Nachos/Microwaves are good examples of anything in C++. I honestly enjoyed reading Bjarne's The C++ Programming Language Special Edition over C++ for Dummies.

xerzi is also right in the fact that the company behind the 'for DUMMIES' series are making them to basically teach complex ideas in 'dumbed' down ways for the simple minded readers to understand. The just say it nicely, but the DUMMIES series was and is designed to teach the readers that can't understand the more technical books like Bjarne by "making it simpler". If you read between the lines of the DUMMIES series goals it is basically teaching idiots that can't understand the technical books.

Also, his experience, job, and books doesn't mean he knows what he is writing about. D.S. Malik has a PhD and teaches Computer science courses, but everyone says to avoid his books at all costs. Same with For Dummies books.

Thinking in C++ Volume 1 and 2 should be looked at, Bjarne books, and a few others that were mentioned. I'm currently reading the book from CProgramming.com's webmaster (Alex Allain) but so far I'm not impressed, but I'm not far into it.
closed account (zb0S216C)
xerzi wrote:
"Why would you want to read a book made by a company who doesn't specialize in C++ but generic how to guides for people stupid enough to buy them?"
"C++ for Dummies" isn't all that bad of a book. Why? Because it simplifies seemingly advanced topics, such as exceptions, and inheritance, without misleading the reader. It's suitable for beginners, but for advanced users, it's a read which won't teach you anything. Besides, it's for hobbyist programmers, and not forgetting the fact that it's an entertaining read.

Wazzak
closed account (N36fSL3A)
I recommended C++ for dummies was because I did not know how the guy was in programming... honestly, I read it and I did not enjoy it because I already had experience. I wouldn't recommend the book to people who know basics in general programming : Variables, if statements, etc. I would recommend Bjarne's books if you aren't REALLY new to computer programming...
To be honest, I think that Stroustrup's book and the ISO manual are horrendous suggestions for a beginner's read.

Sorry, I can't recommend any books. I've picked up almost everything in either university lectures or through experimentation. I used the Big Nerd Ranch guides for picking up Objective-C but I don't think they make C++ book.

I can tell you one to avoid; Schildt's A Beginner's Guide. I remember thinking it was ok when I looked at it prior to university. Now when I look back, I think his explanations of some of the key concepts are way off and his metaphors contrived.

Good luck in your studies anyway. If you work hard enough, you'll do great.

> To be honest, I think that Stroustrup's book and the ISO manual are horrendous suggestions for a beginner's read.

Stroustrup's 'Programming -- Principles and Practice Using C++' is an excellent book for someone just starting to learn C++
http://www.stroustrup.com/Programming/

"C++ for Dummies"? C++ is not for Dummies.
iHutch105 wrote:
To be honest, I think that Stroustrup's book and the ISO manual are horrendous suggestions for a beginner's read.

Depends to be honest. If the beginner is just wanting to play with it an never take it serious then C++ for DUMMIES is perfect for them. If the beginner is wanting to make it a career and be serious then he/she should definitely get any Stroustrup book and learn the terminology and technical side of it quick.

That is the main difference in books. There are too many books (for dummies, teach yourself, etc.) that falsely promise to make people programmers after reading them. If you are serious about it then you will get the hard books and read and re-read them until you get the concepts and everything in the books while doing the examples and exercises.
Topic archived. No new replies allowed.