Jump to content

  • Log In with Google      Sign In   
  • Create Account

C++ As First Language


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
72 replies to this topic

#41 Codarki   Members   -  Reputation: 462

Like
3Likes
Like

Posted 12 July 2012 - 02:33 AM

So what I really want from you is to tell me which language you prefer most and a good introductory book with it. I will check all the books reviews and see what is better for me.

I prefer C++ and this book looks recent and decent enough:
Programming: Principles and Practice Using C++ by Bjarne Stroustrup http://www.amazon.com/dp/0321543726/?tag=stackoverfl08-20

Also all the best practices and intermediate books from (the beginner books are published around 2000 and might not be that good):
http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list

Sponsor:

#42 rnlf   Members   -  Reputation: 1141

Like
1Likes
Like

Posted 12 July 2012 - 02:42 AM

While Stroustrup writes very good books, I would never recommend one of his books to a beginning programmer. He usually assumes you already know how to program (in any language) and builds upon this knowledge. Also this book seems to focus on "classic" C++. It uses some things that are outdated by today's standards and has actually no C++11 content.

This book is outdated and not suitable for beginning programmers.

Edited by rnlf, 12 July 2012 - 02:43 AM.

my blog (German)


#43 Codarki   Members   -  Reputation: 462

Like
1Likes
Like

Posted 12 July 2012 - 03:35 AM

While Stroustrup writes very good books, I would never recommend one of his books to a beginning programmer. He usually assumes you already know how to program (in any language) and builds upon this knowledge.

Overall picture I got from the description, excert, and couple of reviews is, that this book is aimed at non-programmers and using modern C++ as the language to teach different aspects of programming. I haven't read it so maybe I'm wrong.

Also this book seems to focus on "classic" C++. It uses some things that are outdated by today's standards and has actually no C++11 content.

Not all C++11 content is aimed at beginners. I'm willing to bet there is heavy use RAII and other best practices.

This book is outdated and not suitable for beginning programmers.

This is published at 2008. Many other suggested books here are from 2000 or so. Can you provide better alternative, which is recent enough to use modern techniques, and aimed at beginners?

#44 rnlf   Members   -  Reputation: 1141

Like
0Likes
Like

Posted 12 July 2012 - 04:00 AM

I'm afraid I don't know any. I used the old "C++ Programming Language" by Stroustrup, but I knew how to program back then. Maybe the book is better suitable for beginners, than I thought, it's in any case much better then this no-fear-book. I guess, if someone really wanted to learn C++ as a first language, this book might be a nice start, but one would have to read up on C++11 and try to forget some of the old C++03 clutter the book teaches.

my blog (German)


#45 rnlf   Members   -  Reputation: 1141

Like
1Likes
Like

Posted 12 July 2012 - 04:27 AM

Maybe I've been a little to harsh on the Without-Fear book as well. After looking at it again, it does at least seem to introduce important C++11 concepts. Maybe in an order I wouldn't recommend, but then I am no teacher and have no training in didactics.

And then, my standards may be a bit to high. Still, don't start learning how to program with C++.

my blog (German)


#46 shadowstep00   Members   -  Reputation: 520

Like
0Likes
Like

Posted 12 July 2012 - 06:06 AM

If i learn Python well will I be able to go on C++ without a problem? or i should learn another language again ?

Failure is not an option...


#47 rnlf   Members   -  Reputation: 1141

Like
1Likes
Like

Posted 12 July 2012 - 06:11 AM

If you really try to understand the concecpts behind python, you will automatically understand the concepts behind a lot of C++.

You will still have to learn the new syntax, you will have to make the move from dynamically to statically typed languages and you will have to understand the conecpt of manual memory management (and how to avoid it in C++) and you will have to learn the new standard library.

That's all you need to know to apply your python knowledge to C++. After you mastered that, you may find it much easier to move on to the interesting features of C++ that let it stand out from the rest of the languages. But you may perhaps get there faster, if you learn python at first, because you can learn the basics in a more forgiving, easier language.

