Các bước tự học lập trình C giúp bạn nắm chúng nhanh chóng

3786

Bạn muốn học lập trình C một cách tốt nhất. Không biết phải bắt đầu từ đâu? Phải học như thế nào?

Học lập trình C không phải là chuyện mà ta có thể làm trong một sớm, một chiều, nhưng nó không phải là quá khó khăn. Có rất nhiều điều bạn có thể làm cho nó dễ dàng hơn khi bạn học lập trình. Bài viết sau đây sẽ có thể giúp ích cho chúng ta khám phá được những bí quyết để học lập trình C tốt hơn và nhanh hơn.
C là một trong những ngôn ngữ lập trình rất lâu đời. Nó đã được phát triển vào những năm 70, nhưng vẫn rất mạnh mẽ nhờ là ngôn ngữ bậc thấp. Học C cũng là một hướng đi đúng đắn để có 1 nền tảng lập trình vững chắc cho các ngôn ngữ phức tạp hơn và kiến thức có được sẽ rất hữu ích trong hầu hết các ngôn ngữ lập trình bậc cao.
“Không đi quá nhanh, hãy nắm đúng nó trước khi nó di chuyển”
(Don’t go too fast, get it right before move on)
Trước tiên chúng ta cần tạo cho mình một nền tảng tốt bằng cách thường xuyên luyện tập thực hành cái bài tập lập trình C. Trong quá trình luyện tập như vậy bạn sẽ thấy được những vấn đề cơ bản mà các lập trình viên thường mắc phải. Và tạo cho mình một thoái quen tốt để giải quyết vấn đề, chậm mà chắc các bạn à.
Đồng thời bạn phải luôn kiên trì luyện tập, đừng tránh một chủ đề nào sau khi bạn đã nắm vững tất cả những gì dẫn đến nó. Bằng cách đối mặt với nhiều ý tưởng và thách thức, bạn sẽ có một chất men giúp bạn nhanh chóng nắm bắt được những vấn đề cơ bản.
Sau đây là 4 lời khuyên học lập trình C, xong rồi ta sẽ tiến đến bước hai là 6 cách tự học tốt nhất:

1. Xem code sample

Khi bạn mới bắt đầu học lập trình C, bạn nên cố gắng hiểu từng ví dụ, đọc và hiểu các đoạn code mà tác giả đã viết dùng để làm gì. Tuy các ví dụ đó không phải khi nào đánh vào máy cũng chạy, nhưng nó tập cho chúng ta một thoái quen xem code cẩn thận và góp phần giúp chúng ta viết code rõ ràng hơn.
Chúng ta phải viết code làm sao để cho các lập trình viên khác có thể đọc và hiểu nó, và để khi chính mình nhìn lại cũng nắm được. Do đó cần phải tuân thủ những nguyên tắc, và cú pháp khi viết code để đảm bảo kiểm tra lỗi đơn giản hơn, các phần hướng dẫn viết code theo một mẫu chuẩn.

2. Hãy chạy thử nó

Chạy thử ở đây không phải là copy rồi paste vào rồi nhấn F5. Bạn nên tự mình gõ từng đoạn code đó vào chương trình biên dịch, vì khi đó bạn thực sự buộc mình phải đi qua tất cả các dòng code, việc gõ code sẽ giúp bạn chú ý đến các chi tiết cú pháp của ngôn ngữ – những sự thiếu sót buồn cười như thiếu đấu chấm phẩy ở cuối mỗi câu lệnh có thể làm bạn hết sức đau đầu. Nhưng đó là những gì bạn cần phải vấp ngã, rồi bạn sẽ có kinh nghiệm sau những lần đau đó.

Sau khi gõ code xong, hãy chạy thử nó, sau đó thử thêm thắt vào đoạn code mà mình muốn. Điều đó sẽ giúp bạn hiểu nhanh hơn mỗi câu lệnh có ý nghĩa như thế nào.

3. Hãy tự mình ngẫm nghĩ và code riêng cho mình 1 chương trình ngay

Bạn hãy tự nghĩ cho mình một thuật toán riêng, một chương trình nào đó. Tuy việc này rất khó và tốn nhiều thời gian, nhưng nó sẽ giúp bạn có được những kinh nghiệm thực sự hữu ích, khả năng tư duy lập trình ngày càng phát triển. Thay vì lên mạng tìm code về sửa.

