
Dưới tôi danh sách định nghĩa tôi tìm và tổng kết được. Để tiện hình dung, mình so sánh với nghề nấu ăn. Sau khi bài viết lên được vài phút nhiều ý kiến cho rằng Developer tham gia vào phát triển đa dạng hơn, Programmer thì thiên về lập trình. Ví dụ để làm ra ứng dụng mobile một developer cá nhân (hay gọi là indie developer phải giỏi cả thiết kế giao diện, trải nghiệm người dùng).
Programmer: Được cho là một người đạt đến cấp độ chuyên gia ở một ngôn ngữ lập trình (Java , PHP , C). Vậy một sinh viên CNTT học vài ngôn ngữ lập trình trong trường đại học, nhưng khi ra đi làm, anh ta chỉ lập trình PHP, MySQL, HTML, CSS, thì gọi chức danh sao cho đúng: Web Programmer. Nếu chuyên thiết kế, lập trình CSDL thì gọi là Database Programmer, chuyên code mobile app thì gọi là Mobile Programmer.
Quy chiếu sang ngành ăn uống: Programmer tương đương thợ nấu ăn nấu thành thạo một số món ăn Á, hoặc Âu. Mấy chú sinh viên CNTT mới ra trường thì tương đương thợ nấu tập sự gọt hành, rửa bát, bưng bê. Có thêm từ nữa khá gọn là coder dành cho anh em mới vào nghề. Viết mã đúng nhưng bản thiết kế chi tiết, chạy ít lỗi, hoặc copy code có sẵn, chỉnh sửa nghiệp vụ đi một tý chạy được ngon là rất tốt rồi. Coder chăm chỉ, chỉ khó học hỏi, rút kinh nghiệm, làm 2 - 4 năm sẽ thành developer. Các sinh viên CNTT các trường đại học chính quy, tốt nghiệp xong cứ nghĩ mình là kỹ sư phần mềm. Không phải đâu các bạn ạ, các bạn làm coder nhiệt huyết cho mình 4 năm đã. Đừng vội đi học cao học, vì như thế các bạn chưa có kinh nghiệm lập trình lại lao vào những thứ cao siêu. Về Việt nam dở ông dở thằng, chả ai thuê.Developer: Thành thạo ở mức chuyên gia một vài ngôn ngữ khác nhau. Ví dụ developer có thể lập trình iOS Swift và lập trình Node.js, JavaScript, MongoDB. Một thuật ngữ phổ biến khác hiện nay gọi là Full Stack Developer. Ở Việt nam, kiếm một mobile nghiêm túc đã khó, chứ Full Stack Developer thì cứ phải 20 developer may ra tìm được một người. Developer tương đương thợ nấu ăn làm được món Á kết hợp món Âu, lâu lâu lại học thực đơn mới qua sách, vở hoặc học theo bếp trưởng để thử làm món mới. Anh Nguyễn Hà Đông, tác giả Flappy Bird là mobile game developer trúng số độc đắc.
Programmer Analyst: Lập trình viên có khả năng phân tích, kết nối, tích hợp giữa các hệ thống khác nhau. Ví dụ: lập trình ứng dụng di động và web cùng kết nối dịch vụ web service của một phần mềm CRM. Chữ

Systems Analyst: Người thiết kế kiến trúc thông tin mục đích nâng cao hoạt động kinh doanh qua hệ thống thông tin. Programmer Analyst tương đương bếp trưởng. Thì System Analyst là người quản lý cao cấp nhà hàng: làm sao chỉ có một bếp trưởng giỏi trong tay, từ một nhà hàng ban đầu khá đông khách, mở thêm được thêm nhiều nhà hàng khác. Làm sao tối ưu được nguyên vật liệu: mua thật rẻ, bán giá cao, mà khách hàng vẫn đến. Làm sao phục vụ tại nhà hàng rồi kết hợp bán hàng qua mạng để doanh số tăng nhanh. Xử lý thế nào khi bếp trưởng nghỉ, tuyển ai vào thay thế?
Software Engineer: Được cho là người thiết kế ra những thành phần cốt lõi mà Developers & Programmers có thế sử dụng và phát triển. Nhưng con người như thế này thực sự đặc biệt. Họ có thể chỉ xuất thân từ Developer, nắm rất sâu một ngôn ngữ lập trình, tình cờ hoặc đam mê tạo ra một công thức khác biệt để hàng triệu người khác dùng theo. Gương sáng thì có Ryan Dahl, viết ra Node.js, hay John Pemberton, một dược sỹ phát minh ra đồ uống Coca Cola, hay David Heinemeier Hansson sáng tạo ra Rails hay cụ Linux Torvals sáng tạo ra Linux.
Còn lại ở các tập toàn lớn như Google, Facebook họ sẽ phải mức lương rất tốt (120 nghìn USD - 150 nghìn USD / năm) cho Software Engineer để tạo ra các thư viện thực sự cải tiến hiệu suất, tính năng, trải nghiệm của sản phẩm. Ở Việt nam software engineer hầu như không có luôn. À có, mình mới biết một đồng chí Võ Duy Tuấn, làm ra khá nhiều phần mềm hay, trong đó Litpi Framework viết trên PHP đã chạy tốt cho nhiều khách hàng. À thêm anh nữa mình biết là Nguyễn Đình Nam ở Hà nội, code C++, thuật toán nén video cực tít, sáng tạo ra chuẩn nén video rất tiết kiệm băng thông, mình đã xài thấy ổn. Link dịch vụ đây nhé http://us.vp9.tv/info/
Computer Scientist: Nhà khoa học máy tính họ sáng tạo ra những thứ nền tảng căn bản. Các gương sáng chói như Bjarne Stroustrup sáng tạo ra C++ , Edsger W. Dijkstra phát minh ra thuật toán tối ưu. Gần đây

Ở Việt nam nếu có nhưng computer scientist thì chắc có trên giấy tờ, bằng cấp, bình bầu lẫn nhau thôi hoặc khá hơn là cải tiến một số điểm nhỏ của một thuật toán XYZ chứ còn tạo ra một cái gì thực sự dùng được thì chắc là chưa. Nếu ai có ý kiến khác thì liên hệ mình, mình cập nhật lại.
Thế Bill Gates, Steve Jobs ở đâu trong phân loại này? Họ chả ở đâu cả.

Thế tác giả bài viết bài này đang ở đâu? Trường hợp nếu có bạn độc giả nào hỏi khó.
Mình là lập trình viên (developer) --> programmer (mình code được C++, C#, Swift, Objective-C, JavaScript, Java... khá nhiều thứ, chung quy để bán sức lao động thôi, chuyển đổi công nghệ mới với mình khá dễ, mặc dù mình chả có bằng cấp gì liên quan đến tin học). Mình có thể phân tích được hệ thống (system analyst) và tạo ra khá nhiều sản phẩm mobile, web và gia công cho khách hàng. Bạn (công ty nào) cần phát triển ứng dụng mobile iOS, web Node.js thì liên hệ đội mình. Đội nhỏ khoảng 10 người ở Hà nội, code khá tít, làm nhiều dự án cho khách hàng nước ngoài rồi. Giá không rẻ, nhưng làm cẩn thận, chất lượng ngon.
Viết cả một bài dài ngoằng thế này mà không có tý quảng cáo bán dạo thì phí quá. Email của mình đây nhé cuong@techmaster.vn .
No comments:
Post a Comment