As someone pointed out above: You will not move from python to C++, you will keep python and take C++ as a second language.

my blog (German)


#48 Detectiverr   Members   -  Reputation: 112

Like
-1Likes
Like

Posted 12 July 2012 - 05:37 PM

Just buy a "C++ How to program C++" by Deitel &Deitel. That's the book I'm reading so far.

#49 Serapth   Crossbones+   -  Reputation: 5484

Like
0Likes
Like

Posted 13 July 2012 - 02:07 PM

Maybe I've been a little to harsh on the Without-Fear book as well. After looking at it again, it does at least seem to introduce important C++11 concepts. Maybe in an order I wouldn't recommend, but then I am no teacher and have no training in didactics.

And then, my standards may be a bit to high. Still, don't start learning how to program with C++.


Yeah, it isn't specifically about C++11, expect those books to be showing up with more regularity.

That said, WIthout Fear is probably the most accessible beginners C++ book, while still teaching pretty good style. At least from my recollections when I researched this subject for the guide. It's hard to judge a book from a beginners perspective when you've already learned the subject.

#50 shadowstep00   Members   -  Reputation: 520

Like
0Likes
Like

Posted 14 July 2012 - 05:56 AM

Well I think I have decided to go with C# but again i cant find a good introductary book. The book C# Programming Language that Serapth recommended me is more of a reference or for experienced programmers than a begginers language tutorial (Head First series is not my type) . Posted Image If i cant find a good book on C# I will go for C++ no other choice.

Yeah I know this whole thing really sucks cause there are many like me that spend so much time thinking on which language they should start with and in the end they end up with the same and spending so much time choosing than actually working!. So sorry for being a pain in the ass. Just give me a good book to start with and end this thread at last.

Thank you!

Edited by shadowstep00, 14 July 2012 - 06:00 AM.

Failure is not an option...


#51 boogyman19946   Members   -  Reputation: 1064

Like
0Likes
Like

Posted 14 July 2012 - 06:22 PM

Just pick one and read it. You're really only going to read it once and toss it aside anyway. Pick one, figure out the syntax, and go :D
"If highly skilled generalists are rare, though, then highly skilled innovators are priceless." - ApochPiQ

My personal links :)
- Khan Academy - For all your math needs
- Java API Documentation - For all your Java info needs :D
- C++ Standard Library Reference - For some of your C++ needs ^.^

#52 Fredericvo   Members   -  Reputation: 384

Like
-1Likes
Like

Posted 14 July 2012 - 06:52 PM

I'm going to make a suggestion totally out of the blue. If you are totally new to programming try learning PHP first. It's not useful for games since it's a web scripting language but it's dirt easy and if you never programmed before then games aren't the first thing you should focus on in the first place. With PHP you will at least learn something you will encounter in most other languages such as a while loop, a for loop, switch/case, if/else etc. You will use arrays, hash tables and never have to worry about forward declarations, header files or translation units. That's for when you feel ready for the next step which is when you'd switch to C++. And PHP has the additional benefit that you will need it for your websites where you wouldn't use C++. Another language that you would learn just because it seems easier at first but overlaps with C++ might be abandoned later once you upgrade. Just my 2 cents.

#53 alnite   Crossbones+   -  Reputation: 2112

Like
3Likes
Like

Posted 15 July 2012 - 03:21 AM

..if you never programmed before then games aren't the first thing you should focus on in the first place.


Sorry, I disagree here. Games is exactly why I learned programming. It was my focus 20 years ago, and it still is my focus today. Don't underestimate passion.

#54 shadowstep00   Members   -  Reputation: 520

Like
0Likes
Like

Posted 15 July 2012 - 06:52 AM

