Bạn sẽ nắm được các nguyên tắc cơ bản của kiến ​​trúc máy tính khi học C, chẳng hạn như con trỏ (pointer), là một kiến thức cơ bản khi tạo dựng một chương trình.

Sau khi học C, bạn sẽ tự tin khi nhập tệp ở bất cứ ngôn ngữ lập trình nào, vì bạn đã biết cách vận hành của chúng ở mức độ thấp nhất.

Có một phép loại suy như sau: bạn soạn thực đơn ăn kiêng của riêng mình dựa trên kinh nghiệm của người khác, nhưng bạn sẽ không biết được tại sao họ lại chọn những nguyên liệu ấy. Nếu mọi chuyện không như bạn muốn (mỡ của bạn không giảm, cơ không tăng…), bạn sẽ không hiểu lý do tại sao và không biết cách cải thiện. Nhưng nếu bạn mày mò để tự lên thực đơn cho riêng mình, bạn sẽ học hỏi được nhiều kiến thức về ăn kiêng, về sức khỏe, về cơ chế của cơ thể con người. Tới 90% là bạn biết sẽ phải làm gì nếu có chuyện không đúng xảy ra.

Lập trình cũng vậy, bạn có thể chọn lựa giữa việc sử dụng các ngôn ngữ lập trình trừu tượng cao so với học nguyên lý hoạt động cơ bản của nó. Khi hiểu được vấn đề, bạn sẽ dễ dàng tìm được cách khắc phục.

Ưu điểm khi chọn C làm ngôn ngữ đầu tiên khi học lập trình

Có những ưu điểm khi học C trước khi học ngôn ngữ lập trình cấp cao hơn (như C++Python). Khi bạn lập trình Java, C#, Python, bạn sẽ chỉ học các thư viện và framework bổ trợ mà không học nguyên tắc cơ bản của ngôn ngữ lập trình. Ngược lại, với C, bạn sẽ chỉ nhận được một vài lệnh gọi thư viện, do đó bạn sẽ tập trung vào ngữ nghĩa (semantics) của ngôn ngữ lâu hơn và phải suy nghĩ nhiều hơn, sâu hơn về các vấn đề.

C là ngôn ngữ lập trình cấp trung (không phải cấp thấp). Thỉnh thoảng bạn sẽ nghe thấy những cụm từ như “mã hóa kim loại” (coding to the metal) hoặc “mã hóa gần dây” (coding close to the wire). C là ngôn ngữ của trình biên dịch (compiler), thông dịch (interpreter), biên tập (editor), hệ điều hành và lập trình nhúng. Khi bạn học lập trình C, bạn gần như phải hiểu về cách các chương trình thực thi và ý nghĩa của register, stack, heap và bộ nhớ ánh xạ (memory mapped I/O).

Sự đơn giản và tốc độ

Có rất ít từ khóa và cấu trúc cú pháp khi viết code C một cách chuyên nghiệp. Các chương trình viết bằng C thì nhanh kinh khủng và hiệu quả, ngoài ra, bản thân cú pháp của C cũng dạy bạn làm được điều này là do: C có các con trỏ thô (raw pointer), concept bộ nhớ tĩnh (static memory)… Bạn sẽ hiểu tại sao khi chuyển các đối tượng lớn thông qua tham chiếu đến các hàm khác sẽ tốt hơn là theo giá trị.

Nếu muốn viết code hiệu quả hơn thì chỉ có cách sử dụng một ngôn ngữ cấp thấp, tuy nhiên, bạn nên cân nhắc trước khi học các thuật ghi nhớ ASM.

Code sạch

Học C cũng sẽ dạy bạn viết code thủ tục (procedural code) rõ ràng trong một mô hình mệnh lệnh (imperative paradigm).

C không phải là ngôn ngữ OOP, nên bạn sẽ không bị ngợp bởi kế thừa (inheritance) và đa hình (polymorphism) – những thứ khiến code phức tạp và nặng hơn - khi viết code. Vậy nên, viết code C thì dễ hơn nhiều so với C++.

Quy tắc lập trình

C cần một sự tỉ mỉ và khó tính nhất định, đôi khi bạn cũng khó mà hiểu nó như thế nào, nhưng chớ lo, nhất là khi bảo trì, vì C đòi hỏi tuân theo quy tắc viết code của nó.

Không phải ngôn ngữ nào cũng cho phép bạn học quy tắc viết code như C. Trong phần lớn các ngôn ngữ lập trình hiện đại, việc sửa lỗi cú pháp là rất dễ. Ví dụ: thông báo lỗi trình biên dịch của Ada cũng có thể sửa code luôn cho bạn. Tuy nhiên, trong C, chỉ một lỗi bởi dấu “;” thôi cũng khiến bạn mất hàng giờ để sửa. Cho nên, bạn sẽ tự nhiên trở nên cẩn trọng hơn khi nhập tệp dự án của mình.

Lập trình nhúng

Thật thú vị khi xem máy tính thực hiện đúng những gì bạn yêu cầu. Bởi vì, dĩ nhiên, ta không cảm được cách dòng điện dịch chuyển, thế nên ta sẽ thấy khoái chí khi thấy cách robot được lập trình để chuyển động.

C rất nhanh và nó có quyền truy cập vào những máy tính cấp thấp ít trừu tượng, cho nên rất phù hợp cho lập trình nhúng.

Sự phổ biến

Không những phổ biến trong lập trình nhúng, C còn nổi tiếng ở các khía cạnh khác. Cùng xem độ phổ biến của C vào năm 2017:

IEEE

 

 

Chỉ số TIOBE

 

 

Nhìn thôi cũng thấy rằng C đang ở vị trí thứ hai và độ phổ biến vẫn chưa có dấu hiệu dừng lại. 

C ++ có phải là thứ tốt hơn để học không?

C là một tập con của C++, vì vậy, bạn luôn có thể tiếp tục với C++ sau khi học C. Để học được C++, trước tiên bạn phải học C.