Kỹ thuật phần mềm không phải thiên về code nhé. Mình đang học ngành này theo chương trình của Carnegie Mellon University (bạn có thể search trên Google để biết thêm thông tin, cũng như ranking của trường trong lĩnh vực khoa học máy tính ở Mỹ, TG), nên mạn phép chia sẻ với bạn kỹ hơn về ngành này sau khi trải qua 2 học kỳ "cày cuốc".
- Khoa học máy tính (Computer Science) sẽ chuyên về code hơn, đào tạo bạn trở thành Software Engineer với khả năng code, softskill, teamwork, 1 chút về process,... nhưng cơ bản thì công việc của bạn là code. Có thể xem là một người thợ xây.
- Kỹ thuật phần mềm (Software Engineering - SE) thì thiên về process nhiều hơn, dạy bạn một chút code (bạn sẽ phải tự học, tuy nhiên những ngôn ngữ như Java, C# thì vẫn được dạy thuần thục, làm nền để chuyển tiếp qua ngôn ngữ khác). Nếu bạn chưa biết về Software process thì mình tóm lược ngắn thế này. Tạo ra phần mềm sẽ cần đến quy trình, từ lấy yêu cầu, phân tích yêu cầu, thiết kế hệ thống, code, kiểm thử, bảo trì cho đến xuất cho người dùng. Một số mô hình quy trình bạn có thể tham khảo như Waterfall, Spiral, Scrum, Agile,... VN hiện tại đa số dùng Agile. Bạn có thể thấy, code chỉ là 1 giai đoạn trong toàn bộ quy trình thôi, có thể hiểu nôm na SE sẽ đào tạo bạn trở thành một Project Manager, tuy nhiên bạn sẽ phải bắt đầu từ một Software Engineer với công việc là CODE, điều này là chắc chắn nếu bạn muốn trở thành quản lý dự án trong tương lai. Có thể hiểu SE đào tạo kiến trúc sư.
Nếu bạn từng code 1 bài toán cơ bản, cơ bản thôi, bạn đã từng tự hỏi mình rằng có bao nhiêu câu lệnh sai mà bạn đã gõ, rồi xóa chưa? Tỉ lệ câu lệnh sai trên câu lệnh đúng? Thời gian bạn hoàn thành bài toán? Process sẽ kiểm soát hết cả những điều nhỏ nhặt như vậy. Bởi vậy mới có cái gọi là CMMI.
Mình mới học năm nhất thôi, chia sẻ đôi điều như vậy, có gì sai sót mong góp ý.