inflearn logo

Tự học ngôn ngữ C bản remaster - Học trực tiếp cùng tác giả Lee Chang-hyun, nhà phát triển với 25 năm kinh nghiệm

Đối với những người mới bắt đầu học lập trình, ngôn ngữ C có thể gây cảm giác khó khăn bởi những khái niệm xa lạ như biến, toán tử, câu lệnh điều kiện, vòng lặp, hàm, mảng, con trỏ,... Đây là khóa học nhập môn ngôn ngữ C do chính giáo sư Lee Chang-hyun, tác giả của 『나혼자 C언어』 và là một nhà phát triển có 25 năm kinh nghiệm, trực tiếp giảng dạy. Khóa học không chỉ dừng lại ở việc ghi nhớ cú pháp C, mà còn giải thích theo từng bước vì sao mỗi cú pháp là cần thiết, chúng hoạt động như thế nào trong chương trình và cách giải quyết các vấn đề thực tế bằng mã nguồn. Bắt đầu từ những khái niệm cơ bản của lập trình, khóa học lần lượt hướng dẫn các kiến thức nền tảng cốt lõi của C như biến và kiểu dữ liệu, toán tử, câu lệnh điều kiện, vòng lặp, hàm, mảng và con trỏ. Thông qua các bài tập trong từng Part, học viên còn có cơ hội trực tiếp viết mã và giải quyết vấn đề bằng những kiến thức đã học. Dựa trên kinh nghiệm tích lũy trong 25 năm làm việc ở lĩnh vực phát triển và giáo dục, khóa học sẽ hướng dẫn những người lần đầu học C xây dựng vững chắc nền tảng lập trình.

(5.0) 2 đánh giá

53 học viên

Độ khó Nhập môn

Thời gian Không giới hạn

C
C
memory-management
memory-management
algorithms
algorithms
data-structure
data-structure
Functional Programming
Functional Programming
C
C
memory-management
memory-management
algorithms
algorithms
data-structure
data-structure
Functional Programming
Functional Programming
Thumbnail

Bạn sẽ nhận được điều này sau khi học.

  • Có thể hiểu cú pháp cơ bản của ngôn ngữ C và nguyên lý hoạt động của chương trình, đồng thời tự mình viết mã.

  • Có thể tạo ra chương trình giải quyết vấn đề đã cho một cách logic bằng cách sử dụng câu lệnh điều kiện và câu lệnh lặp.

  • Có thể tổ chức chương trình theo từng chức năng và xử lý nhiều dữ liệu một cách hiệu quả bằng cách sử dụng hàm và mảng.

  • Bạn có thể hiểu mối quan hệ giữa biến và bộ nhớ, cũng như nguyên lý cơ bản của con trỏ—một khái niệm cốt lõi trong ngôn ngữ C.

  • Thông qua các bài thực hành và bài tập trong từng Part, bạn có thể trải nghiệm việc tự mình giải quyết vấn đề bằng code, thay vì chỉ đơn thuần làm theo code.

  • Bạn có thể xây dựng nền tảng lập trình vững chắc để học các ngôn ngữ lập trình khác như C++, C#, Java, Python trong tương lai.

Không chỉ đọc C bằng mắt, mà còn hiểu được nguyên lý của C

Trong quá trình học ngôn ngữ C, bạn đã bao giờ có những suy nghĩ như thế này chưa?

“Tại sao biến lại cần kiểu dữ liệu?”
“Tại sao mảng lại được lưu liên tiếp trong bộ nhớ?”
“Rốt cuộc tại sao lại cần con trỏ?”

Để thực sự hiểu ngôn ngữ C, điều quan trọng hơn việc ghi nhớ cú pháp là
hiểu “tại sao nó lại hoạt động như vậy?”.

Khóa học này do chính tác giả của 『Tự học C』 trực tiếp giảng giải từ những kiến thức cơ bản về C đến nguyên lý của bộ nhớ và con trỏ, là khóa học nhập môn C do chính tác giả giảng dạy.

Khuyến nghị dành cho những người như sau

Dành cho người lần đầu học ngôn ngữ C

Ngay cả khi chưa có kinh nghiệm lập trình cũng không sao. Khóa học sẽ bắt đầu từng bước từ Hello World.

Dành cho những người đã học ngôn ngữ C nhưng chưa hiểu rõ nguyên lý

