2.看《Thinking In C++》，不要看《C++变成死相》；
3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看；
20.请阅读《The Standard C++ Bible》(中文版：标准C++宝典)，掌握C++标准；
23.请看《Effective C++》和《More Effective C++》以及《Exceptional C++》；
30.读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++；
32.请留意下列书籍：《C++面向对象高效编程（C++ Effective Object-Oriented Software Construction）》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式（Design Patterns）》《The Art of Computer Programming》；
TL;DR: It depends, but if you have no idea what you want to do you should either do whatever your CS degree requires you to do or focus on a high-level, general purpose language. I’d say use C# because the most common development environment for C# provides a lot of helpful support for beginning devs, but others will point you to Java (a plausible option, although probably not where you should stay) or C/C++ (if they like suffering or place a high value on the mostly pointless CS trivia like big O).
The language you should pick is almost entirely dependent on what you want to do. For example if you want to work on the team I’m currently working on, which does a fair bit of business automation using scripts that run on Linux boxes, you have to learn and use Perl because that’s what most of the code they use is written in.
For the languages in your list, check the following descriptions and decide which case best applies to what you’re trying to do. Keep in mind that old code is kept around as long as anyone knows of the code and finds it useful, so it takes a very long time for a language to die off once it’s achieved broad popularity with at least a couple percent of developers.
COBOL: Included because it will be referenced in Java’s description. It is a zombie language. It was the language for business development a couple decades ago, and it still runs in a truly remarkable number of places, especially when you realize that COBOL developers have been trying to kill it off for decades because they want to retire and can’t find anyone prepared to take on the on-going maintenance.
Java: Probably the most widely used language in business today. It is basically in the same place COBOL was at twenty or thirty years ago. That is, you can do pretty much anything your business wants you to do in Java either directly in the language or using one of the many third party libraries and tools. It can also be run pretty much anywhere your business will want to run its software. It is also slow to incorporate new learning to make the language easier to use, and many of the companies that use it are even slower to incorporate changes than the language itself. It could easily be following the COBOLs path, but as long as you’re cool with slowly becoming obsolete you could have a reasonably long career as a Java developer as long as you get into it fairly quickly. If you learn Java, you would be well advised, however, to quickly pivot to another language that runs on the JVM (Kotlin, Scala, Haskell, etc.) after you’ve mastered the basics.
PHP: An alternative for working on the web. It used to be much more popular, but it’s evolution was much more evolutionary (driven by what PHP devs where complaining about at the time) than planned with an eye for language coherence. PHP is the underlying scripting language for WordPress, and is probably used a fair bit in other places. It isn’t regarded as an innovative language, but it can certainly get things done for websites.
C#: Like Java, but is less widely used, has a somewhat less rich ecosystem of third-party libraries and tools (compared to Java; mostly because it’s less widely used), and is more open to learning from the on-going evolution of software development. It’s developed by Microsoft, which results in a fair bit of irrational hatred, and used to be much more restricted to running on Windows (again, it’s a Microsoft product). It is still one of the best languages to use when developing software that will run on one version of Windows or another. It’s easy to use for web and back-end development, and has been expanding to a greater and greater array of platforms more recently. In the form of Mono, it can run on even more platforms than Java including gaming consoles. It’s a solid choice for just about anything you’ll want to do as a developer (as long as your goal isn’t running on the JVM), but it’s often the second or third best option when you’re not planning on running it on Windows. Keep in mind that folks are actively working on making it better in more places, so even if you don’t want to use it now it’s worth keeping an eye on.
C: The lowest level language on the list, you should actively avoid it unless your goal is to work on the Linux kernel or in environments that are severely memory constrained. In order to write good C code you need to spend quite a bit of time thinking about how the underlying hardware is actually going to run your code, which most humans are bad at doing. It’s also a top language to use if you’re more interested in getting in pissing contests about who’s a better developer since it’s most useful for working at the limits of software development, where very little development actually takes place.
C++: It’s a super-set of C that adds a bunch of helpful bits and pieces like proper strings and more reliable ways of handling arbitrary user input. If you want to work in environments that require very high performance, like OS development, database system development, or working in embedded systems, C++ is probably a better choice than C, but you should double check how many C++ features you actually want before you start doing a bunch of development. Also good for pissing contests about who’s a better software developer for the same reason as C.
SQL: Used for interacting with most, if not all, relational databases. You will need to know the basics if you work in a business setting, since there are almost always databases involved in business development. You may be able to avoid it if you work on OSes and/or embedded systems, but only as long as they’re not writing anything to a database.
Python: Right now this is probably the premier language for analysts of all sorts. It’s a very effective scripting language with lots of libraries and add-ons for pretty much any analysis you want to run. It can be used in a software development environment, but the idiomatic ways of doing Python development are somewhat unfriendly for working as teams of developers. However, if you want to be a data scientist, data analyst, business analyst, or sys-admin and not a software developer or engineer, Python is a great way to go and is a great career path as Machine Learning and AI have been really heating up recently. It is also probably a better scripting language than Perl and/or the various shells available on Linux. It’s primary competitors are Perl or Ruby on the scripting side or R on the data analysis side.