Originally posted by WWSASZ
So, i want to learn C++.
Some people have told me it's better if i learn Python first, rather than getting straight into C++.
Is this true? what will learning Python do to benefit my learning of C++?
also, I have no experience with coding. I'm completely new to this all.
there's this guy on YouTube called Derek Banas who explains C++ in 70 minutes, and Python in 40 mins, will this be a good place to start learning whatever you guys say is the best one for me to learn?
Really depends my friend, if you want to go into hardcore software dev that requires you to go close to the metal (IE. Game Engines, Operating Systems, Libraries) or needs to be cross-platform, go for C++. Python is a scripting language, and while yes it is true once you know what language it's easier to move to the next, python is a whole different ballpark. Python is mostly used by pentesters and the like because scripts and tools are quick and easy to code in Python.
I personally am not a fan of Python, I very much dislike how whitespace actually matters, making formatting your code hell. You'd swear the creator of Python got abused by semi-colons and curly brackets in his childhood or something. Another place where Python may not be the best for beginners is how it's not strongly-typed (or as Python devs like to call it, it's "Dynamically-Typed" because they want to sound cool). This means you don't learn much about the data-types you're dealing with, because you don't have to (like PHP). This can lead to annoying run-time errors that, at times, can take hours to fix. In my opinion, all languages should be strongly-typed, although it may take longer to code, it helps avoid bugs and teaches people how to know what data they're dealing with, which can also help in preventing exploitable software.
The problem with C++ and a beginner comes in, is when they use a bad resource or are taught improperly, too many times I see tutorials for C++ covering C code and such first. The other problem is, there are things like no boundary-checking. Since you're new to programming, you probably don't know what that means. In a language like Python, you will never be able to access/modify an index of an array that does not exist, in C++ this is not the case. If you have an array with 4 items, and you try to access a non-existant 5th item in C++, you can do it, however the program will hit a Segmentation Fault (accessing memory that's not allowed), and crash. This leaves programs vulnerable to exploitation and instability. C++ lets you do a lot of things, it gives you a lot of control, but this also makes it easier for you to destabilize your program or even your entire system if you're not careful, but this control is also why it's so widely used and deservedly so.
TLR: If you want to go into software dev, I'd recommend C++ right from the start. The only reason people see C++ as scary is because many courses actually teach C for the first few days, not C++ (stupidly enough). It also takes a lot more time and effort to learn, but if you put the time and effort in, it can be very rewarding. After this you can move into Python and actually, at least know what's going on at the lower-level (Python was actually built off of C, and extensions can be written in C/C++).
If you want to go into something like pentesting or writing scripts/tools, start out with Python. Then, maybe later you could go over to C++, but if you're coming from Python, the semi-colons and curly braces and general syntax will probably scare you.