Menu
CoddyTech
Lộ trình học

Lộ trình trở thành lập trình viên C++

Những gì cần học, theo đúng thứ tự, để có việc làm C++ trong game, hệ thống, giao dịch tài chính hay phần mềm nhúng: ngôn ngữ đến tận bộ nhớ, move semantics và template, dòng lệnh, Git và SQL, rồi cấu trúc dữ liệu và thuật toán mà phỏng vấn C++ hay hỏi, và cách viết code mà cả nhóm bảo trì được. Miễn phí, thực hành, ngay trên trình duyệt, không cần biên dịch gì trên máy.

467,649+ người học code đã đăng ký các khóa học này

614 bài học593 thử thách2,883 câu hỏi trắc nghiệm

Lộ trình lập trình viên C++, từng bước một

17 khóa học6 phần614 bài học593 thử thách2,883 câu hỏi trắc nghiệm

Mỗi bước gồm các khóa học có sẵn trên Coddy, và mọi nút Bắt đầu đều mở chúng bằng C++. Học theo thứ tự, hoặc bắt đầu với bước bạn còn thiếu; tiến độ được lưu theo từng khóa học.

  1. 1
    Bắt đầu bước nàyBắt đầuBa phần. Nền tảng gồm kiểu dữ liệu, toán tử, luồng điều khiển, hàm, mảng và chuỗi; Logic và luồng điều khiển gồm con trỏ với new và delete, std::vector, std::map và std::set, lambda, làm quen với đệ quy, và ngoại lệ; Lập trình hướng đối tượng gồm tệp header, stack so với heap, smart pointer và RAII, hàm khởi tạo và hàm hủy, nạp chồng toán tử, hàm ảo, template, STL, move semantics và design pattern. C++ lúc đầu khó vì nó biên dịch cả những lỗi mà ngôn ngữ khác sẽ từ chối; hãy học thật sâu, vì việc làm C++ tuyển đúng chiều sâu đó.Bắt đầuTrang riêng
  2. 2
    Bắt đầu bước nàyBắt đầuTệp và đường dẫn, ký tự đại diện, grep, pipe và chuyển hướng, quyền truy cập, biến môi trường và shell script. Máy chủ C++, hệ thống giao dịch và phần lớn công việc nhúng chạy trên Linux, và công cụ hằng ngày là công cụ terminal: bạn biên dịch bằng g++ hoặc clang++, đưa dữ liệu test vào chương trình bằng <, lưu đầu ra bằng > và tìm trong log lỗi bằng grep. Một shell script biến quá trình build hay chạy test nhiều bước thành một lệnh duy nhất.Bắt đầuTrang riêng
  3. 3
    Bắt đầu bước nàyBắt đầuStaging, commit, .gitignore, nhánh, merge và xung đột, hoàn tác lỗi và remote. Tệp object, tệp nhị phân và thư mục build/ thuộc về .gitignore, không bao giờ nằm trong commit. Các studio game thường giữ kho tài nguyên đồ họa khổng lồ trong Perforce, nhưng gần như mọi nơi khác, C++ sống trong Git, từ firmware nhúng đến các trình biên dịch mã nguồn mở.Bắt đầuTrang riêng
  4. 4
    Bắt đầu bước nàyBắt đầuLọc, sắp xếp, join, nhóm, hàm tổng hợp, truy vấn con, mệnh đề WITH và window function, trên các bảng thật. SQL ít xuất hiện trong C++ hơn trong các ngôn ngữ web, nhưng vẫn có: SQLite, engine mà các bài học này chạy trên đó, được viết bằng C và nhúng trong vô số ứng dụng desktop và di động, các hệ thống giao dịch và telemetry lưu lịch sử trong cơ sở dữ liệu, và phỏng vấn kỹ sư phần mềm nói chung đôi khi có một câu truy vấn.Bắt đầuTrang riêng
  5. 5
    Bắt đầu bước nàyBắt đầuStack, queue, danh sách liên kết, cây nhị phân và bảng băm, mỗi cấu trúc được viết từ đầu bằng C++ rồi dùng để giải bài toán. Đây là lúc con trỏ ở bước một trở nên thực tế: mọi node bạn cấp phát bằng new đều phải được giải phóng bằng delete hoặc do một std::unique_ptr sở hữu, và hàm hủy của một cây chính là đệ quy trong thực tế. Sau đó, chọn giữa std::vector, std::list và std::unordered_map là quyết định dựa trên chi phí, không phải thói quen.Bắt đầu
  6. 6
    Bắt đầu bước nàyBắt đầuCác thử thách đệ quy, rồi bubble sort, selection sort, insertion sort, merge sort và quick sort bằng C++, các thuật toán sắp xếp được minh họa động trong trình trực quan hóa thuật toán của Coddy. Hai sự thật về C++ sẽ dễ hiểu hơn sau phần này: đệ quy quá sâu sẽ tràn call stack và thường làm chương trình sập ngay lập tức, không có ngoại lệ nào để bắt, và std::list có hàm thành viên sort() riêng vì std::sort cần iterator truy cập ngẫu nhiên mà danh sách liên kết không cung cấp được.Bắt đầu
  7. 7
    Bắt đầu bước nàyBắt đầuMột dự án hướng đối tượng xây dựng từ đầu đến cuối và một kho bài tập lập trình, đều bằng C++. Trong C++, code dễ đọc bao gồm cả quyền sở hữu rõ ràng: ai cấp phát, ai giải phóng, tham chiếu nào được phép tồn tại lâu hơn cái gì. Review code C++ luôn quay lại chuyện này.Bắt đầu