Nếu ý tưởng làm một ứng dụng lớn, phải viết một lượng lớn code. Khi đó bạn hãy chia nhỏ project thành nhiều tính năng, tự thiết kế cấu trúc và code của chức năng đó, rồi xong xuôi bạn map các tính năng lại cho hoàn chỉnh. Sẽ thất bại nhiều đó, tin tôi đi, nhưng đừng nản, khi bạn chạy ra được thành quả thì nó sẽ tiếp thêm động lực cho bạn.

4.Nhớ sử dụng rành rọt một công cụ Debug

Debug là một công cụ chỉ ra cho bạn chạy sai dòng nào đó hay lỗi nào đó. Nó cho bạn theo dõi giá trị của các biến và các thay đổi của chúng qua từng dòng code của chương trình. Công cụ debug giúp chúng ta hiểu chương trình của mình hơn, và là thứ chúng ta cần phải biết khi viết chương trình.

Khi bạn lần đầu tìm hiểu về debuger, có thể nó sẽ làm bạn mất khá nhiều thời gian khi bạn sửa lỗi chương trình của mình. Nhưng khi bạn nắm được các kiến thức về debug nó sẽ đem lại cho bạn một lợi ích lớn trong việc tiết kiệm thời gian khi sửa lỗi chương trình.

Bắt đầu tự học ngôn ngữ lập trình C tốt nhất

1.Tải và cài đặt trình biên dịch

Ngôn ngữ lập trình C cần phải được biên dịch bởi một chương trình giải mã thành mã máy mà máy có thể hiểu được.

Window: bạn tải Visual Studio Code hoặc MinGW

Mac: dùng Xcode

Linux: bạn dùng gcc

2.Bắt đầu kiến thức căn bản

