0:00:00.662,0:00:02.798 Khi viết chương trình, tức là ta đang tìm cách 0:00:02.798,0:00:06.348 biến những ý tưởng thông minh trong đầu thành mã thực. 0:00:07.117,0:00:08.947 Ở đây tôi muốn nói về kỹ thuật 0:00:08.947,0:00:10.781 mà nhiều lập trình viên áp dụng để thực hiện điều đó 0:00:11.304,0:00:13.481 và ta gọi đó là “mã giả”. 0:00:13.850,0:00:17.081 Hiện tại có lẽ các bạn chưa từng nghe đến mã giả 0:00:17.383,0:00:21.248 nhưng về cơ bản, đó là loại mã nhìn rất giống tiếng Anh 0:00:21.541,0:00:24.474 hay thực chất, là bất cứ loại ngôn ngữ nào ta muốn sử dụng. 0:00:25.946,0:00:27.192 Được rồi, nghe có vẻ vô lý 0:00:27.192,0:00:29.173 vậy nên ta cùng xem một ví dụ cụ thể nhé. 0:00:30.083,0:00:33.488 Giả sử ta muốn vẽ một khuôn mặt xinh đẹp, cân đối. 0:00:34.011,0:00:36.404 Tôi sẽ bắt đầu bằng cách tự soi gương, 0:00:36.404,0:00:37.530 phác thảo khuông mặt mình 0:00:37.530,0:00:40.098 và thấy rằng, được rồi mình có khuôn mặt trái xoan, 0:00:40.668,0:00:44.138 2 mắt và nằm ở khoảng này 0:00:44.138,0:00:46.855 và đây là trung tâm của khuôn mặt, 0:00:46.855,0:00:51.194 Bây giờ tôi đã có ý tưởng về dung nhan khuôn mặt của mình. 0:00:51.776,0:00:54.596 Tôi sẽ bắt đầu viết bằng mã giả. 0:00:55.795,0:00:57.945 Xem nào, đầu tiên là 0:00:58.438,0:01:01.085 vẽ khuôn mặt trái xoan ở chính giữa. 0:01:02.621,0:01:05.331 Sau đó ta sẽ vẽ 2 mắt, 0:01:05.926,0:01:10.926 2 hình bầu dục, vị trí 2/3 khuôn mặt 0:01:11.784,0:01:14.740 và có lẽ khoảng 1/5 kích thước khuôn mặt. 0:01:15.346,0:01:17.967 Kích thước không chính xác lắm, tôi chỉ đang nhìn khuôn mặt của mình thôi. 0:01:18.330,0:01:20.736 Sau đó tôi sẽ vẽ miệng bằng một đường thẳng 0:01:20.736,0:01:23.621 đến nửa chừng khuôn mặt 0:01:24.145,0:01:27.971 và có lẽ là 1/3 khuôn mặt tính từ dưới lên. 0:01:29.435,0:01:32.377 Hãy chú ý cách tôi viết mã giả dưới dạng comment 0:01:32.716,0:01:35.497 bằng cách bắt đầu từng dòng với 2 dấu gạch chéo. 0:01:36.602,0:01:39.979 Như vậy tôi có thể viết mã giả trong chương trình 0:01:39.979,0:01:42.778 mà không phải lo gặp bất kỳ lỗi cú pháp nào 0:01:43.824,0:01:46.049 vì chương trình sẽ bỏ qua comment. 0:01:46.981,0:01:48.912 Sau khi viết xong bằng mã giả, 0:01:48.912,0:01:51.033 tôi có thể dành thời gian để biến từng 0:01:51.033,0:01:54.734 dòng mã giả này thành các đoạn mã thực. 0:01:55.316,0:01:56.265 Được rồi, cùng quan sát nhé. 0:01:56.265,0:01:58.703 Với khuôn mặt, hình bầu dục ở trung tâm. 0:01:58.703,0:02:01.244 Tôi sẽ sử dụng hàm ellipse 0:02:01.244,0:02:05.257 và chỉ định trung tâm màn hình ở đây 0:02:05.257,0:02:08.047 rồi tìm một kích thước phù hợp. 0:02:08.562,0:02:10.133 OK, trông đẹp rồi đấy. 0:02:10.449,0:02:12.676 Với mắt, ta lại sử dụng hàm ellipse. 0:02:12.908,0:02:15.606 Tất cả mọi thứ trên mặt tôi đều có hình bầu dục, tôi tròn lắm. 0:02:17.067,0:02:19.900 Mắt sẽ ở, xem nào, ta sẽ tính toán một chút 0:02:19.900,0:02:23.545 để đưa mắt vào vị trí phù hợp 0:02:23.545,0:02:27.042 và cho chúng kích thước cân đối. 0:02:27.044,0:02:29.134 OK, con mắt đầu tiên đẹp rồi đấy, 0:02:29.134,0:02:31.281 tôi sẽ sao chép và dán để tạo con mắt tiếp theo. 0:02:31.757,0:02:32.716 Tuyệt vời. 0:02:33.136,0:02:35.423 Bây giờ, tôi thậm chí có thể để bạn mình 0:02:35.423,0:02:37.915 triển khai mã giả và có thể họ làm được chứ 0:02:37.915,0:02:40.075 vì tôi đã hướng dẫn kỹ lưỡng như thế này rồi mà. 0:02:40.782,0:02:45.083 Quyết định vậy đi, vì chúng ta là bạn mà, phải không? 0:02:45.898,0:02:48.766 Hẳn các bạn sẽ nghĩ việc này thật ngu ngốc, 0:02:48.766,0:02:50.454 tại sao lại phải tốn công 0:02:50.454,0:02:53.529 viết một chương trình 2 lần, lần đầu bằng ngôn ngữ của con người 0:02:53.529,0:02:55.068 rồi lần 2 bằng ngôn ngữ lập trình? 0:02:55.383,0:02:57.846 Ví dụ này khá đơn giản 0:02:57.846,0:03:00.527 nhưng sớm thôi các bạn sẽ phải xây dựng những chương trình phức tạp hơn 0:03:00.527,0:03:03.360 và có thể các bạn sẽ khó mà giữ được toàn bộ chương trình 0:03:03.360,0:03:05.763 trong đầu trước khi lập trình, 0:03:05.763,0:03:07.945 vì vậy tôi thường viết ý tưởng chung 0:03:07.945,0:03:12.182 bằng mã giả trước rồi mới dành thời gian 0:03:12.182,0:03:15.341 cho chi tiết của từng phần ý tưởng đó, 0:03:15.341,0:03:19.242 biến từng dòng mã giả thành mã thật. 0:03:19.826,0:03:22.674 Tôi nghĩ một khi bắt đầu sử dụng mã giả, 0:03:22.674,0:03:23.957 các bạn sẽ thấy thích hơn đấy. 0:03:24.400,0:00:00.000 Hãy thử trong chương trình tiếp theo nhé.