+3

Làm thế nào để suy nghĩ như một lập trình viên

"Tôi k hiểu được JavaScript. Tôi k thể viết ra được các component từ con số 0. Đầu óc tôi trở nên trống rỗng khi tôi nhin chằm chằm vào 1 file JavaScript rỗng. Tôi đoán rằng mình k thể làm được chuyện đó vì tôi chưa biết cách suy nghĩ như một lập trình viên. "


Nghe quen thuộc k ? Đúng rồi, bạn k đơn độc đâu. Nhiều người khi cố gắng chọn học JavaScript là ngôn ngữ đầu tiên của mình cũng gặp phải những khó khăn tương tự.

Thật ra, ngay cả những developer đã có kinh nghiệm làm việc với các ngôn ngữ khác, khi tiếp xúc với JavaScipt, họ cũng gặp những khó khăn giống hệt. Thay vì "tôi k thể suy nghĩ như một lập trình viên" , họ kêu "tôi k thể suy nghĩ bằng JavaScript" .

Nhưng không còn nữa. Hãy để hôm nay là ngày bạn học cách suy nghĩ như một lập trình viên.

Thật ra, bạn đã có thể suy nghĩ như một lập trình viên rồi.

Bạn đã bao h thử các bài tập đơn giản về JavaScript trên những nơi như freeCodeCamp, Code Academy hoặc Code Wars chưa?

Nếu có, bạn đã biết cách suy nghĩ như một lập trình viên rồi.

Lý do thực sự khiến tâm trí bạn trống rỗng khi nhìn thấy file JavaScript của mình có thể là do bạn sợ viết ra code không hoạt động, bạn sợ phải đối mặt với những sai sót, bạn không biết phải bắt đầu như thế nào.

Khắc phục vấn đề này rất đơn giản, chỉ cần làm theo từng bước sau:

  • Chia vấn đề bạn cần giải quyết ra thành các vấn đề nhỏ hơn.
  • Tìm giải pháp cho các vấn đề nhỏ đó.
  • Tập hợp các giải pháp một cách mạch lạc.
  • Refactor và cải thiện lại code.

Bây h, hãy nhìn kỹ hơn vào mỗi bước trên.

Bước 1: Chia vấn đề bạn cần giải quyết ra thành các vấn đề nhỏ hơn

Làm thế nào để đặt một con voi vào tủ lạnh ?


Một câu đố mẹo quên thuộc đúng k ? Đây là những gì hầu hết mọi người sẽ trả lời:
  • Mở tủ.
  • Đưa voi vào.
  • Đóng tủ.


Câu trả lời này là ví dụ tốt nhất về lý do tại sao bạn gặp khó khăn. Vì nó bỏ qua các bước trên.

Nếu bạn suy nghĩ một cách logic về câu hỏi, bạn sẽ thấy một số vấn đề rõ ràng vẫn chưa được giải đáp:

  • Chúng ta đang nói về tủ lạnh loại nào ?
  • Chúng ta đang nói về con voi loại nào, to hay nhỏ, ... ?
  • Nếu con voi quá lớn không thể nhét vào tủ lạnh, bạn sẽ làm gì ?
  • Bạn tìm con voi ở đâu để bỏ vào tủ lạnh ?
  • Làm thế nào để bạn vận chuyển con voi vào tủ lạnh ?

Khi viết code, bạn cần trả lời mọi câu hỏi nhỏ mà bạn có thể nghĩ ra. Đó là lý do tại sao bước đầu tiên là chia vấn đề của bạn thành nhiều phần nhỏ hơn.

Bước 2: Tìm giải pháp cho các vấn đề nhỏ

Bước thứ hai là tìm giải pháp cho từng vấn đề nhỏ hơn của bạn. Ở đây, điều quan trọng là phải càng chi tiết càng tốt.

  • Tủ lạnh nào ? - Cái tủ lạnh trong nhà bếp của bạn.
  • Con voi là loại nào ? - voi bụi Châu Phi
  • Nếu con voi quá lớn thì sao? - Lấy súng thu nhỏ (?) để thu nhỏ con voi (?).
  • Bạn tìm thấy con voi ở đâu? - Châu Phi
  • Làm thế nào để bạn vận chuyển con voi? - Bỏ nó vào túi sau khi thu nhỏ (?), sau đó bắt máy bay trở về nhà (?).

Đôi khi, bạn cần đào sâu hơn để có được câu trả lời bạn cần. Trong ví dụ trên, chúng ta có thể đào sâu hơn về câu trả lời 3 và 4.

  • Bạn lấy súng thu nhỏ ở đâu? - Mượn của Doremon.
  • Bạn có thể tìm thấy con voi của mình ở đâu ở Châu Phi? - Công viên Voi Addo ở Nam Phi.

Khi bạn đã có câu trả lời cho tất cả các vấn đề nhỏ, hãy ghép chúng lại với nhau để giải quyết vấn đề lớn của mình.

Bước 3 : Tập hợp các giải pháp một cách mạch lạc
Vì vậy, lần sau, nếu có ai hỏi bạn "Làm thế nào để đặt một con voi vào tủ lạnh ? ", bạn có thể trả lời như sau:

  • Mượn đèn pin thu nhỏ từ Doremon.
  • Đi máy bay đến châu Phi.
  • Đến công viên Voi Addo ở Nam Phi.
  • Tìm 1 con voi trong công viên.
  • Chiếu đèn vào voi.
  • Đút voi vào túi.
  • Bay lại về nhà.
  • Bỏ con voi vào tủ lạnh.

Giải quyết xong !.

Nghe tuyệt k ? Nhưng bạn hầu như sẽ không thể bỏ một con voi vào tủ lạnh bằng JavaScript được đâu !.

Bây h hãy vào một ví dụ thực tế

Giả sử bạn muốn tạo một button mà khi được nhấp vào sẽ hiển thị cho bạn một sidebar.

Bước đầu tiên - chia nhỏ

Chia nhỏ component thành nhiều phần nhỏ hơn. Dưới đây là một số vấn đề bạn có thể tham khảo:

  • Markup của button này thế nào ?
  • Button phải trông như thế nào ?
  • Điều gì xảy ra khi button được nhấp một lần ?
  • Nhấp lần 2 thì sao ?
  • Lần 3 thì sao ?
  • Markup của sidebar này thế nào ?
  • Sidebar trông như thế nào khi nó được hiển thị ?
  • Sidebar trông như thế nào khi nó bị ẩn ?
  • Làm thế nào để sidebar hiện ra ?
  • Làm thế nào để sidebar ẩn đi ?
  • Side bar có nên được hiển thị khi đang load trang k ?

Bước thứ hai - tạo giải pháp cho các vấn đề

Để giải quyết được nhưng câu hỏi trên, bạn cần có kiến thức về thứ mà bạn đang tạo. Trong trường hợp này, bạn cần biết đủ HTML, CSSJavaScript.

Đừng lo lắng nếu bạn không biết câu trả lời cho bất kỳ câu hỏi nào trong số này. Nếu bạn đã chia nhỏ chúng đầy đủ, bạn sẽ có thể tìm thấy câu trả lời thông qua Google sau năm phút 😃.

Thôi, đến đây mình k nói nữa đâu, các bạn tự đi tìm câu tả lời cho các câu hỏi trên nhé.

Tổng kết lại

Suy nghĩ như một lập trình viên thật đơn giản. Điều quan trọng là bạn phải biết cách chia nhỏ vấn đề thành những vấn đề nhỏ hơn.

Khi bạn đã chia xong, hãy tìm giải pháp cho các vấn đề nhỏ của bạn và viết code nó. Trong quá trình này, bạn sẽ phát hiện ra nhiều vấn đề hơn mà trước đây bạn không nghĩ đến. Giải quyết chúng nữa, theo cách tương tự.

Khi bạn có câu trả lời cho từng vấn đề nhỏ, tập hợp chúng lại, bạn sẽ có câu trả lời cho vấn đề lớn của mình. Đôi khi, bạn cũng có thể cần phải tập hợp lại câu trả lời nhỏ-nhỏ, để có câu trả lời cho vấn đề nhỏ của bạn.
Cuối cùng, công việc sẽ không hoàn thành ngây sau khi bạn tạo ra code xong hết lần đầu tiên đâu. Luôn luôn có chỗ để cải thiện. Tuy nhiên, rất có thể bạn sẽ không thể thấy các cải tiến ngay bây giờ. Hãy nghỉ ngơi, làm việc khác và quay lại sau. Khi đó, bạn sẽ có thể đặt những câu hỏi hay hơn nữa.

Bài này viết này được tham khảo từ link đây


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.