Những điều cần biết
Du học nước ngoài: HƯỚNG NGHIỆP

Ngành Kỹ sư phần mềm: Bắt đầu từ đâu?

21285

Với mong muốn giúp các bạn có cái nhìn toàn diện và cận cảnh về ngành “Kỹ sư phần mềm”, HCVN đã liên hệ với hai nhân vật trong nghề là anh Leo Trieu (sáng lập dự án Code4Startup) và anh Lê Quốc Việt (sáng lập dự án Code2Pro) để nhờ họ chia sẻ với các bạn những thông tin cần thiết về ngành học thú vị này. Đây là một chuỗi bài viết gồm ba phần, bài viết này là phần đầu tiên: “Bắt đầu từ đâu?”

 

>> Du học ngành Khoa học máy tính

>> Các trường có ngành Khoa học máy tính

 

 

Theo hai anh có sự khác biệt nào giữa “computer science” và “software engineering” không? Nếu có thì là điều gì?

 

Anh Leo Trieu: Đây là một câu hỏi cũng khá phổ biến mà ngay cả khi google cũng khó có thể tìm được một câu trả lời thật trọn vẹn. Anh sẽ không phân tích sâu mà chỉ phân biệt ngắn gọn. “Computer science” thiên về nghiên cứu tổng quan của máy tính hoặc hệ máy tính nói chung, một nơi đòi hỏi có nhiều kiến thức về lý thuyết toán học. “Software engineering” thiên về lập trình và xây dựng các ứng dụng phần mềm dựa trên các thuật toán và ngôn ngữ.

 

Anh Việt: “Computer science” nghiên cứu thuật toán, cấu trúc dữ liệu và các khái niệm trừu tượng liên quan đến tính toán trên máy tính. “Software engineering” áp dụng những thành tựu đó để làm các sản phẩm phần mềm thực tế phục vụ cuộc sống.

 

“Computer science” có phương pháp nghiên cứu, kiểm nghiệm lý thuyết và các mô hình tính toán. “Software engineering” có quy trình phát triển, đánh giá, kiểm tra, triển khai và phân phối phần mềm tới người sử dụng.

 

 

Để trở thành kỹ sư phần mềm/ lập trình viên thì các bạn học sinh cần học tốt môn nào ở thời trung học? Tại sao?

 

Anh Leo Trieu: Toán học. Bởi có tư duy toán học tốt thì sẽ giúp ích rất nhiều cho tư duy lập trình sau này, mặc dù điều này là không nhất thiết. Ngoài ra các em nên đọc các sách, tài liệu về Toán Logic, Toán Rời Rạc. Các bài thi tuyển lập trình viên ở Việt Nam, Nhật hay các nước Châu Âu đều có các phần thi về toán logic hay toán rời rạc.

 

 

Những bạn nào sẽ phù hợp với ngành này? Và những phẩm chất để thuận lợi hơn trong ngành này là gì?

 

Anh Việt: Làm phần mềm là hoạt động trí óc nên cần phải tập trung cao độ thì mới có sản phẩm tốt. Những ai có khả năng tư duy trừu tượng tốt, tư duy mạch lạc thì đều có thể làm luật sư hay kỹ sư phần mềm. Các phần mềm quy mô đều cần mọi người phải hợp tác chặt chẽ với nhau nên khả năng làm việc theo nhóm rất quan trọng. Ngoài ra yếu tố kỷ luật cũng rất quan trọng, chỉ có đam mê và cảm hứng thôi thì không đủ.

 

 

Anh Leo đã từng học Kỹ sư phần mềm máy tính tại Việt Nam. Theo anh, chất lượng đào tạo ngành này tại Việt Nam như thế nào?

 

Anh Leo Trieu: Chương trình đào tạo tại các trường ĐH Việt Nam vẫn còn mang nặng tính lý thuyết, hàn lâm mà chưa thay đổi để bắt nhịp với xu thế của công nghệ hay nhu cầu thực tế từ các nhà tuyển dụng nhân lực.

 

>> Chọn trường du học

>> 8 học bổng Khoa Học Máy Tính nổi bật trên thế giới

 

 

HCVN được biết anh Việt đã từng học “Computer Engineering” bậc Cử nhân tại Singapore. Theo anh, chất lượng đào tạo ngành này tại Singapore như thế nào? 

 

Anh Việt: Singapore có chất lượng đào tạo kỹ thuật rất cạnh tranh trên thế giới. Ví dụ lấy trường NUS (Đại Học Quốc Gia Singapore), nơi anh từng theo học, theo QS hiện họ đứng thứ #11 thế giới về Computer Science và Information Systems, đứng thứ #6 thế giới về Electrical and Electronic Engineering. NUS cũng dẫn đầu châu Á về cả hai lĩnh vực này.

 