Ok guys I start with C# with this book that a guy with p.m. recommended me http://www.amazon.com/gp/product/0735626707/ref=s9_simh_gw_p14_d0_g14_i1?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-2&pf_rd_r=1SKB3DWJV8R3ZZ5R9XSZ&pf_rd_t=101&pf_rd_p=470938631&pf_rd_i=507846

Thank you all for helping me.

Failure is not an option...


#55 rnlf   Members   -  Reputation: 1141

Like
1Likes
Like

Posted 15 July 2012 - 06:56 AM

Whatever you do, do not learn programming using PHP. This language is broken by design, encourages you to learn the worst possible programming style and will make it hard for you to learn any good coding practices.

Do. Not. Use. PHP.

my blog (German)


#56 meliegreeFPM   Members   -  Reputation: 96

Like
0Likes
Like

Posted 15 July 2012 - 09:38 AM

C++ is great language for beginner. Hard - yes but not impossible.

You should learn something more complicated, that give you more control over your actions and ther move to something easier with that knowledge. If C++ is hard for you then you should think about change of resources. I read ~5 books before i find the right one for me beacuse i prefer books with exercises and examples, like in "C++ Programming: Program Design Including Data Structures" which is my book of choice.

If you want to learn C++, you will learn C++ - it's matter of time. After learning some basics you can move to something different, like C# for example.

Edited by meliegreeFPM, 15 July 2012 - 09:43 AM.


#57 boogyman19946   Members   -  Reputation: 1064

Like
0Likes
Like

Posted 15 July 2012 - 11:34 AM

I was under the impression that if you want to learn something, you should always start simple and then build on top of your knowledge. The notion of first learning a hard language and then moving on to an easier one is counter-productive.

The idea of starting with some other language because it gives you more control is, to me, a baffling one. With that reasoning, we could say that, since Assembly gives you the most control you can possibly squeeze out of your computer, you should start with that. Yet it is common among people to not recommend it because it is very difficult to work with. It's like giving your teenage kid a bugatti because it's more responsive. There's a chance of course he will learn to drive it safely but there is also a massive chance that he'll try to make the corner at 50 mph and hurt himself.
"If highly skilled generalists are rare, though, then highly skilled innovators are priceless." - ApochPiQ

My personal links :)
- Khan Academy - For all your math needs
- Java API Documentation - For all your Java info needs :D
- C++ Standard Library Reference - For some of your C++ needs ^.^

#58 meliegreeFPM   Members   -  Reputation: 96

Like
-2Likes
Like

Posted 15 July 2012 - 11:53 AM

I don't think so.

If i once learn something hard i will learn something easy in no time. But if i start from something easy then i must learn much more things in new language. There is also way of thinking "that is to hard for me." when we see to many differences.

When you can repair car we can repair, let say, bicycle in seconds. But that doesnt work another way.

Yeah, but there is also chance that after that bugatti he wil be more responsible than other drivers in his age.

#59 rnlf   Members   -  Reputation: 1141

Like
0Likes
Like

Posted 15 July 2012 - 11:56 AM

So you suppose engineers learn how to build a space ship first, because then, they will have an easier time learning how to weld a pipe in their drain?

my blog (German)


#60 boogyman19946   Members   -  Reputation: 1064

Like
1Likes
Like

Posted 15 July 2012 - 12:07 PM

Again, I completely have a different mindset about this. Never have I seen anyone start off with something hard so he or she can learn something easier later. Schools follow the simple-to-hard rule like a religion. You don't learn Calculus so you can learn Algebra, and you certainly don't learn how to repair cars so you can repair a bicycle. If you ask a University to give you Differential Equations before you learn Calculus they'll look at you like you're crazy :D
"If highly skilled generalists are rare, though, then highly skilled innovators are priceless." - ApochPiQ

My personal links :)
- Khan Academy - For all your math needs
- Java API Documentation - For all your Java info needs :D
- C++ Standard Library Reference - For some of your C++ needs ^.^




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS