Có một quan niệm sai lầm phổ biến về cấp độ Senior Developer. Một số người nói cấp độ Senior thì đo bằng số năm kinh nghiệm lập trình, những người khác thì nói là đo bằng 'Số bug được fix / giây'.
Nhưng không.
Không phải là như thế.
Thế thì...
Senior Developer là gì?
1. Senior Developer không phải là...
Khi bạn tìm kiếm một công việc Lập trình viên / Kỹ sư phần mềm và đọc qua các bài tuyển dụng, bạn sẽ thấy một khuôn mẫu.
Điều mà các nhà tuyển dụng thường dùng để xác định một Senior Developer dựa trên số năm kinh nghiệm họ có trong lĩnh vực này.
Nhưng, đây không phải là ý nghĩa của Senior Developer.
Số năm kinh nghiệm không giúp bạn trở thành một Senior Developer, nó phức tạp hơn thế nhiều.
Và Senior Developer không phải là:
-
Người biết mọi thứ về ngôn ngữ lập trình
-
Biết tất cả các câu trả lời
2. Senior Developer giải quyết vấn đề....
Một trong những đặc điểm cần thiết của một Senior Developer là khả năng giải quyết vấn đề một cách nhanh chóng đồng thời phải:
-
Đảm bảo không đưa ra các nguồn lỗi không cần thiết
-
Tạo ra ít "Xích mích" với hệ thống hiện có nhất có thể
-
Nghĩ về bức tranh lớn hơn
-
Quan tâm đến khả năng mở rộng / khả năng tái sử dụng
-
Đưa ra quyết định về sự đánh đổi (Chọn cái này được gì? / Bỏ cái này mất gì?)
"Senior Developer biết không phải lúc nào cũng có đủ thời gian để đưa ra giải pháp hoàn hảo"
Một Senior Developer phải biết giải pháp tối ưu nào mà họ có thể chấp nhận vào lúc này.
Nhưng hãy đảm bảo nâng cao nhận thức rằng đó là một giải pháp nhanh chóng, hiệu quả cho vấn đề hiện tại nhưng nó cần được thay đổi trong tương lai.
3. Kinh nghiệm và Kỹ năng kỹ thuật của Senior Developer...
Tất nhiên, điều quan trọng là một Senior Developer phải có nhiều kinh nghiệm về kỹ thuật.
Điều này không có nghĩa là họ biết mọi cú pháp và có thể liệt kê tất cả các hàm có sẵn.
Không, điều này liên quan nhiều hơn đến việc biết những công cụ và software pattern nào có sẵn, vì vậy họ có thể chọn chính xác cái nào cho vấn đề đang giải quyết.
Thông thường, một Senior Developer có một số giác quan thứ sáu khi nói đến việc lường trước vấn đề có thể xảy ra (Hơi tâm linh một tý :D)
Nhưng cái này không phải tự nhiên mà có được.
Đó là linh cảm, kinh nghiệm được đúc rút ra từ vô số các dự án thành công / thất bại.
Họ có thể không thể giải thích được ngay tại sao giải pháp kia lại tệ hơn.
Nhưng họ lại dám cá là giải pháp này sẽ tốt hơn.
Và dĩ nhiên, khi họ thời gian để xem xét kỹ lưỡng thì họ có thể chỉ ra vấn đề này đang sai ở chỗ nào.
Điều quan trọng là họ biết những gì họ không biết và có thể thực hiện thêm một số nghiên cứu để tìm hiểu sâu về vấn đề gặp phải.
4. Kiến thức công nghệ của Senior Developer
Một Senior Developer tuyệt vời là người biết về các công cụ có sẵn, ngay cả khi họ không sử dụng chúng và ngay cả khi họ không nhớ chính xác cách chúng hoạt động.
Nhưng:
"SENIOR BIẾT NGOÀI KIA CÓ GIẢI PHÁP PHÙ HỢP"
Họ là những chuyên gia trong việc ghép nối công cụ với một vấn đề nhất định.
Họ có thể phải làm một số nghiên cứu để đảm bảo rằng công cụ phù hợp với công việc, nhưng:
"SENIOR DEVELOPER BIẾT HỌ CẦN TÌM THỨ GÌ!"
Đặc biệt khi bắt đầu một dự án mới, một Senior Developer nên đưa ra những lựa chọn khôn ngoan và những quyết định mang lại lợi ích về lâu dài.
5. Senior Developer còn hơn cả Full Stack
Một Senior Developer có khả năng xử lý mọi bước trong quá trình xây dựng một phần phần mềm:
-
Phân tích vấn đề
-
Hiểu vấn đề
-
Có một giải pháp khả thi cho vấn đề
-
Thực hiện giải pháp
-
Kiểm tra giải pháp
-
Tích hợp giải pháp
-
Triển khai giải pháp
> Nếu bạn muốn một ngày nào đó trở thành Senior Developer thì bắt đầu ngay với KHÓA HỌC LẬP TRÌNH (Full Stack) tại NIIT - ICT Hà Nội
6. Senior có khả năng kèm cặp...
Một phẩm chất quan trọng mà mọi Senior Developer nên có là khả năng kèm cặp, dẫn dắt các lập trình viên khác. Điều này có nghĩa là:
-
Giúp các lập trình viên (Junior) nâng cao kỹ năng của mình
-
Hướng dẫn họ các giải pháp tốt hơn và giúp họ hiểu tại sao lại như thế
-
Giúp họ khi họ gặp khó khăn
-
Cung cấp cho họ những tài nguyên thú vị và hữu ích
-
Biết động viên những người khác
-
Chia sẻ những gì bạn biết
-
Biết chia việc và đòi Deadline
7. Senior Developer có khả năng giao tiếp...
Các Senior Developer phải là những người có khả giao tiếp tuyệt vời:
-
Giải thích vấn đề một cách dễ hiểu cho bất kỳ ai (ngay cả với những người không am hiểu về công nghệ)
-
Trình bày một giải pháp và giải thích tại sao trong số tất cả các giải pháp, giải pháp của họ là tốt nhất
-
Biết điều hướng các tình huống mang tính "Chính trị" tại nơi làm việc
-
Biết bảo vệ các lập trình viên khác khỏi các quyết định quản lý tồi
8. Senior Developer khiêm tốn
Là một Senior Developer họ biết không phải lúc nào họ cũng đúng.
Mọi người đều mắc sai lầm, và khi họ mắc phải một sai lầm, họ có thể làm chủ nó:
-
Nâng cao nhận thức về một vấn đề
-
Phân tích mức độ nghiêm trọng của một vấn đề
-
Có một loạt các giải pháp để giải quyết vấn đề
Ngoài ra, một Senior Developer không bao giờ được cho rằng họ luôn đúng.
Họ nên tiếp nhận / phân tích đầu vào từ những người khác và sẵn sàng chấp nhận nó nếu như đó là một giải pháp tốt hơn.
Tuy nhiên, họ cũng không nên dễ dàng bị ảnh hưởng bởi người khác. Họ phải luôn có giải pháp tốt nhất trong tâm trí.
Tạm kết về Senior Developer
Tóm lại, một Senior Developer thực sự giỏi trong việc giải quyết vấn đề, lựa chọn công nghệ phù hợp cho công việc và giúp những người khác hoàn thành xuất sắc công việc của họ.
Marc Backes
---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0914939543
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python