The Student Room Group

I want to learn c++, what's the best way of going about it?

I'm planning to learn c++ over the summer and I'm wondering what the best way to go about it is. I want it on my CV, so should I do a course about it (if that's a thing) or is self study sufficient?

Scroll to see replies

Reply 1
C++ is a very hard beginner language to learn. Having C++ down on your CV as a self taught language impressive, but it's the skills you learn from learning to code that is most impressive. That's what employers are looking for.

With that being said there are other programming languages that are more beginner friendly like Python, Java and C#.
Original post by TillTheEnd
I'm planning to learn c++ over the summer and I'm wondering what the best way to go about it is. I want it on my CV, so should I do a course about it (if that's a thing) or is self study sufficient?


But are you willing to take C++ TillTheEnd, TillTheEnd?

I just had to :tongue:.
I've worked with C++ for around 3 years now, but I still much prefer C# for game development. C++ is mainly useful for game development, it's currently the industry standard, but unless you're working in a custom engine or you really need OO programming, I'd stick with C# for easy-of-use.
I've been learning java for a few months now. I bought a beginner's guide cheap online and just persistently read/highlighted/made notes until things became clearer. IMO, just jump into a book/manual and give yourself maximum exposure to the concepts.
Original post by Async
C++ is a very hard beginner language to learn


The only major stumbling point in C++ is pointers and references and memory in general. Once you have figured those out, it is no different to C# or Java. It is only the syntax that is a little terse and dated but more similar constructs can be found in C# and Java.

To the OP - just get a C++ in 24 hours type book. It will cover all the basics. It might also be worth having some sort of mini-project in mind. It is all very well learning a language, but practice is worth about 80% more than theory.

Good luck!
Reply 6
Original post by ByEeek
The only major stumbling point in C++ is pointers and references and memory in general. Once you have figured those out, it is no different to C# or Java. It is only the syntax that is a little terse and dated but more similar constructs can be found in C# and Java.


Exactly. That's my point. Learning that as a beginner can be overwhelming and could easily deter someone. If C++ was the first language I learnt I probably wouldn't of continued coding.

Programming should be made as noob friendly as possible to attract non-technical new comers, C++ does the exact opposite. Python on the other hand is perfect for beginners.
(edited 8 years ago)
Original post by Async
Programming should be made as noob friendly as possible to attract non-technical new comers, C++ does the exact opposite. Python on the other hand is perfect for beginners.


Perhaps, but the OP didn't say he was a newbie. He said he wanted to learn C++. And it isn't that hard. There was a time not so long ago when the luxury of easing yourself in with Java or C# was not a possibility.
I think people really misunderstand the meaning of learning a programming language. It's all very well knowing how to write a for loop, a while loop, or an if statement, etc. (you could learn all of these in a new language in a matter of minutes), but that really isn't going to help you. Just because you know the basics and the syntax, it doesn't mean that you're actually going to be able to make anything. If you're planning on learning a new language, the best thing to do is to decided what you want to do with it. If you want to make a game, then go and find a game development API (e.g. Unity) and then learnt he API in a supported language. Much more useful than knowing abstract C++.
I learned C++ from Bjarne Stroustrup's book, but I did learn C first which made the step to C++ easier.
Reply 10
Thanks for the replies everyone! The main reason I want to learn C++ is because I believe it will help my employability in the chemical engineering sector (as well as being helpful down the line). I have experience with Matlab but I'm not sure how much that will help. Practicing what I understand in a project sounds like a good idea. So is learning C then C++ a better way to do things and will that take much longer?
To contradict most of the above: Build something in it. Pick something (something small, ideally something useful, but that's not hugely important) and build it, with a reference guide on it. When it's done (or reasonably done, no programming job is ever completely finished), build something a bit more ambitious. Repeat until you're happy with the language. There's so many layers of crap to wade through with C++ that you'll literally never get to the point where you understand it all.
Reply 12
Original post by ByEeek
The only major stumbling point in C++ is pointers and references and memory in general. Once you have figured those out, it is no different to C# or Java. It is only the syntax that is a little terse and dated but more similar constructs can be found in C# and Java.


Really? I always found that very easy. The hardest stuff is the generic stuff; multiple inheritance (defo not the same as C#/Java), templates (defo not the same as C#/Java), all the caste types, variadic templates, understanding the ins and outs of the constuctor types (regular, copy, move), destructors, const in all its contexts, static in all its contexts, function pointers, lack of type checking ("bool b = int(1)" is allowed as is dodgy code like "size_t all_bits_set_to_one = ~0" which is just wrong but compiler doesn't complain). Lastly there are tons of little gotchas that are a part of the language e.g. the difference between new and new() when the data type is POD.


Original post by Captain Josh
I think people really misunderstand the meaning of learning a programming language. It's all very well knowing how to write a for loop, a while loop, or an if statement, etc. (you could learn all of these in a new language in a matter of minutes), but that really isn't going to help you. Just because you know the basics and the syntax, it doesn't mean that you're actually going to be able to make anything. If you're planning on learning a new language, the best thing to do is to decided what you want to do with it. If you want to make a game, then go and find a game development API (e.g. Unity) and then learnt he API in a supported language. Much more useful than knowing abstract C++.
It's funny but I actually disagree about the bit in bold. Even at work with some experienced devs I encountered people who didn't know about operator short circuiting, which means they didn't know if statements, while loops etc. I before saw code like this:

if(p && p->defeference())
{/*...*/}

Become:

//fixed bug
if(p)
if(p->defeference()) {/*...*/}

...this 'bug fix' was from an experienced dev.
(edited 8 years ago)
Try courses on edx.org or coursera....there in one starting this week or the coming...on edx

Posted from TSR Mobile
Original post by TillTheEnd
I'm planning to learn c++ over the summer and I'm wondering what the best way to go about it is. I want it on my CV, so should I do a course about it (if that's a thing) or is self study sufficient?



Best tutorial series imo

https://www.youtube.com/playlist?list=PLAE85DE8440AA6B83

He has other tutorials in his website.


www.thenewboston.com
Original post by alohssa
Really? I always found that very easy. The hardest stuff is the generic stuff; multiple inheritance (defo not the same as C#/Java), templates ...


You would be amazed at how many people don't get it. Moving from pointers to templates and multiple inheritance is a non-starter.

We have a really simple test. You would be amazed at the number of people who really struggle.
Original post by Anonynmous
Best tutorial series imo

https://www.youtube.com/playlist?list=PLAE85DE8440AA6B83

He has other tutorials in his website.


www.thenewboston.com


definitely recc this, loads of other tutorials also
Reply 17
Original post by TillTheEnd
I'm planning to learn c++ over the summer and I'm wondering what the best way to go about it is. I want it on my CV, so should I do a course about it (if that's a thing) or is self study sufficient?



Good choice.. I learned to program in c++ and it's made me very crafty because c++ is so unforgiving, it weeds out all the nooby mistakes some developers make... also it brings you very close to the software giving you maximum control which is why nearly all custom computer game engines are made in c++.

as for learning it, it depends on your optimum learning style.

If you can learn visually, more specifically by reading then there's a book called "learn c++ in 21 days" you might wanna look into

If you learn auditorily with sound and that then i recommend watching youtube tutorials and just coding along with what the narrator says or if you can find a good podcast then follow that

as for me, I learn through doing and hands-on practice so I decided to study software engineering at uni and the tutorials really helped..obviously you dont have to enroll in a similar course but if this is your learning style then it would really help to have a mentor/instructor to guide you through some introductory projects...


P.S. if you are trying to impress employers then you may aswell just invest all of your time into making one good c++ application and put a link to the gitHub on your CV, i think this is more effective because it's a "show and prove" type deal.


Best of luck, whatever you choose to do
Reply 18
I can only agree with what has been said before C++ is a difficult language to get to grips with as a beginner.

I would recommend starting of with one of the easier (I use that word loosely as there are no easy languages per say) high level languages such as Java and C# build a foundation on that then move onto C++
Start of high level, and get lower and lower. A great example is Lua, then JavaScript/Python then C++, and maybe even lower, C or ASM.

Quick Reply

Latest

Trending

Trending