Dijkstra June 2018 | Page 30

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)