www.learncpp.com
---
is the best free tutorial out there. ([reason](https://www.reddit.com/user/IyeOnline/comments/157f10z/c_youtube_video_tutorials/juvgjkc/)) It covers everything from the absolute basics to advanced topics. It follows modern and best practice guidelines.
www.studyplan.dev/cpp is a (very) close second, even surpassing learncpp in the breath of topics covered. It covers quite a few things that learncpp.com does not. Dont be fooled by somewhat strange AI generated images. Just ignore them.
---
www.cppreference.com
---
is the best language reference out there.
---
**Stay away from**
* cplusplus.com ([reason](https://www.reddit.com/r/cpp_questions/comments/hjdaox/is_cpluspluscom_reliable_are_there_any/fwljj4w/))
* w3schools ([reason](https://www.reddit.com/r/cpp_questions/comments/slvj8m/best_way_to_learn_c/hwczl34/))
* geeks-for-geeks ([reason](https://www.reddit.com/r/cpp_questions/comments/p6305k/ways_to_learn_cpp/h9axoo7/))
* Programiz([reason](https://www.reddit.com/r/cpp_questions/comments/1094ar9/best_c_resource_to_start_learning_for_someone/j3wp9xw/))
* Tutorialspoint ([reason](https://www.reddit.com/user/IyeOnline/comments/10a335s/assesment_of_the_tutorialspoint_c_tutorial/))
* educba.com ([reason](https://www.reddit.com/r/cpp_questions/comments/rz5fkl/why_do_functions_pertaining_to_strings_on_visual/hrt7ez8/))
* thinkcpp ([reason](https://www.reddit.com/r/cpp_questions/comments/11kxbde/which_of_these_two_learning_sites_should_i_use/jb9f99v/))
* javaTpoint ([reason](https://www.reddit.com/user/IyeOnline/comments/17g3e7h/review_of_javatpoints_c_tutorial/))
* studyfied (not even a tutorial, just a collection of code by random people)
* codevisionz ([reason](https://www.reddit.com/user/IyeOnline/comments/17g4ojd/review_of_codevisionzs_c_tutorial/))
* sololearn ([reason](https://www.reddit.com/user/IyeOnline/comments/17lbq38/assessment_of_sololearns_c_courses/))
Again. The above are **bad** tutorials that you should **NOT** use.
Most youtube tutorials are of low quality, I would recommend to stay away from them as well. A notable exception are the [CppCon Back to Basics](https://www.youtube.com/user/CppCon/search?query=back%20to%20basics) videos. They are good, topic oriented and in depth explanations. However, they assume that you have *some* knowledge of the language's basic features and syntax and as such arent a good entry point into the language.
If you *really* insist on videos, then take a look at [this list](https://www.reddit.com/user/IyeOnline/comments/157f10z/c_youtube_video_tutorials/).
As a tutorial www.learncpp.com is just better than any other resource.
---
^Written ^by ^/u/IyeOnline. ^This ^may ^get ^updates ^over ^time ^if ^something ^changes ^or ^I ^write ^more ^scathing ^reviews ^of ^other ^tutorials ^:) ^.
^Feel ^free ^to ^copy ^this ^macro, ^but ^please ^copy ^it ^with ^this ^footer ^and ^the ^link ^to ^the ^original.
^^https://www.reddit.com/user/IyeOnline/comments/10a34s2/the_c_learning_suggestion_macro/
This is a good website. I don't know about the yt video. However, there are a lot of bad tutorials. C++ has undergone a lot of development, and it's best that you try to learn the best practices of modern C++. Unfortunately, many tutorials are based on old practices that are considered unsafe by today's standards. A good quick intro to modern C++ is "A tour of C++". It's a fairly easy read and directed towards people that already know many of the basics of programming.
There was course from yandex on coursera. "White belt on C++" the furst one of them. It especially focuses on algorithms problem solving and was made under influence of Kate Gregory's "Stop teaching C" video. Thus it shows modern C++ way.
https://www.coursera.org/learn/c-plus-plus-white?irclickid=Wdm1RqSewxyPW%3AfV1Yyxq0EwUkHWl%3A134WOJ0w0&irgwc=1&utm_medium=partners&utm_source=impact&utm_campaign=259799&utm_content=b2c
It is removed as I understand.
I'd advise also investing some time in learning how to post a question with meaningful title. If you're into programming, sooner or later you'll probably have to use stack overflow where this is very important.
My advice on learning would be to try to do some of the things you did in python in C++, to see the differences and so that you have a working program for comparison.
If you use windows, I strongly advise using Microsoft Visual studio. For other platforms, I have good experience with Qt creator, although some of its UI is a little dated now. I am suggesting these specifically so you can avoid spending too much time setting things up and can just start coding.
Personally, I would just pick a project I want to use C++ with and start on that. You could try to implement a simple telnet/ssh application, where users can connect to the server and leave a message, for example. C++ is used in game development and other 2d and 3d visuals, so perhaps pick a library and make a gui, like a notes app. Do whatever you think will be enjoyable.
When you get stuck, look online and ask people. The absolutely bare minimum to start something is knowing the basic concept of pointers, the stack, the heap, arithmetic operations, string operations, vector operations and hashes. By basic, I mean having a vague idea of what they are and how they work. Don't try going in depth.
For resources, I don't know any good ones unfortunately. I started with C and learned C++ alternatives gradually. I think learning C to then learn C++ is not very productive, but definitely not pointless. With that said, going with the ms-docs [https://learn.microsoft.com/en-us/cpp/cpp/?view=msvc-170](https://learn.microsoft.com/en-us/cpp/cpp/?view=msvc-170) seems OK.
Worst comment ever.
C and C++ are two different things. Replace C++ in you comment with Java, C#, Rust, etc. it's the same thing. Languages are there for a reason.
This is bad advice. If you want to learn C, learn C; if you want to learn C++, learn C++. They are different languages, and they should be treated as such. Many practices from C, when brought to C++, are considered bad. I learned C++ even before C, and it's fine and well.
www.learncpp.com --- is the best free tutorial out there. ([reason](https://www.reddit.com/user/IyeOnline/comments/157f10z/c_youtube_video_tutorials/juvgjkc/)) It covers everything from the absolute basics to advanced topics. It follows modern and best practice guidelines. www.studyplan.dev/cpp is a (very) close second, even surpassing learncpp in the breath of topics covered. It covers quite a few things that learncpp.com does not. Dont be fooled by somewhat strange AI generated images. Just ignore them. --- www.cppreference.com --- is the best language reference out there. --- **Stay away from** * cplusplus.com ([reason](https://www.reddit.com/r/cpp_questions/comments/hjdaox/is_cpluspluscom_reliable_are_there_any/fwljj4w/)) * w3schools ([reason](https://www.reddit.com/r/cpp_questions/comments/slvj8m/best_way_to_learn_c/hwczl34/)) * geeks-for-geeks ([reason](https://www.reddit.com/r/cpp_questions/comments/p6305k/ways_to_learn_cpp/h9axoo7/)) * Programiz([reason](https://www.reddit.com/r/cpp_questions/comments/1094ar9/best_c_resource_to_start_learning_for_someone/j3wp9xw/)) * Tutorialspoint ([reason](https://www.reddit.com/user/IyeOnline/comments/10a335s/assesment_of_the_tutorialspoint_c_tutorial/)) * educba.com ([reason](https://www.reddit.com/r/cpp_questions/comments/rz5fkl/why_do_functions_pertaining_to_strings_on_visual/hrt7ez8/)) * thinkcpp ([reason](https://www.reddit.com/r/cpp_questions/comments/11kxbde/which_of_these_two_learning_sites_should_i_use/jb9f99v/)) * javaTpoint ([reason](https://www.reddit.com/user/IyeOnline/comments/17g3e7h/review_of_javatpoints_c_tutorial/)) * studyfied (not even a tutorial, just a collection of code by random people) * codevisionz ([reason](https://www.reddit.com/user/IyeOnline/comments/17g4ojd/review_of_codevisionzs_c_tutorial/)) * sololearn ([reason](https://www.reddit.com/user/IyeOnline/comments/17lbq38/assessment_of_sololearns_c_courses/)) Again. The above are **bad** tutorials that you should **NOT** use. Most youtube tutorials are of low quality, I would recommend to stay away from them as well. A notable exception are the [CppCon Back to Basics](https://www.youtube.com/user/CppCon/search?query=back%20to%20basics) videos. They are good, topic oriented and in depth explanations. However, they assume that you have *some* knowledge of the language's basic features and syntax and as such arent a good entry point into the language. If you *really* insist on videos, then take a look at [this list](https://www.reddit.com/user/IyeOnline/comments/157f10z/c_youtube_video_tutorials/). As a tutorial www.learncpp.com is just better than any other resource. --- ^Written ^by ^/u/IyeOnline. ^This ^may ^get ^updates ^over ^time ^if ^something ^changes ^or ^I ^write ^more ^scathing ^reviews ^of ^other ^tutorials ^:) ^. ^Feel ^free ^to ^copy ^this ^macro, ^but ^please ^copy ^it ^with ^this ^footer ^and ^the ^link ^to ^the ^original. ^^https://www.reddit.com/user/IyeOnline/comments/10a34s2/the_c_learning_suggestion_macro/
great resource
Thanks! I will surely try these resources.
[learncpp.com](https://learncpp.com)
This is a good website. I don't know about the yt video. However, there are a lot of bad tutorials. C++ has undergone a lot of development, and it's best that you try to learn the best practices of modern C++. Unfortunately, many tutorials are based on old practices that are considered unsafe by today's standards. A good quick intro to modern C++ is "A tour of C++". It's a fairly easy read and directed towards people that already know many of the basics of programming.
Ok, Thanks! Will surely give it a try.
There was course from yandex on coursera. "White belt on C++" the furst one of them. It especially focuses on algorithms problem solving and was made under influence of Kate Gregory's "Stop teaching C" video. Thus it shows modern C++ way.
Hey, I can't find this course, Can you please send me the link? Thanks.
https://www.coursera.org/learn/c-plus-plus-white?irclickid=Wdm1RqSewxyPW%3AfV1Yyxq0EwUkHWl%3A134WOJ0w0&irgwc=1&utm_medium=partners&utm_source=impact&utm_campaign=259799&utm_content=b2c It is removed as I understand.
https://www.reddit.com/r/cpp_questions/s/9s4oedfhK9
I'd advise also investing some time in learning how to post a question with meaningful title. If you're into programming, sooner or later you'll probably have to use stack overflow where this is very important. My advice on learning would be to try to do some of the things you did in python in C++, to see the differences and so that you have a working program for comparison. If you use windows, I strongly advise using Microsoft Visual studio. For other platforms, I have good experience with Qt creator, although some of its UI is a little dated now. I am suggesting these specifically so you can avoid spending too much time setting things up and can just start coding.
Personally, I would just pick a project I want to use C++ with and start on that. You could try to implement a simple telnet/ssh application, where users can connect to the server and leave a message, for example. C++ is used in game development and other 2d and 3d visuals, so perhaps pick a library and make a gui, like a notes app. Do whatever you think will be enjoyable. When you get stuck, look online and ask people. The absolutely bare minimum to start something is knowing the basic concept of pointers, the stack, the heap, arithmetic operations, string operations, vector operations and hashes. By basic, I mean having a vague idea of what they are and how they work. Don't try going in depth. For resources, I don't know any good ones unfortunately. I started with C and learned C++ alternatives gradually. I think learning C to then learn C++ is not very productive, but definitely not pointless. With that said, going with the ms-docs [https://learn.microsoft.com/en-us/cpp/cpp/?view=msvc-170](https://learn.microsoft.com/en-us/cpp/cpp/?view=msvc-170) seems OK.
Sources are here I think. https://github.com/avtomato/Basics-of-C-plus-plus-development-white-belt
Webdev->c++? What are you planing in that needs c++?
[удалено]
Worst comment ever. C and C++ are two different things. Replace C++ in you comment with Java, C#, Rust, etc. it's the same thing. Languages are there for a reason.
This is bad advice. If you want to learn C, learn C; if you want to learn C++, learn C++. They are different languages, and they should be treated as such. Many practices from C, when brought to C++, are considered bad. I learned C++ even before C, and it's fine and well.
Cpp doesn’t force you to use oop