Suy nghĩ như một lập trình viên

Posted by Dev Nhà Người Ta on 2017-10-14

Mình không thích dùng từ “lập trình viên” lắm, nhưng lại thích để tiếng Việt trên cái tiêu đề, nên trong bài viết mình sẽ ghi là “programmer” nhé 😎
Mình chỉ viết lại theo cách hiểu của mình từ bài này: How to think like a programmer. Vì vậy, khuyến khích các bạn đọc bài viết gốc để hiểu rõ và nắm bắt được cái tinh thần tác giả muốn nói hơn, chào thân ái! 😎

“Tôi không biết javascript, tôi không thể viết cái component này được, đầu óc tôi trống rỗng mỗi khi tôi bắt đầu viết một đoạn code. Tôi nghĩ là tôi không thể làm nó được đâu, vì tôi không biết cách suy nghĩ như một programmer”

Đây có vẻ như một vấn đề hay gặp của bất cứ ai khi mới bắt đầu học lập trình nhỉ? Bạn nghĩ là bạn không suy nghĩ như một programmer được?, nhưng không hẳn như vậy đâu, để giải quyết sự sợ hãi này, hãy làm theo 4 bước sau:

Bước 1, phân chia bài toán thành những bài toán nhỏ hơn

Mình đến với một bài toán nghe quen quen nha: “Làm sao để nhét 1 con voi vào tủ lạnh?”
Đa số sẽ có 3 bước sau:

  • Mở cửa tủ lạnh
  • Nhét con voi vào
  • Đóng cửa lại

Okie, done, vấn đề được giải quyết.

Tuy nhiên, câu trả lời trên là một ví dụ tốt nhất cho việc tại sao bạn lại thấy khó khăn khi phải đối mặt với một file javascript trống rỗng. Bạn thiếu các bước thực hiện.

Nếu suy nghĩ một cách logic hơn, bạn sẽ nhận ra một số vấn đề vẫn còn chưa được trả lời như:

  • chúng ta đang nói về cái tủ lạnh nào?
  • chúng ta nhắc đến loại voi nào?
  • nếu con voi quá lớn, không vừa với cái tủ lạnh thì chúng ta sẽ làm như thế nào?
  • bạn sẽ tìm thấy con voi ở đâu?
  • bạn vận chuyển con voi đến cái tủ lạnh bằng cách nào?

Khi code cũng vậy, bạn phải trả lời được những câu hỏi nhỏ như vậy mà bạn có thể nghĩ ra. Đó là lí do vì sao bước đầu tiên là chia nhỏ vấn đề ra.

Bước 2, tìm giải pháp cho những bài toán nhỏ hơn đó

Tiếp theo là đi tìm giải pháp cho mỗi vấn đề đã chia nhỏ ở trên. Bạn phải càng chi tiết càng tốt.

  • cái tủ lạnh nào? -> tủ lạnh trong nhà bếp của bạn
  • loại voi nào? -> voi châu Phi
  • nếu con voi to quá thì làm sao? -> dùng súng thu nhỏ để thu nhỏ con voi lại (doreamon fan 😎)
  • tìm thấy con voi ở đâu? -> châu Phi
  • bạn sẽ vận chuyển con voi như thế nào? -> bỏ nó vào túi xách sau khi đã thu nhỏ, mang lên máy bay và bay về ✈️

Một khi bạn đã có tất cả câu trả lời cho những câu hỏi nhỏ, hãy gom nó lại để giải quyết bài toán lớn của chúng ta.

Bước 3, tập hợp các giải pháp đó lại một cách chặt chẽ

Okie, đến đây thì bước thứ 3 đơn giản là gộp các giải pháp cho các bài toán nhỏ lại một cách hợp lí, để giải quyết bài toán lớn nhét-con-voi-vào-tủ-lạnh của chúng ta.

Quy trình sẽ như thế này:

  1. mượn cây súng thu nhỏ của doremon
  2. bay đến châu Phi
  3. đến công viên voi Addo ở Nam Phi
  4. tìm một con voi
  5. bắn nó với cây súng thu nhỏ
  6. bỏ con voi vào túi xách
  7. bay trở về nhà
  8. đặt con voi vào tủ lạnh

Bước 4, refactor, cải tiến

Bạn chịu khó xem hết ví dụ thực tế của tác giả nha 🤣
Ví dụ của tác giả về việc tạo một cái nút, khi click vào đó thì sẽ hiển thị thanh menu ở sidebar. Một ví dụ đơn giản, nhưng bạn hãy đọc để xem tác giả đã chia nhỏ, phân tích và giải quyết vấn đề như thế nào.
Trong đó bao gồm bước 4, refactor code và cải tiến nó.

Túm lại,

Suy nghĩ như một programmer cũng đơn giản thôi. Yếu tố quan trọng là cách bạn chia nhỏ vấn đề thành những vấn đề nhỏ hơn như thế nào. Khi đã có những bài toán nhỏ, bạn sẽ tìm giải pháp cho chúng, và code. Trong lúc đó bạn cũng sẽ gặp các vấn đề khác mà mình chưa nghĩ ra, hãy giải quyết nó luôn.


Comments: