C++ in Production
技术进修精品课程,帮助正在求职或已经在职的您提升技术背景,实现职业升级和转型
技术进修精品课程,帮助正在求职或已经在职的您提升技术背景,实现职业升级和转型
C++是一门历久弥新的编程语言。一方面,一线大公司的底层架构出于对运行效率的重视,C++语言往往是首选。另一方面,在无人车等新兴领域,C++有着广阔的应用市场。因此,尽管各种新兴的编程语言百花齐放,C++在计算机业界的地位却非常稳固。
然而实际工作中,“会”C++的人不少,但真正“懂”C++的工程师不多。一般的C++课程,为了全面覆盖C++的所有知识点,往往全而不精。学完之后只知道“C++能做什么”,却不知道“什么项目适合C++”,“怎么用好C++”,即便能写出来C++程序,也很难真正发挥C++这门语言的真正威力。因此,对于软件工程师而言,掌握C++语言,可以拓宽自己的职业广度,获得更多向上的机会。
通过对本课程的学习,您将能够形成软件工程师的思维能力,进一步加强编程技能,灵活运用C++语言的各种工具,找到合适而高效的方法解决实际工作中的各种问题,真正做到学以致用。
85% of the students are coming from Google, Facebook, Amazon and other top IT companies in the US. Joining this class enables you become peers with these top engineers.
2 sessions/week, 2-3 hrs/session
C++工程实践进阶班面向即将开始暑期实习,或刚刚进入职场的工程师。旨在通过20节高效务实的课程,以及1个工业界级别项目,帮助您快速掌握C++的系统知识,提升工程思维水平,具备C++实际工程开发能力。
- Const keyword: the concept of constant and immutability in C++
- C++ functions, declaration v.s. definition
- C++ program structure
- Difference in access controls
- Virtual function and non-virtual function
- Replacement of Java interface in C++ and best industry practice
- C++ class with const: immutability and constants
- Stack allocation v.s. heap allocation
- Object representations in C++: instance, reference and pointer
- Passing parameters to functions
Project Practice 1: C++ Build and Link process
- Common memory management pitfalls in production and the solution: Unique Pointer
- Function representations in C++
- Vtable, how virtual function actually works to support polymorphism
Project Practice 2: Introduction to Bazel
- Understand template and use it correctly in a production codebase
- Design of vector container class
- How to use common container data structures(e.g. set and map) correctly
- Namespace and package management
Project Practice 3: Project walkthrough
- Understand operator overloading mechanism
- How to use operator overloading correctly in production without making your teammates angry
- Understand the importance of callback and how it is supported by functor.
- Callback use cases in production
- Functional programming and the use of lambda function in production
- Analyze the bottleneck of system performance
- Batching: an efficient optimization technique and how to deploy it correctly
- Caching
- Stack v.s. heap in performance
- Indexing systems v.s. serving systems
- Commonly adopted principles and practices in production coding
- Code readability and quality
- Code review process
- Designing (re-)usable and maintainable program
- 5 principles commonly adopted in production
Project Practice 4: Project summary and case study
- Review
Scan the QR code below to get in touch with Course Specialists:
Scan the QR code below to
get in touch with Course Specialists: