09.03.04 Kỹ thuật phần mềm

Xin chào mọi người, mình tên là Ngọc Thiện, hiện đang là sinh viên năm hai ngành Kỹ thuật phần mềm (09.03.04) tại trường đại học ITMO.

Mã ngành 09.03.04 Kỹ thuật phần mềm thuộc khoa ПИиКТ (Факультет программной инженерии и компьютерной техники), đây cũng là khoa lớn nhất, xét theo số lượng sinh viên đang theo học (số liệu tháng 4 năm 2021). Tuy nhiên bài viết này của mình sẽ chỉ cung cấp một số thông tin về ngành học Kỹ thuật phần mềm và những kinh nghiệm học tập mà anh Võ Minh Thiên Long (sinh viên năm 3 ngành Kỹ thuật phần mềm) đã đúc kết được. Hy vọng từ những thông tin mình tổng hợp được có thể giúp mọi người có cái nhìn tổng quát về ngành này cũng như biết được định hướng của ngành học này tại ITMO qua đó giảm bớt được phần nào những khó khăn.

Giới thiệu về ngành kỹ thuật phần mềm?

Hãy mở chiếc smartphone của mình ra và các bạn đếm thử xem mình đang sử dụng bao nhiêu ứng dụng để phục vụ nhu cầu cá nhân của bản thân? Có thể bạn chưa để ý nhưng tất cả những ứng dụng đó đều là sản phẩm của lĩnh vực kỹ thuật phần mềm.

Với sự phát triển không ngừng của các thiết bị điện tử ngày nay, ngành này đang ngày một mở rộng và trở nên quen thuộc cũng như gần gũi với cuộc sống của chúng ta hơn bao giờ hết. “Phần mềm” (Software) là một chương trình hoặc một tập hợp các chương trình cung cấp chức những năng mà người dùng mong muốn. Và “Kỹ thuật” (Engineering) là quá trình thiết kế và xây dựng, vận hành một thứ gì đó phục vụ một mục đích cụ thể và tìm ra giải pháp hiệu quả về chi phí cho các vấn đề. Và “Kỹ thuật phần mềm” (Software Engineering) sẽ là ngành học phù hợp với những ai yêu thích lập trình thuần túy, ‘phần mềm’, ‘chương trình’ hay ‘ứng dụng’ đều là các sản phẩm của việc lập trình.

Kỹ thuật phần mềm là việc áp dụng phương pháp tiếp cận/nghiên cứu có hệ thống, có kỷ luật để thiết kế, phát triển, vận hành và bảo trì một hệ thống phần mềm. - IEEE.

Và chắc bạn cũng biết, chúng ta sử dụng phần mềm mọi lúc mọi nơi: từ ứng dụng văn phòng cơ bản như Microsoft Word, Excel, Powerpoint đến trình duyệt web Chrome, Firefox, Safari hay hệ điều hành bạn đang sử dụng như Windows, Linux, MacOS hay kể cả trang web mà bạn dùng để đọc bài viết này cũng là một dạng của ứng dụng. Vậy nên có thể thấy phần mềm được ứng dụng rất rộng rãi trong rất nhiều lĩnh vực, và do đó có rất nhiều hướng đi để bạn lựa chọn trong ngành này: phần mềm hệ thống, phần mềm mạng và ứng dụng web, phần mềm giải trí (game, mạng xã hội), phần mềm trí tuệ nhân tạo, phần mềm khoa học (vd: ORCAD, PSPICE, AUTOCAD), phần mềm kinh tế, y học….

Học tập tại ITMO như thế nào?

Tại ITMO, mã ngành 09.03.04 (Kỹ thuật phần mềm) được chia thành 3 chuyên ngành:

  • Chuyên ngành 1: Компьютерные технологии в дизайне (Công nghệ máy tính trong thiết kế)
    Mục tiêu chính của chuyên ngành này là đào tạo các chuyên gia trong lĩnh vực công nghệ thông tin và đa phương tiện, lập trình và thiết kế. Chương trình của chuyên ngành được chia thành hai hướng:
    • 1.«Разработка графических и веб-приложений» (tạm dịch: Thiết kế đồ họa và thiết kế ứng dụng web): sẽ được tìm hiểu các kiến thức về bố cục web, kiểu chữ,.. (frontend), thiết kế giao diện ứng dụng, giao diện game cũng như các hệ thống xử lý hình ảnh, tìm hiểu về công nghệ thực tế ảo (VR), thực tế tăng cường (AR), thực tế hỗn hợp (MR);
    • 2.«Трехмерное моделирование и промышленный дизайн» (tạm dịch: Lập trình 3D và Thiết kế Công nghiệp) tìm hiểu về mô hình 3D và đồ họa kỹ thuật (hệ thống CAD/CAM), nâng cao kỹ năng vẽ, thiết kế, cũng như kiến thức trong lĩnh vực thiết kế công nghiệp.
  • Chuyên ngành 2: Нейротехнологии и программирование (Công nghệ thần kinh và lập trình)
    Chương trình của chuyên ngành này mục tiêu là đào tạo nên những lập trình viên có khả năng phát triển và triển khai các công nghệ thần kinh. Sinh viên sẽ học lập trình bằng các ngôn ngữ: Java, C / C ++, Python, JavaScript, PHP, v.v., sử dụng HTML5, CSS3, XML, XSL, ECMAScript, Ajax; các gói phần mềm: Adobe Creative Suite, CorelDRAW, Sound Forge, 3ds Max, v.v.; công nghệ về cơ sở dữ liệu: Oracle Database, MySQL, MongoDB, Apache Derby, Berkeley DB, v.v.; kết hợp cùng với sinh lý học thần kinh: Open BCI, BioRadio Human Physiology Kit, ….

Đây là chuyên ngành mà mình đã chọn nên mình sẽ nói kỹ hơn một chút.
Đây là chương trình khá mới tại ITMO (bắt đầu từ năm 2017), và cũng là chương trình đầu tiên tại Nga về sự kết hợp giữ đào tạo về Công nghệ thần kinh và Lập trình. Công nghệ thần kinh: bao gồm những phương pháp giao tiếp với hệ thần kinh thông qua các thiết bị điện tử, xử lý các tín hiệu điện từ vỏ não, khuếch đại chúng để có thể theo dõi hoặc điều chỉnh các hoạt động thần kinh. Hiện nay công nghệ thần kinh đã được ứng dụng trong y học (vd: thiết bị cho phép bệnh nhân bị liệt và vận động viên thể thao điều khiển bộ xương bằng cách sử dụng điện não đồ, tức sóng não: https://neurobotics.ru/), quốc phòng, giải trí (VR brain games) , và giáo dục. Công nghệ thần kinh đứng ở vị trí giao thoa giữa tâm lý học, y học và khoa học kỹ thuật, vì vậy để đáp ứng nhu cầu của lĩnh vực này, một lập trình viên giỏi là chưa đủ, bạn phải biết hệ thống thần kinh trung ương hoạt động như thế nào, hiểu các chức năng của não và các phương tiện để theo dõi tín hiệu của nó,… Và chương trình này được sinh ra để đáp ứng nhu cầu đó của thị trường lao động.

  • Chuyên ngành 3: Системное и прикладное программное обеспечение (Hệ thống và phần mềm)
    Mục tiêu của chuyên ngành là đào tạo các chuyên gia đẳng cấp thế giới để hình thành nguồn nhân lực trong lĩnh vực tạo nên các nền tảng phần mềm, bao gồm cả hệ thống mạng vật lý và nền kinh tế kỹ thuật số, những lĩnh vực phát triển công nghệ máy tính được thế giới công nhận. Trong quá trình đào tạo, sinh viên sẽ được tìm hiểu về các phương pháp trong thiết kế, phát triển và kiểm thử phần mềm bằng Java, C #, C ++ và các ngôn ngữ khác. Tập trung tìm hiểu cách hoạt động của các hệ điều hành và framework, trình biên dịch, cơ sở dữ liệu và mạng máy tính. Trên cơ sở đó, sinh viên có thể tạo nên phần mềm trên bất kỳ nền tảng nào. Bên cạnh đó, còn được tìm hiểu về nhiều vấn đề liên quan khác như: Làm cách nào để khắc phục sự cố hiệu suất trong một ứng dụng được truy cập nhiều? Làm thế nào để phát triển một nền tảng trong công nghiệp hoặc giải trí có tích hợp công nghệ VR & AR?,….

Học tập

Ở năm học đầu tiên, mọi người sẽ được học chủ yếu là các môn Đại cương như Toán, Lý, Sử,… Bên cạnh đó là những môn nền tảng như Toán rời rạc, Lập Trình, Tin học. Đối với môn Lập trình, kỳ đầu tiên mọi người sẽ được học về C++ cơ bản và Java, OOP. Sang kỳ hai, mọi người sẽ ứng dụng những kiến thức của kỳ một tạo nên một project hoàn chỉnh, bao gồm cả cách phân tích, thiết kế và quản lý dự án. Ở năm học này, nên tập trung học các môn Lập trình (Программирование), Tin học (Информатика), Toán Rời rạc (Дискретная математика). Đây sẽ là những môn học nền tảng cho mọi người ở những năm tiếp theo. Bên cạnh đó, cần rèn luyện tiếng Nga, vì phần lớn giáo viên chỉ sử dụng tiếng Nga, rất ít thầy cô có thể sử dụng tốt tiếng Anh.

Sang năm 2, mọi người sẽ bắt đầu học một số môn chuyên ngành sâu hơn như: Ngôn ngữ lập trình (ngôn ngữ C), Lập trình Web (Java), Giải thuật và Cấu trúc dữ liệu,… Kết thúc năm 2, sẽ bắt đầu phân chuyên ngành con (специализация). Khoa sẽ có thông báo chi tiết hơn về nội dung học, cũng như là đối tượng học. Việc chọn môn sẽ tuỳ theo định hướng và khả năng của mỗi người.

Đến năm 3, sau khi đã phân chia chuyên ngành, bên cạnh một số môn chung của ngành như Hệ điều hành, Mạng máy tính, … thì mọi người sẽ học thêm các môn riêng của chuyên ngành con.

Tản mạn

Bài viết này mình sẽ không nói cụ thể về triển vọng nghề nghiệp của ngành này hay xu hướng việc làm sau khi tốt nghiệp, vì như mình cũng đã nêu ở trên, ngành này đã, đang và sẽ được áp dụng vào rất rất nhiều lĩnh vực, và mỗi lĩnh vực đều có những yêu cầu và trải nghiệm riêng. Bên cạnh đó, kiến thức chương trình học ở bậc cử nhân cũng rất rộng, nên sẽ có rất nhiều vị trí công việc phù hợp với khả năng cũng như định hướng của bạn: Software engineer, Developer, Software tester, Application/Systems analyst, UX/UI designer,… Thay vào đó, mình xin được chia sẻ góc nhìn của bản thân đối với ngành này.

Khi mình còn nhỏ, mình đã luôn muốn trở thành một nhà phát minh, đi tìm kiếm những vấn đề xung quanh cuộc sống, rồi thiết kế và xây dựng những công cụ để có thể giải quyết những vấn đề đấy, đóng góp gì đó cho nhân loại =)). Đến khi được tiếp xúc và rồi bắt đầu tìm hiểu về lập trình thì mình nhận ra, có một cách khác đơn giản hơn để có thể biến ước mơ đấy của mình thành hiện thực. Bạn chỉ cần một chiếc máy tính, kết nối Internet, là đã có thể tạo ra những sản phẩm tác động tích cực đến cuộc sống của mọi người trên khắp thế giới. Lập trình cũng không chỉ nhàm chán và đơn điệu như mình từng nghĩ, đây thật sự là một ngành đầy tính sáng tạo, nó giống như việc giải một câu đố, đầy thách thức nhưng cũng rất kích thích tinh thần, tạo động lực để giải quyết vấn đề.
Công nghệ trong ngành phát triển phần mềm cũng thay đổi một cách chóng mặt, nên bạn phải cố gắng tiến hóa để có thể thích nghi được. Nhưng cũng nhờ đấy, được tiếp cận với những công nghệ mới nhất, thay đổi theo từng ngày, bạn sẽ có thể cảm nhận được, thế giới này đang phát triển nhanh chóng như thế nào, cảm nhận được hàng ngàn những lập trình viên khác đang nỗ lực, đóng góp như thế nào để có thể cải thiện cuộc sống của mọi người.

Hy vọng với góc nhìn này cùng những chia sẻ ở trên, có thể giúp bạn có thêm động lực để theo đuổi ngành Kỹ thuật phần mềm. Cảm ơn mọi người đã đọc hết bài viết này ! Trên đây là những chia sẻ của mình và anh Long đang theo học ngành Kỹ thuật phần mềm. Chúng mình rất mong nhận được phản hồi của các bạn. <3 <3 <3 !

Nguồn:

https://scs.ifmo.ru/ru/page/21723/programmy-razvitiya-i-dokumentaciya.htm https://news.itmo.ru/en/education/students/news/6526/ https://abit.itmo.ru/file/files/617/617.pdf https://en.wikipedia.org/wiki/Software_engineering https://news.itmo.ru/en/education/trend/news/9021/