Cách tự học lập trình hiệu quả cho người mới bắt đầu

1
Lập trình và ngôn ngữ lập trình
Lập trình và ngôn ngữ lập trình

Bạn là sinh viên năm đầu và đang đánh vật với lập trình cơ bản? Bạn đã rất chăm chỉ nhưng vẫn không thể tự mình lập trình những bài tập cơ bản trên lớp? Bạn rất muốn học lập trình nhưng tại sao vẫn không hiệu quả? Phải chăng cách học lập trình của bạn không hiệu quả?

Yên tâm, bạn không phải là cá biệt. Rất nhiều người khác cũng rơi vào hoàn cảnh của bạn.

Trong bài viết này chúng tôi sẽ trao đổi với bạn một số kinh nghiệm tự học lập trình hiệu quả, đặc biệt dành cho người mới bắt đầu hoặc đang mắc kẹt khi học lập trình cơ bản. Sau khi đọc hết bài viết, có khi bạn sẽ thay đổi cách nhìn về việc học lập trình căn bản. Thật đấy!

Vấn đề cách học lập trình

Nếu bạn gõ tìm “cách học lập trình” trên Google, bạn có ngay hàng trăm ngàn kết quả. Vô số người đã chia sẻ cách học của họ, cũng như vô số người muốn tìm hiểu chủ đề này.

Kết quả tìm kiếm Phương pháp học lập trình

Nó nói lên điều gì?

  1. Học lập trình hiện nay được rất nhiều người quan tâm. Cái này khỏi phải bàn.
  2. Rất nhiều người đã thành công và chia sẻ lại kinh nghiệm. Có nghĩa là, để đạt được điều đó ai cũng có những cách thức của riêng mình.

Nếu bạn để ý kỹ một chút, hầu hết các chia sẻ đó đều khá tương tự nhau. Như là phải đam mê, phải chọn ngôn ngữ phù hợp, tự mình code thật nhiều, tham khảo code trên mạng, tham gia forum về lập trình, học qua các ví dụ nhỏ, v.v..

Chúng tôi cho rằng, những ý kiến đó không hề sai, nhưng chưa trúng với những người đang tìm kiếm “cách học lập trình”.

Một thực tế là rất nhiều bạn bị mắc kẹt vì học mãi không được. Do đó các bạn cố gắng tìm các giải pháp ở trên mạng. Và chúng đều na ná nhau! Không tin ư? Bạn hãy tự mình tìm kiếm sẽ thấy.

Chúng tôi đã gặp rất nhiều sinh viên dù đã vào đến giai đoạn chuyên ngành nhưng không thể lập trình được với những bài toán ở mức độ đơn giản. Ở đây không nhắc tới những bạn lười nhác hay nhận thức kém mà là những bạn rất chăm chỉ. Vậy vấn đề nằm ở đâu?

Bạn đang theo học lập trình ở mức độ nào

Đầu tiên chúng tôi muốn nói đến các mức độ đào tạo lập trình để các bạn mới bắt đầu có hình dung về vị trí của mình hiện tại. Sẽ có ích khi các bạn hiểu vai trò và mục tiêu của từng loại lập trình, từ đó định hình đường đi cho mình.

Nhìn chung, việc học lập trình thường chia làm các mức: lập trình căn bản, lập trình ứng dụng/lập trình chuyên ngành.

Lập trình căn bản thường được học ngay từ kỳ đầu tiên. Mục tiêu chính của lập trình căn bản là học cách tư duy về lập trình. Ngôn ngữ thường được lựa chọn là Pascal, C, Python. Ngôn ngữ và kỹ thuật của nó dùng để chuyển đổi ý tưởng sang code.

Lập trình ứng dụng dành cho một số hướng liên quan đến phát triển ứng dụng như kỹ thuật phần mềm. Ở mức độ này ngôn ngữ không đóng vai trò quyết định. Thường sinh viên phải tự học ngôn ngữ. Cấp độ này thiên về cách vận dụng kỹ thuật để tạo ra phần mềm ứng dụng thực sự.

Lập trình chuyên ngành là một số dạng lập trình đặc thù của chuyên ngành đào tạo. Ví dụ, lập trình xử lý đồ họa, cài đặt các thuật toán phức tạp trong nghiên cứu, lập trình truyền thông mạng.

Nội dung chúng ta sẽ bàn ở đây là cách học lập trình căn bản.

Lập trình và ngôn ngữ lập trình là gì? Hay sự khác biệt giữa cách học lập trình và học viết code

Trước hết bạn nên phân biệt giữa lập trình và ngôn ngữ lập trình.

Lập trình là việc chuyển suy nghĩ của bản thân (về cách giải quyết một vấn đề gì đó) thành chương trình sử dụng một ngôn ngữ lập trình. Ngôn ngữ lập trình chỉ là một công cụ của lập trình.

Học lập trình là học cách suy nghĩ về cách giải quyết vấn đề theo cách của máy tính. Học ngôn ngữ lập trình là học một công cụ ngôn ngữ cụ thể để giúp biểu hiện suy nghĩ đó cho máy tính hiểu.

Khi bạn thành thạo ngôn ngữ lập trình, bạn có thể trở thành coder. Khi bạn thành thạo lập trình, bạn sẽ trở thành programmer.

Học ngôn ngữ lập trình là học một ngoại ngữ

Ngôn ngữ lập trình là một ngôn ngữ viết, được dùng để thể hiện suy nghĩ của con người. Sự khác biệt là, ngôn ngữ lập trình được người (lập trình viên) sử dụng chính để nói chuyện với máy tính (chính xác hơn là chương trình dịch của ngôn ngữ đó). Ngôn ngữ này cũng có thể dùng để “giao tiếp” giữa các lập trình viên với nhau!

Với ý nghĩa này, một ngôn ngữ lập trình cũng không khác gì một ngoại ngữ như tiếng Anh. Việc học ngôn ngữ lập trình khá tương đồng với học ngoại ngữ. Do sự tương đồng này, bạn hoàn toàn có thể áp dụng những cách thức học ngoại ngữ khi học ngôn ngữ lập trình.

Phần lớn nội dung các bạn tìm thấy trên mạng về “cách học lập trình” chính là nói về vấn đề học ngôn ngữ lập trình. Nói cách khác, đó là cách học một ngôn ngữ cụ thể, học các kỹ thuật cụ thể.

Nhưng trên thế giới có biết bao nhiêu ngôn ngữ lập trình? Không lẽ người học lập phải học hết chừng ấy?

Không phải! Việc học ngôn ngữ nào không quá quan trọng ở giai đoạn đầu.

Học lập trình là học cách nghĩ

Tuy nhiên, việc học lập trình lại không hoàn toàn như vậy. Học lập trình trước hết là học cách suy nghĩ. Cách suy nghĩ này bị giới hạn trong một số hành động nhất định.

Tiền đề: được cung cấp cái gì, phải làm ra cái gì.

Tiếp theo:

  1. phân chia một vấn đề ra thành từng phần nhỏ và sắp xếp các phần nhỏ theo trật tự để đảm bảo giải quyết được vấn đề.
  2. với mỗi phần, cần xác định đầu vào là gì, đầu ra là gì, cái gì cần nhớ lại (để sau tái sử dụng).
  3. có điều kiện gì để bắt đầu một hành động, nếu không đạt điều kiện đó thì sao.

Để diễn đạt một vấn đề mà chỉ được sử dụng ba loại hành động trên, bạn phải luyện tập. Trước hết hãy bắt đầu từ những công việc đơn giản xung quanh, như việc nấu cơm chẳng hạn.

Để dễ dàng mô tả ý tưởng của mình bạn có thể dùng sơ đồ khối. Khi làm nhiều thành quen bạn có thể tự hình dung ngay trong đầu mà không cần đặt bút cho sơ đồ khối nếu bài toán không phức tạp. Đó là lúc thành công.

Ánh xạ từ suy nghĩ sang ngôn ngữ lập trình

Khi gặp vấn đề, bạn ngay lập tức suy nghĩ được theo kiểu lập trình. Đó là lúc bạn nên biết cách ánh xạ nó sang một ngôn ngữ lập trình.

Nếu bạn để ý sẽ thấy, mặc dù mỗi ngôn ngữ lập trình (imperative) có cú pháp riêng xong đều có những thành phần cơ bản giống nhau. Đó là lệnh (làm gì đó), phép gán (lưu lại thông tin để tái sử dụng), cấu trúc điều khiển rẽ nhánh (nếu/thì) và lặp.

Và nếu bạn so sánh với ba loại hành động cơ bản khi suy nghĩ “kiểu lập trình” ở trên bạn sẽ thấy có sự tương đương gần như 1-1.

Vậy giờ nếu bạn có thể ghi nhớ cấu trúc tương ứng của ngôn ngữ, kết hợp với cách suy nghĩ kiểu lập trình, tôi tin bạn sẽ rất dễ dàng viết được những gì mình cần bằng ngôn ngữ lập trình đó.

Và giờ cũng là lúc bạn nên áp dụng những phương pháp/thủ thuật bạn tìm được trên mạng. Ý tưởng chung của các phương pháp này rất đơn giản: làm nhiều sẽ nhớ.

Tại sao bạn gặp khó khăn khi học lập trình?

Hầu hết các bạn gặp khó khăn là do xác định sai vấn đề. Các bạn bắt đầu ngay với học ngôn ngữ mà không học cách nghĩ trước.

Thực ra cũng khó trách bạn. Thực tế là nhiều trường rất yếu về mặt dạy lập trình căn bản. Họ nghĩ rằng lập trình căn bản là dễ. Sự thực gần như ngược lại. Để dạy lập trình căn bản cho người mới bắt đầu rất khó.

Không xác định được vấn đề của bản thân

Trong hàng trăm bài viết bạn tìm thấy trên Google, phần lớn chỉ nói về cách học ngôn ngữ và kỹ thuật lập trình chứ không phải cách học lập trình. Học ngôn ngữ và kỹ thuật đơn giản hơn rất nhiều. Nó chẳng khác gì cách bạn học tiếng Anh cả. Chỉ cần chịu khó là được.

Khi bạn phân biệt được hai vấn đề này, bạn sẽ dễ dàng xác định mình đang gặp vấn đề gì. Từ đó có thể tìm ra hướng giải quyết.

Khi thấy mình học lập trình mãi không được, trước hết bạn hãy vứt bỏ hết ngôn ngữ lập trình đi. Hãy bắt đầu lại với việc tập suy nghĩ theo cách trên. Hãy luyện đến khi nào “đại thành” thì hãy quay trở lại với ngôn ngữ lập trình.

Tập diễn đạt vấn đề không dùng code

Viết code không phải là cách duy nhất giúp bạn học lập trình!

Thật đấy! Bạn chắc sẽ không tin. Nhưng thực tế, có nhiều cách khác để học lập trình mà không cần viết code.

Bạn hẳn đã nghe thấy những thứ đại loại như “giả mã” (pseudo code) hay “sơ đồ khối”. Đó là những công cụ giúp bạn diễn đạt ý tưởng và thuật toán mà không cần một ngôn ngữ lập trình cụ thể nào hết.

Không biết bạn đã bao giờ nghe đến “lập trình scratch” chưa? Đó là cách người ta dạy lập trình cho trẻ em mà không hề dùng code. Bạn có thể tham khảo thêm để hiểu vì sao.

Đó là những công cụ giúp bạn diễn đạt suy nghĩ và ý tưởng mà không cần viết code một cách nhanh chóng và tiện lợi. Đó là thứ bạn cần để tập suy nghĩ “theo kiểu lập trình” mà ở trên chúng ta đã nói tới.

Hãy suy nghĩ, rồi dùng giả mã hoặc sơ đồ khối mô tả lại suy nghĩ của mình. Lặp lại cho đến lúc “đại thành”.

Kết luận

Bài viết này không có ý định nói lại những nội dung sẵn có trên Internet với một danh sách các việc nên làm khi học lập trình.

Chúng tôi chỉ muốn hướng tới các bạn chuẩn bị bắt đầu hoặc đang bị mắc kẹt khi học lập trình.

Lời khuyên của chúng tôi là: khi kẹt, hãy vứt bỏ tạm thời việc học ngôn ngữ, quay về việc học cách suy nghĩ. Ngôn ngữ chỉ là cái vỏ của tư duy, không có suy nghĩ thì biết nói cái gì.

Chúc bạn thành công!

+ Nếu bạn thấy site hữu ích, trước khi rời đi hãy giúp đỡ site bằng một hành động nhỏ để site có thể phát triển và phục vụ bạn tốt hơn.
+ Nếu bạn thấy bài viết hữu ích, hãy giúp chia sẻ tới mọi người.
+ Nếu có thắc mắc hoặc cần trao đổi thêm, mời bạn viết trong phần thảo luận cuối trang.
Cảm ơn bạn!

Theo dõi
Thông báo của
guest

1 Thảo luận
Cũ nhất
Mới nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Quang Thuận

rất hay và ý nghĩa! xin cám ơn và gửi lời chúc sức khỏe đến người viết !