How to Learn C++?

Tired of finding way to learn :frowning:
I think i should practice more than just learn, right ?

You don’t learn a programming language by asking others how.

You simply get on with it.

Begin with Hello, world.


Yep, I’ve learning for about 2 month but found it’s not easy

You need to learn to learn, be comfortable doing research for yourself. Regarding the language barrier, you can look at resources written in your language, proper dry books on the subject, I’m sure there’s a translation too if there isn’t anything natively written. If you can’t think for yourself you won’t get anywhere.

It won’t be easy, why should it be? Two months is nothing, most people come out of University after 4 years and still don’t have a clue. I’ve been programming as a hobby for close to 10 and I’m still learning.


Oh wow, that’s what i need now, thank for advice :heart::heart:

It’s not for everyone. That’s my take on it.

If you are learning to look cool, forget it.

Unless you are in a school where you are forced to learn, one generally has a clear purpose of why he wants to learn a programming language. Whether it’s to program a game of your vision or to program software for one’s website, having a clear purpose and a goal is very important.

Asking others how won’t work because, from what I’ve seen, every single programmers out there have their own kinky methods of how to understand the languages.

So, you get on with it and learn it your way.


Well, thank for all.
I’m thinking about it :thinking:

This also depends on how you learn best. Personally, I find it hard to learn language concepts by just reading a book. I find it best to think of a project to create, and then just try to make it while researching along the way. Once I’ve finished the project, I’ll research best practices for certain things and then work on other projects.

Exactly this. You’ll either like it, or hate it. If you don’t like it, don’t do it.


Okay, won’t ask about it anymore :slight_smile:

Definitely agree, I have never been one for hardcore dry books that make your hair turn grey, but they can also be great for situations like OP where he might need a more basic understanding of computer architecture and language principles as a whole.

Regarding CPP, I think it’s a great language for you to start with, but it’s also going to be one of the hardest. You might even be better off getting your ass kicked in C because modern CPP is such a wide area of knowledge (plenty of CPP programmers writing C++11 compliant but also new guys trying to write pure C++17 or even further bleeding edge) it’s easy to get lost and could make the learning process trickier. There’s nothing wrong with going the Python route either, but you will gain less of an understanding for the underlying principles of computer science and be sheltered quite a bit, which might hurt you when you transition to other languages in the future.

Good luck :wink:


Exactly this. I started with Visual Basic (shudders), then moved to PHP, C++ (minorly), JavaScript, then finally Golang and Shell. Picked up a few other languages along the way, but those are the primary ones. C++ isn’t an easy language, which is why I personally went with Golang since it’s close to being as efficient as C++ while being much easier to get into.

I think it’s a great idea to pick up a scripting language as well as a compiled language, because they function in entirely different ways, and it helps you to have a diverse understanding of how malliable core methodologies can be within certain environments.

Ah, this was my first one! Not C++.

Hahaha, how could you confuse them? :laughing:

Yeah, Visual Basic is…fun :sweat_smile:

I forgot it. I was in elementary school around 2000, I entered to a class full of older people and followed the instructions of the teacher. I thought I was just drawing something like in Paint until wild code appeared :joy:

Then it was PHP and then C++.

Lesson: Don’t forget your children in random places or they will become software developers.


C++ difficult ?

Nah, c’mon guys…

Not too difficult compared with this

That’s the good stuff right there! That’s how I started my programming career, after doing machinecode.

1 Like

Different languages are better suited for different purposes. You will not choose Visual Basic to program a micro-controller or create a CRM solution using Assembler.

It’s nice to have a general knowledge of the different worlds, but you end up gravitating towards one and specialising in it.

Start with something simple, that will motivate you to keep exploring and learning more. Once you find your way and decide that it’s something you want to do then you move to the drier side of things and that will give you a more solid foundation to become a better professional.

When I start learning a new language I also like to start with a small project that will motivate me learning more about the language. Sometimes even a project that I already developed in another language that will make comparing the languages easier.

A key challenge in programming that I don’t think is explored enough is discipline. There a lot of programmers in the world but not many good ones. It’s not difficult to break a problem in steps and write a program to solve that problem. If that solution/program will be efficient it’s another discussion.

If you don’t spend time learning the dry side of things - the fundamentals - there is a higher change that whatever you will be building will be a makeshift instead of a proper solution.

One of the key things I learn in programming: you write you program once but you maintain it for rest of its useful life. So, spend enough time doing a proper solution to begin with and save you the headache in the future. :wink:


Some cool web related projects using C++ :

1 Like

Programming is all about solving a problem. That’s why perseverance, independence and the ability to solve a problem is what makes one a good developer. Knowing a programming language inside out is a pro, but is not necessarily a requirement in order to come to a good solution. A programming language is just a tool to solving the aforementioned issue. Many things are to be considered when going for a solution and a programming language is just one of those. Usually many more things like networking and underlying CPU architecture come into play.

That’s my two cents and the approach I take when I talk to people for job interviews. Sadly, many developers aren’t like that. In my (rather short) career, I’ve only ever met 1 developer that taught me something instead of the other way around. Most of the developers are just sticking to the programming language they’re comfortable with and fail to go through rather basic things like self reflection in order to change that behavior.

But that’s mostly generic human behavior anyway.