Các phòng nghiên cứu và phòng thí nghiệm được chính phủ Singapore trang bị nhiều cơ sở vật chất hiện đại. Nhờ sự đầu tư này của chính phủ nên khi theo học các sinh viên sẽ được sử dụng những giảng đường, phòng thí nghiệm có máy móc tối tân. Trong giai đoạn 2011-2015 Singapore đã mạnh dạn chi $16.1 tỷ đô Sing cho các hoạt động khoa học và nghiên cứu bất chấp khủng hoảng kinh tế thế giới nổ ra vào 2008. Mỗi ngành kỹ thuật và mỗi bộ môn đều có phòng thí nghiệm riêng (robotics, image processing, chip design, multi-media, chemistry, civil engineering,…). Ngoài ra, các trường tại Sing đều đầu tư mời các giảng viên giỏi ở khắp nơi trên thế giới đến làm việc, nghiên cứu và giảng dạy dài hạn.

 

 

Nếu các bạn muốn trở thành kỹ sư phần mềm/ lập trình viên nhưng không có điều kiện du học thì nên học ở đâu tại Việt Nam?

 

Anh Leo Trieu: Ngoài các hệ thống đào tạo chính quy như trường ĐH, Cao đẳng, các em có thể theo học các khóa đào tạo lập trình viên quốc tế như Aptech hay ĐH FPT. Hơn nữa, ngày nay với sự phát triển của Internet, các bạn hoàn toàn có thể tự học, tự trang bị kiến thức cho mình với các nguồn tài liệu vô cùng phong phú từ dạng văn bản, hình ảnh cho đến video. Thậm chí có nhiều nguồn tài liệu quý giá nhưng miễn phí.

 

 

Liệu chúng ta có thể TỰ HỌC lập trình mà vẫn thành công hay không? Bằng cấp có quan trọng trong lĩnh vực này?

 

Leo Trieu: Hoàn toàn có thể! Cá nhân anh chưa bao giờ coi trọng bằng cấp mà coi trọng nhất là con người và tư duy của họ. Anh đã từng trao đổi với các Startups ở thung lũng Silicon và tư duy của họ về tuyển dụng nhân sự cũng là như vậy.

 

Anh Việt: Muốn thành công ở lĩnh vực nào cũng cần phải tự học và khổ luyện rất nhiều, dù đó là âm nhạc, y khoa, luật hay lập trình. Nhưng muốn học bài bản, có phương pháp tư duy, phương pháp luận và phương pháp giải quyết hiệu quả và tối ưu thì cần phải có thầy giỏi và người có kinh nghiệm dẫn dắt. Nếu không, sinh viên sẽ phải mò mẫm rất nhiều và lãng phí thời gian thử-và-sai thay vì được dạy làm đúng và tập trung làm ra sản phẩm có ích một cách hiệu quả nhất.

 

Nhiều nhà tuyển dụng không có khả năng đánh giá lập trình viên một cách khách quan nên bằng cấp vẫn rất quan trọng. Bỏ qua chuyện bằng cấp, việc hoàn thành khoá học có vài ý nghĩa quan trọng:

 

  • Sinh viên đã cố gắng hoàn thành khoá dài 3-4 năm thì có khả năng cũng theo được dự án dài và hoàn thành nó một cách nghiêm túc

  • Sinh viên đã được rèn luyện làm việc theo nhóm, tuân thủ quy trình làm phần mềm cơ bản

  • Sinh viên đã chịu được áp lực để hoàn thành bài tập trước deadline

  • Tương tác khi học với bạn bè giúp sinh viên định vị được mình ở đâu và có những thiếu sót gì. Học một mình thì sẽ khó biết được mình đứng ở đâu so với người khác.

  • Một người sống trong môi trường sư phạm và môi trường tập thể sẽ có yếu tố rủi ro thấp hơn so với một người quá độc lập và thích làm theo ý mình

 

Anh có biết một số bạn không học hết đại học nhưng vẫn làm phần mềm được nhờ chịu khó. Tuy vậy con đường kiếm việc làm tốt sẽ khó hơn so với các bạn được đào tạo bài bản.

 

 

Theo anh, các bạn sinh viên nên chọn học đại học hay là các khóa học ngắn hạn?

 

Anh Việt: Lợi thế của đại học là xây dựng cơ sở lí thuyết. Lợi thế của các khoá học ngắn hạn từ những chuyên gia là có kinh nghiệm thực tế. Tuy vậy, không trường học hay các khoá học nào có thể biến sinh viên thành kỹ sư phần mềm nếu như sinh viên không khổ luyện và cật lực sáng tạo.

 

