Should I learn C++?
-
I am very new to computer programming in general and have been enjoying Qt with Python using PyQt so far. However a lot of the documentation and tutorials are in C++, making it really annoying having to google the Python examples. Meanwhile I also want to deepen my understanding on the lower level aspect of computers, thus hoping that by learning C++ this can be accomplished. Do you think this would be a good idea or should I just stick to Python? Thanks in advance.
-
Neither Python nor C++ are the "one true language". They do good job in their own domains.
You shouldn't start with the question "should I learn C++". That's backwards thinking. You should start with "What kind of apps do I want to write" and having answer to that follow it up with "which language/framework is best suited for that kind of work".If answering those questions brings you to Qt you can't go wrong with learning C++. The framework is written in that language and the ecosystem centers around it. Python and other language bindings are just an add-on, so naturally there are gonna be limitations and fewer materials available.
-
+1 for what @Chris-Kawa said
@ET97 said in Should I learn C++?:
I also want to deepen my understanding on the lower level aspect of computers
Today's PCs are incredibly complex: the CPUs are incredibly complex, the operating systems are incredibly complex. If you actually want to learn about the magic behind all that, I'd recommend to buy a mini-computer like the Arduino Uno. This machine is much easier to understand and you'll learn how to program it in Assembly and C.
-
I do not know what kind of low level aspect you refer to, but I will recommend you to study a great book of computer architecture if you want to know more about how computer works, I guess it is a better starting point than dive into the source codes or learning another language.
I do not know much about computer architecture so I do not know which book to recommend, but you can always check it on stackoverflow, this topic give you.
If you start to play with os, remember today most of the os kernel still written in c and assembly, you will see lots of c hacks(more precisely, they are anti-pattern in c++) in those codes and spend lots of times to study, understand what are they doing, remember do not bring those coding habit into c++, familiar with those hacks may make you feel like an expert, but they are unneeded in c++ because c++ offer standard, much better solutions compare with those c hacks. We use those hacks because we have no choice(like boost move, many TMP hacks in c++), not because they are great nor beauty.