[Lập trình C/C++] Bài 1. Kiểu dữ liệu cơ sở - biến - hằng
01:04:01
[Lập trình C/C++] Bài 2. Câu lệnh điều kiện
55:25
[Lập trình C/C++] Bài 3. Cấu trúc switch - case
51:31
[Lập trình C/C++] Bài 4_1. Vòng lặp(while - do while - for) - UPDATE
01:05:52
[Lập trình C/C++] Bài 5_1. Hàm(Phần 1) - Các giai đoạn phát triển của lập trình
13:11
[Lập trình C/C++] Bài 5_2. Hàm(Phần 2) - Lợi ích của hàm trong lập trình
27:27
[Lập trình C/C++] Bài 5_3. Hàm(Phần 3) - Cú pháp - Nguyên lí hoạt động của hàm
30:24
[Lập trình C/C++] Bài 5_4. Hàm(Phần 4) - Tham số hình thức(Tham chiếu - Tham trị) - Tham số thực
43:51
[Lập trình C/C++] Bài 5_5. Hàm(Phần 5) - Các bước xây dựng 1 cái hàm trong lập trình
25:55
[Lập trình C/C++] Bài 5_6. Hàm(Phần 6) - Hàm lồng trong hàm
13:05
[Lập trình C/C++] Bài 5_7. Hàm(Phần 7) - Nguyên mẫu hàm là gì ?
14:56
[Lập trình C/C++] Bài 5_8. Nạp chồng hàm - Function Overloading(Phần 1)
14:00
[Lập trình C/C++] Bài 5_9. Khuôn mẫu hàm - Function Template(Phần 1)
07:09
[Lập trình C/C++] Bài 6. Mảng 1 chiều - Cấp phát bộ nhớ tĩnh[Part 1]
52:46
[Lập trình C/C++] Bài 7. Mảng 1 chiều - cấp phát bộ nhớ tĩnh [Part 2]
48:55
[Lập trình C/C++] Bài 7_1. Chuyển từ "Lập trình tuyến tính" sang "Lập trình thủ tục - hàm"(Phần 1)
25:20
[Lập trình C/C++] Bài 7_2. Chuyển từ "Lập trình tuyến tính" sang "Lập trình thủ tục - hàm"(Phần 2)
09:49
[Lập trình C/C++] Bài 8. Kĩ thuật thêm phần tử trong mảng 1 chiều
35:05
[Lập trình C/C++] Bài 9. Kĩ thuật xóa trong mảng 1 chiều
14:22
[Lập trình C/C++] Bài 10. Kĩ thuật sắp xếp mảng 1 chiều - Interchange Sort
19:49
[Lập trình C/C++] Bài 11. Kĩ thuật mảng 1 chiều[Part_1]
36:00
[Lập trình C/C++] Bài 12. Kĩ thuật mảng 1 chiều[Part_2]
36:41
[Lập trình C/C++] Bài 13. Sự khác nhau cơ bản(Nhập - Xuất) giữa C và C++
30:03
[Lập trình C/C++] Bài 14. Con trỏ căn bản(Phần 1)
44:48
[Lập trình C/C++] Bài 15. Con trỏ căn bản(Phần 2)
57:42
[Lập trình C/C++] Bài 16. Cấp phát vùng nhớ cho con trỏ
01:08:12
[Lập trình C/C++] Bài 17. Mảng 1 chiều cấp phát động
36:03
[Lập trình C/C++] Bài 18. Mảng 1 chiều cấp phát động(Phần 1)
01:10:02
[Lập trình C/C++] Bài 19. Mảng 1 chiều cấp phát động(Phần 2)
45:21
[Lập trình C/C++] Bài 20. Mảng 1 chiều cấp phát động(Phần 3)
17:52
[Lập trình C/C++] Bài 20_1. Kĩ thuật cấp phát "siêu mảng động"
13:15
[Lập trình C/C++] Bài 21. Hướng dẫn cách làm Menu trong lập trình
24:06
[Lập trình C/C++] Bài 21_1. Khái niệm và tổng quan mảng 2 chiều tĩnh - ma trận
22:02
[Lập trình C/C++] Bài 21_2. Khởi tạo - Nhập xuất mảng 2 chiều tĩnh - ma trận
34:23
[Lập trình C/C++] Bài 21_3. Hướng dẫn giải bài tập mảng 2 chiều tĩnh - ma trận
32:38
[Lập trình C/C++] Bài 22. Chuỗi kí tự(Phần 1) - Tầm quan trọng của chuỗi kí tự
16:43
[Lập trình C/C++] Bài 23. Chuỗi kí tự(Phần 2) - Khai báo - Khởi tạo chuỗi
31:44
[Lập trình C/C++] Bài 24. Chuỗi kí tự(Phần 3) - Một số lỗi khi thao tác trên chuỗi kí tự
10:53
[Lập trình C/C++] Bài 25. Chuỗi kí tự(Phần 4) - Hàm tính độ dài chuỗi - Hàm sao chép chuỗi
35:27
[Lập trình C/C++] Bài 26. Chuỗi kí tự - Xóa 1 kí tự tại vị trí bất kì
16:12
[Lập trình C/C++] Bài 27. Thêm kí tự vào vị trí bất kì trong chuỗi
13:23
[Lập trình C/C++] Bài 28. Chuỗi kí tự - Xây dựng hàm tính độ dài
16:34
[Lập trình C/C++] Bài 29. Chuỗi kí tự - Hàm sao chép chuỗi strcpy
14:35
[Lập trình C/C++] Bài 30. Chuỗi kí tự - Hàm sao chép chuỗi strdup
19:51
[Lập trình C/C++] Bài 31. Chuỗi kí tự - Hàm chuyển chuỗi thành chuỗi in thường strlwr
17:48
[Lập trình C/C++] Bài 32. Xây dựng hàm đảo ngược 1 chuỗi bất kì - strrev
20:53
[Lập trình C/C++] Bài 33. Xây dựng hàm so sánh 2 chuỗi có phân biệt hoa thường - strcmp
25:33
[Lập trình C/C++] Bài 34. Bài tập chuỗi kí tự
26:36
[Lập trình C/C++] Bài 35. Phân tích và ý tưởng xóa các khoảng trắng đầu và cuối chuỗi
09:38
[Lập trình C/C++] Bài 36. Thực hiện ý tưởng - Xóa các kí tự khoảng trắng đầu và cuối chuỗi
24:24
[Lập trình C/C++] Bài 37. Chuyển 1 chuỗi số thành 1 số nguyên(Phần 1)
15:10
[Lập trình C/C++] Bài 38. Chuyển 1 chuỗi số thành 1 số nguyên(Phần 2)
16:21
[Lập trình C/C++] Bài 39. Nhập xuất chuỗi string trong C++
15:44
[Lập trình C/C++] Bài 40. Các hàm string trong C++
14:28
[Lập trình C/C++] Bài 41. Kĩ thuật chia tách file(file.h và file.cpp) trong lập trình C/C++(phần 1)
19:25
[Lập trình C/C++] Bài 42. Kĩ thuật chia tách file(file.h và file.cpp) trong lập trình C/C++(phần 2)
25:03
[Lập trình C/C++] Bài 43. Kĩ thuật chia tách file(file.h và file.cpp) trong lập trình C/C++(phần 3)
10:54
[Lập trình C/C++] Bài 44. Kiểu dữ liệu cấu trúc struct - struct là gì ?(Phần 1)
13:06
[Lập trình C/C++]Bài 45.Kiểu dữ liệu cấu trúc struct - Cú pháp khai báo - Nhập - xuất struct(Phần 2)
23:05
[Lập trình C/C++]Bài 46. Kiểu dữ liệu cấu trúc struct - Con trỏ - Toán tử gán = trong struct(Phần 3)
19:28
[Lập trình C/C++]Bài 46_1. Kiểu dữ liệu cấu trúc struct - struct lồng nhau(Phần 4)
19:07
[Lập trình C/C++] Bài 47. Kiểu dữ liệu cấu trúc struct - Mảng 1 chiều sinh viên(Phần 5)
31:22
[Lập trình C/C++] Bài 47_1. Kiểu dữ liệu cấu trúc struct-Mảng 1 chiều sinh viên-struct lồng(Phần 6)
40:38
[Lập trình C/C++] Bài 47_2. Kiểu dữ liệu cấu trúc struct - Mảng struct - Chia tách file(Phần 7)
48:35
[Lập trình C/C++] Bài 47_3. Nạp chồng toán tử(Operator Overloading) nhập/xuất kiểu dữ liệu Phân Số
28:00
[Lập trình C/C++] Bài 47_4. Nạp chồng toán tử(Operator Overloading) cộng + cho kiểu dữ liệu Phân Số
13:45
[Lập trình C/C++] Bài 48. Mảng động - Mảng struct
47:09
[Lập trình C/C++] Bài 49. Hàm setw - tùy chỉnh độ rộng khi hiển thị kết quả ra màn hình
26:59
[Lập trình C/C++] Bài 50. Các hàm đồ họa cơ bản trong lập trình C/C++
27:36
[Lập trình C/C++] Bài 51. Tổng quan về file - tập tin trong lập trình C/C++
10:59
[Lập trình C/C++] Bài 52. Cú pháp đọc - ghi file
39:42
[Lập trình C/C++] Bài 53. Đọc từ file 1 số nguyên - Kiểm tra số nguyên tố
16:23
[Lập trình C/C++] Bài 54. Đọc 1 mảng số nguyên từ file - tập tin
24:26
[Lập trình C/C++] Bài 54_1. Con trỏ chỉ vị - seekg trong tập tin(file)
19:40
[Lập trình C/C++] Bài 55. Đọc - ghi file Thông tin sinh viên và Danh sách môn học(Phần 1)
49:08
[Lập trình C/C++] Bài 56. Đọc - ghi file Thông tin sinh viên và Danh sách môn học(Phần 2)
29:27
[Lập trình C/C++] Bài 57. Đọc - ghi file Thông tin sinh viên và Danh sách môn học(Phần 3)
33:46
[Lập trình C/C++] Bài 58. Vector trong C++ là gì ? Tổng quan về vector
16:40
[Lập trình C/C++] Bài 59. Demo các hàm trong vector(Phần 1)
16:55
[Lập trình C/C++] Bài 60. Demo các hàm trong vector(Phần 2)
15:59
[Lập trình C/C++] Bài 61. Demo các hàm trong vector(Phần 3)
12:50

Nguồn: Nguyễn Thiên Tâm

Tải bộ tài liệu tự học lập trình C/C++ tiếng Việt tốt nhất tại đây.