Kỹ năng “đánh giá” một developer giỏi là một trong những kỹ năng mà bạn cần master nếu muốn thành công trong bất cứ lĩnh vực gì. Lạ ở chỗ là chúng ta lại có câu khẩu hiệu: “đừng đánh giá ai cả”. Đúng là chúng ta không nên đánh giá một ai đó ra mặt, nhưng, khi đưa ra một quyết định gì đó, rõ ràng là bạn không nên ngây thơ mà quên đánh giá mức độ tin cậy của đối phương. Nhất là khi giải thưởng tượng vàng Oscar ngày càng trở nên phổ biến.
Trong giới của chúng ta cũng thế, ngày càng có nhiều diễn viên hạng B đóng vai “developer giỏi”. Vì thế, khi muốn xin ý kiến, hay học hỏi từ một developer mà bạn cho là giỏi, trước tiên hãy xác định xem gã đó có thật sự giỏi hay không? Hay chỉ là tỏ vẻ mà thôi. Bởi vì không gì tệ hơn nhận lời khuyên từ một người không có khả năng, kể cả người đó có thật sự muốn giúp bạn đi chăng nữa.
Trong bài này, mình sẽ chỉ ra 3 đặc điểm của một developer giỏi theo quan điểm của mình. Hy vọng sẽ giúp bạn có cái nhìn tốt hơn về developer, từ đó dễ dàng tìm kiếm, chọn lựa những đàn anh, mentor chất lượng.
Ít code
Một developer giỏi thì phải code như máy chứ? Hay chí ít thì cũng phải code 8 tiếng không biết mệt chứ?
Nhưng đây là sự thật, theo mình, một developer khi đã đạt đến trình độ “giỏi”, họ sẽ dành nhiều thời gian để suy nghĩ, tìm hiểu, phân tích, thiết kế code nhiều hơn, viết code thông thường sẽ là bước cuối cùng họ thực hiện.
Lý do họ làm như vậy là bởi kinh nghiệm giúp họ nhận ra rằng code càng nhiều thì khả năng có bug càng cao. Code được phân tích yêu cầu rõ ràng, thiết kế tốt, logic mạch lạc sẽ tiềm ẩn ít lỗi hơn, tiết kiệm được thời gian về sau.
Tuy nhiên, đôi khi việc dành thời gian phân tích, thiết kế sẽ tốn nhiều thời gian, công sức hơn việc nhảy vào code ngay lập tức. Điển hình là với những dự án cần tiến độ nhanh, bị khách hàng hối thúc, lúc này thì nhảy vào code luôn lại là một sự lựa chọn. Ngược lại, những dự án lớn, lâu dài, cần bảo trì về sau lại là sân chơi của phân tích thiết kế. Một developer giỏi cũng cần phải ý thức được điều này.
Dù là trường hợp nào thì một developer giỏi vẫn luôn dành thời gian suy nghĩ kỹ càng trước khi code. Trong khi một gã developer hạng nhẹ thì loay hoay xóa đi viết lại cả đống code mà vẫn chưa biết mình đang làm cái gì. Vì vậy, khi ai đó khoe với bạn là “qua t mới code cả đêm” thì đừng hoảng hốt, biết đâu cả đêm đó họ dùng để xóa code đi viết lại thì sao?
Kỹ năng giải quyết vấn đề của một Developer giỏi
Một developer giỏi sẽ luôn biết cách xác định, tìm hướng giải quyết cho các vấn đề mà họ gặp phải. Một developer “thường” thì cần người chỉ lối, sau đó code theo lối đó.
Có một vấn đề mà bạn cần phải phân biệt, đó là “code giỏi” và “developer giỏi”. Một người có thể code giỏi, biết rất nhiều công nghệ, ngôn ngữ, nhưng đó là tất cả những gì mà anh ta làm được. Anh ta không thể tự giải quyết vấn đề, khi gặp các vấn đề khó luôn cần người khác vẽ đường. Sau khi đường được vẽ thì người này lại chạy rất nhanh, khó developer giỏi nào đuổi kịp.
Khi nói chuyện với một developer giỏi, anh ta luôn hướng đến việc yêu cầu bạn trình bày vấn đề của bạn, hướng giải quyết của bạn như thế nào, bạn muốn anh ta trợ giúp điều gì… Khi đã có đủ dữ kiện, anh ta có thể cho bạn một ý tưởng mà không cần đụng đến một dòng code. Ngược lại, một developer hạng nhẹ, một người code giỏi sẽ yêu cầu bạn mở code ra cho anh ta xem, hoặc đơn giản là gửi link google cho bạn. Hãy nhớ, một developer giỏi sẽ thường giải quyết vấn đề tốt, đôi lúc còn muốn giúp người khác cũng có được suy nghĩ như anh ta.
Developer cần nhìn nhận vấn đề một cách tổng quan, đa chiều
Một developer giỏi sẽ không bao giờ nhìn nhận vấn đề theo hướng “đúng – sai”, “chạy – không chạy”, họ luôn nhìn nhận vấn đề tổng quan, đa chiều.
Khi một developer thường hô lên “Code xong rồi”, gã developer giỏi ngồi bên cạnh thường sẽ nói vài câu kiểu: “Với lượng user lớn thì sao?”, “Tương tác với các module, component khác như thế nào?”, “File dung lượng lớn thì sao?”…
Có một câu chuyện như thế này. Một bạn junior được giao cho nhiệm vụ đơn giản là đọc dữ liệu từ database, sau đó hiển thị lên app. Bạn ấy viết code rất đúng chuẩn, đóng – mở database connection ngay sau khi đọc dữ liệu xong đúng như các Thầy trong trường nhắc nhở. Kết quả là chương trình chạy ì ạch lạ thường mà không ai biết lý do tại sao.
Theo bạn thì lý do tại sao? Có một dữ kiện rất quan trọng mà bạn junior này không đủ tầm để hiểu hết đó là “dữ liệu sẽ được lấy 5s một lần từ nhiều client khác nhau”. Thế là đủ hiểu, lý do là bởi database connection bị đóng – mở quá nhiều lần trong một khoảng thời gian quá ngắn. Cũng như bạn junior này, các developer “thường” sẽ chỉ tập trung vào phần tính năng, cụ thể ở đây là “lấy dữ liệu từ database”, họ ít khi nhìn ra các vấn đề tiềm ẩn.
Một developer giỏi cần biết cách zoom nhỏ bức tranh toàn cảnh để nhìn ra các vấn đề tiềm ẩn bên trong mà khi quan sát quá gần không thể thấy. Từ đó cho bạn cơ hội tìm kiếm công việc developer dễ dàng hơn.
Nguồn: thedarkknighttech