03/10/2023
🤔🤔Tại sao người mới học lập trình nên chọn ngôn ngữ C?
✅1. C giúp bạn tư duy
▫️Không giống như các ngôn ngữ cấp cao cung cấp cho bạn các phương thức và API để thao tác với mảng (arrays), ngăn xếp (stacks), hàng đợi (queues),… bạn cần phải tự mình triển khai các chức năng đó.
▫️Điều này đòi hỏi sự hiểu biết sâu sắc về cách mọi thứ diễn ra ở cấp hệ thống như:
– Cách các biến (variables), mảng (arrays),… được lưu trữ trong bộ nhớ
– Cách bạn thao tác với các biến (variables)
– Bạn phải xử lý được tất cả các corner cases
▫️Vì chúng ta cần tư duy trước khi bắt tay vào lập trình, nên việc triển khai các thuật toán và cấu trúc dữ liệu trong C đòi hỏi bạn phải suy nghĩ trước khi thực hiện.
✅2. C giúp bạn hiểu các khái niệm cơ bản
▫️Việc phát triển phần mềm trong C cho phép bạn hiểu và triển khai các khái niệm của Khoa học máy tính như: Mutex, semaphore, hoạt động nguyên tử (atomic operation), giao tiếp liên tiến trình (IPC), shared memory,…
▫️Có nhiều codebase nguồn mở có sẵn có thể giúp bạn. Nhưng nhìn vào source code có thể giúp bạn thực sự hiểu những khái niệm này cũng như cách chúng được triển khai.
3. C tạo cơ hội để bạn tương tác với phần cứng
▫️Ngày nay, có nhiều ngôn ngữ khác nhau giúp bạn tương tác và điều khiển phần cứng. Các ngôn ngữ lập trình như Python, C # và Java là những ngôn ngữ rất thân thiện với con người. Tuy nhiên, những ngôn ngữ đó rất trừu tượng từ phần cứng vật lý. Nói cách khác, bạn sẽ không có được trải nghiệm về hoạt động của phần cứng máy tính (computer hardware) cho đến khi bắt đầu lập trình với C. Các ngôn ngữ lập trình hiện đại ẩn toàn bộ trải nghiệm liên quan đến phần cứng, cung cấp một môi trường sandbox hoàn toàn mới mà trong hầu hết các trường hợp, môi trường sandbox này được tạo bằng máy ảo.
▫️Đa phần các nhà phát triển bỏ qua các chủ đề quan trọng liên quan đến phần cứng như quản lý bộ nhớ, xử lý tệp và tối ưu hóa mã, bởi vì chúng không bắt đầu bằng C. Các ngôn ngữ lập trình hiện đại có thể tự động xử lý việc phân bổ và giải phóng bộ nhớ với trình thu gom rác (garbage collectors). Trong khi đó, với ngôn ngữ lập trình C, các nhà phát triển có quyền quản lý bộ nhớ bằng cách viết mã được tối ưu hóa cao.
▫️Nếu bạn bắt đầu học lập trình với ngôn ngữ C, bạn sẽ có được những trải nghiệm khó quên về phần cứng mà mọi nhà khoa học máy tính/ kỹ sư phần mềm nên trải nghiệm.
✅4. C giúp bạn hiểu về quản lý bộ nhớ
▫️Hầu hết chúng ta đều e ngại các con trỏ (pointer) trong C khi thấy chúng lần đầu tiên. Sau khi hiểu khái niệm về con trỏ thì bạn sẽ dần yêu thích chúng. Không phải ai cũng viết mã hằng ngày bằng C, nhưng mọi người thường xuyên dùng con trỏ khi viết mã với ngôn ngữ lập trình này.
▫️Quản lý bộ nhớ, phân bổ và giải phóng không gian là những điều bạn cần quan tâm khi viết mã bằng C. Không giống như các ngôn ngữ cấp cao có bộ thu gom rác, C không có bộ nhớ này. Do vậy bạn cần phải tự chăm sóc bộ nhớ.
▫️Điều này trông có vẻ sẽ khiến bạn chán nản, nhưng hãy tập trung vào những mặt tích cực mà C đem lại. Các trình biên dịch C tạo ra assembly code cực nhanh. Do đó, môi trường phát triển C sẽ thúc đẩy bạn viết mã hiệu suất cao.
▫️Khi viết mã bằng C, bạn phải tự quản lý mọi thứ, bạn sẽ viết nhiều mã hơn và quan trọng là bạn sẽ học được nhiều hơn về cách lập trình.
✅5. C giúp bạn lập trình tốt hơn
▫️Nếu xuất phát điểm của bạn là từ C, thì khi bạn chuyển sang những ngôn ngữ lập trình cấp cao khác, bạn sẽ nhận ra rằng những khái niệm học được từ C sẽ giúp bạn trở thành một lập trình viên giỏi hơn, cũng như có khả năng viết mã tốt bằng những ngôn ngữ khác.
✅6. C thúc đẩy bạn viết code “sạch”
▫️Không giống như các ngôn ngữ lập trình hiện đại, bạn phải viết nhiều dòng mã bằng C. Đây là do C cung cấp quyền truy cập cấp thấp vào mọi thứ bạn cần, nghĩa là nó không cung cấp cho bạn một thư viện chuẩn trừu tượng cao. Khi số dòng trong mã tăng lên, độ phức tạp của mã cũng tăng lên. Vì vậy, bạn phải viết một đoạn mã rõ ràng và dễ hiểu để loại bỏ những đoạn mã lộn xộn.
▫️Viết mã sạch là một kỹ năng được chú trọng hàng đầu khi bạn làm việc với các dự án phần mềm ở cấp độ ngành. Với những người đã và đang làm dự án với C, việc viết mã sạch có thể nói là dễ như ăn bánh.