Bạn nhận được gì
Mọi thứ bạn sẽ dùng để học lập trình

Học qua thực hành

Viết code thật, truy vấn cơ sở dữ liệu, xây dựng trang web và làm chủ prompt AI. Các bài học tương tác bao quát mọi kỹ năng mà lập trình viên hiện đại cần.

playground.js
Trình chỉnh sửa code
1const greeting = "Hello, Coddy!"
2function sayHi(name) {
3    return greeting + " " + name
4}
5
bottombar Collapse icon
Test #1test Case Success icon
Test #2test Case Success icon
Test #3test Case Failure icon
Đầu vào
"Alex"
Đầu ra
"Hello, Coddy! Alex"

Xây dựng streak

Học đều đặn và nhìn tiến độ của bạn lớn dần! Theo dõi thói quen code mỗi ngày, bảo vệ streak bằng ngày đóng băng và nhận phần thưởng khi học mỗi ngày.

12 ngày streak

Quay lại ngày mai để giữ streak!

fire Filled icon
left icon

January 2026

right icon

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

21

22

23

24

25

26

27

28

29

30

product Double Or Nothing icon

Gấp đôi hoặc mất hết

Ngày 5/7

fire Freeze icon

Đóng băng streak

2 left

Code ở mọi nơi

Mang hành trình lập trình theo bên mình! Không cài đặt, không tải về: chỉ cần mở ra và bắt đầu code. Có trên iOS, Android và Web với đánh giá 4,9 sao.

Python
7Streak
250Điểm
5Năng lượng
Biến
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Right Done icon
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Left Done icon
journey Hex Active Base iconjourney Hex Active Shadow iconjourney Hex Active Top iconjourney Lesson Theory Challenge icon
Tiếp tục
journey Path Right icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson Theory Challenge icon
journey Path Left icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson All icon
Hành trình
Mục tiêu
Bảng xếp hạng
Hồ sơ
4.9
Ngôi saoNgôi saoNgôi saoNgôi saoNgôi sao
Đánh giá

Bạn không đơn độc

Thi đấu trên bảng xếp hạng toàn cầu, mời bạn bè để nhận phần thưởng và cùng nhau ăn mừng thành công. Học code cùng bạn bè vui hơn nhiều!

