Khi code bí thì phải làm sao? 5 kinh nghiệm siêu hay để giải quyết vấn đề
Bài viết được cho phép bởi tác giả Phạm Huy Hoàng
Với những bạn đang bắt đầu học lập trình hoặc vừa mới đi làm, đôi khi các bạn sẽ bị… bí, không biết code hoặc giải quyết vấn đề như thế nào (Thật ra mình đi làm lâu rồi nhiều khi cũng bị).
Cảm giác … không biết code như thế nào, không biết giải quyết vấn đề ra sao rất là khó chịu. Gặp nhiều bạn sẽ dễ nản, chán code, chán ngành.
Do vậy, hôm nay mình chia sẻ 5 kinh nghiệm hay ho trị bệnh … bí code, các bạn có thể áp dụng thử nhé! Theo kinh nghiệm của mình thì 96.69% các trường hợp đều áp dụng được và có hiệu quả nha!
1. Google vấn đề để xem người khác giải quyết ra sao
Nói thật, 99% những lỗi bạn gặp khi code, người khác đã gặp rồi, nên chỉ cần Google là sẽ tìm ra được cách giải.
Đa phần các bạn mới học code thường chưa biết nhiều keyword, nên không biết Google thế nào cho đúng. Đây là 1 số kinh nghiệm Google của mình:
- Tập Google bằng tiếng Anh chứ đừng dùng tiếng Việt
- Đọc message lỗi, copy message lỗi bỏ vào Google, nhớ bỏ tên biến/tên hàm/tên project ra
- Ghi rõ ngôn ngữ/công nghệ để search cho dễ (vd “JS remove special character”, “Python connect MongoDB”)
- Kết quả thường có trên Stackoverflow, hoặc 1 số thread Github
Bạn cũng đừng ngại hay nghĩ mình code dở vì phải Google cách giải 1 bài nào đó. Bản thân mấy ông senior đi làm lâu lâu vẫn Google xem cách làm nào tối ưu nhất, ít code nhất; hoặc quên code phải Google kiếm code để copy vào ấy.
Đừng bỏ lỡ việc làm FrontEnd hấp dẫn trên TopDev
![tra cứu trên google](https://topdev.vn/blog/wp-content/uploads/2022/12/tim-tren-google.jpg)
2. Tách thành nhiều vấn đề nhỏ hơn cho dễ xử lý
Với các bạn bắt đầu làm đồ án, mới đi làm, các bạn sẽ bị khó khăn khi muốn làm 1 chức năng. Vì chức năng đó lớn quá, chưa có kinh nghiệm các bạn không biết bắt đầu từ đâu cả.
Cách giải quyết cũng khá đơn giản, chỉ cần tách vấn đề ra thành nhiều vấn đề nhỏ hơn là được. Ví dụ bạn muốn làm chức năng đăng nhập:
- Đăng nhập phải có form để điền username, password. Vậy bạn phải design và code cái form cho người dùng điền 2 cái đó vào.
- Đăng nhập phải check username, password đã có trong database chưa. Nếu chưa có thì sao. Bạn phải viết code back-end hoặc SQL để check cái này.
- Làm sao để back-end nhận username, password nhận được từ phía người dùng? Phải viết code trong controller để đọc dữ liệu. Sau đó đưa chúng vào hàm check mật khẩu phía trên
- Sau khi kiểm tra đúng mật khẩu thì làm gì? Code chức năng cần làm khi đúng mật khẩu (Login, đưa user vào session v…v)
Đấy, khi tách vấn đề thành nhiều vấn đề nhỏ hơn, bạn có thể dễ dàng code từng thứ rồi ghép chúng lại với nhau. Bản thân mình cũng hay dùng to-do list như hình dưới để code, code xong check là được.
![Tách thành nhiều vấn đề nhỏ hơn cho dễ xử lý](https://topdev.vn/blog/wp-content/uploads/2022/12/tach-thanh-nhieu-task-nho.jpg)
3. Thử giải quyết vấn đề dễ hơn trước
Nhiều khi, bạn gặp một vấn đề không quá lớn, nhưng lại hơi khó, không biết cách giải quyết ra sao.
Trong trường hợp này, hãy thử giải quyết vấn đề dễ hơn trước. Ví dụ, bài tập yêu cầu bạn tính tuổi trung bình của sinh viên trong trường.
Tuy nhiên, dữ liệu chỉ cho số báo danh, tên họ, ngày tháng năm sinh. Bạn có thể thử giải bài toán dễ hơn:
- Giả sử ta có tuổi của toàn bộ sinh viên trong trường
- Tuổi trung bình sẽ bằng tổng số tuổi chia cho số sinh viên
- Vậy làm sao để có tuổi của sinh viên? Lấy năm hiện tại trừ cho năm sinh là ra.
- Làm sao để có năm sinh? Dùng hàm nào đó để lấy số năm từ ngày tháng năm sinh trong dữ liệu là được.
Ta có thể suy ngược ra cách giải: Lấy năm hiện tại trừ đi năm sinh của từng sinh viên để có tuổi, sao đó cộng toàn bộ chia cho số sinh viên.
Các bạn thấy không? Chỉ cần thử giải bản dễ hơn, các bạn sẽ dần dần mò ra được cách giải thôi!
4. Đọc lại document, hỏi ý kiến đồng nghiệp
Đi làm, có lúc các bạn sẽ phải dùng framework do công ty/đối tác tự phát triển, mò Google không ra. Hoặc công ty có chuẩn/coding standard gì đó, bạn không biết code theo ra sao.
Lúc này, hãy chịu khó đọc lại kĩ document, coding guideline, code example để xem họ hướng dẫn code ra sao, dùng những hàm nào.
Nếu xui hơn … không có cả document hay unit test để đọc (vì team bị dí quá làm gì có thời gian viết), bạn có thể tranh thủ hỏi sếp, hỏi đồng nghiệp. Do họ đã có kinh nghiệm làm việc với dự án, biết những cách nên làm bạn sẽ đỡ tốn công mày mò nhiều.
Nhớ tìm hiểu kĩ trước khi hỏi, gom hết lại hỏi 1 lượt, chứ đừng hỏi lắt nhắt ảnh hưởng công việc người ta nhé!
![hỏi ý kiến đồng nghiệp](https://topdev.vn/blog/wp-content/uploads/2022/12/hoi-y-kien-dong-nghiep.jpg)
5. Đi uống, đi dạo đi ngủ (1 mình)
Trong khi làm việc, hẳn bạn đã từng trải qua cảm giác code hoài không được, chạy bị lỗi không biết tại sao, càng ngồi lâu càng bực mình mà không giải quyết được vấn đề.
Lúc này, cách hay nhất là bạn nên … đứng dậy, gác vấn đề qua một bên. Sau đó đi rót nước uống, làm một cốc cà phê, hoặc đi dạo vòng vòng trong công ty rồi quay lại.
Lúc này, bộ não của bạn sẽ được refresh lại, đôi khi bạn sẽ tự … bật ra cách giải, nhìn ra bạn đã sai chỗ nào! Hoặc có thể đi giải quyết vấn đề khác, sau đó đi ngủ 1 giấc, sáng hôm sau quay lại bỗng dưng não lại nghĩ ra cách giải quyết vấn đề cũ.
Nghe hơi vô lý đúng không nào? Không tin thì các bạn cứ thử xem sao nhé, nếu không hiệu quả cứ lên đây đòi tiền thằng Code Dạo.
![đi dạo](https://topdev.vn/blog/wp-content/uploads/2022/12/di-dao.jpg)
Tạm kết
Đấy, trong bài này, mình đã chia sẻ với các bạn những kinh nghiệm hay ho. Bản thân mình thấy cách 1 và cách 5 là hiệu quả nhất! Còn bạn thấy cách nào hay ho thì cứ chia sẻ trong mục comment nhé!
Bài viết gốc được đăng tải tại toidicodedao
Xem thêm những bài viết liên quan dưới đây:
- Tối ưu ứng dụng React bằng Code-Spliting
- Vài cách khiến việc code trở nên thú vị hơn
- Viết code dễ đổi, dễ test như thế nào?
Xem thêm Việc làm IT hấp dẫn trên TopDev
- M Mới ra trường không kinh nghiệm, sao làm BA?
- C Chuyển đổi SA key sang Workload Identity
- U Use Case Diagram và 5 sai lầm thường gặp
- K Kinh nghiệm xử lý câu lệnh điều kiện trong JavaScript
- D Dart là gì? Ứng dụng của ngôn ngữ lập trình Dart
- C Chuẩn Hóa CV, Nhận Ngay Phím Chất
- S So sánh MySQL và MongoDB: Nên chọn CSDL nào?
- D Dân BA có cần phải rành về kỹ thuật???
- C CSS Selector là gì? Cách sử dụng các loại CSS Selector phổ biến
- P Phân biệt Sketch, Wireframe, Mockup, và Prototype?