Gần đây, do mình bận việc học hànhlàm thêm nên không có thời gian rảnh để lên stackoverflow farm rep nữa. Tuy vậy mình vẫn giữ thói quen vào quora để theo dõi những bài hỏi đáp về Software EngineerComputer Science. Khác với stackoverflow chủ yếu tập trung vào code, những câu hỏi trên quora có phạm vi rộng hơn rất nhiều, bao gồm đủ mọi lĩnh vực đời sống.


Bản thân mình khuyên các bạn nên ít lướt facebook lại để chuyển qua đọc quora. Thay vì xem gái xinh, clip 18+, xem các thanh niên cãi nhau về việc Trấn Thành dắt Tiến Đạt vào nhà nghỉ, việc đọc các câu hỏi trên quora bổ ích và thú vị hơn nhiều. Thành viên trong quora thuộc đủ mọi thành phần, từ Junior Developer cho tới Software Architect, CTO. Những câu trả lời, lời khuyên của họ vô cùng chi tiết và hữu ích, đôi khi còn dí dóm nữa (Điển hình là 2 bài viết về “Mánh khóe không bao giờ tiết lộ của dev trùm” và “comment bá đạo&ldquoWink.


quora-logo


Bài viết hôm nay sẽ nói về những sai lầm ta hay phạm phải khi bước những bước đầu tiên trên con đường lập trình. Để trưởng thành hơn trên con đường phát triển bản thân, phát triển sự nghiệp, ta cần phải học hỏi không ngừng. Có một câu danh ngôn khá hay là: “Hãy học từ sai lầm của người khác. Bạn sẽ không bao giờ sống đủ lâu để phạm phải tất cả sai lầm.”


Những sai lầm này được chia sẻ bởi các lập trình viên trên quora, cùng với một phần trải nghiệm cá nhân mình. Hi vọng chúng sẽ là hành trang có ích cho những bạn lập trình viên còn “non trẻ”.


Về chuyên môn lập trình


Có thể tóm gọn các sai lầm này trong “5 chữ Éo” và “4 chữ Thích“.


  • Éo quan tâm đến tên hàm, tên biến: Giữ thói quen từ khi ra trường, nhiều bạn chỉ đặt tên biến kiểu x1, x2. Rất ngắn gọn và dễ hiểu nhưng đọc … éo hiểu gì.
  • Éo quan tâm đến cấu trúc code: Code chỉ cần chạy được là xong, còn cấu trúc code rối như đống giẻ lau cũng mặc.
  • Éo quan tâm đến bảo mật: Nghĩ rằng bảo mật là chuyện của bọn hạ tầng IT, mình chỉ lo code tính năng thôi. (Điển hình là các bạn coder bên Lotte Cinema).
  • Éo quan tâm đến testing: Code chạy đúng một trường hợp chính là được, mấy case còn lại thì kệ nó, không cần phải test thử, cho bọn tester làm.
  • Éo quan tâm đến performance: Không sử dụng cấu trúc dữ liệu hợp lý, không optimize code.
  • Thích code theo phong cách phức tạp lòng vòng, hoặc thông minh nhưng … khó hiểu.
  • Thích cắm đầu ngay vào code cả khi chưa biết rõ requirement hay business logic: Chưa xác định được vấn đề đã cắm đầu code tìm hướng giải quyết.
  • Thích một ngôn ngữ/công nghệ đến mức mù quáng, lúc nào cũng nghĩ nó là nhất.
  • Thích code lại từ đầu, tạo ra cái mới mà không quan tâm đến những cái đã có để tiết kiệm thời gian, công sức, tiền bạc.

abcd


Về định hướng phát triển


Có thể tóm gọn các sai lầm này trong “5 chữ Không” và “4 chữ Luôn“.


  • Không bao giờ đọc sách technical hoặc tìm hiểu ngôn ngữ/công nghệ mới.
  • Không bao giờ đọc blog lập trình để học hỏi, tìm hiểu các xu thế mới.
  • Không quan tâm đến sức khỏe bản thân: Cày game, uống rượu, code thâu đêm suốt sáng.
  • Không bao giờ đào sâu nghiên cứu, chỉ học hời hợt những thứ bề mặt để hoàn thành công việc.
  • Không quan tâm tới việc xây dựng quan hệ, tạo dựng hình ảnh, hayphát triển sự nghiệp.
  • Luôn tập trung vào chỉ project của mình làm, không quan tâm đến tình hình công ty hay các team khác.
  • Luôn trông chờ vào việc team leader/quản lý sẽ định hướng nghề  nghiệp, cất nhắc mình: Quản lý có nhiều việc phải làm và nhiều nhân viên cần quản lý, rất khó để học có thời gian chăm chút định hướng cho một cá nhân.
  • Luôn thích làm việc với những đứa “dốt” hơn mình để dễ cầm đầu: Muốn giỏi hơn, cần phải làm việc với những người giỏi hơn mình, bị ăn chửi hàng ngày mới khá lên được.
  • Luôn sống trong “comfort zone”, chỉ làm những việc mình đã giỏi/đã biết, không muốn mở rộng những kĩ năng đã có. (Xưa mình từng nghe có 1 chị senior C# 6 năm maintainance WinForm, phỏng vấnvào ASWIG và rớt vì… không biết MVC).

marketing


Về thái độ làm việc


  • Giữ thái độ cao ngạo và biết tuốt: Có thể gặp ở các bạn sinh viên trường ngon, tốt nghiệp loại giỏi (Mình chỉ nghe 1 số bác kể lại thôi, bạn nào sinh viên trường ngon, tốt nghiệp loại giỏi mà không có thái độ này thì cứ nghĩ “chắc thằng code dạo nó chừa mình ra&rdquoWink.
  • Tỏ thái độ khi có người góp ý cho design/code của mình: Tương tự cái ở trên. Kĩ năng code chỉ là một phần, quan trọng phải là “thái độ”.
  • Giữ bo bo kiến thức cho mình, không chia sẻ vì sợ bọn đồng nghiệpsẽ giỏi hơn: Hồi xưa đi học mình cũng hay thế, giờ đi làm đỡ rồi, nên các bạn mới có blog này mà đọc đấy Smile).
  • Luôn trông chờ được giao việc tận tay, chỉ làm những việc được giao cho làm: Để thăng tiến, bạn cần năng nổ, active hơn. Ví dụ nếu xong task sớm có thể chủ động bảo anh leader “để em phụ anh senior refactor và đưa code lên CI sau này dễ build”….
  • Luôn tuân thủ tuyệt đối mệnh lệnh của quản lý, team leader, senior mà không hỏi nguyên do: Cấp trên, senior chưa chắc lúc nào cũng đúng. Tranh luận, phản bác đúng cách sẽ làm họ coi trọng mình hơn (Nhưng nhớ để ý thái độ, đừng tỏ ra hổ báo hay thể hiện).
  • Khi đi hỏi người khác, không xác định được vấn đề cần hỏi mà chỉđặt câu hỏi mơ hồ chung chung, gây khó khăn cho cả người hỏi lẫn người trả lời.
  • Chỉ chăm chăm nhờ người khác làm giúp, trả lời giúp: Gặp chút khó khăn là lên facebook để nhờ người khác Team Viewer giải giùm.
  • Quá bi quan/lạc quan/chủ quan khi đánh giá thời hạn hoàn thành công việc: Câu nói hay gặp “Task này em làm 1 ngày là xong“. Một tuần sau: “Anh ơi do nó có bug ẩn nên em làm mới được có 30% hà :'(“.
  • Tự hào vì mình làm việc chăm chỉ: Nếu đồng nghiệp chỉ làm 8 tiếng/ngày mà bạn phải làm việc tới 10 tiếng/ngày, đừng tự hào là mình chăm chỉ, mà hãy tự hỏi: Do mình dốt, làm chậm hay do lão leader bóc lột giao việc cho mình nhiều quá???

Pair_programming_1


Nếu đọc hết danh sách mà các bạn thấy bản thân mình dính hơi bị nhiều “sai lầm” thì cũng đừng lo nhé, cứ từ từ mà sửa. Kể cả những lập trình viên giỏi nhất cũng từng mắc phải những sai lầm như vậy, huống chi chúng ta. Điểm khác biệt là ở chỗ: những người giỏi nhận thấy được mình đang mắc sai lầm, từ đó phấn đấu và cải thiện bản thân hơn. Chúc các bạn may mắn trên con đường lập trình mình đã chọn.


Một số nguồn hay mà các bạn nên tham khảo: