3 điều quan trọng nhất để trở thành 1 lập trình viên thành công
Bài đăng này đã không được cập nhật trong 6 năm
3 điều quan trọng nhất để trở thành 1 lập trình viên thành công
Nội dung bài viết này là phần tóm tắt video trên Youtube.
Hôm trước tôi có xem 1 video vô cùng ấn tượng, nên hôm nay muốn chia sẻ cho mọi người.
Tôi định sẽ tóm tắt ngắn gọn thôi, nhưng cuối cùng lại thành ra là “Viết sub cho Video”.
Tuy nhiên nội dung cũng rất cô đọng, hy vọng mọi người sẽ rút ra cho mình những kinh nghiệm khi làm việc nhé.
Video youtube: https://www.youtube.com/watch?v=doE8vvvi3rw …
Phần mở đầu
Thao tác tay nhanh cũng là một việc rất quan trọng. Có thể bạn nghĩ việc này không có ý nghĩa gì lắm, nhưng khi bạn mô phỏng các hành động nhanh tay như: đánh máy nhanh, sử dụng chuột nhanh...v.v thì cơ thể các bạn cũng sẽ quen với nhịp độ nhanh. Từ đó giúp hình thành thói quen, làm việc gì cũng nhanh chóng hơn.
1. Impact - Tác động
Điều quan trọng đối với một lập trình viên, không đơn giản chỉ là: Fix được nhiều bug, Refactor code, và cũng không phải là tự mình viết riêng Frame work. Điều quan trọng đối với một lập trình viên là: Mang đến những tác động tích cực cho công ty. Những tác động đó phải được đo lường bằng con số cụ thể. Ví dụ: Thông qua việc thực hiện Refactor code, đã giúp tăng lưu lượng Web lên ◯%, tăng Performance lên ◯%...v.v
Tóm lại, điều mà tôi muốn nói ở đây là: Khi fix bug hay thực hiện Refactor code, nếu bạn không thể chỉ rõ hiệu quả của việc này, thì công ty cũng sẽ không nhìn nhận ra thành tích hay ưu điểm gì ở bạn.
Nên làm thế nào đây?
Nếu có bug, bạn hãy thử list up các bug đó, rồi tổng hợp chúng lại. Trên các task mà bạn đã tổng hợp, bạn đính Story về cách giải quyết bug có liên quan tới Performance. Sau đó, bạn thử đo lường Performance. Nếu bạn sửa lỗi đó và giúp nâng cao Performance thêm 20%, chắc chắn việc này sẽ mang lại tác động tích cực cho công ty. Bạn cũng có thể kết hợp với những member khác thành một team, tổ chức để thực hiện việc này.
**Về việc Refactor code: **
Có những điều bạn cần biết khi thực hiện Refactor code. Đó là: Công ty đang thực hiện Refactor theo hướng nào? Nếu công ty có ý muốn chuyển đổi từ “Lập trình hướng đối tượng” sang dạng “Lập trình hàm” thì bạn không nên thực hiện Refactor giữ nguyên theo kiểu “hướng đối tượng” Bởi vì việc làm của bạn sẽ không đem lại tác động nào tới công ty cả.
2. Giải quyết các vấn đề khó (Về kĩ thuật, xây dựng tổ chức, những vấn đề chưa biết)
Với các vấn đề khó, thì chúng ta thường gặp khó khăn khi: Khó khăn về mặt kỹ thuật, khó khăn về mặt tổ chức, khó khăn khi thông tin không rõ ràng.
Khó khăn về mặt kỹ thuật thường là những việc liên quan tới: Xây dựng các thuật toán khó, machine Learning ...v.v
Khó khăn về mặt tổ chức là những việc như là: Công ty to, hệ thống lớn nên việc kết hợp giữa các phòng ban, quy trình trở nên phức tạp. Để giải quyết một vấn đề nào đó, phải thực hiện Team Communication qua nhiều cầu...v.v
Khó khăn khi gặp các vấn đề chưa rõ ràng (Ambiguity) là việc cố gắng thực hiện những việc chưa ai hiểu, chưa ai rõ, không ai biết nên làm gì. Ví dụ: bạn đang phân vân, không biết nên dùng Framework nào. Trong trường hợp này, nếu bạn chăm chỉ đọc tài liệu rồi break ra các ý như: Ưu điểm, nhược điểm khi dùng Framework này là gì…; giúp cho công việc tiến triển thì chắc chắn: Bạn sẽ được công ty ghi nhận “Có kĩ năng giải quyết các vấn đề chưa rõ ràng” Điều quan trọng là: Khi đối diện với các vấn đề khó khăn, ở những thời điểm quan trọng, bạn đừng lảng tránh. Hãy linh hoạt chấp nhận những thử thách và giải quyết từng bước.
3. Initiatives - Leadership (Tinh thần đề xướng - Khả năng lãnh đạo)
Initiatives - Leader ship không chỉ là những đặc tính trong pham vi quân đội, mà nó còn có nghĩa là: Chỉ dẫn, giúp đỡ người khác, qua đó giúp họ ngày càng trưởng thành hơn. Nền tảng kĩ thuật, nền tảng về tổ chức sẽ giúp ích cho bạn rất nhiều khi đưa ra những advice cho người khác. Tất nhiên, leadership không phải là thứ luôn đi kèm với “địa vị”; không phải là kiểu “Anh có địa vị, anh ở chức vụ cao nên anh được người khác kính trọng”. Nếu bạn nghĩ việc giúp đỡ, chỉ dẫn cho người khác là nghĩa vụ mình phải làm, thì dù bạn có ở vị trí Leader, Manager đi chăng nữa, thì bạn cũng không phải là một “Leader, Manager thực sự”
Nếu bản thân bạn làm những việc như đã kể trên, bạn có thể sẽ nhận được tín nhiệm từ đồng nghiệp, lãnh đạo trong công ty, có cơ hội phát triển những dự án của riêng mình...v.v Cùng một lượng công việc, nhưng nếu bạn làm nó với nhiều ý tưởng, áp dụng những ý tưởng của bản thân vào công việc nhiều hơn bất kỳ người nào khác, thì chắc chắn, bạn sẽ gặt hái được những điều tích cực trên con đường sự nghiệp của mình.
Lời kết
3 điều tôi trình bày ở trên không những có ý nghĩa khi bạn làm việc ở trên công ty, mà nó còn rất hữu ích trong cuộc sống đời thường của bạn. Ví dụ: Khi bạn lên kế hoạch cho chuyến du lịch cả gia đình, sẽ có nhiều việc bạn không nắm rõ, những việc phức tạp...v.v Nhưng với gia đình, việc bạn làm sẽ gây tác động tới tất cả các thành viên, ai nấy đều vui.
Phát triển một Product cũng vậy. Thay vì chần chừ mất thời gian để tạo ra một sản phẩm tốt nhất, thì điều quan trọng là bạn sớm đưa được sản phẩm ra thị trường. Việc này sẽ gây tác động tới thị trường. Qua đó, bạn có thể học hỏi, sửa đổi rất nhiều nhờ các feedback của người dùng.
Nhiều người cứ nói rằng: Một lập trình viên chất lượng cao phải là người: Làm được nhiều Product trên Github, thực hiện nhiều Class project (khi còn là sinh viên), sử dụng các editor như Vim, Emacs...ở level master, tinh thông cả Mac và Window...v.v
Tuy nhiên các bạn nên soi những điều kể trên qua lăng kính của “3 điều quan trọng” mà tôi đã trình bày. Ví dụ: Làm nhiều Class Project, nhưng Impact - Tác động lại bằng Zero. Tại sao lại vậy? Bởi vì nó là các Class Project nên sẽ không có chuyện Release sản phẩm. Chắc hẳn là sẽ có độ khó về mặt kĩ thuật. Tuy nhiên, Leadership lại bằng Zero. Tại sao lại thế? Đơn giản là vì: Giáo sư, thầy giáo assign việc cho bạn thôi. Còn dùng Vim hay Emacs, thì đều không liên quan gì tới việc gây tác động - Impact và Tinh thần đề xướng đề - Initiative cả.
Các bạn nên học 3 điều trên thông qua các dự án Open source. Với các dự án Open source, bạn có thể tạo ra nhiều các Impact - tác động. Độ khó, phức tạp về kĩ thuật cũng sẽ được ghi nhận. Hơn nữa, mọi người có thể nhìn vào đó và biết được Initiative - tinh thần đề xướng, tiên phong của bạn trong những kĩ thuật mới.
Hy vọng bài viết này sẽ giúp ích cho các bạn.
Sưu tầm & Dịch bài: Thanh Thảo
All rights reserved