inflearn logo

Tự học lập trình C Remaster - Bài giảng trực tiếp từ 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ể cảm thấy khó khăn vì những khái niệm lạ lẫm như biến, toán tử, câu lệnh điều kiện, vòng lặp, hàm, mảng và con trỏ. Khóa học này là chương trình nhập môn ngôn ngữ C do Giáo sư Lee Chang-hyun, tác giả cuốn sách "Tự học ngôn ngữ C" và là nhà phát triển với 25 năm kinh nghiệm, trực tiếp giảng dạy. Không chỉ dừng lại ở việc ghi nhớ cú pháp ngôn ngữ C một cách đơn thuần, khóa học sẽ giải thích từng bước tại sao mỗi cú pháp lại 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ã code. Bắt đầu từ những khái niệm cơ bản của lập trình, bạn sẽ được học từng bước các nền tảng cốt lõi của ngôn ngữ 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, con trỏ. Đồng thời, thông qua các bài tập cho mỗi phần, khóa học cung cấp trải nghiệm tự tay viết mã và giải quyết vấn đề dựa trên những gì đã học. Dựa trên kinh nghiệm tích lũy suốt 25 năm trong lĩnh vực phát triển và giáo dục, tôi sẽ hướng dẫn để những người mới bắt đầu học ngôn ngữ C có thể xây dựng nền tảng lập trình một cách vững chắc nhất.

14 học viên đang tham gia khóa học này

Độ 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.

  • Bạn có thể hiểu các 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 có thể tự mình viết mã code.

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

  • Bằng cách sử dụng hàm và mảng, bạn có thể cấu trú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ạn có thể hiểu được mối quan hệ giữa biến và bộ nhớ, cũng như nắm vững 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 của từng phần, bạn không chỉ dừng lại ở việc sao chép mã code mà còn có thể trải nghiệm việc tự mình giải quyết các vấn đề bằng mã 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 phải là học ngôn ngữ C bằng mắt, mà là hiểu ngôn ngữ C theo nguyên lý.

Bạn đã bao giờ từng suy nghĩ như thế này khi đang học ngôn ngữ C 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 trữ liên tiếp trong bộ nhớ?”
“Rốt cuộc tại sao lại cần đến con trỏ?”

Để hiểu rõ về ngôn ngữ C, thay vì học thuộc lòng cú pháp,
việc hiểu được "Tại sao nó lại hoạt động như thế này?" quan trọng hơn nhiều.

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

Khuyên dùng cho những đối tượng sau

Những người lần đầu học ngôn ngữ C

Không cần có kinh nghiệm lập trình cũng không sao. Chúng ta sẽ bắt đầu từng bước một từ Hello World.

Những người đã học ngôn ngữ C nhưng không hiểu nguyên lý

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

Những người 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 để hiểu từng bước một tại sao con trỏ lại cần thiết.

Đặc điểm của bài giảng này

Hãy giới thiệu các đặc điểm cốt lõi và điểm khác biệt.

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

Hiểu khái niệm → Tự tay viết mã → Kiểm tra kết quả thực thi để 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 này

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

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

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

Bạn sẽ được học cách nhìn nhận cú pháp ngôn ngữ C dưới góc độ bộ nhớ.

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

Bạn không chỉ học cách sử dụng đơn thuần các câu lệnh if, switch, while, for.

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

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

Tại sao chúng ta cần hàm?

Hiểu lý do tại sao một chương trình được chia 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ớ

Đừng chỉ ghi nhớ mảng một cách máy móc theo cú pháp như 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.

Nếu hiểu cấu trúc của mảng dưới góc độ bộ nhớ,
một nền tảng quan trọng để hiểu về con trỏ xuất hiện sau này sẽ được hình thành.

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

Rất nhiều người học ngôn ngữ C cảm thấy khó khăn ở phần con trỏ.

Tuy nhiên, nếu bạn cố gắng học thuộc lòng con trỏ như một cú pháp độc lập, nó sẽ trở nên khó khăn hơn.

Biến → Bộ nhớ → Địa chỉ → Mảng → Con trỏ

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

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

Người tạo ra bài giảng này


Lee Chang-hyun | Nhà phát triển, nhà giáo dục và là tác giả của cuốn sách 『Tự học lập trình C』

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

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