Nếu bạn có thể sử dụng câu lệnh điều kiện, vòng lặp và hàm nhưng chưa thực sự hiểu tại sao chúng lại hoạt động như vậy thì khóa học này rất phù hợp với bạn.

Dành cho những ai từng từ bỏ ngôn ngữ C vì con trỏ

Bắt đầu từ mối quan hệ giữa địa chỉ, bộ nhớ và kiểu dữ liệu, bạn sẽ từng bước hiểu được tại sao con trỏ lại cần thiết.

Đặc điểm của khóa học này

Hãy giới thiệu những đặc điểm nổi bật và điểm khác biệt cốt lõi.

Đây không phải là khóa học chỉ nghe giải thích rồi bỏ qua.

Hiểu khái niệm → tự viết mã → kiểm tra kết quả thực thi, qua đó xác nhận mã thực sự hoạt động như thế nào.

Bạn sẽ học những nội dung như thế này

Mối quan hệ giữa biến và bộ nhớ

Biến không chỉ đơn giản là một chiếc hộp chứa giá trị.

Khi khai báo biến, điều gì sẽ xảy ra trong bộ nhớ?
Tại sao kích thước bộ nhớ lại khác nhau tùy theo kiểu dữ liệu?

Chúng ta sẽ học cách nhìn nhận cú pháp của ngôn ngữ C từ góc độ bộ nhớ.

Nguyên lý của câu lệnh điều kiện và vòng lặp

Không chỉ học cách sử dụng đơn thuần if, switch, while và for.

Bạn sẽ học cách luồng thực thi của chương trình thay đổi theo các điều kiện như thế nào,
và cách giải quyết vấn đề một cách logic bằng vòng lặp.

Cấu trúc của hàm và chương trình

Tại sao cần có hàm?

Hiểu lý do chia một chương trình thành nhiều chức năng và
mối quan hệ giữa tham số, giá trị trả về, biến cục bộ và biến toàn cục.

Mối quan hệ giữa mảng và bộ nhớ

Không học thuộc mảng một cách đơn giản như cú pháp int arr[5].

“Dữ liệu của mảng được lưu trữ trong bộ nhớ như thế nào?”

Bắt đầu từ câu hỏi này.

Hiểu cấu trúc của mảng dưới góc nhìn bộ nhớ sẽ
tạo nền tảng quan trọng để hiểu con trỏ xuất hiện sau đó.

Con trỏ, đừng học thuộc mà hãy hiểu theo nguyên lý

Nhiều người học ngôn ngữ C cảm thấy khó khăn với con trỏ.

Tuy nhiên, nếu cố học thuộc con trỏ như một cú pháp độc lập thì sẽ càng khó hơn.

Biến → bộ nhớ → địa chỉ → mảng → con trỏ

Nếu hiểu mối quan hệ này theo đúng trình tự, bạn sẽ tự nhiên hiểu được tại sao con trỏ lại cần thiết.

Lý do biến con trỏ lưu trữ địa chỉ,
và lý do con trỏ cũng có kiểu dữ liệu như int*, char*
được giải thích từ nguyên lý thông qua câu hỏi “Tại sao?”.

Người tạo ra khóa học này


Lee Chang-hyun | Nhà phát triển, nhà giáo dục và tác giả cuốn 『C một mình tôi』

Hiện đang đảm nhiệm vai trò Giám đốc Viện Nghiên cứu Lập trình Lee Chang-hyun, giảng dạy đào tạo lập trình viên và lập trình; từng là giáo sư kiêm nhiệm Khoa Kỹ thuật An ninh Hội tụ, Đại học Nữ sinh Sungshin, đồng thời từng giữ chức giáo sư chính thức và trưởng khoa Khoa Phần mềm Ứng dụng, Viện Đào tạo Kỹ thuật Trung bộ Seoul. Ông đã trực tiếp phát triển phần mềm tại hiện trường phát triển SW trong hơn 20 năm.

Tôi bắt đầu với vai trò nhà phát triển và đã trải nghiệm nhiều công nghệ khác nhau, từ lập trình hệ thống Windows bằng C/C++, C#, phát triển web, JavaScript và Node.js, Python cho đến AI. Trong thời gian dài, tôi đã truyền đạt những kinh nghiệm tích lũy được trong thực tế phát triển thông qua hoạt động giảng dạy và sách.


