C++
C++ is a general-purpose programming language created by Bjarne Stroustrup as an extension of the C programming language which implements Object-Oriented Programming.
How I learned C++
I first learned C++ during the summer on Educative.io, as well as during CS138. I nowmain this language.
Mostly mastered through:
- CS247 course at UWaterloo (best teacher Ross Evans)
- Internships: NVIDIA and Tesla
- Competitive Programming (Codeforces)
- Projects and self-learning more advanced concepts Hard Problems
Memory Unsafe Language:
- Used for operating systems, device drivers, etc.
- Systems programming
Memory safe languages are usually better for application programming.
Not sure how much you know about C++?
- Should see this roadmap https://roadmap.sh/cpp and be able to explain everything there
Misc
Versions of C++
Default: C++98, C++11 is a major upgrade, released in 2011.
Resources
- Basics of C++
- Modern C++ (Advanced)
- https://github.com/federico-busato/Modern-CPP-Programming (REALLY GOOD SET OF SLIDES)
Rules (OOP)
Programming
Concepts
- (IMPORTANT) C++ Standard Template Library
- String
- Dynamic Array
- template
- Virtual Method
- static
- Static vs. Dynamic Type of Pointer
- Smart Pointer
More advanced C++ (modern C++):
Exception handling:
Keywords (see C++ Keywords)
Move semantics
- std::forward
- std::move
- understand rvalue vs. lvalue
Functional
Concurrency (see Concurrency Mechanisms (C++))
Type traits (my weakness, this is new to me) Understanding your types:
- Type Traits
- Diamond Problem
- std::any
- Type Casting
static_cast
,dynamic_cast
,reinterpret_cast
andconst_cast
- Runtime types?