Giải đấu Challenger
Giải đấu ChallengerTop 7 được thăng hạng
leaderboard First icon1
avatar 1 icon
fire Filled icon
Alex7+ Days
2840
leaderboard Second icon2
avatar 2 icon
fire Filled icon
Jordan7+ Days
2650
leaderboard Third icon3
avatar 3 icon
fire Filled icon
Sam7+ Days
2420
4
avatar 4 icon
Casey
2180
5
avatar placeholder icon
fire Filled icon
Morgan7+ Days
1950
leaderboard Arrow Up iconVùng thăng hạngleaderboard Arrow Up icon

Mọi cách để học

Đọc, nghe, tự kiểm tra, hỏi AI hoặc tra cứu bất cứ điều gì bạn đã học. Mỗi bài học phù hợp với trình độ của bạn.

Giới thiệu về biến
Âm thanh

Biến là một vùng chứa có tên, lưu một giá trị mà bạn có thể dùng lại sau trong chương trình.

Trong Python, bạn tạo biến bằng cách viết tên, dấu bằng, rồi giá trị muốn lưu.

Giá trị có thể thay đổi theo thời gian. Gán lại tên đó chỉ đơn giản là trỏ nó tới một giá trị mới.

1xSarah

Nhận chứng nhận

Nhận chứng nhận cho mỗi khóa học bạn hoàn thành. Thêm vào hồ sơ LinkedIn và CV để cho nhà tuyển dụng thấy kỹ năng lập trình của bạn.

CoddyGiấy chứng nhận hoàn thành
Chứng nhận rằngNguyễn Văn Anđã hoàn thành xuất sắc
python iconPython cơ bản
Đã xác minh
NgàyTh1 2026
LinkedInThêm vào LinkedIn

Vì sao nên theo lộ trình C++ này trên Coddy

  • Được xây dựng cho những công việc chọn C++. Game engine, hệ thống giao dịch, trình duyệt, cơ sở dữ liệu, thiết bị nhúng và tính toán hiệu năng cao là những nơi C++ được chọn vì khả năng kiểm soát tốc độ và bộ nhớ, và mọi vị trí đó đều yêu cầu bạn biết code của mình tốn bao nhiêu tài nguyên. Lộ trình này xây dựng điều đó từ chính ngôn ngữ trở lên.
  • Bộ nhớ được dạy rõ, không bị giấu đi. Khóa học C++ dạy con trỏ với new và delete, rồi stack so với heap, smart pointer và RAII, hàm khởi tạo sao chép và hàm khởi tạo di chuyển, quy tắc ba, năm và không: những chủ đề mà phỏng vấn C++ cứ hỏi đi hỏi lại.
  • Cấu trúc dữ liệu tự quản lý bộ nhớ. Danh sách liên kết và cây nhị phân ở bước năm là những node bạn tự cấp phát và giải phóng, nên rò rỉ bộ nhớ hay con trỏ treo là thứ bạn tự gỡ lỗi chứ không chỉ đọc về nó. Các thử thách đệ quy và năm thuật toán sắp xếp cũng viết bằng C++.
  • Được chấm điểm, có trợ giúp khi gặp lỗi biên dịch. Mỗi bài học kết thúc bằng một thử thách C++ được chấm bằng test case, và khi trình biên dịch hay một test báo lỗi, Bugsy chỉ hướng sửa mà không viết hộ bạn. Hầu hết khóa học kết thúc bằng một chứng nhận miễn phí, và không cần cài trình biên dịch hay bộ công cụ nào.

Câu hỏi thường gặp về trở thành lập trình viên C++

Mất bao lâu để trở thành lập trình viên C++?

Lâu hơn hầu hết các ngôn ngữ khác: từ chín đến mười tám tháng, mỗi ngày khoảng một giờ, là khoảng thời gian thực tế để đi từ con số 0 đến buổi phỏng vấn C++ cấp junior. Riêng khóa học C++ mất khoảng hai tháng với tốc độ đó, và phần lập trình hướng đối tượng, với quản lý bộ nhớ, template và move semantics, là phần nên học chậm; dòng lệnh, Git và SQL thêm khoảng một tháng; cấu trúc dữ liệu và sắp xếp thêm hai đến ba tháng nữa. Các vị trí chuyên sâu sau đó còn cần kiến thức lĩnh vực: một game engine, một hệ thống giao dịch, một vi điều khiển.