Ngoài các khoá học truyền thống tại các trường như Computer Engineering, Computer Science, Information Systems, sinh viên cần phải có kinh nghiệm thực tế qua thực tập, làm việc tự do. Anh rất khuyến khích các bạn sinh viên tham gia hackathon (code xuyên màn đêm 2 ngày cuối tuần) để cạnh tranh, giao lưu và học hỏi.

 

Hiện nay có rất nhiều khoá học ngắn hạn (8-12 tuần) và cam đoan biến người không biết lập trình thành lập trình viên xịn với giá rất cao (3000 - 8000 Bảng Anh). Trước khi theo học thì các bạn thử hỏi xem có khóa học nào 8-12 tuần để biến một sinh viên thành bác sĩ, y tá, nhạc công, luật sư hay không? Bạn có thể viết code theo sách mẫu và reo hò khi thấy màn hình nhấp nháy nhưng khi bỏ sách xuống và làm theo yêu cầu của khách hàng thì bạn sẽ làm thế nào? Không có tài năng nào có thể bỏ qua giai đoạn khổ luyện, nhất là khi môi trường làm việc và thị trường lao dộng ngày nay rất cạnh tranh.

 

Tóm lại các bạn nên theo học các khoá dài hạn tại trường và phải làm việc lập trình thực tế nhiều với những người đi trước.

 

>> Du học ngành Công nghệ Thông tin

>> Khái quát ngành Công nghệ Thông tin

 

 

Anh quyết định mình sẽ đi theo ngành Software Engineering từ khi nào? Và tại sao anh lại chọn ngành này?

 

Anh Leo Trieu: Công nghệ thông tin ngày nay đang rất phát triển và là cánh cửa đi đến tương lai. Với kiến thức về CNTT, chúng ta không những có thể tìm cho mình một công việc tốt mà thậm chí còn có thể tự làm ra sản phẩm ứng dụng và tự khởi nghiệp, đi trên một con đường do chính mình tạo ra. Cũng giống như anh hiện tại đã từ bỏ việc full-time là software engineer ở Úc để tạo ra công ty Code4Startup.

 

Anh Việt: Năm 2003, anh tốt nghiệp THPT và đứng trước lựa chọn đi theo con đường tuyển thẳng vào Khoa Kinh Tế Đối Ngoại, Ngoại Thương hay theo học tại Khoa CNTT (nay là Đại Học Công Nghệ) Đại Học Quốc Gia Hà Nội. Đây là lựa chọn rất khó khăn vì đây là hai trường tốt của Việt Nam. Khi anh ra hàng cà phê internet thì số phận đã sắp đặt cho anh lựa chọn. Anh mở email Yahoo của mình và thấy nó bị hack, kèm theo đó là lời mời tham gia câu lạc bộ hacker. Anh cảm thấy bị thách thức và không muốn mình đứng vào thế yếu, nên anh quyết học ngành CNTT.

 

Năm 2005 anh sang Singapore theo học Computer Engineering thiên về phần cứng, chế tạo chip. Tuy vậy trong suốt quá trình học anh thấy mình luôn bị phần mềm lôi kéo. Không thể chuyển khoá học, anh cố gắng chọn mỗi kỳ một môn phần mềm để học cho đỡ thèm và nhờ đi làm freelancing mà anh có điều kiện trau chuốt kỹ năng viết phần mềm và làm web. Những môn học như đồ hoạ OpenGL, xử lý ảnh làm anh mê mẩn.

 

Nhờ kinh nghiệm freelancing mà anh được vào làm thực tập sinh phần mềm tài chính ở Credit Suisse và sau kỳ thực tập anh được mời làm kỹ sư phần mềm tại ngân hàng này. Nhờ công việc và các sếp ở Credit Suisse rèn luyện nên anh học được nhiều, cảm thấy tự tin và càng yêu công việc của mình.

 

Đến nay anh đã đi làm được gần 6 năm và anh mới tìm được câu trả lời vì sao mình yêu lập trình và CNTT. Viết phần mềm cũng như viết văn, chơi nhạc, sáng tác, đều là hoạt động sáng tạo và chúng ta tự thể hiện, bộc lộ bản thân mình qua hoạt động này. Coding is a form of self-expression.

 

 

Anh có thể gợi ý một số từ khóa để tìm hiểu về ngành học này không?

 

Anh Việt: Khi lựa chọn ngành học CNTT, các bạn sinh viên có thể tìm hiểu một số khái niệm sau:

  • Cấu trúc máy tính (Computer Architecture)

  • Cấu trúc dữ liệu & giải thuật (Data structures & algorithms)

  • Cơ sở dữ liệu (Database)

  • Xử lý ảnh (Image processing)

  • Xử lý tín hiệu số (Digital signal processing)

  • Web, mobile/tablet development

  • Hệ điều hành (Operating systems)

  • Computer graphics/OpenGL hay OS

 

 