“Cơ bản” – điều càng làm phát triển lâu, bạn càng nhìn nhận lại

Tôi đã trải nghiệm vô số ngôn ngữ lập trình và công nghệ, nhưng điều mà sau nhiều năm phát triển và giảng dạy, tôi nhận ra là quan trọng hơn cả chính là những nguyên lý cơ bản của lập trình.

Đặc biệt, tôi cho rằng C là một ngôn ngữ tốt để học những nguyên lý cơ bản đó.

Khi khai báo một biến, điều gì sẽ xảy ra trong bộ nhớ?

Tại sao kích thước bộ nhớ lại khác nhau tùy theo kiểu dữ liệu?

Tại sao các mảng lại tồn tại liên tiếp trong bộ nhớ?

Và con trỏ, thứ khiến nhiều người học gặp khó khăn, rốt cuộc cần thiết vì sao?

Trước khi dạy học sinh về cú pháp, tôi luôn muốn đặt ra một câu hỏi.

“Tại sao lại như vậy?”

Chỉ ghi nhớ cách sử dụng int, if, for, while, printf() là chưa đủ.

Khi bắt đầu hiểu tại sao mã được viết như vậy, nó hoạt động như thế nào trên máy tính và đặc biệt là điều gì đang diễn ra trong bộ nhớ, các khái niệm về ngôn ngữ C vốn tách rời nhau sẽ bắt đầu liên kết thành một thể thống nhất.

Biến → kiểu dữ liệu → bộ nhớ → mảng → địa chỉ → con trỏ

Tôi cho rằng việc hiểu được những mối liên hệ này là vô cùng quan trọng trong quá trình học ngôn ngữ C.


Vì vậy, tôi đã viết 『나혼자 C언어』.

Dựa trên nhiều năm kinh nghiệm phát triển và giảng dạy, năm 2021 tôi đã viết cuốn 『Tự học ngôn ngữ C』.

Đây là cuốn sách được biên soạn để những người mới bắt đầu học lập trình có thể tiếp cận ngôn ngữ C thông qua hình ảnh, ví dụ và lời giải thích trực tiếp, thay vì phải ghi nhớ một cách khó khăn các cú pháp của ngôn ngữ C.

Và lần này, vượt ra ngoài cuốn sách, bài giảng do chính tác giả trực tiếp giải thích đã được tạo ra.

Trong sách, do giới hạn về dung lượng, có những phần khó trình bày đầy đủ; bên cạnh đó, tôi cũng muốn giải thích những nội dung mà mình thường xuyên được học viên hỏi khi giảng dạy, cùng các nguyên lý lập trình rút ra trong quá trình làm việc với tư cách là một lập trình viên, thông qua việc trực tiếp viết mã thực tế.

Mục tiêu của khóa học này rất đơn giản.

Không phải là bắt bạn ghi nhớ thật nhiều cú pháp ngôn ngữ C, mà là giúp bạn có thể nhìn vào code và đặt câu hỏi “Tại sao?”.

Đó là khởi đầu của việc học lập trình theo quan điểm của tôi.


Kinh nghiệm chính

  • Hiện tại) Giám đốc Viện Nghiên cứu Lập trình Lee Chang-hyun

  • Trước đây) Giáo sư thỉnh giảng Khoa Kỹ thuật Bảo mật Hội tụ, Đại học Nữ sinh Sungshin

  • Trước đây) Giáo sư chính thức / Trưởng khoa Khoa Phần mềm ứng dụng, Học viện Đào tạo Kỹ thuật Trung bộ Seoul

  • Hơn 20 năm phát triển giải pháp CNTT tại các công ty phát triển phần mềm

  • Giảng dạy lập trình hệ thống tại Khoa Kỹ thuật An ninh Hội tụ, Đại học Nữ Sungshin

  • Giảng dạy cơ bản về lập trình C tại Đại học Hanyang ERICA

  • Khóa đào tạo phát triển web dựa trên AI tại Samsung Multi Campus

  • Đào tạo Python và dữ liệu lớn tại Đại học Quốc gia Jeju

  • Đào tạo AI, Python và dữ liệu lớn về robot KG Kairos

  • LG CNS đào tạo Java backend cho người đang đi làm theo chương trình hợp tác hỗ trợ doanh nghiệp lớn, vừa và nhỏ

  • Hiệp hội Phát triển Công nghệ Phần mềm Hàn Quốc – Khóa đào tạo phát triển viên full-stack Node.js·JavaScript dựa trên AI

  • Đào tạo lập trình viên và người đang đi làm tại Samsung Multicampus, Costa Edu, Trung tâm Đào tạo Bit, v.v.

  • Biên soạn đề bài kiểm tra thuật toán dành cho nhân viên đang làm việc tại SK hynix


Sách do tác giả viết và sách dịch

Từ nhập môn lập trình, lập trình hệ thống, phát triển web đến dữ liệu và AI, tôi đã biên soạn 13 cuốn sách và bản dịch.

  • 『Lập trình hệ thống MFC』, Hyejiwon, 2008

  • 『Lập trình API trên nền tảng Win32』, Hyewon, 2010

  • 『Lập trình C++ và STL』, Hyejiwon, 2011

  • 『Lập trình web căn bản dựa trên HTML5 và JavaScript』, Hyejiwon, 2016

  • 『Ứng dụng lập trình đầu tiên trong đời tôi: App Inventor』, Digital Books, 2018

  • 『Lập trình C# chuẩn mực』, Hyejiwon, 2020

  • 『Tự học Python』, Digital Books, 2020

  • 『Xử lý ngôn ngữ tự nhiên bằng Spark』, Hanbit Media, 2021 (sách dịch)

  • 『Tự học ngôn ngữ C』, Digital Books, 2021

  • 『Pipeline để ẩn danh dữ liệu』, Hanbit Media, 2022 (bản dịch)

  • 『JavaScript hiện đại & Node.js dành cho người mới bắt đầu về backend』, Gilbut Campus, 2023

  • 『Nhập môn frontend: React chuẩn mực với TypeScript』, Gilbut Campus, 2025

  • 『C# lần đầu gặp gỡ』, Nhà xuất bản Hyejiwon, 2026


Điều tôi muốn truyền đạt trong khóa học này

Ngôn ngữ C không chỉ đơn thuần là một ngôn ngữ lập trình lâu đời.

Khi học về biến và kiểu dữ liệu, bạn sẽ hiểu mối quan hệ giữa dữ liệu và bộ nhớ,
thông qua câu lệnh điều kiện và vòng lặp, bạn sẽ hiểu luồng hoạt động của chương trình,
thông qua hàm và mảng, bạn sẽ hiểu cấu trúc của chương trình,
và thông qua con trỏ, bạn có thể trải nghiệm nguyên lý trực tiếp thao tác với bộ nhớ và địa chỉ.

Vì vậy, trong khóa học này, thay vì đưa ra đáp án trước, tôi muốn cùng bạn đặt ra những câu hỏi.

“Tại sao lại viết như thế này?”
“Tại sao lại cho ra kết quả như vậy?”
“Trong bộ nhớ đang xảy ra chuyện gì vậy?”

Không học thuộc mã mà hãy hiểu nguyên lý.

Tác giả của 『나혼자 C언어』 sẽ trực tiếp giải thích các nguyên lý của ngôn ngữ C dưới góc nhìn của một nhà phát triển.

Đừng học thuộc mã.

Hãy thử suy nghĩ: “Tại sao lại như vậy?”

Bạn có điều gì thắc mắc không?

Hãy viết ít nhất 3 câu hỏi và câu trả lời mà những học viên tiềm năng có thể thắc mắc trước khi đăng ký khóa học.
Khuyến khích những câu trả lời thể hiện cá tính của người chia sẻ kiến thức, thay vì những câu trả lời sáo rỗng hoặc mang tính hình thức.

Q. Tôi chưa từng lập trình bao giờ, liệu có thể tham gia khóa học không?

Có. Khóa học dành cho những người mới bắt đầu học lập trình.

Giải thích từ những khái niệm cơ bản nhất về lập trình, cách thiết lập môi trường phát triển cho đến chương trình Hello World.

Q. Tôi đã từng học ngôn ngữ C, vậy học lại có giúp ích không?

Có. Đặc biệt, cuốn sách này phù hợp với những người đã biết một phần về cú pháp ngôn ngữ C nhưng chưa hiểu rõ mối quan hệ giữa bộ nhớ, mảng và con trỏ.