C++ có phải ngôn ngữ đầu tiên tốt cho kỹ sư phần mềm không?

Đó là một ngôn ngữ đòi hỏi cao. Bạn học được bộ nhớ, kiểu dữ liệu và quá trình biên dịch thật sự hoạt động thế nào, điều khiến mọi ngôn ngữ học sau đều dễ hơn, và cái giá là tiến độ chậm hơn cùng những lỗi khó chịu hơn lúc đầu. Nếu bạn đã biết mình muốn làm game, hệ thống hay nhúng, bắt đầu bằng C++ là hợp lý; nếu chưa chắc, nhiều người học Python trước rồi mới đến C++, và trang lộ trình kỹ sư phần mềm chính là lộ trình này nhưng với Python.

Ngoài C++, lập trình viên C++ cần biết những gì?

Dòng lệnh, Git và SQL, những thứ lộ trình này dạy, rồi bộ công cụ quanh ngôn ngữ: một hệ thống build, thường là CMake; một trình gỡ lỗi như GDB hay LLDB; sanitizer để bắt lỗi bộ nhớ lúc chạy; và một trình quản lý package như vcpkg hay Conan. Sau đó là lĩnh vực bạn nhắm tới, dù là game engine, cấu trúc bên trong hệ điều hành, mạng hay phần cứng nhúng.

Nên chọn C++ hay Rust cho sự nghiệp lập trình hệ thống?

C++ nếu xét quy mô thị trường việc làm hiện có, Rust nếu xét phần ngày càng lớn các dự án mới. Game engine, hệ thống giao dịch, trình duyệt và trình biên dịch phần lớn là những codebase C++ tồn tại lâu năm, trong khi Rust đang lấn sân ở hạ tầng mới và code nhạy cảm về bảo mật vì trình biên dịch của nó loại bỏ cả những lớp lỗi bộ nhớ. Học C++ trước giúp các quy tắc của Rust trở nên quen thuộc, và lộ trình này cũng có phiên bản Rust.

Khóa học nào trong lộ trình này không dạy bằng C++?

Một khóa: clean code hiện mới chỉ dạy bằng Python, nên được liệt kê sau các bước thay vì ở bước bảy. Chủ đề của nó, gồm đặt tên, hàm nhỏ và trách nhiệm rõ ràng, không phụ thuộc ngôn ngữ, và C++ Core Guidelines áp dụng cùng tư duy đó cho C++ khi bạn đã học xong. Mọi bước, kể cả dự án hướng đối tượng và các bài tập lập trình, đều dùng C++.

Lộ trình C++ này có miễn phí không?

Có. Mọi khóa học trong lộ trình đều miễn phí: bài học, trình biên dịch C++ và terminal Linux trên trình duyệt, các thử thách chấm bằng test, gợi ý của Bugsy và các chứng nhận. Pro bỏ giới hạn năng lượng hằng ngày và thêm trợ giúp AI không giới hạn, và không có gì trong lộ trình này bắt buộc phải có Pro.

Tôi có nhận được chứng nhận cho lộ trình Kỹ sư phần mềm không?

Có. Hoàn thành mọi bước và bạn nhận một chứng nhận miễn phí cho cả lộ trình Kỹ sư phần mềm. Chứng nhận liệt kê từng khóa học bạn đã hoàn thành trên đường đi và liên kết đến chứng nhận riêng của từng khóa, để ai cũng có thể kiểm tra mọi kỹ năng được nêu. Bạn có thể thêm nó vào hồ sơ LinkedIn. Đây là chứng nhận hoàn thành của Coddy, không phải văn bằng được kiểm định.

Các lộ trình học khác

Cùng các khóa học, sắp xếp cho một vai trò khác. Tiến độ được giữ lại: khóa học đã hoàn thành ở một lộ trình được tính ở mọi lộ trình có khóa học đó.

Tất cả lộ trình học
Hình minh họa các ngôn ngữ lập trình của Coddy

Bắt đầu lộ trình Kỹ sư phần mềm miễn phí

Bắt đầu học