Advertisement

How Does One Learn C++ ?

Started by February 17, 2017 06:44 PM
15 comments, last by LorenzoGatti 8 years ago

Oh, C++, Oh C++... I try to find your ways but you swiftly slap me across the face every time I look at your complicated syntax. I look at you C++, and you give me headaches of your overwhelming complexity. I want to get to know you but my heart tells me to concentrate on the other beauties out there that were inspired by your originality such as Java. However, you are the one I want to know. Something with you, is different... Oh, C++, oh C++, how does one learn, C++?

I know it is a topic that has been done an infinite number of times, but... I would thoroughly appreciate it if anyone could give me any sources that can teach me C++ easily? I will be glad for anyone's replies to this infamous question :)

There is no one source that will teach you C++ easily. It is not an easy language. There are tutorials and books and references that can make subsets of the language look easy, and help you pick those up, but no one thing will teach you "all" of it (where "all" is defined as "a significant enough portion to write non-trivial software on your own at specific level of mastery and understanding") without effort.

The best course of action is to make sure you are constantly practicing and constantly seeking improvement. Write programs, post them online (such as here) for critique and guidance. When you read new material, come up with things you can build to implement that material and help cement your knowledge; otherwise you will find it easily slip away from you.

What is, as of today, the most complicated program you have written in C++?

Advertisement

There is no one source that will teach you C++ easily. It is not an easy language. There are tutorials and books and references that can make subsets of the language look easy, and help you pick those up, but no one thing will teach you "all" of it (where "all" is defined as "a significant enough portion to write non-trivial software on your own at specific level of mastery and understanding") without effort.

The best course of action is to make sure you are constantly practicing and constantly seeking improvement. Write programs, post them online (such as here) for critique and guidance. When you read new material, come up with things you can build to implement that material and help cement your knowledge; otherwise you will find it easily slip away from you.

What is, as of today, the most complicated program you have written in C++?

"Hello World!"

Understanding datatypes, memory and pointers are the first step to learn C or C++.

So i would recommend a low level introduction, not a high level one!
Like this one


The C++ parts are addons which are built on top of C like for example: namespaces, classes, templates, std library, etc.

People have been asking the question for nigh-on 30 years. It's almost like people should write a FAQ or build some links to this question. ;-)

Here's my list, which I've changed a few times since I first put one together in the late 1990's. You can find more book lists at sites like StackOverflow, which has considerable overlap to my list.

There is no one source that will teach you C++ easily. It is not an easy language. There are tutorials and books and references that can make subsets of the language look easy, and help you pick those up, but no one thing will teach you "all" of it (where "all" is defined as "a significant enough portion to write non-trivial software on your own at specific level of mastery and understanding") without effort.

The best course of action is to make sure you are constantly practicing and constantly seeking improvement. Write programs, post them online (such as here) for critique and guidance. When you read new material, come up with things you can build to implement that material and help cement your knowledge; otherwise you will find it easily slip away from you.

What is, as of today, the most complicated program you have written in C++?

"Hello World!"

Okay, so I challenge you to next write a program that is a simple "guess the number" game. Have the program pick a random number, and then repeatedly ask the user to enter a guess until they enter the correct guess. This will start providing you a nice platform for a concrete program you can use to direct your further education on the subject of C++ in a surprisingly wide variety of directions, depending on what you choose to focus on next.

Advertisement

Understanding datatypes, memory and pointers are the first step to learn C or C++.

So i would recommend a low level introduction, not a high level one!
Like this one



The C++ parts are addons which are built on top of C like for example: namespaces, classes, templates, std library, etc.


Some would argue that this is exactly the wrong way to introduce C++:


The way my mind works, the best path to learn programming is assembly first (it doesn't much matter which one; basic x86 would do), then C (a language that can easily be compiled into assembly language, but is much more human friendly and gives you platform independence), then C++. That last step is possibly the hardest, because C++ is such a huge language.

I really don't know if there is one true answer. One thing that's always very helpful is access to someone who knows C++ really well and who is happy to answer tricky questions. I had a coworker in that roll, but if you aren't that lucky you can probably use forums as a substitute.

http://learncpp.com. In 2 - 3 months I understood from here, what I didn't understand in a few years of university.Try it. :)

I find a lot of the confusion people have (based on seeing the C++ questions in this and other forums - such as a recent one about returning references to parameters from a function) comes from not understanding what's going on under the covers. For this, some low-level knowledge is definitely useful. I dunno if learning C first makes sense - but at least when learning c++, it seems it would be useful to make sure you understand exactly how memory is being copied or manipulated when learning about a specific feature.

How does one eat an elephant? One bite at s time.

This topic is closed to new replies.

Advertisement