Khi bắt đầu theo đuổi lĩnh vực này, anh Việt có gặp nhiều trở ngại không? Anh có thể chia sẻ một vài trở ngại lớn nhất và cách mà anh vượt qua trở ngại đó?

 

Anh Viet: Khi anh học đại học năm 2003 thì trong lớp có rất nhiều bạn đoạt huy chương Vàng, Bạc và Đồng Toán Tin trong nước và quốc tế, hoặc ít nhất là học chuyên Toán-Tin cấp 2 hoặc cấp 3. Trong khi đó cấp 3 anh học Chuyên Ngữ, tiếng Nga. Đó là áp lực thú vị để mình rèn luyện và học hỏi từ các bạn. Cũng may anh được giới thiệu một số anh chị mới tốt nghiệp nên anh có thể học hỏi nhiều và được chỉ dẫn cẩn thận.

 

Anh thấy cách tốt nhất để vượt qua trở ngại là biến những thứ khô khăn thành hấp dẫn và đặt ra những vấn đề thực tế để giải quyết. Ví dụ bố anh khi đó đi dạy đại học và cao học tại chức. Vì bố anh kỹ tính và nghiêm khắc nên thường ra nhiều đề để sinh viên không thể quay cóp. Nhưng làm như vậy rất vất vả khi làm đề thi và khi chấm. Anh đã viết phần mềm cho bố anh có thể tạo ra các đề thi ngẫu nhiên và kèm theo lời giải chi tiết cho mỗi đề thi. Từ khi đó bố anh có thể tạo ra bao nhiều đều thi tuỳ thích và không lo phải chấm quá vất vả.

 

Về sau anh có viết phần mềm giúp các CLB anh tham gia ở Singapore có thể quản lí thành viên qua danh bạ online hay giúp anh bạn anh lập trình chụp hình đa chiều từ 100 máy ảnh một lúc. Các bạn sinh viên nên quan tâm xem bố mẹ, bạn bè mình có vấn đề gì cần giải quyết và xem phần mềm có thể giúp được không. Nếu mình giúp được thì đó sẽ là điều vô cũng hãnh diện và là động lực để mình học và làm thật tốt.

 

>> Đọc tiếp phần hai: Ngành Kỹ sư phần mềm - Cơ hội nghề nghiệp

 

 

PROFILE NHÂN VẬT

 

 

    Leo Trieu

      

 

  • Tốt nghiệp ngành CNTT Đại học Thủy Lợi
  • Tốt nghiệp Thạc sĩ Tài chính quốc tế Đại học Deakin (Melbourne, Australia)
  • Có 9 năm kinh nghiệm làm việc trong ngành IT ở Việt Nam, Australia và Mỹ.
  • Hiện đang là CEO và Founder của Code4Startup, một code school dạy lập trình, trụ sở ở Melbourne, Australia.
  • Website: www.code4startup.com

 

Những thành tích Code4Startup đạt được:

 

 

 

    Viet Le

      

 

 

  • Hiện đang là Senior Software Engineer tại Bloomberg LP, phòng Derivatives R&D.
  • Người sáng lập Code2.Pro
  • 2010-2011: Developer at Legal & Compliance IT, Anti-money Laundering & Contract Management Systems, Credit Suisse, Singapore
  • 2011-2013: Low-latency Developer, Exchange Links, Trading Systems, Credit Suisse, Singapore
  • 2013-Present: Senior Software Engineer, Derivatives Pricing, R&D, Bloomberg LP, London

Chuyên môn:

  • Các phần mềm giao dịch chứng khoán tốc độ cao.
  • Phần mềm tài chính định giá sản phẩm tài chính phái sinh.
  • "Nội dung câu trả lời là quan điểm cá nhân của tôi, không đại điện cho công ty tôi đang làm hay những công ty trước và các khách hàng trước. Tôi cung cấp thông tin và quan điểm với tư cách cá nhân, các công ty và đối tác có thể có những quan điểm tương đồng hoặc quan điểm khác."
  • Anh Việt sẽ tư vấn miễn phí AMA (Ask Me Anything) cho bạn nào muốn tìm hiểu thêm về ngành này vào sáng thứ 7 hàng tuần lúc 10 AM - 11 AM giờ London (5PM - 6PM giờ Việt Nam). Các bạn vào hỏi trực tiếp tại đây.

Tìm khóa học

Theo quốc gia
Tất cả các cấp học*
VỀ TÁC GIẢ

Chủ nhân của trang "Khang Tìm Hạnh Phúc". Là một người thích viết, du lịch, chia sẻ và luôn mong muốn được hạnh phúc.

Gợi ý giúp bạn