Được giao Task, gặp Bug – Bạn sẽ làm gì?

Posted by

1. Tản mạn ngoài lề


Khi gặp một vấn đề trong cuộc sống bạn sẽ làm gì? Người yêu đá đít, cuối tháng hết tiền, sếp đì trên đi xuống, bla bla

Simple~! Giải quyết nó thôi!!!

Được giao task và Fix bug. Một vấn đề chắc hẳn ngày ngào, tháng nào một lập trình viên đều gặp phải. Tất nhiên là phải xử lý rồi. Quan trọng là cách xử lý làm sao cho nó nuột nhất thôi.

2. Giải quyết vấn đề

Hiểu vấn đề -> Tìm đường đi -> Tìm công cụ để đi trên những đoạn đường đi ấy.

a. Hiểu vấn đề thật rõ ràng.

Đây là việc đầu tiên khi tiếp cận vấn đề.

Với một Task được giao thì vấn đề làm rõ yêu cầu rất quan trọng.

  • Thứ nhất phải đúng: Mình làm các dự án của Nhật nên khi Task giao xuống từ PM thì qua Comtor dịch (Comtor nhiều lúc chưa hiểu hết từ chuyên ngành). Cho nên nhiều khi vấn đề hiểu chưa được đúng và đủ ý của Khách hàng. Có lần làm xong ngon lành cành đào. Tự tin push lên cho sếp. Rồi đập đi làm lại. :((. Mà lắm lúc mấy ông Dev hay có kiểu tự cho là đúng vấn đề theo ý của mình. Việc này cũng khá nguy hiểm vì đôi lúc chúng ta chưa hiểu được ý đồ sâu xa của KH
    => Confirm với PM, (hoặc BrSE) để hiểu thật đúng Task.
  • Thứ hai phải đủ: Có nhiều Task chỉ yêu cầu làm cái A và B. Tiện tay làm cái C luôn vì tư duy DEV nghĩ nó là cần thiết. Nhưng không phải. Vì nó còn là vấn đề thời gian code, mà thừa là sai rồi. Mình không nên code một cái mà Khách hàng không bao giờ dùng đến.

Bug cũng vậy. Thường gặp bug thì vấn đề của mình thường nhanh hiểu hơn. (Vì mình đã từng code ở đoạn này rồi). Tuy nhiên việc hiểu được Bug đó đang sai ở đâu và Cần sửa như thế nào. Việc confirm với PM và Comtor là cần thiết. Đừng ngại ngùng gì cả.

b. Tìm đường đi

OK, vấn đề đã rõ. Vậy giải quyết nó như thế nào? Một bài toán sinh ra thì có rất nhiều cách để giải quyết. Có chăng chỉ là cách nào tối ưu hơn thôi.

Ví dụ bạn đi từ A đến F thì có nhiều cách như
A -> B -> D -> E -> F
A -> C -> F

Yếu tố tối ưu đây là gì? Thời gian code, security, …

Nói đến phần này ngoài yếu tố Con người (DEV) thì cần chú ý những yếu tố như sau:

Máy móc, thiết bị:

Hãy đảm bảo là mình đã có một cái máy ổn để code. Ít nhất là cũng không phải gặp những cái lỗi ngớ ngẩn phát sinh từ một cái laptop lởm. Hãy request lên công ty nếu cần như

- Chuột em die rồi anh ơi.
- Mạng yếu quá, thay cục phát wifi đi anh ơi
- Có con MacPro nhìn đẹp đẹp, anh thay cho toàn bộ nhân viên đi anh =))

Môi trường:

Bạn không thể code ngon trong môi trường quá là ồn ào, đang code hăng thì anh chị em bắt đi đặt chè, xuống xách cơm, ra đấm bóp cho em gái, bla bla.

Code là thứ tồn tại duy nhất, những thứ khác có hay không không quan trọng. 

Con người: Yếu tố quan trọng nhất.

Thật ra mà nói thì yếu tố quyết định đến vị trí của bạn đang ở đâu chính là vấn đề bạn giải quyết một bài toán như thế nào. Cùng một task giao xuống nhưng Dev V thì giải quyết trong 1 tiếng, còn thằng cu Dev T thì mất nửa ngày. Chưa kể vấn đề còn là security, vấn đề tối ưu, …

Vấn đề này cũng khó nói. Ai Dev cũng muốn bá. Nhưng mới tập tành vào code thì cũng phải từ từ. Chưa kể deadline mà dí đến đít thì chạy cho được cái đã =)). Thôi cứ luyện dần dần, gặp nhiều vấn đề rồi rút kinh nghiệm dài dài vậy.

  • Tự học: lên một số trang luyện code, ví dụ như  https://www.hackerrank.com/dashboard  https://leetcode.com/
  • Đọc blog thường xuyên: Đọc cái này rất tốt. Có thể đâu đó khi gặp một vấn đề mới chợt nhận ra. À, mình đã đọc trên Kipalog rồi. https://vinacode.net/ https://toidicodedao.com https://kipalog.com/posts . Cứ đọc bài của tiếng việt cho thạo đã. Nếu giỏi tiếng anh thì có thể tham khảo thêm https://www.joelonsoftware.com/ https://blog.codinghorror.com/ .
  • Đọc sách: là con đường ngắn nhất để học. Mọi người có thể tham khảo ở đây https://itviec.com/blog/5-sach-lap-trinh-kinh-dien/
  • Viết guilde: Gặp một vấn đề hay, hoặc gặp một vấn đề hay gặp phải. Hãy ghi nó lại (Trong laptop, trên blog). Chắc chắn sẽ có ích.
  • Đồng đội: Không gì tuyệt vời hơn khi có đồng đội tốt. Hãy tự tìm hiểu vấn đề trước. Khó quá hãy hỏi đồng đội trong cty. Hỏi PM, CTO, … Họ luôn sẵn sàng. Code xong sẽ có đồng đội review. Còn gì tuyệt hơn khi làm cùng một tập thể như thế.

c. Search keyword
OK, chúng ta đã mường tượng được cách giải quyết. Nhưng giải quyết nó như thế nào?

Trừ trường hợp quá easy, hoặc trường hợp vấn đề mất quá nhiều thời gian trước khi hỏi các PRO hơn thì hầu như chúng ta sẽ lên google để dựa vào các keyword để tìm phương án thôi.

Tốt nhất là search bằng Tiếng anh. Nó chuẩn. Bạn tưởng tượng 90 triệu dân (Việt Nam) so với hơn 4 tỷ (sử dụng tiếng Anh) hơn kém nhau bao nhiêu lần.

Hãy học tiếng anh, ít nhất là mấy từ tiếng anh Chuyên ngành. Chả có cách nào khác cả.
http://aroma.vn/tieng-anh-chuyen-nganh-cong-nghe-thong-tin/

3. Tóm lại

Nói đi nói lại thì gặp một vấn đề thì Dev PRO sẽ san bằng tất cả.

Chỉ là nếu bạn đang chưa PRO thì luyện cho PRO thôi.

  • Tìm hiểu rõ vấn đề.
  • Luyện tay nghề: làm nhiều, code nhiều.
  • Học tiếng anh.

2 comments

Leave a Reply

Your email address will not be published. Required fields are marked *