Thay vì học thuộc lại cú pháp, bạn có thể kết nối lại những nội dung mình đã biết từ trước dưới góc nhìn nguyên lý.

Hỏi: Cuốn sách 『Tự học ngôn ngữ C』 có thực sự cần thiết không?

Không bắt buộc.

Khóa học được thiết kế để bạn có thể học chỉ với bài giảng, nhưng nếu sử dụng kèm cuốn 『Tự học C』, bạn sẽ dễ dàng ôn lại các ví dụ và phần giải thích hơn.

Lưu ý trước khi tham gia khóa học

Môi trường thực hành

  • Trong khóa học, môi trường phát triển ngôn ngữ C được thiết lập dựa trên môi trường Windows và bạn sẽ trực tiếp viết mã.

    Khi xem từng bài giảng, bạn nên tự mình viết và chạy các ví dụ.

Tài liệu học tập

  • Nội dung bài giảng được tiến hành dựa trên cấu trúc và trình tự của 『Tự học ngôn ngữ C』.

    Trong mỗi Phần, bạn sẽ học các khái niệm và ví dụ, tự mình giải quyết vấn đề thông qua bài tập, sau đó kiểm tra đáp án và phần giải thích.


Kiến thức nền tảng và những điều cần lưu ý

  • Không yêu cầu kiến thức nền tảng riêng về lập trình.

    Ngay cả những người lần đầu làm quen với ngôn ngữ C và lập trình cũng có thể tham gia khóa học.

    Tuy nhiên, thay vì chỉ xem video, bạn nhất định hãy tự mình viết thử mã.

    Lập trình có thể được học hỏi nhiều nhất qua quá trình tự mình viết mã, chạy chương trình, gặp lỗi và suy nghĩ về nguyên nhân của chúng, thay vì chỉ quan sát bằng mắt.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Người mới bắt đầu học ngôn ngữ C và lập trình

  • Lập trình viên mới bắt đầu muốn củng cố vững chắc nền tảng lập trình

  • Sinh viên chuyên ngành kỹ thuật máy tính và các ngành liên quan đến phần mềm lần đầu học ngôn ngữ C ở đại học

  • Người học muốn tìm hiểu một cách hệ thống về biến, câu lệnh điều kiện, vòng lặp, hàm, mảng và con trỏ trong ngôn ngữ C

  • Dành cho những ai muốn học các nguyên lý cơ bản và tư duy lập trình hơn là chỉ đơn thuần ghi nhớ ngữ pháp.

  • Dành cho những người đang học ngôn ngữ C nhưng gặp khó khăn ở các khái niệm phức tạp như con trỏ và muốn học lại từ những kiến thức cơ bản.

  • Dành cho những ai muốn học ngôn ngữ C qua phần giải thích trực tiếp của một lập trình viên có 25 năm kinh nghiệm, đồng thời là tác giả cuốn 『C dành cho người tự học』.

Cần biết trước khi bắt đầu?

  • Kỹ năng thao tác máy tính cơ bản

  • Ý chí học lập trình

  • Không cần có kinh nghiệm lập trình trước đó

Xin chào
Đây là jamsuham750592

Xác minh sự nghiệp

784

Học viên

19

Đánh giá

2

Trả lời

4.8

Xếp hạng

2

Các khóa học

Xin chào. Tôi là Lee Chang-hyun, đại diện của Viện nghiên cứu Coding Lee Chang-hyun.

Tôi đang tiến hành đào tạo trực tuyến, trực tiếp và tư vấn phát triển, tập trung vào việc đào tạo nhà phát triển phần mềm và các doanh nghiệp có nhân viên đang làm việc trong lĩnh vực phần mềm.

Dựa trên hơn 20 năm kinh nghiệm phát triển thực tế trong ngành, tôi đã nắm bắt chính xác nhu cầu của các doanh nghiệp và đạt được tỷ lệ việc làm cho học viên trên 80%, đồng thời

Đào tạo doanh nghiệp cũng luôn duy trì mức độ hài lòng cao nhất.

Hiện là Đại diện Viện nghiên cứu Coding Lee Chang-hyun

Cựu Giáo sư kiêm nhiệm Khoa Kỹ thuật Bảo mật Hội tụ, Đại học Nữ sinh Sungshin

1. Tiểu sử tóm tắt

