T

Tư duy lập trình

Thứ quyết định mình đi được bao xa — không phải ngôn ngữ mình chọn.

⏱ Khoảng 2 phút đọc

Câu hỏi mình đã hỏi sai

Câu đầu tiên mình hỏi khi mới bắt đầu là: "nên học ngôn ngữ nào trước?"

Mình đã đọc so sánh ngôn ngữ suốt mấy tuần. Nhìn lại thì mấy tuần đó gần như vô ích.

Câu hỏi đúng hơn là: làm sao chia một việc lớn thành những bước nhỏ đến mức máy hiểu được?

Ngôn ngữ chỉ là cách viết ra các bước đó. Đổi ngôn ngữ thì đổi cách viết, phần khó vẫn nguyên.

Ba thứ mình thấy quan trọng nhất

1. Chia nhỏ vấn đề. Biến một yêu cầu mơ hồ thành các bước cụ thể. Đây là kỹ năng mình luyện lâu nhất và cũng dùng nhiều nhất.

2. Đọc code người khác. Mình từng nghĩ lập trình chủ yếu là viết. Thực tế mình đọc nhiều hơn viết rất nhiều — đọc code của đồng nghiệp, của thư viện, và của chính mình ba tháng trước.

3. Tìm lỗi có phương pháp. Hồi đầu mình sửa lỗi bằng cách đoán rồi đổi bừa. Sau mình học được cách thu hẹp dần phạm vi: xác định chỗ nào chắc chắn đúng, chỗ nào chắc chắn sai, rồi ép vùng nghi ngờ nhỏ lại.

Bài tập mình hay khuyên

Lấy một việc bạn làm hằng ngày — pha một ly cà phê chẳng hạn — rồi viết ra các bước chi tiết đến mức một người chưa từng làm cũng theo được.

Bạn sẽ nhận ra mình bỏ sót rất nhiều bước hiển nhiên. Máy tính cũng phản ứng đúng như người lạ đó.