Khoá học lập trình cơ bản với ngôn ngữ lập trình C++

Sau hơn 40 năm ra đời, C++ ngày càng chứng minh được sức mạnh thật sự của mình, được hàng triệu lập trình viên lựa chọn là ngôn ngữ nền tảng phải học. Hiện nay có hàng ngàn ngôn ngữ lập trình mới, hiện đại, dễ sử dụng, dễ học được ra đời, nhưng C++ vẫn ở đó, chứng minh giá trị thật sự của mình.

Học miễn phí ngay

C++ là ngôn ngữ mạnh mẽ bậc nhất

Bạn có biết, C++ là một trong những ngôn ngữ lập trình mạnh mẽ, phổ biến và đa năng nhất trong những ngôn ngữ lập trình đang được các lập trình viên sử dụng hiện nay. C++ thường được sử dụng trong phát triển phần mềm yêu cầu hiệu suất cao. C++ kiểm soát tài nguyên hệ thống hiệu quả, đáp ứng được nhiều yêu cầu đặc thù.

C++ là Ngôn ngữ lập trình hướng đối tượng (OOP là viết tắt của Object-Oriented Programming). C++ được phát triển dựa trên ngôn ngữ lập trình C, bổ sung thêm các tính năng mới như lớp (class)đa kế thừa (inheritance) để hỗ trợ lập trình hướng đối tượng. Nó cung cấp cả các thư viện tiêu chuẩn mạnh mẽ cho việc xử lý chuỗi, tệp tin, đồ họa, và nhiều tác vụ khác.

C++ được tất cả các trường Đại học chuyên ngành Công nghệ thông tin lựa chọn là môn học đại cương tiên quyết mà các sinh viên bắt buộc phải học trước khi học các kiến thức chuyên ngành.

Đối tượng tham gia phù hợp

  • Các bạn Học sinh – Sinh viên có đam mê lập trình
  • Các bạn đang đi làm ở lĩnh vực khác muốn học về lập trình
  • Các bạn đã có tìm hiểu về lập trình, nhưng muốn hệ thống khoá kiến thức lại

C++ Developer Roadmap

Step-by-step guide to becoming a C++ developer in 2024

Phần I

1. Introduction to the Language
  • What is C++?
  • Why use C++?
  • C vs C++

Tham khảo nội dung

2. Setting up your Environment
  • Installing C++
  • Code Editors / IDEs
  • Running your First Program

Tham khảo nội dung

3. Basic Operations
  • Arithmetic Operators
  • Logical Operators
  • Loops: for/while
  • Bitwise Operators
4. Functions
  • Operators
  • Lambda
5. Data Types
  • Dynamic Typing
  • Static Typing
  • RTTI
6. Pointers and References
  • References
  • Memory Model
  • Lifetime of Objects
  • Raw Pointers
    • unique_ptr
    • shared_ptr
    • weak_ptr
  • Smart Pointers
    • New/delete Operators
    • Memory Leakage
7. Structuring Codebase
  • Scope
  • Code Splitting: Headers / CPP Files
  • Namespaces
  • Forward Declaration

Phần II

8. Structures and Classes
  • Object Oriented Programming
    • Static Polymorphism (Overloading of Functions)
    • Dynamic Polymorphism (Virtual Methods, Virtual Tables)
  • Rule of Zero, Five, Three
  • Multiple Inheritance
  • Diamond Inheritance
9. Exception Handling
  • Exceptions
  • Access Violations
  • Exit Codes
10. Language Concepts
  • auto (Automatic Type Deduction)
  • Type Casting
    • static_cast
    • const_cast
    • dynamic_cast
    • reinterpret_cast
  • Undefined Behavior (UB)
  • Argument Dependent Lookup (ADL)
  • Name Mangling
  • Macros
11. Standard Library + STL
  • iostream
  • Date / Time
  • Containers
  • Iterators
  • Algorithms
  • Multithreading
12. Templates
  • Variadic Templates
  • Template Specialization
    • Full Template Specialization
    • Partial Template Specialization
  • Type Traits
  • SFINAE
13. Idioms
  • Copy on Write
  • Copy and Swap
  • Erase-Remove
  • Non-Copyable/Non-Moveable
  • CRTP
  • Pimpl
  • RAII
14. Standards
  • C++11/14
  • C++17
  • C++20
  • Newest
  • C++0x

Phần III

15. Debuggers
  • Understanding Debugger Messages
  • Debugging Symbols
  • WinDBg
  • GDB
16. Compilers
  • Different Compilers and their Features
17. Build Systems
  • CMAKE
  • Makefile
  • Ninja
18. Package Managers
  • NuGet
  • Spack
  • Conan
  • vcpkg
19. Working with Libraries
  • Library Inclusion
  • Licensing
  • Libraries
  • Frameworks
20. Backend Roadmap

Continue Learning with following relevant tracks

C++Introduction to the LanguageFind the detailed version of this roadmapalong with resources and other roadmapsroadmap.shhttps://Beginner Topics / Start with theseAdvanced Topics / Pick them in the endIntermediate Topics / Pick them nextReferences / Additional ResourcesSalmer’s C++ RoadmapOptional / Learn if you wantWhat is C++?Why use C++?C vs C++Setting up your EnvironmentInstalling C++Code Editors / IDEsRunning your First ProgramArithmetic OperatorsLogical OperatorsLoops: for/whileBitwise OperatorsFunctionsOperatorsLambdaData TypesStatic TypingDynamic TypingRTTIPointers and ReferencesReferencesSmart PointersMemory ModelRaw Pointersunique_ptrshared_ptrweak_ptrLifetime of ObjectsNew/delete OperatorsMemory LeakageBasic OperationsStructuring CodebaseCode Splitting: Headers / CPP FilesScopeNamespacesForward DeclarationStructures and ClassesObject Oriented ProgrammingStatic PolymorphismDynamic PolymorphismOverloading of FunctionsVirtual MethodsVirtual TablesRule of Zero, Five, ThreeMultiple InheritanceDiamond InheritanceException HandlingExceptionsAccess ViolationsExit CodesLanguage Conceptsauto (Automatic Type Deduction)Type Castingconst_caststatic_castdynamic_castreinterpret_castUndefined Behavior (UB)Argument Dependent Lookup (ADL)MacrosName ManglingStandard Library + STLiostreamDate / TimeContainersIteratorsAlgorithmsMultithreadingTemplatesVariadic TemplatesTemplate SpecializationType TraitsSFINAEFull Template SpecializationPartial Template SpecializationIdiomsRAIIPimplNon-Copyable/Non-MoveableErase-RemoveCopy and SwapCopy on WriteCRTPStandardsC++11/14C++17C++20NewestC++0xLanguage ToolsDebuggersUnderstanding Debugger MessagesDebugging SymbolsWinDBgGDBCompilersUnderstand Compiler StagesDifferent Compilers and their FeaturesClang++/LLVMIntel C++MSVS C++GCCMinGWBuild SystemsCMAKEMakefileNinjaPackage ManagersConanNuGetvcpkgSpackWorking with LibrariesLibrary InclusionLicensingLibrariesBoostOpenCVPOCOprotobufgRPCfmtpybind11spdlogranges_v3tensorflowopenclFrameworksgtest/gmockQtCatch2Orbit ProfilerPyTorch C++Continue Learning with following relevant tracksBackend Roadmap

Tất cả khoá học tại Sigma Academy