Học lập trình

Một sinh viên viết cho tôi: “Em thích công nghệ và muốn theo đuổi bằng cấp trong khoa học máy tính nhưng em không giỏi toán. Có cần biết giỏi toán để làm lập trình không? Có thể là người lập trình mà không có toán không?”

Đáp: Không nhất thiết phải rất giỏi toán để là người lập trình. Theo ý kiến tôi, lập trình giống như học “ngoại ngữ” như tiếng Anh hay tiếng Pháp. Bạn có thể học nói chỉ đủ để nói cho mọi người khi bạn du hành, hay bạn có thể học nó giỏi để diễn thuyết hùng biện. Cùng điều này cũng áp dụng trong lập trình. Nếu bạn chỉ muốn xây dựng website hay lập trình ứng dụng công nghệ thông tin, toán học cơ sở là đủ tốt. Nếu bạn muốn viết mã cho chương trình máy tính, ứng dụng nhúng, hay phần mềm phức tạp thì bạn cần nhiều kĩ năng toán học hơn.

Cũng giống như ngoại ngữ, lập trình là kĩ năng yêu cầu thực hành. Bạn càng làm nó nhiều, bạn càng trở nên giỏi hơn. Cách tốt nhất để học lập trình là bắt đầu viết cái gì đó đơn giản rồi học từ sai lầm bạn phạm phải. Bạn đi từ dễ rồi tới khó hơn, mỗi lúc bạn học cái gì đó mới và trong vài tuần, bạn có thể lập trình. Bạn phải biết các khái niệm logic cơ sở và cú pháp ngôn ngữ để bắt đầu. Nó không khó như bạn nghĩ. Ý tưởng chính là thực hành và không sợ phạm sai lầm.

Một khi bạn có kĩ năng cơ sở thì bắt đầu đọc các sách lập trình nào đó để bạn có thể làm cho mình tiến bộ sang mức tiếp. Cuốn sách ưa thích của tôi là “Code Complete” của Steve Mc Connell. Nó dễ đọc, rất thực tế, và có nhiều hướng dẫn hữu dụng. Tôi khuyên bạn đọc nhiều sách lập trình để bạn có thể xây dựng tri thức của bạn theo chiều sâu và là người lập trình giỏi hơn. Nhiều sinh viên thích học “lối tắt” hay “thủ thuật” để làm cho chương trình chạy. Đây không phải là cách tốt để học lập trình. Tôi đã thấy nhiều người không thiết kế mã tốt mà dùng kiểu “Brute-force” (không dùng thông minh để làm đơn giản vấn đề mà dùng những cách thức đơn giản nhưng tốn thời gian và năng lực tính toán), không dễ sửa, không dễ bảo trì bởi vì người lập trình không có đủ nền tảng lí thuyết để xây dựng tri thức của họ và biến điều đó thành kĩ năng. Xin nhớ rằng ngôn ngữ chỉ là công cụ. Điều làm cho người ta thành người lập trình giỏi không phải là người đó biết bao nhiêu ngôn ngữ, người đó biết bao nhiêu “thủ thuật”, mà người đó hiểu rõ thế nào về khái niệm để người đó có thể áp dụng điều đó vào công việc của mình.

Cách thức tốt khác để học lập trình là làm việc với những người giỏi hơn bạn. Ở trường hay ở chỗ làm việc, có nhiều người có thể giúp bạn, hướng dẫn bạn, kèm cặp bạn trong ngôn ngữ lập trình. Một người có kinh nghiệm có thể dạy bạn không chỉ những điều căn bản, mà cả tri thức chiều sâu trong vài tháng mà người khác có thể mất nhiều năm để học.

English version

Full article: Learning programming

Tác phẩm, tác giả, nguồn

  • Tác phẩm: Khoa học máy tính
  • Biên tập: Kipkis.com
  • Nguồn: Blog của giáo sư John Vu, Carnegie Mellon University.