Hơn 20 năm kinh nghiệm phát triển giải pháp IT tại các công ty phát triển phần mềm.

Giảng dạy nhiều khóa học cho đối tượng học viên KDT và người đang đi làm tại Samsung Multicampus / Programmers / Trung tâm Đào tạo Bit, v.v.

Từng giữ chức Giáo sư khoa Phần mềm ứng dụng tại Viện Giáo dục Kỹ thuật Jungbu, thành phố Seoul

 

2. Kinh nghiệm giảng dạy

Samsung Multicampus (Giảng dạy về C++ Refactoring)

Giảng viên Khoa Kỹ thuật Bảo mật Hội tụ, Đại học Nữ sinh Sungshin (Lập trình hệ thống, 2018 - 2019)

Giáo sư toàn thời gian/Trưởng khoa Phần mềm ứng dụng tại Cơ sở Đào tạo Kỹ thuật Jungbu, Thành phố Seoul (2018 - 2019)

Hiệp hội Thúc đẩy Công nghệ Phần mềm Hàn Quốc (Khóa đào tạo nhà phát triển Full-stack dựa trên .NET, 2021)

Đại học Hanyang cơ sở ERICA (Cơ sở lập trình C, 2022)

Samsung Multicampus (Khóa đào tạo nhà phát triển web dựa trên AI, 2022)

Hiệp hội Thúc đẩy Công nghệ Phần mềm Hàn Quốc (Khóa đào tạo nhà phát triển Full-stack dựa trên node.js, 2022-2024)

3. Sách và sách dịch

Lập trình hệ thống MFC (Hyejiwon, 2008)

Lập trình API dựa trên Win32 (Hyejiwon, 2010)

Lập trình C++ và STL (Hyejiwon, 2011)

Quy chuẩn lập trình Web dựa trên HTML5 và JavaScript (Hyejiwon, 2016)

Lập trình đầu đời App Inventor (Digital Books, 2018)

C# Programming cơ bản (Hyejiwon, 2020)

Tự học Python (Digital Books, 2020)

Xử lý ngôn ngữ tự nhiên dựa trên Spark (Bản dịch, Hanbit Media, 2021)

Tự học ngôn ngữ C (Digital Books, 2021)

Pipeline cho ẩn danh hóa dữ liệu (Dịch, Hanbit Media, 2022)

Modern JavaScript & Node.js dành cho người mới bắt đầu Backend (Gilbut Campus, 2023)

React cơ bản dành cho người mới bắt đầu Front-end với TypeScript (Gilbut Campus, 2025)

 

4. Ra đề thi kiểm tra thuật toán

Dành cho nhân viên đương nhiệm tại SK Hynix, tổng cộng 5 lần trong nửa cuối năm 2018

5. Phỏng vấn

Phỏng vấn tạp chí Weekly People (Chuyên gia đào tạo lập trình) http://socialforum.co.kr/221274622489

Phỏng vấn truyền hình - Arirang TV (Money Monster - Phần Thị trường Phần mềm) https://www.youtube.com/watch?v=pmid6i-Q-_A

Phỏng vấn truyền hình - Truyền hình Nghề nghiệp Hàn Quốc (Dream Works Tập 15 - Chuyên gia giáo dục Coding)

http://www.tvworknet.or.kr/prog/preProgramVodView.do?progKey=55559&contentCid=76124

Thêm

Chương trình giảng dạy

Tất cả

50 bài giảng ∙ (5giờ 34phút)

Tài liệu khóa học:

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

2 đánh giá

5.0

2 đánh giá

  • ljses09187211님의 프로필 이미지
    ljses09187211

    Đánh giá 1

    ∙

    Đánh giá trung bình 5.0

    5

    43% đã tham gia

    Tôi từng là người mới bắt đầu với ngôn ngữ C, nhưng sau khi học hết khóa, tôi đã thành thạo ngôn ngữ C. Sách cũng giải thích rất dễ hiểu nhờ sử dụng những phép so sánh thật phù hợp.

    • jjhgwx님의 프로필 이미지
      jjhgwx

      Đánh giá 1,190

      ∙

      Đánh giá trung bình 4.9

      5

      14% đã tham gia

      Khóa học tương tự

      Khám phá các khóa học khác trong cùng lĩnh vực!

      Miễn phí