KĨ SƯ PHẦN MỀM GIỎI THÌ PHẢI NHƯ THẾ NÀO?
S
au một thời gian làm kĩ sư phần mềm ở nhiều môi
trường, cũng như qua trải nghiệm phỏng vấn & tiếp
xúc với rất nhiều bạn lập trình viên khác, có một
nhận định chủ quan mà mình muốn đưa ra như sau:
Người làm phần mềm có 3 loại:
1- Người làm nghiên cứu (Computer Scientist) -
thường làm việc ở trường ĐH và các viện nghiên cứu,
thường có Master hoặc PhD. Kiến thức chuyên sâu của họ
về khoa học máy tính rất tốt, tư duy giải quyết vấn đề
cao. Họ thường không tham gia lập trình các dự án phần
mềm lớn nên code thường không đẹp và sẽ gây nhiều khó
khăn cho dự án, nhưng nếu trọng tâm của họ là nghiên cứu
chuyên sâu thì không vấn đề gì cả.
2- Lập trình viên ứng dụng (Application Developer)
- thường chuyên viết ứng dụng web, mobile, tuy nhiên họ
thường thiếu các kiến thức về khoa học máy tính, thuật
toán, cấu trúc dữ liệu. Một phần có thể do các bạn không có
điều kiện được tiếp xúc vì ít người dạy, một phần thì do hầu
hết tính chất công việc đang làm ở Việt Nam không cho các
bạn cảm thấy những cái này quan trọng.
3- Kĩ sư phần mềm (Software Engineer) - là người có
cái nhìn tổng quát tốt về mọi thứ, vừa có kiến thức vững về
khoa học máy tính như người làm nghiên cứu, vừa có khả
năng lập trình cực tốt. Đây là nhóm mà các công ty phần
30
DIJSKTRA
mềm như Google, Facebook, Twitter luôn muốn tuyển vào.
Người làm nghiên cứu thì tiếp tục nghiên cứu vì đó là
đam mê của họ. Còn người ở nhóm Application Devel-
oper nên/cần phải phát triển lên được trình độ của Soft-
ware Engineer, vì đó đơn giản là con đường phát triển
mà các bạn phải lên tới được.
Theo cảm nhận chủ quan mình thấy thì Việt Nam
mình có nhiều người trong nhóm lập trình viên ứng
dụng, nhưng rất ít bạn ở mức độ kĩ sư phần mềm. Do
vậy, nhìn ngoài vào thì ai cũng nói ở Việt Nam có nhiều
lập trình viên, nhưng đến khi vào phỏng vấn thì rất rất
khó kiếm được bạn vừa ý.
(Lưu ý: Tên đặt ra có tính chất khái quát hoá, ko hàm
chỉ chức danh của các bạn trong công việc hiện tại)