Càng phát triển phần mềm lâu năm, ta lại càng nhận ra tầm quan trọng của những thứ gọi là 'cơ bản'

Dù đã trải nghiệm vô số ngôn ngữ và công nghệ lập trình, nhưng qua một thời gian dài phát triển và giảng dạy, điều tôi cảm thấy quan trọng hơn cả chính là nguyên lý cơ bản của lập trình.

Đặc biệt, tôi nghĩ C là một ngôn ngữ tuyệt vời để học những kiến thức cơ bản đó.

Khi khai báo một biến, chuyện 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 mảng lại tồn tại liên tiếp trong bộ nhớ?

Và tại sao con trỏ, thứ mà nhiều người học cảm thấy khó khăn, lại thực sự cần thiết?

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

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

Chỉ học thuộc lòng cách sử dụng int, if, for, while, printf() thôi là chưa đủ. is not enough.

Khi bạn bắt đầu hiểu tại sao mã nguồn lại được viết như vậy, nó hoạt động như thế nào trong máy tính, và đặc biệt là điều gì đang xảy ra trong bộ nhớ, các khái niệm rời rạc của ngôn ngữ C sẽ bắt đầu được kết nối lại với nhau 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 nghĩ rằng việc hiểu được những mối liên kết này là vô cùng quan trọng trong việc học ngôn ngữ C.


Vì vậy, tôi đã viết cuốn sách 『Tự học lập trình C』

Dựa trên kinh nghiệm lâu năm trong việc phát triển và giảng dạy, tôi đã biên soạn cuốn sách "Tự học lập trình C" vào năm 2021.

Đây là cuốn sách được tạo ra để 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à giải thích trực tiếp, thay vì phải ghi nhớ các cú pháp ngôn ngữ C một cách khó khăn.

Và lần này, vượt xa khuôn khổ của một cuốn sách, tôi đã tạo ra bài giảng do chính tác giả trực tiếp hướng dẫn.

Trong cuốn sách, do giới hạn về số trang nên có những phần khó có thể truyền tải hết được, vì vậy tôi muốn giải thích những nội dung mà sinh viên thường xuyên thắc mắc, cùng với những nguyên lý lập trình mà tôi đã đúc kết được trong quá trình làm nhà phát triển thông qua việc viết mã nguồn thực tế.

Mục tiêu của bài giảng này rất đơn giản.

Mục tiêu không phải là bắt bạn học thuộc lòng thật nhiều cú pháp ngôn ngữ C, mà là giúp bạn có thể nhìn vào mã nguồn và đặt câu hỏi "Tại sao?".

Đó là điều tôi nghĩ là sự khởi đầu của việc học lập trình.


Kinh nghiệm làm việc chính

  • Hiện tại) Đạ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

  • Cựu Giáo sư toàn thời gian / Trưởng khoa Phần mềm ứng dụng tại Viện Giáo dục Kỹ thuật Trung tâm Seoul

  • Hơn 20 năm kinh nghiệm phát triển giải pháp IT tại 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 Bảo mật Hội tụ, Đại học Nữ sinh Sungshin

  • Giảng dạy cơ sở lập trình C tại Đại học Hanyang ERICA

  • Khóa đào tạo nhà phát triển web dựa trên AI của Samsung Multicampus

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

  • Đào tạo KG Kairos Robot AI·Python·Dữ liệu lớn

  • Đào tạo Java Backend cho nhân viên doanh nghiệp vừa và nhỏ của LG CNS theo chương trình hợp tác cùng phát triển

  • 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 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, Kosta Edu, Bit Education Center, v.v.

  • Ra đề thi kiểm tra thuật toán dành cho nhân viên SK hynix


Sách đã viết và dịch

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

  • 『MFC 시스템 프로그래밍』, Hyejiwon, 2008

  • 『Win32 기반의 API 프로그래밍』, 혜지원, 2010

  • 『C++ 프로그래밍과 STL』, Hyejiwon, 2011

  • 『HTML5와 자바스크립트 기반의 웹프로그래밍 정석』, Hyejiwon, 2016

  • 『내 생애 첫 번째 코딩 앱인벤터』, Digital Books, 2018

  • 『C# 프로그래밍의 정석』, Hyejiwon, 2020

  • 『나혼자 파이썬』, 디지털북스, 2020

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

  • 『Tự học lập trình C』, Digital Books, 2021

  • 『데이터 익명화를 위한 파이프라인』, Hanbit Media, 2022 (Sách dịch)

  • 『백엔드 입문자를 위한 모던 자바스크립트 & Node.js』, Gilbut Campus, 2023

  • 『Tiêu chuẩn React dành cho người mới bắt đầu Front-end với TypeScript』, Gilbut Campus, 2025

  • 『처음 만나는 C#』, Hyejiwon, 2026


Điều tôi muốn truyền tải trong bài giảng này

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

Trong khi học về biến và kiểu dữ liệu, bạn có thể hiểu được 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 để hiểu về luồng của chương trình,
thông qua hàm và mảng để hiểu về cấu trúc của chương trình,
và thông qua con trỏ để trải nghiệm nguyên lý trực tiếp xử lý bộ nhớ và địa chỉ.

Vì vậy, trong bài giảng này, thay vì cho các bạn biết câu trả lời trước, tôi muốn cùng các 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 ra kết quả như thế này?”
“Chuyện gì đang xảy ra trong bộ nhớ vậy?”

Đừng học thuộc lòng mã code mà hãy hiểu rõ nguyên lý.

Tác giả của cuốn sách "Tự học lập trình 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 lòng mã code.

Hãy suy nghĩ xem "Tại sao lại như vậy?".

Bạn có thắc mắc gì không?

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

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

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

Giải thích từ đầu, bắt đầu từ lập trình là gì cho đến thiết lập môi trường phát triển và Hello World.

Hỏi: Tôi đã từng học ngôn ngữ C trước đây, liệu học lại lần nữa có giúp ích gì không?

Vâng. Đặc biệt, khóa học này được đề xuất cho những ai đã biết ở mức độ nào đó về cú pháp ngôn ngữ C nhưng mối quan hệ giữa bộ nhớ, mảng và con trỏ vẫn chưa rõ ràng.

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

Q. Cuốn sách 『C Language Một Mình Tôi Học』 có nhất thiết phải có không?

Không bắt buộc.

Mặc dù bài giảng được thiết kế để bạn có thể tự học, nhưng việc sử dụng kèm cuốn sách 『Tự học lập trình C một mình』 sẽ giúp ích cho việc ôn tập các ví dụ và giải thích.

Lưu ý trước khi khóa học bắt đầu

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

  • Trong bài giảng, chúng tôi sẽ thiết lập môi trường phát triển ngôn ngữ C dựa trên môi trường Windows và trực tiếp viết mã.

    Khuyến khích bạn nên trực tiếp viết và chạy thử các ví dụ trong khi xem mỗi bài giảng.

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à mạch trình bày của cuốn sách 『Tự học lập trình C một mình』.

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


Kiến thức tiên quyết và lưu ý

  • Không yêu cầu kiến thức lập trình tiên quyết đặc biệt nào.

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

    Tuy nhiên, thay vì chỉ dừng lại ở việc xem video, bạn nhất định hãy thử tự mình trực tiếp viết code.

    Lập trình có thể học được nhiều nhất thông qua quá trình trực tiếp viết mã, thực thi, gặp lỗi và suy nghĩ về lý do của những lỗi đó thay vì chỉ nhìn bằng mắt. rather than just watching with your eyes.

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

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

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

  • Nhà phát triển mới bắt đầu muốn xây dựng nền tảng lập trình vững chắc

  • Sinh viên chuyên ngành Khoa học máy tính và Phần mềm lần đầu tiên học ngôn ngữ C tại trường đại học

  • Người học muốn học 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.

  • Những người muốn học các nguyên lý cơ bản và tư duy lập trình hơn là chỉ học thuộc lòng cú pháp đơn thuần.

  • Những người đang học ngôn ngữ C nhưng bị vướng mắc ở các khái niệm khó như con trỏ và muốn học lại từ đầu.

  • Những ai muốn học ngôn ngữ C thông qua lời giải thích trực tiếp từ tác giả cuốn sách "Tự học ngôn ngữ C" (나혼자 C언어), một nhà phát triển với 25 năm kinh nghiệm.

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

  • Kỹ năng vận hành máy tính cơ bản

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

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

Xin chào
Đây là jamsuham750592

Xác minh sự nghiệp

745

Học viên

17

Đá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ả

21 bài giảng ∙ (4giờ 20phút)

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

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

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í