Only Python but has algorithmic/mathematical background, how to learn to be a C + + programmer quickly?

Source: Internet
Author: User
I usually only use Python, do not pursue speed when doing some simple mathematical calculation is very convenient, but the work must learn C + +.

Reply content:

I also learned the C + + of Python before learning. Learning Python has some advantages in understanding Oo, but it also makes you spoiled to think C + + is troublesome, and many tools are not intuitive. Here is my step-by-step route:

Basics: Find an introductory open class, such as introduction to C + + on MIT OCW , or our school's CS11 C + + track , slides the last few exercises and write a quick overview of the basic syntax of C + +.

Advanced: In Oj.leetcode and more advanced online judge on the more difficult topic (through rate <20%) in C + + to write again, to practice using some of the STL basic classes such as unordered_map, vectors, maps and so on. You can then look at some more advanced courses, such as MIT's effective programming in C and C + + Or our school's CS11 advanced C + + track 。 Learn and practise concepts such as template and class inheritance.

Advanced: Reading. Effective C + + and C + + primer have to be seen at this level, and learn new things in c++11. In addition, summer internship when the group has a GETCO job-hopping to the C + + God sitting next to me, recommended a very good class called performance Engineering of software Systems 。 He says this class is basically for the Quant Trading system, very practical.

Of course, my "basic/Advanced" Here is for my slag level, you laughed at the great God. But since the title and I are peers, presumably to learn C + + is to develop trading strategies, then I think the above three steps to complete the basic enough. Is CPP difficult? When the use of the time to look at it, the meaning of voidness is not very accelerated C + + (watercress) C++primer + effective C + + What do I think from Python to C + + and your algorithmic math doesn't matter. Writing a good program is a better algorithm, but learning how to use the language seems to have nothing to do with the algorithm. Python Dafa good, back CPP to protect the peace! Not proficient in C to learn C + +, there will be trouble, this thing is not fast. If you can use C to implement a variety of complex algorithms, and then to learn C + +, it will be much easier I think someone will let you go through his posts the differences between Python and C + + are mainly in two big ways: Python is a dynamic language, and C + + is a static language (but C11 also introduces a dynamic concept in C + +). such as lambda and auto, etc.), this is the one hand, and the code is not the same format, Python is indented by the way to define the scope, and C + + is through braces and so on. All the others are connected. I've tried python, but I can't stand the way he's indented! Personal C + + is much more time than python to casually say ... The following content is based on personal experience, Python use time is not many have not done very large projects that is small server or something ...
Python actually describes a problem solving process in fact, because most of the time in Python is rough and fast ...
C + + is the beginning to think of a problem in the solution of the things you will encounter, and how these things are related to the solution of this problem ... Top-down to parse the entire class tree, then write a bunch of headers, and then fill in the CPP, complete ...
STL What is recommended is to know some and then check / http en.cppreference.com/w/ Just fine ...
Almost know a vector know a map know a set is almost ...
If you want to write a more rigorous project, you might need something like shared_ptr ...
It is recommended to realize some small things to find a feeling, such as the realization of a simple vector ah ...
  • Related Article

    Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.