🔙 Quay lại trang tải sách pdf ebook Sổ Tay Nghề Lập Trình Ebooks Nhóm Zalo NGHỀ LẬP TRÌNH TẤT TẦN TẬT NHỮNG ĐIỀU NGƯỜI HỌC LẬP TRÌNH KHÔNG THỂ BỎ QUA Nghề lập trình là nghề có mức lương hấp dẫn, cơ hội thăng tiến và cơ hội việc làm lớn nhất hiện nay. Mức lương sau 2 - 5 năm kinh nghiệm trung bình từ 13 - 30 triệu tùy năng lực (Theo TopDev). Vậy bạn có biết: Học lập trình xong ra làm gì? Ở đâu? Các mức lương phổ biến lập trình viên nhận được là bao nhiêu? Nghề lập trình viên có quan trọng bằng cấp không? Ứng viên lập trình nên viết CV như thế nào? Làm thế nào để trúng tuyển khi đi phỏng vấn ở các công ty phần mềm? Mọi thứ sẽ được bật mí trong: "Nghề lập trình - Tất tần tật những điều người học lập trình không thể bỏ qua". MỤC LỤC 1. Nghề lập trình 1.1 Tổng quan nghề lập trình................................................................................................... 02 1.2. Nghề lập trình web - lựa chọn nào cho người mới bắt đầu......................... 03 1.3. Các vị trí công việc công nghệ thông tin................................................................. 06 1.4. Lập trình viên làm việc ở những đâu?........................................................................ 11 1.5. Lập trình viên nên học ngôn ngữ nào?..................................................................... 12 2. Toàn cảnh ngành CNTT Việt Nam 2.1. Toàn cảnh ngành CNTT Việt Nam.................................................................................. 14 2.2. Những con số thống kê trong ngành CNTT............................................................ 15 3. Trở thành lập trình viên 19 3.1. Mẫu CV cho lập trình viên.................................................................................................. 3.2. Các câu hỏi thường gặp khi phỏng vấn tại các công ty phần mềm................................................................................................. 20 3.3. Kỹ năng phỏng vấn................................................................................................................ 21 3.4. Nên làm gì để bắt đầu theo đuổi nghề lập trình................................................. 23 4. Tổng hợp tài liệu học lập trình cơ bản cho người mới........................... 26 5. Về CodeGym 5.1. Về CodeGym............................................................................................................................... 32 5.2. Trở thành lập trình viên chuyên nghiệp sau 5 tháng với Coding Bootcamp............................................................................... 33 5.3. Lộ trình học tập......................................................................................................................... 34 5.4. Coding Bootcamp đầu tiên tại Việt Nam.................................................................. 35 5.5. Cam kết việc làm...................................................................................................................... 35 6. Đăng ký tuyển sinh 6.1. Hướng dẫn đăng ký xét tuyển......................................................................................... 36 1. NGHỀ LẬP TRÌNH Tổng quan nghề lập trình Nghề lập trình Để biết nghề lập trình là gì, trước tiên chúng ta phải biết lập trình viên là gì? Lập trình viên là người thiết kế, xây dựng và bảo trì các chương trình máy tính (phần mềm). Bằng cách thao tác các đoạn mã (các ngôn ngữ) trên các công cụ lập trình. Lập trình viên có thể tạo ra các chương trình mới và sửa lỗi hay nâng cấp chương trình đó để tăng tính hiệu quả của việc sử dụng máy tính. Các lập trình viên thường làm việc trên nhiều ngôn ngữ lập trình như: lập trình web Java, C++, PHP, ASP, ASP.Net và C#. Vậy, nghề lập trình là nghề thiết kế, xây dựng và bảo trì các chương trình máy tính (phần mềm) bằng cách thao tác các đoạn mã (các ngôn ngữ) trên các công cụ lập trình, nhằm tạo ra các chương trình mới và sửa lỗi hay nâng cấp chương trình đó để tăng tính hiệu quả của việc sử dụng máy tính. Lập trình làm công việc gì? Những người làm nghề lập trình có thể đảm nhận rất nhiều công việc khác nhau. Một trong những công việc chủ yếu của họ chính là viết code. Để làm ra một phần mềm, trước hết người ta phải tạo ra một “bản thiết kế”, mỗi lập trình viên đảm nhiệm một phần việc, sau đó các phần được kết nối lại tạo thành một sản phẩm hoàn chỉnh. Lập trình viên được ví là những thợ “coding” (người ngồi gõ những dòng lệnh (code) trên máy tính), làm ra các phần mềm hoặc chỉnh sửa, phát triển nó dựa trên các công cụ lập trình. Hiện nay, nghề Lập trình được phân thành nhiều mảng chuyên sâu như: Lập trình Web, Lập trình Hệ Thống, Lập trình Database, Lập trình Game, Lập trình Mobile. Nhiệm vụ chính của người lập trình là: Xây dựng mới một ứng dụng Nâng cấp và sửa chữa các ứng dụng có sẵn Xây dựng các chức năng xử lý Nghiên cứu và phát triển công nghệ mới 02 Nghề lập trình 1. NGHỀ LẬP TRÌNH Nghề lập trình web - lựa chọn nào cho người mới bắt đầu Nghề lập trình web – lựa chọn nào cho người mới bắt đầu? Full-stack developer (Lập trình viên Full-stack) là thuật ngữ xuất hiện lần đầu vào năm 2012, từ một thông tin tuyển dụng của Facebook. Kể từ đó, thuật ngữ này đã được sử dụng phổ biến và thảo luận rất nhiều. Thậm chí nó còn trở thành một xu hướng nghề nghiệp rất được quan tâm. Bằng chứng là lượng tìm kiếm của từ khoá “Full-stack developer” trên toàn thế giới ngày càng tăng theo thời gian. Vậy Full-stack thực sự có ý nghĩa là gì? Đâu là mối quan hệ giữa các khái niệm Full-stack với Front-end và Back-end? Nếu là người mới bắt đầu, hẳn bạn cũng rất phân vân về các khái niệm này, phần giải thích sau đây sẽ cho chúng ta thấy các góc nhìn rõ ràng hơn về từng loại công việc và đồng thời mang lại các lời khuyên hữu ích cho những người đang mong muốn có được một sự lựa chọn đúng. Nhập môn lập trình web Hãy bắt đầu bằng việc quay ngược trở lại nguồn gốc của web, để hiểu hơn về cách mà thông tin được hiển thị trên các trang web trên màn hình máy tính của bạn. Tất cả các website đều sử dụng ngôn ngữ HTML để trình bày thông tin theo một cấu trúc mong muốn. Có thể xem HTML chính là phần lõi tạo ra một trang web, như bột để làm bánh vậy – HTML chính là bột và trang web là bánh. Trong những ngày sơ khai của web, tất cả các trang web đều là tĩnh. Có nghĩa là, nếu lập trình viên muốn thay đổi nội dung của một trang web thì họ cần thay đổi mã HTML của nó thông qua việc cập nhật mã nguồn một cách thủ công. Điều này thật là kinh khủng, bởi vì cứ mỗi lần muốn thay đổi thông tin thì lại phải cập nhật các ‰le HTML. Thử tưởng tưởng tượng, với các website cần cập nhật tin tức hằng ngày, chẳng hạn như BBC News, đội ngũ lập trình viên phải hoạt động vất vả như thế nào để có thể cập nhật được số lượng vài trăm trang web trong một ngày thường xuyên như vậy. Chắc hẳn, đây không phải là cách làm tốt. Trên thực tế, ngày nay các trang web như của BBC News sử dụng các website động, có nghĩa là nội dung của các trang web có thể dễ dàng cập nhật và thay đổi. Nói một cách dễ hiểu thì đội ngũ lập trình viên đã tạo ra một “bản mẫu” (template) cho các trang tin, sau đó họ sẽ điền các thông tin cụ thể (chẳng hạn như tiêu đề, nội dung, ảnh…) vào các bản mẫu đó. Với cách làm này thì họ không cần phải sửa mã nguồn mỗi khi muốn cập nhật hoặc đăng bài mới nữa. Vậy các dữ liệu như tiêu đề, nội dung, ảnh… được lưu ở đâu? Đó chính là Cơ sở dữ liệu – một nơi hoàn hảo để lưu trữ và truy xuất các dữ liệu với bất cứ cấu trúc nào mà bạn muốn. Và để làm được điều này, xin mời bạn làm quen với các ngôn ngữ phía máy chủ (server-side language). Có rất nhiều ngôn ngữ làm được việc này, chẳng hạn như Java, C#, PHP, Python, JavaScript… Nghề lập trình 03 1. NGHỀ LẬP TRÌNH Và như vậy, ngay bây giờ, một trang web đang hiển thị trên màn hình máy tính của bạn đã có thể trải qua các bước sau: Dữ liệu của nó được lưu trữ trong một Cơ sở dữ liệu nào đó, chẳng hạn như MySQL. Dữ liệu đó được lấy ra và xử lý bởi một ngôn ngữ server-side nào đó, chẳng hạn như Java hoặc PHP. Mã HTML được sinh ra để hiển thị ngay trên trình duyệt của bạn. Phát triển ứng dụng web Front-end Phát triển ứng dụng web Front-end là nói đến công việc tạo ra giao diện và trải nghiệm người dùng của một website. Công việc này được thực hiện bởi các lập trình viên Front-end. Thông thường, họ sử dụng các ngôn ngữ như HTML, CSS và JavaScript để hoàn thành công việc của mình. Đây chính là 3 ngôn ngữ tối cần thiết để có thể xây dựng được website trên thực tế. HTML được dùng để tạo ra nội dung của trang web, CSS giúp cho trang web trở nên đẹp đẽ hơn và JavaScript giúp người dùng tương tác được với trang web một cách tiện lợi. Nhưng, đây mới chỉ là các công nghệ web Front-end của thời kỳ đầu. Các lập trình viên web Front-end ngày nay có những công cụ mạnh mẽ hơn rất nhiều để hoàn thành xuất sắc nhiệm vụ của mình, đó chính là các ngôn ngữ và nền tảng mới, chẳng hạn như TypeScript, Co‘ee Script, SASS, LESS, Angular, ReactJS, VueJS… Phát triển ứng dụng web Back-end Nếu Front-end là bộ mặt của một website thì Back-end chính là bệ đỡ, là nguồn sống của website đó. Phát triển ứng dụng web Back-end là nói đến công việc sử dụng các ngôn ngữ server-side để thao tác với cơ sở dữ liệu, thiết lập các quy tắc nghiệp vụ, đảm bảo bảo mật… và cung cấp nội dung cho phía Front-end. Với tầm quan trọng như vậy, các lập trình viên web Back-end cần làm việc tốt với nhiều mảng khác nhau, chẳng hạn như cơ sở dữ liệu, bảo mật, các giao thức web, thiết kế kiến trúc hệ thống… và thậm chí là phải biết Front-end. jQuery HTML PS CSS React JS JS Bootstrap 04 Nghề lập trình 1. NGHỀ LẬP TRÌNH Lập trình viên Full-stack Lập trình viên web Full-stack là lập trình viên có khả năng làm việc với cả web Front-end và web Back-end. Tại sao lại cần có những lập trình viên web Full-stack? Bởi vì, mặc dù chúng ta có thể phân chia việc lập trình web thành 2 mảng là Front-end và Back-end, nhưng 2 mảng này đều liên quan rất chặt chẽ với nhau và có ảnh hưởng đến nhau. Đặc biệt, theo xu hướng phát triển hiện nay của mảng web Front-end thì càng ngày các lập trình viên Front-end càng cần có những kỹ năng gần giống với kỹ năng của lập trình viên Back-end. Có nghĩa là, lập trình viên web Front-end cũng cần thành thạo thiết kế kiến trúc, thành thạo các giao thức web, thành thạo bảo mật… và thậm chí là biết các kiến thức phía Back-end. Ngoài ra, một lập trình viên web Full-stack có rất nhiều thuận lợi khi phát triển các các ứng dụng web, so với các lập trình viên chỉ chuyên biệt một mảng là Front-end hoặc Back-end. Lập trình viên web Full-stack hiểu rõ hơn về tổng quan của hệ thống, biết các thành phần được liên kết với nhau như thế nào, biết cách để các bên giao tiếp với nhau tốt nhất, biết cách để tối ưu toàn bộ hệ thống… và nhất là hiểu được công việc của các bên còn lại. Trong thực tế, vẫn có nhiều tranh cãi xung quanh thuật ngữ “Lập trình viên Full-stack”. Lí do chính là bởi vì có nhiều định nghĩa khác nhau và cách hiểu khác nhau về “Full-stack”. Trong khuôn khổ của bài viết này, chúng ta cũng không đặt tham vọng thống nhất được các định nghĩa và cách hiểu. Ngược lại, chúng ta sẽ phân tích ngữ nghĩa để hiểu hơn về một loại công việc mới, thay vì tập trung vào các tranh cãi. Stack – có nghĩa là một tập hợp các công nghệ khác nhau được sử dụng để phát triển và vận hành một sản phẩm. Chẳng hạn, MySQL – PHP – Linux – Apache – Laravel – Docker – Angular có thể được xem là một stack, tất nhiên là có thể thêm nhiều công nghệ khác vào trong stack này, tuỳ thuộc vào nhu cầu của từng sản phẩm. MongoDB – Java – Spring MVC – Tomcat – Linux – ReactJS – Docker – AWS cũng có thể là một stack, và cũng có thể thêm nhiều công nghệ khác vào nữa. Các công nghệ này còn được gọi là các tầng (layer) trong một stack. Như vậy, một lập trình viên Full-stack là một lập trình viên có thể làm việc với tất cả các layer của một stack cụ thể. Không có một lập trình viên Full-stack chung chung, mà cần phải chỉ rõ là “stack” nào (stack đó bao gồm những layer nào). Vậy còn mức độ thuần thục của các công nghệ này thì như thế nào? Tất nhiên, nếu một lập trình viên thành thạo được tất cả các công nghệ trong một stack là điều quá tốt, nhưng điều này thường chỉ đạt được với những lập trình viên khá nhiều năm kinh nghiệm làm việc trong cùng một stack. Đối với các lập trình viên ít kinh nghiệm hơn, thông thường họ sẽ có thế mạnh hơn ở một số công nghệ nào đó, còn các công nghệ còn lại thì họ đủ để dùng để tạo ra sản phẩm. Khi gắn bó với một stack đủ lâu thì mức độ thành thạo của các công nghệ cũng tăng dần lên theo thời gian và thậm chí là lập trình viên đó có thể mở rộng thêm các công nghệ của một stack hoặc bắt đầu làm việc trên các stack khác. Nghề lập trình 05 1. NGHỀ LẬP TRÌNH Các vị trí công việc công nghệ thông tin Kỹ sư phần mềm (Software engineer) Còn được biết đến với các tên gọi tương tự như: Kiến trúc sư phần mềm, kỹ sư hệ thống. Mô tả: Kỹ sư phần mềm là người thiết kế và lập trình phần mềm ở mức hệ thống. Kỹ sư phần mềm là người hiểu các chức năng của hệ thống, trao đổi với khách hàng để xác định các chức năng của hệ thống đang xây dựng. Kỹ sư phần mềm là người giao tiếp nhiều và đồng thời cũng có nền tảng kỹ thuật và các kỹ năng lập trình tốt. Các kỹ năng cần thiết: Phân tích, tư duy logic, làm việc nhóm. Chuyên gia phân tích hệ thống (Systems analyst) Còn được biết đến với các tên gọi như: Chuyên gia sản phẩm, kỹ sư hệ thống, chuyên gia giải pháp, nhà thiết kế kỹ thuật. Mô tả: Chuyên gia phân tích hệ thống là người nghiên cứu và phân tích các vấn đề nghiệp vụ để sau đó đưa ra các thiết kế hệ thống thông tin nhằm cung cấp giải pháp, việc này thường xuất phát từ yêu cầu từ các bộ phận kinh doanh hoặc từ khách hàng. Chuyên gia phân tích hệ thống thu thập các yêu cầu và xác định chi phí cũng như thời gian cần thiết để triển khai dự án. Công việc này đòi hỏi việc kết hợp giữa các kỹ năng nghiệp vụ và kiến thức kỹ thuật, đồng thời phải giao tiếp tốt với các bên. Các kỹ năng cần thiết: Khả năng trích xuất và phân tích các dữ liệu, giao tiếp tốt, chịu được áp lực. 06 Nghề lập trình 1. NGHỀ LẬP TRÌNH Chuyên gia phân tích nghiệp vụ (Business analyst) Còn được biết đến với các tên gọi: Kiến trúc sư nghiệp vụ, chuyên gia thông tin. Mô tả: Chuyên gia phân tích nghiệp vụ là người đóng vai trò trung gian quan trọng, làm việc với cả đội ngũ kỹ thuật, các cấp quản lý và với người dùng cuối. Chuyên gia phân tích nghiệp vụ là người đưa ra các cải tiến về quy trình và hoạt động nghiệp vụ thông qua việc sử dụng các công nghệ kỹ thuật. Vai trò này được xác định theo từng dự án, bắt đầu bằng việc phân tích các nhu cầu của khách hàng, thu thập và tài liệu hoá các yêu cầu, lập kế hoạch để xây dựng thiết kế cho giải pháp công nghệ. Chuyên gia phân tích nghiệp vụ cần phải có hiểu biết về công nghệ, tuy nhiên không nhất thiết phải là một chuyên gia công nghệ. Các kỹ năng cần thiết: Giao tiếp, thuyết trình, hỗ trợ, quản lý dự án và giải quyết vấn đề. Hỗ trợ kỹ thuật (Technical support) Còn được biết đến với các tên gọi: Nhân viên hỗ trợ, quản lý vấn đề. Mô tả: Hỗ trợ kỹ thuật là người giải quyết các vấn đề trong quá trình hoạt động của các hệ thống. Nhiều chuyên gia hỗ trợ kỹ thuật làm việc trong các công ty sản xuất và cung cấp phần cứng, và cũng có nhiều chuyên gia hỗ trợ kỹ thuật ở các doanh nghiệp nhằm hỗ trợ, theo dõi và bảo trì các hệ thống được sử dụng hằng ngày. Nhiều công việc đòi hỏi các chuyên gia với nền tảng và kinh nghiệm kỹ thuật tốt. Các kỹ năng cần thiết: Hiểu biết nhiều về công nghệ, giải quyết vấn đề, giao tiếp, kiên nhẫn và nhẹ nhàng. Nghề lập trình 07 1. NGHỀ LẬP TRÌNH Kỹ sư mạng (Network engineer) Còn biết đến với tên gọi: Kỹ sư phần cứng, chuyên gia mạng. Mô tả: Kỹ sư mạng là một trong các công việc rất cần thiết trong ngành IT, là người thực hiện các thao tác cài đặt, quản trị, duy trì và nâng cấp các hệ thống giao tiếp, xử lý các vấn đề liên quan đến mạng lưới trong các công ty. Kỹ sư mạng cũng là người chịu trách nhiệm về bảo mật, lưu trữ dữ liệu và các chiến lược khôi phục nếu có sự cố xảy ra. Các kỹ năng cần thiết: Các kiến thức chuyên ngành mạng, kỹ năng giao tiếp, lập kế hoạch, phân tích và giải quyết vấn đề. Quản lý dự án (Project manager) Còn biết đến với tên gọi: Trưởng dự án. Mô tả: Quản lý dự án là người tổ chức các nhóm phát triển, phân bố thời gian và tài nguyên để đảm bảo các dự án đạt được các yêu cầu về chức năng, đúng thời gian và nằm trong ngân sách cho phép. Quản lý dự án điều phối tất cả các hoạt động từ khi mới bắt đầu dự án cho đến khi kết thúc. Vai trò này đòi hỏi kinh nghiệm và nền tảng vững chắc về kỹ thuật cũng như các kỹ năng mềm để làm việc tốt với các nhóm phát triển và các nhà quản lý cấp cao. Các kỹ năng cần thiết: Khả năng tổ chức, giải quyết vấn đề, giao tiếp, tư duy rành mạnh, khả năng chịu đựng áp lực công việc. PROJECT 27 08 Nghề lập trình 1. NGHỀ LẬP TRÌNH Nhà phát triển (Developer) Còn được biết đến với các tên gọi: Lập trình viên, nhân viên viết mã. Mô tả: Nhà phát triển là người trực tiếp tạo ra phần mềm thông qua viêc sử dụng các ngôn ngữ lập trình và các công cụ hỗ trợ. Nhà phát triển thường làm việc cộng tác trong các nhóm để đảm bảo các tính năng của sản phẩm được xây dựng và đáp ứng được các yêu cầu như thiết kế ban đầu. Vai trò này đòi hỏi kiến thức và kỹ năng tốt về công nghệ, công cụ và các ngôn ngữ lập trình. Các kỹ năng cần thiết: Hiểu biết về các loại ứng dụng phần mềm, hiểu biết về các ngôn ngữ lập trình, kỹ năng giao tiếp và làm việc nhóm. Kiểm thử viên phần mềm (Software tester) Còn được biết đến với tên gọi: Kiểm thử viên, nhân viên kiểm thử. Mô tả: Kiểm thử viên phần mềm là người tham gia vào công tác đảm bảo chất lượng PHP HTML 5 phần mềm thông qua việc phát hiện các lỗi tiềm tàng và hỗ trợ nhóm phát triển trong việc xử lý các lỗi. Kiểm thử viên phần mềm thực hiện các thao tác phân tích nghiệp vụ, lập kế hoạch kiểm thử, viết các kịch bản kiểm thử, thực thi các ca kiểm thử và viết các báo cáo kiểm thử. Các kỹ năng cần thiết: Tỉ mỉ trong từng chi tiết, khả năng nắm bắt các yêu cầu nghiệp vụ, khả năng sử dụng các hệ thống phần mềm, kỹ năng phân tích và điều tra vấn đề, kỹ năng giao tiếp. Nghề lập trình 09 1. NGHỀ LẬP TRÌNH Chủ sản phẩm (Product owner) Còn được biết đến với các tên gọi: Quản lý sản phẩm. Mô tả: Chủ sản phẩm là người chịu trách nhiệm xác định và đảm bảo các chức năng của hệ thống. Chủ sản phẩm tìm hiều và nghiên cứu các yêu cầu của người dùng cuối, đưa ra các giải pháp để đáp ứng được các yêu cầu, quản lý tiến độ và chất lượng của các chức năng trong suốt quá trình phát triển. Chủ sản phẩm là người có hiểu biết về thị trường, về các hệ thống phần mềm và sử dụng các công cụ quản lý sản phẩm và quản lý dự án. Các kỹ năng cần thiết: Tìm kiếm và phân tích thông tin, kỹ năng quản lý, kỹ năng giao tiếp. ScrumMaster (ScrumMaster) Mô tả: ScrumMaster là người chịu trách nhiệm trong việc đảm bảo các nhóm scrum hoạt động tốt và chuyển giao được sản phẩm chất lượng cao. ScrumMaster nắm rõ khung làm việc scrum, các kỹ thuật phát triển và là người làm việc thường xuyên với nhóm phát triển. ScrumMaster có thể là người am hiểu về công nghệ hoặc không. Các kỹ năng cần thiết: Kỹ năng giao tiếp, kỹ năng lắng nghe, kỹ năng giải quyết vấn đề, khả năng tháo gỡ các khó khăn. 10 Nghề lập trình 1. NGHỀ LẬP TRÌNH Lập trình viên làm việc ở những đâu? Công ty gia công phần mềm cho nước ngoài Có lẽ lợi thế lớn của các công ty gia công nằm ở môi trường chuyên nghiệp và cơ hội tham gia cọ xát các dự án lớn của nước ngoài. Những điều này đặc biệt hữu ích cho những lập trình viên trẻ mới bước từ môi trường giảng đường sang thực tế, và việc đặt mình dưới áp lực của các dự án lớn đòi hỏi các quy trình chặt chẽ sẽ giúp lập trình viên nhanh chóng chuyên nghiệp hóa bản thân mình. Tuy nhiên, môi trường gia công cũng có những hạn chế nhất định, việc vẫn còn ít những dự án xứng tầm cũng như việc trả chi phí cố định theo đầu người ở đa phần các công ty sẽ dần khiến nhiều lập trình viên chán nản và từng bước tìm cho mình những hướng đi mới mẻ hơn. Công ty start-up hoặc công ty làm sản phẩm Làm việc trong một công ty start-up thực sự sẽ đòi hỏi bạn làm việc >100% khả năng của mình. Ngoài ra, do công việc của công ty start-up khá nhiều mà số người lại hạn chế, nên gần như sẽ đòi hỏi bạn phải biết thêm rất nhiều thứ không nằm trong kiến thức của bạn được trang bị ở các công ty lớn. Trong một môi trường như vậy sẽ khiến bạn trưởng thành lên rất nhiều. Lẽ dĩ nhiên môi trường start-up cũng có những hạn chế. Hạn chế thứ nhất là tỉ lệ các công ty start-up thành công là rất thấp, nên đôi lúc việc gắn bó trong một môi trường start-up chờ thời quá lâu mà vẫn chưa thấy đầu ra sẽ khiến bạn lãng phí rất nhiều thời gian và đánh mất nhiều cơ hội, thực tế chứng minh các công ty start-up thành công lớn đa phần đều có những bước tiến thần tốc trong một thời gian nhất định. Hạn chế thứ hai, môi trường start-up đòi hỏi bạn biết rộng hơn là biết sâu. Do đó nếu bạn là một người chuyên sâu về một công nghệ nhất định thì sẽ không thích hợp trong môi trường này. Công ty đa quốc gia Có lẽ vị trí cho lập trình viên trong các công ty này không nhiều khi phần lớn hiện nay vẫn xem Việt Nam là một thị trường phân phối và tiêu thụ. Tuy nhiên gần đây tình hình đã dần khá hơn khi thị trường Việt Nam bắt đầu lớn và chứng tỏ vị trí tiềm năng trong tương lai gần sắp tới. Làm việc trong các công ty này được lợi là quy trình đã khá bài bản nên lập trình viên chỉ cần tập trung vào những hướng nhất định, rất phù hợp cho những ai đam mê đào sâu vào một công nghệ mũi nhọn. Ngoài ra làm việc trong môi trường này cũng giúp lập trình viên mở rộng tầm nhìn lên rất nhiều bởi có cơ hội cọ xát trong một môi trường mang tính quốc tế. Tuy nhiên điểm yếu ở các công ty này là lập trình viên sẽ không có được một cái nhìn tổng quát về công ty như trong môi trường công ty start-up đã nêu trên. Công ty/tổ chức nhà nước Làm trong nhà nước thì lương khá thấp so với thị trường. Tuy nhiên đổi lại môi trường tương đối nhẹ hơn, cũng như sẽ có những giá trị vô hình nhất định và tiềm năng trong tương lai, đặc biệt trong một xã hội mà nhà nước vẫn còn nắm giữ một vai trò quan trọng trong nền kinh tế như Việt Nam hiện nay. Nghề lập trình 11 1. NGHỀ LẬP TRÌNH Lập trình viên cần học những ngôn ngữ nào? Trước khi bàn đến kinh nghiệm và cách học lập trình cho người mới bắt đầu, chúng ta sẽ điểm qua những ngôn ngữ lập trình cơ bản. PHP PHP là mã nguồn mở, miễn phí, hỗ trợ người dùng xây dựng website với chi phí tiết kiệm nhất. Nhờ đó, PHP đã trở nên phổ biến một cách rất nhanh chóng trong những năm qua. Ngay cả những ông lớn như Facebook, Yahoo!, Wikipedia cũng sử dụng tới PHP. Hiện nay, hầu hết các trang web bạn tiếp xúc đều được xây dựng từ PHP. Đây có lẽ cũng là lý do mà phần lớn doanh nghiệp hiện giờ đều ưu tiên tuyển dụng những lập trình viên thông thạo ngôn ngữ này. Tính cộng đồng cao chính là một ưu điểm vượt trội của PHP. Bên cạnh đó, một điểm mạnh khác của PHP đó là có khá nhiều CMS, Framework được xây dựng từ PHP giúp rút gọn quá trình tạo một website. Vì vậy, trên thế giới có khá nhiều lập trình viên sử dụng PHP để xây dựng dự án cho riêng họ hoặc cho khách hàng của họ. Java Xét về mức độ phổ biến, Java cũng không kém phần PHP. Đây là ngôn ngữ lập trình được sử dụng nhiều thứ 3 trên thế giới. Nhắc đến Java là nhắc đến những ứng dụng phần mềm trên di động. Nhưng thực tế, ngôn ngữ này còn làm được nhiều điều hơn thế. Java là một ngôn ngữ lập trình hướng đối tượng, có đặc trưng sâu sắc dựa trên lớp (class-based), được thiết kế để có thể hoạt động đa nền tảng. Do vậy, một nhược điểm không thể không nói của Java đó là sự phức tạp và khó nắm bắt. 12 Nghề lập trình 1. NGHỀ LẬP TRÌNH JavaScript JavaScript là ngôn ngữ lập trình phổ biến nhất trên thế giới trong suốt 20 năm qua. Nó cũng là một trong số 3 ngôn ngữ chính của lập trình web: • HTML: Giúp bạn thêm nội dung cho trang web. • CSS: Định dạng thiết kế, bố cục, phong cách, canh lề của trang web. • JavaScript: Cải thiện cách hoạt động của trang web. JavaScript có thể học nhanh và dễ dàng áp dụng cho nhiều mục đích khác nhau, từ việc cải thiện tính năng của website đến việc chạy game và tạo phần mềm nền web. Hơn nữa, có hàng ngàn template JavaScript và ứng dụng ngoài kia, nhờ vào sự cống hiến của cộng đồng, đặc biệt là Github. Python Được phát triển từ những năm 80s bởi Guido Van Rossum, Python cũng năm trong danh sách ngôn ngữ lập trình phổ biến và dễ tiếp cận. Python là ngôn ngữ mã nguồn mở và sử dụng miễn phí, thậm chí cho các ứng dụng thương mại. Theo đó, Python cho phép các lập trình viên tạo ra một số lượng lớn code dễ đọc trong một khoảng thời gian ngắn. Nhưng Python cũng là một ngôn ngữ Dynamic, hỗ trợ hướng đối tượng và có phong cách lập trình chức năng như những ngôn ngữ khác. Bởi tính mềm dẻo, Python là một trong những ngôn ngữ lập trình bậc cao được sử dụng rộng rãi nhất ngày nay. C và C++ C và C++ là khá quen thuộc với hầu hết các sinh viên trong ngành công nghệ thông tin. Bởi, hai ngôn ngữ này thường được đưa vào chương trình giảng dạy ngay từ những năm đầu. C/ C++ được mệnh danh là nền tảng của khoa học máy tính và lập trình. Tuy nhiên, C và C++ được đánh giá là rất khó để học. Dù vậy, nếu nắm được chắc hai ngôn ngữ này, bạn có khả năng học sang ngôn ngữ khác rất nhanh bới hầu hết các ngôn ngữ đều được phát triển từ một hay một vài khái niệm của C/ C++. Nghề lập trình 13 2. TOÀN CẢNH NGÀNH CNTT VIỆT NAM Ở phần 1, chúng ta đã có những hiểu biết cơ bản về nghề lập trình. Trong phần này, chúng ta sẽ cùng tìm hiểu toàn cảnh ngành CNTT tại Việt Nam, để thấy được những cơ hội của lập trình viên trên thị trường tuyển dụng. Toàn cảnh ngành CNTT Việt Nam 50.000 DOANH NGHIỆP đang hoạt động trong ngành CNTT 35.000 TỶ ĐỒNG nộp ngân sách nhà nước 13.8% TĂNG TRƯỞNG số doanh nghiệp CNTT 91.5 TỶ USD tổng giá trị xuất khẩu 126 TỶ USD doanh thu toàn ngành 530.000 NHÂN LỰC đang làm việc trong ngành CNTT Nhu cầu tuyển dụng nhân lực CNTT Theo báo cáo của bộ Thông tin và Truyền thông cho đến năm 2022, Việt Nam cần tới hơn 530.000 nhân lực IT, trong đó, con số thiếu hụt lên tới hơn 190.000 lập trình viên. 11% 41% 48% 4% 43% 53% 7% 1% 12% 80% Tp. Hồ Chí Minh và Hà Nội có nhu cầu tuyển dụng nhân lực CNTT lớn nhất nước Các công ty gia công là đơn vị có nhu cầu tuyển dụng nhân lực CNTT cao nhất 80% các vị trí tuyển dụng yêu cầu có hơn 2 năm kinh nghiệm làm việc Gia công Sản phẩm Khác Hồ Chí Minh Hà Nội Khác Có kinh nghiệm Mới tốt nghiệp Quản lý Khác 14 Nghề lập trình 2. TOÀN CẢNH NGÀNH CNTT VIỆT NAM THỬ THÁCH Sự trung thành và gắn bó với công ty Hiện tượng nhảy việc xảy ra thường xuyên, gây khó khăn và tổn thất cho các doanh nghiệp trong việc đào tạo nhân lực và đảm bảo nguồn lực cho các dự án. Mức độ trưởng thành và văn hóa làm việc Nhân sự không quan tâm đến việc quan sát và củng cố các kinh nghiệm có được từ môi trường làm việc. Chất lượng nhân sự thấp Nhân sự thiếu kiến thức, kỹ năng và kinh nghiệm để đảm nhận các vị trí trong các dự án phần mềm. Ảnh hưởng của cách mạng công nghiệp 4.0 và phong trào khởi nghiệp Nhiều doanh nghiệp công nghệ mới được hình thành khiến cho thị trường tuyển dụng trở nên sôi động, làm cho mức lương tăng cao nhanh chóng, tạo nên bong bóng lương trong ngành IT. Khả năng giao tiếp bằng ngoại ngữ Nhiều khách hàng từ châu Âu, Châu Mỹ, Nhật Bản, Hàn Quốc đòi hỏi nhân sự phải giao tiếp được bằng ngoại ngữ, đây là một yêu cầu khó khăn đối với nhân sự IT hiện tại. Những con số thống kê trong ngành CNTTTỷ lệ nhảy việc cao YES 60.2% NO 39.8% Hơn 60% nhân sự CNTT mong muốn chuyển sang làm việc ở các công ty khác Các lý do chính để chuyển việc 47.5% Mong muốn lương cao hơn 17.5% Mong muốn thăng tiến 10% Mong muốn môi trường làm việc tốt hơn Nghề lập trình 15 2. TOÀN CẢNH NGÀNH CNTT VIỆT NAM Các động lực chính để gắn bó với ngành CNTT 62% 71% 83% Cơ hội thăng tiến Tự chủ tài chính Nâng cao năng lực Phân bố lương trong ngành CNTT Theo loại sản phẩm $1,024 $1,200 $1,122 $1,063 $1,146 $942 $1,145 applications SaaS E-commerce Mobile Web applications Embedded system Game Others Theo ngôn ngữ lập trình $1,023 .Net $997 PHP $1,196 C++ $1,290 Python $1,100 Java $785 JavaScript $342-$530 Theo số năm kinh nghiệm $1.560-$2.398 $835-$1.340 $525-$1.161 From $2.600 Fresher/Junior (Dưới 2 năm) Dữ liệu tham khảo: Mid-Senior (2-4 năm) Mid-Senior (Từ 5+ năm) Management Level (Từ 5+ năm) Director & Cao hơn (Từ 10 năm) Báo cáo của TopDev năm 2021 Báo cáo của VietnamWorks năm 2021 16 Nghề lập trình 2. TOÀN CẢNH NGÀNH CNTT VIỆT NAM Developer nữ đang theo đuổi công nghệ gì? 30% 20% 10% 0 Java Javascript C C++ Python PHP C# Ruby Swift Go Top nguồn học lập trình 77% HỌC CÁC KHOÁ HỌC ONLINE Stackover™ow.com Codeacademy.com Github.com 33% CẬP NHẬT TIN TỨC Medium.com Techtalk.vn Viblo.asia Slimshare.com Kipalog 29% THAM GIA CÁC SỰ KIỆN CÔNG NGHỆ Vietnam Mobile Day Vietnam Web Summit TechFest Tech Summit Ngoài những trang nước ngoài, những trang blog tại Việt Nam như Techtalk.vn, Viblo, hay Kipalog chính là nơi mà các lập trình viên có thể trò chuyện và chia sẻ kiến thức của mình. Đặc biệt, Techtalk.vn còn thường xuyên có những sự kiện công nghệ với sự góp mặt chia sẻ của các chuyên gia hàng đầu trong thị trường Tech. Nhà tuyển dụng quan tâm điều gì ở CV của Developer Từng có một quan niệm sai lầm rằng nhà tuyển dụng ưu tiên các ứng viên xuất phát từ các trường CNTT Top đầu thị trường. Nhưng thực tế, điều họ quan tâm chính là kinh nghiệm và năng lực làm việc thực tế của ứng viên. Ngoại ngữ cũng đang là một kĩ năng bắt buộc của Developer. 90.50% 72.70% 41.70% 23.70% 8.20% Kinh nghiệm thực tế Demo dự án (Github, portfolio) Học vấn Ngoại ngữ (Tiếng Anh/Nhật) Kỹ năng mềm Nghề lập trình 17 2. TOÀN CẢNH NGÀNH CNTT VIỆT NAM Methodologies thông dụng nhất 85.4% AGILE 62.7% SCRUM 35.2% KANBAN 28.4% PAIR PROGRAMMING Agile và Scrum vẫn là những methodologies thông dụng nhất cho developer để quản lí tiến độ của dự án. Các công nghệ phổ biến % 70.2% 70 60 47.1% 50 42.1% 39.2% 37.8% 40 30 18.3% 16.5% 20 11.4% 10 0 Javascript Java PHP C#/.Net Python Swift Objective-C C++ Dự đoán nhân lực IT tại Việt Nam 2025- 2030 2020 2025 2030 40.000 doanh nghiệp Cần 400.000 nhân lực 70.000 doanh nghiệp Cần 1,2 triệu nhân lực 100.000 doanh nghiệp Cần 1,5 triệu nhân lực Theo báo cáo của TopDev, đến năm 2025, Việt Nam dự kiến có 70.000 công ty công nghệ số với 1,2 triệu nhân lực làm việc trong lĩnh vực này. Đến năm 2030, Việt Nam đặt mục tiêu có 100.000 công ty công nghệ số; 1,5 triệu công nhân kỹ thuật số. 18 Nghề lập trình 3. TRỞ THÀNH LẬP TRÌNHVIÊN Mẫu CV cho lập trình viên Nguyễn Văn A Full Stack Java Developer // OBJECTIVE I have 3 years experience in Web Development, i'm s eeking position of a Junior Java Developer, where i can develop ability myself and develop products for million user. // WORK EXPERIENCE May 05, 1997 098 333 xxxx [email protected] https://github.com/nguyenvana linkedin.com/in/nguyenvana CodeGym Mar 2018 - Present MOG Aug 2017 - Mar 2018 Felizz Pte Ltd Nov 2016 - Jul 2017 RedSand Company Sep 2014 - Sep 2016 AioTech Company Dec 2013 - Jun 2014 // SKILLS OOP, Data structure, Algorithm Java, Spring, MySql Scrum, Git Javascript, React, Flux HTML5, CSS3 Fresher Java Developer - Learning Personal Kanban, Scrum Essence - Learning Java Core, OOP, Data structure, Algorithm - Learning Servlet, Spring, MySql - Making websites using Servlet, Spring, MySql, MVC, ORM ReactJS Developer - Making website https://7saturday.com using ReactJS Flux, HTML5, SCSS, NodeJS Web Developer - Converting Sketch to HTML, CSS - Making website https://seanote.com using ReactJS, Flux, HTML5, CSS Web Developer - Converting PSD, AI, FW, Image to HTML/CSS - Making websites using Wordpress Web Developer - Making websites using CodeIgniter Framework // EDUCATION December 2012 - June 2013 APROTRAIN APTECH EDUCATION // CERTIFICATIONS ACCP i11 - Ha Noi Education 2015 Personal KanBan - Học Viện Agile 2018 Scrum Essence - Học Viện Agile 2018 // PROJECTS - Simple Blog https://github.com/nguyenvana/spring-blog Using Spring MVC, ORM, Bootstrap - Upload, Download File Using Spring MVC, ORM, Bootstrap - Kanban App https://github.com/nguyenvana/kanban-app Using ReactJS - Life Style https://github.com/nguyenvana/life-style Using HTML5, CSS3, SCSS, jQuery Nghề lập trình 19 3. TRỞ THÀNH LẬP TRÌNH VIÊN Các câu hỏi thường gặp khi phỏng vấn tại các công ty phần mềm Các câu hỏi thông thường 1 2 3 Hãy giới thiệu về bản thân 4 Tại sao bạn muốn từ bỏ công việc hiện tại? 7 Bạn biết gì về công ty của chúng tôi? 10 Bạn hi vọng sẽ làm ở công ty này bao lâu? 13 Bạn hình dung mình sẽ ở vị trí nào sau 5 năm nữa? Các câu hỏi khó hơn 1 Những sở thích ngoài công việc của bạn là gì? 4 Công việc này phù hợp với kế hoạch sự nghiệp của bạn như thế nào? Bạn thích điều gì nhất ở công việc hiện tại? 5 Ông chủ hiện tại của bạn là người như thế nào? 8 Tại sao bạn muốn có công việc này? 11 Những điểm mạnh nhất của bạn là gì? 14 Trong mắt của đồng nghiệp, bạn là người như thế nào? 2 Bạn ghét điều gì nhất trong công việc cũ? 5 Mức lương hiện tại của bạn là bao nhiêu? Thách thức lớn nhất bạn gặp phải trong công việc là gì? 6 Bạn nghĩ vai trò của (bất kì điều gì trong công việc hiện nay của bạn) là gì? 9 Bạn có khả năng/kinh nghiệm gì để đảm đương công việc? 12 Những điểm yếu nhất của bạn là gì? 3 Những thành tích nổi bật trong công việc hiện tại (gần nhất) của bạn là gì? 6 Bạn hi vọng được trả lương bao nhiêu? 20 Nghề lập trình 3. TRỞ THÀNH LẬP TRÌNH VIÊN Kỹ năng phỏng vấn “Tim đập chân run” là tình trạng chung của đa số ứng viên khi bắt đầu một cuộc phỏng vấn. Nhưng nếu căng thẳng quá mức, bạn sẽ không thể chứng minh “bản lĩnh” của mình đối với nhà tuyển dụng (NTD). Bạn chỉ cần chú ý một số bí quyết đơn giản sau để không bỏ lỡ cơ hội “lọt vào mắt xanh” của NTD. Đừng liệt kê, hãy chứng minh Ngồi đối diện với bạn là người phỏng vấn. Họ muốn nghe gì từ bạn? Rõ ràng ngoài trách nhiệm công việc, NTD rất muốn nghe những thành tích mà bạn đã đạt được trong công việc trước đây. Nếu NTD hỏi “Anh/chị đã từng quản lý bao nhiêu nhân viên?” đừng đưa ngay con số chính xác. Hãy “đánh bóng” khả năng lãnh đạo của bạn với câu trả lời chi tiết hơn “Ở IBM, tôi quản lý 35 nhân viên. Không chỉ quản lý công việc của nhân viên, tôi còn chịu trách nhiệm tuyển dụng, hướng dẫn và đào tạo nhân viên mới để giúp họ thích nghi với môi trường làm việc. Ngoài ra, tôi còn quyết định mức lương, thưởng cho mỗi nhân viên. Bộ phận chúng tôi đã góp phần tăng doanh số công ty lên 35% chỉ trong vòng một năm”. Biến “không thể” thành “có thể” Bạn sẽ trả lời như thế nào nếu NTD hỏi bạn có biết sử dụng excel thành thạo hay không trong khi bạn thấy thiếu tự tin khi sử dụng phần mềm này? Đừng lắc đầu bảo không ngay lập tức! Hãy nêu những kỹ năng tương tự mà bạn có để “bù đắp” cho khiếm khuyết này. “Tôi có thể sử dụng phần mềm Lotus, vì thế tôi tin mình có thể nhanh chóng sử dụng thành thạo Microsoft excel. Mặc dù thành thật “thú nhận” nhưng bạn sẽ không mất điểm vì đã chứng minh được với NTD về ý chí sẵn sàng học hỏi của bạn. Nghề lập trình 21 3. TRỞ THÀNH LẬP TRÌNH VIÊN Sử dụng cách trình bày “diễn dịch” Hãy dùng cách trình bày “diễn dịch” để mô tả thật chính xác và ấn tượng những thành tích của bạn. Nếu nhà tuyển dụng (NTD) yêu cầu bạn chứng minh khả năng quản lý dự án, hãy cho biết bạn có kinh nghiệm này ở những chức vụ nào, nắm giữ những trọng trách gì,... Sau đó, bạn sẽ đi sâu mô tả cách thực hiện dự án đó, những thành tích mà bạn đã đạt được, nguồn nhân lực bạn đã quản lý, cách phân công công việc và giải quyết những vấn đề nảy sinh trong quá trình thực hiện dự án. Luôn ghi nhớ: Bạn đã vượt qua vòng phỏng vấn đầu tiên Bạn đã trải qua vòng phỏng vấn đầu tiên với NTD. Và giờ đây bạn đang ngồi trong phòng phỏng vấn, trước mặt bạn là chủ tịch hội đồng quản trị, giám đốc tài chính. Bạn hồi hộp quá và mồ hôi bắt đầu rịn ra trên trán. Bạn đừng quá căng thẳng. Hãy hít thở thật sâu để lấy lại bình tĩnh và trấn an rằng bạn đã vượt qua được vòng phỏng vấn đầu tiên. Giờ đây, chính những nhân vật quan trọng hàng đầu đang muốn phỏng vấn bạn. Làm thế nào bạn được những nhân vật then chốt này phỏng vấn? Chỉ có một lý do duy nhất: bạn là một ứng viên sáng giá, khiến các sếp dành thời gian để nói chuyện trực tiếp. Vì thế, đây chính là lúc bạn tự tin thể hiện bản lĩnh của mình. “Đi trước một bước…” Buổi phỏng vấn sắp kết thúc, thế nhưng bạn vẫn chưa giới thiệu được kinh nghiệm “ruột” của mình do bạn đã “lỡ” quên trình bày với NTD. NTD cũng có thể không hỏi sâu về một kỹ năng mà bạn rất tâm đắc như “quản lý các kênh phân phối”. Trong trường hợp đó, bạn hãy chủ động “đề cao” khả năng làm việc của mình. Hãy tranh thủ ngay khi NTD vừa dừng lời để trình bày: “Trước khi kết thúc buổi phỏng vấn, tôi muốn nói thêm về kỹ năng quản lý các kênh phân phối sản phẩm. Tôi nghĩ đây là kinh nghiệm giúp quý công ty xác định kỹ năng của tôi xem có phù hợp với vị trí này hay không…” Bạn cần đi trước NTD một bước để chứng tỏ giá trị thật sự của mình. Hầu hết các cuộc phỏng vấn sẽ làm ứng viên căng thẳng và hồi hộp. Tuy nhiên, đó là “một phần tất yếu” trong quá trình “săn việc”. Nếu biết cách kiểm soát một cuộc phỏng vấn, bạn sẽ nắm trong tay cơ hội tìm được công việc bạn hằng mơ ước. ___Theo Navigos___ 22 Nghề lập trình 3. TRỞ THÀNH LẬP TRÌNH VIÊN Nên làm gì để bắt đầu theo đuổi nghề lập trình Sau khi đã tìm hiểu những điều cơ bản về nghề lập trình, câu hỏi tiếp theo đặt ra là bạn cần bắt đầu từ đâu để trở thành một lập trình viên? Dưới đây là một số lời khuyên CodeGym đưa ra những nhằm giúp các bạn sinh viên biết được mong muốn và cách thức các doanh nghiệp đánh giá, tuyển chọn và tuyển dụng nhân viên trong ngành CNTT, đồng thời định hướng giúp các bạn nên bắt đầu như thế nào để có thể chuẩn bị hành trang cho quá trình đi tìm kiếm và lấy được công việc khi ra trường. Hiểu được quy trình và tiêu chuẩn đánh giá, lựa chọn ứng viên tuyển dụng của doanh nghiệp để có sự chuẩn bị ngay từ bây giờ Để đánh giá năng lực của một ứng viên cho vị trí lập trình viên trình độ fresher (mới ra trường), thông thường doanh nghiệp sẽ đánh giá bạn qua 3 nhóm năng lực: Kiến thức và kỹ năng lập trình nền tảng: 12 nhóm kỹ năng dưới đây chính là những kiến thức và kỹ năng lập trình nền tảng mà doanh nghiệp nào cũng yêu cầu ứng viên nắm chắc để qua được vòng sơ loại và bước vào vòng phỏng vấn tiếp theo. Học và nắm chắc nhóm kiến thức và kỹ năng này là một bước thiết yếu bắt buộc đầu tiên để bắt đầu hành trình đến với công việc bạn theo đuổi. Cộng tác và làm việc nhóm Quy trình sản xuất phần mềm Công cụ làm việc Lập trình căn bản Lập trình Hướng đối tượng Thiết kế và Kiến trúc phần mềm Cơ sở dữ liệu Kiểm thử phần mềm Quy ước mã nguồn và mã sạch Sử dụng hệ điều hành Bảo mật Ngôn ngữ lập trình Kinh nghiệm và khả năng làm sản phẩm thực tế: Những gì các bạn đã học thôi chưa đủ để doanh nghiệp đánh giá năng lực làm việc thực tế của bạn. Bạn cần có sản phẩm cụ thể để giới thiệu và chứng minh với doanh nghiệp khả năng vận dụng những kiến thức đã học vào thực tế công việc. Cách chứng minh tốt nhất chính là đưa ra những sản phẩm, những dự án bạn đã làm được. Hãy cố gắng mô tả cho doanh nghiệp thấy được bạn đã làm được gì, vai trò của bạn trong dự án là gì, bạn đã phát triển sản phẩm hay dự án đó như thế nào. Nghề lập trình 23 3. TRỞ THÀNH LẬP TRÌNH VIÊN Thái độ, kỹ năng làm việc, tương tác nhóm: Trong thời đại ngày nay, các doanh nghiệp luôn nỗ lực tăng hiệu quả công việc thông qua việc tăng hiệu quả phối hợp, làm việc, quản lý công việc của mỗi cá nhân, mỗi nhóm làm việc. Đặc biệt, với các doanh nghiệp phần mềm thì kỹ năng làm việc của mỗi nhân viên sẽ có ảnh hưởng rất nhiều đến hiệu quả và kết quả công việc chung của cả dự án, cả công ty. Do đó, bạn hãy tìm cho mình một nơi đào tạo kỹ năng làm việc, ứng dụng và thực hành tốt những kỹ năng này. Chắc chắn, điều này sẽ giúp bạn tự tin hơn rất nhiều khi tham gia vào các vòng tuyển dụng cũng như khi chính thức tham gia vào môi trường làm việc. Hãy bắt tay vào ngay từ hôm nay để chuẩn bị cho mình những hành trang nói trên Kiến thức và kỹ năng lập trình nền tảng: Hãy bám vào 12 nhóm kỹ năng và kiến thức lập trình mà CodeGym đã tư vấn cho bạn trong bài test để xem bạn nên học những gì. Những kiến thức này có thể bạn sẽ phải học ở rất nhiều nơi như trường học của bạn, từ doanh nghiệp, từ các đơn vị đào tạo lập trình. Hãy nhớ rằng bạn phải học được và làm được. Bạn có thể dễ dàng nắm bắt được những kiến thức thông qua khóa học online hay qua một video từ Youtube. Nhưng để làm được, bạn cần phải tìm đến một đơn vị đào tạo, hoặc một người huấn luyện để giúp bạn thực hành được những kiến thức đã học. Kinh nghiệm và khả năng làm sản phẩm thực tế: Có rất nhiều cách để bạn có thể từng bước xây dựng cho mình một hồ sơ kinh nghiệm. Bạn có thể nộp hồ sơ xin ứng tuyển vào các chương trình thực tập sinh của doanh nghiệp, ở đó bạn sẽ được học và biết hơn về môi trường làm việc thực tế của doanh nghiệp, và có thể có cơ hội tham gia vào làm dự án thực tế, mặc dù có thể vai trò của bạn rất nhỏ. Bạn cũng có thể bắt tay vào làm ngay những sản phẩm cụ thể, nho nhỏ phù hợp với sức mình như tạo ra những ứng dụng đơn giản, tạo một website tĩnh hoặc viết một game nhỏ. Hãy cố gắng hoàn thành sản phẩm dù chỉ ở mức đơn giản nhất, sau đó đưa lên App Store hoặc nếu là website hãy sử dụng một trang cung cấp theme website miễn phí để mọi người có thể nhìn thấy website của bạn. Đây chắc chắn sẽ là những "bằng chứng" rất sinh động thể hiện sự năng động và nghiêm túc của các bạn. Hãy nhớ rằng khi tuyển dụng fresher, doanh nghiệp không đòi hỏi bạn phải có kinh nghiệm làm việc lâu hay phải có sản phẩm lớn. Điều họ muốn đánh giá chính là "khả năng" làm việc thực tế của các bạn. Nếu bạn tự chủ động và đủ khả năng làm ra sản phẩm cho chính mình thì chắc chắn bạn sẽ là một ứng viên "có khả năng" làm việc được. Nếu bạn không biết bắt đầu từ đâu, hãy tìm ngay cho mình một người đỡ đầu, một người huấn luyện, hoặc một nơi đào tạo thực tế có thể giúp các bạn từng bước luyện tập, làm được sản phẩm và tự tin tham gia vào các nhóm dự án phát triển sản phẩm trên thực tế tại các doanh nghiệp. Ngoài ra, nếu bạn có một nhóm bạn hoặc có dự án nào mà bạn có khả năng tham gia, hãy xin tham gia, kể cả không được trả công và bất kể vai trò như thế nào. Tham gia tích cực, nghiêm túc và ghi chép cẩn thận quá trình thực hiện dự án, mô tả phần công việc của bạn và những kiến thức, kinh nghiệm rút ra được từ dự án. Chắc chắn đây sẽ là kinh nghiệm mà nhà tuyển dụng mong muốn được lắng nghe nhất để đánh giá ứng viên tiềm năng. 24 Nghề lập trình 3. TRỞ THÀNH LẬP TRÌNH VIÊN Dù bạn định hướng đi theo chuyên môn BA, AI hoặc IoT hay là lập trình viên, hay thậm chí bạn chưa biết mình thích làm gì, đừng suy nghĩ gì nhiều, hãy bắt đầu ngay từ hôm nay để chuẩn bị thật tốt những hành trang chúng tôi đã tư vấn ở trên. Sau đó, bắt đầu ngay với một công việc mà bạn nhận được. Làm việc thật nghiêm túc, không ngừng học hỏi tiếp và bạn sẽ nhận ra con đường đi của mình. Hy vọng rằng những tư vấn trên có thể bước đầu giúp bạn định hướng trên con đường theo đuổi nghề nghiệp của một lập trình viên chuyên nghiệp. Nếu bạn cần tư vấn, cần một nơi để có thể được hỏi, được học hỏi, hay đơn giản chỉ để được chia sẻ niềm đam mê công nghệ và lập trình, bạn có thể đến với CodeGym. Luôn luôn có rất nhiều chuyên gia, những người bạn sẵn sàng hỗ trợ bạn nhé. Hãy đọc sách Hãy cố gắng đọc thật nhiều sách nhất có thể để tìm hiểu và trau dồi thêm kiến thức về chuyên môn lập trình, các kỹ năng nghề nghiệp cần thiết cho công việc lập trình viên của bạn. Dưới đây là một số quyển sách hay các bạn có thể đọc: Sách phát triển tư duy nghề nghiệp Sách phát triển cá nhân Apprenticeship Patterns Soft Skills: The Software Developer’s Life Manual Coders at Work: Re™ections of the Craft of Programming Code dạo kí sự AgileY The Clean Coder: A Code of Conduct for Professional Programmers The Pragmatic Programmer: From Journeyman to master Pragmatic Thinking and learning Clean Code: A Handbook of Agile Software Craftsmanship Code Complete: A Practical Handbook of Software Construction Đọc sách như một nghệ thuật (Phương pháp đọc sách hiệu quả) Những kẻ xuất chúng Mật mã tài năng Hoàn thành mọi việc không hề khó Sức mạnh của thói quen Tư duy như hệ thống (the organized mind) Nghệ thuật tư duy rành mạch Tâm lý học thành công (Mind set) Cách sống Ba người thầy vĩ đại Nghề lập trình 25 4. TỔNG HỢP TÀI LIỆU HỌC LẬP TRÌNH CƠ BẢN CHO NGƯỜI MỚI Tổng hợp tài liệu đa dạng, từ tổng quan về lĩnh vực CNTT, về nghề lập trình đến những cuốn sách chuyên môn Python, Java, PHP, BigData,… cùng với những kỹ năng cần thiết của dân lập trình. 4.1. Những điều cần biết về ngành CNTT Cuốn tài liệu sẽ giúp các bạn hiểu rõ hơn về nghề CNTT bằng các mô tả chi tiết về công việc chuyên môn của từng vị trí cụ thể, những đòi hỏi về kiến thức, kỹ năng và những tố chất cá nhân tương ứng để nhanh chóng thành công trong công việc. (Đây là tài liệu của Bộ Thông tin và truyền thông được NXB Thông tin và truyền thông). Các nội dung chính bao gồm: • Tổng quan về ngành CNTT • Xu hướng tuyển dụng và triển vọng ngành CNTT Việt Nam • Mô tả các nhóm nghề nghiệp ngành CNTT ở Việt Nam • Một số câu hỏi thường gặp • Thông tin một số trường đào tạo CNTT >> DOWNLOAD NGAY 4.2. Sổ tay nghề lập trình Cuốn Sổ tay nghề lập trình giúp bạn có được những thông tin tổng quan nhất về ngành nghề, định vị bản thân, xây dựng lộ trình học tập và phát triển. Nội dung cuốn sổ tay xoay quanh nghề lập trình: • Tổng quan nghề lập trình; • Các vị trí công việc công nghệ thông tin; • Lập trình viên làm việc ở những đâu; • Lập trình viên nên học ngôn ngữ nào… >> DOWNLOAD NGAY 4.3. Cẩm nang lập trình căn bản Cuốn cẩm nang Lập trình căn bản đặc biệt phù hợp cho những người bắt đầu từ con số 0. Cuốn cẩm nang được thiết kế đơn giản, khoa học giúp bạn dễ dàng nắm bắt. Các khung lý thuyết được trình bày logic cùng các bài luyện tập, thực hành phân bổ từ dễ đến khó giúp bạn dần nâng cao trình độ nhanh chóng. Mục lục: Chương 1: Nhập môn lập trình Chương 2: Biến, kiểu dữ liệu và toán tử Chương 3: Câu lệnh điều kiện Chương 4: Câu lệnh lặp Chương 5: Mảng Chương 6: Hàm Chương 7: Thuật toán tìm kiếm Chương 8: Thuật toán sắp xếp >> DOWNLOAD NGAY 26 Nghề lập trình 4. TỔNG HỢP TÀI LIỆU HỌC LẬP TRÌNH CƠ BẢN CHO NGƯỜI MỚI 4.4. 150 thuật ngữ tiếng Anh chuyên ngành IT Để học tốt lập trình ngoài tư duy logic, tư duy giải quyết vấn đề thì tiếng Anh cũng là một trong những yếu tố quan trọng. Bởi tài liệu học lập trình cũng như thuật ngữ bằng tiếng Anh là đa số. Tài liệu 150 thuật ngữ tiếng Anh trong ngành Công nghệ thông tin tổng hợp những thuật ngữ thường xuyên bắt gặp trong ngành Công nghệ thông tin mà bất cứ lập trình viên nào cũng cần nắm được. >> DOWNLOAD NGAY 4.5. Sách Học Tiếng Anh Song Ngữ Cho Lập Trình Viên Việc học tiếng Anh qua những bài mẫu song ngữ và đã có highlight cụm từ quan trọng là phương pháp vô cùng thú vị và hiệu quả. Sách Học Tiếng Anh Song Ngữ Cho Lập Trình Viên giúp bạn thông qua việc khám phá, phiêu lưu theo những câu chuyện, tình huống, bài học của một sinh viên IT mới ra trường được kể lại: • Tiếp cận với ngôn ngữ chuẩn hơn. • Mở mang hiểu biết qua kiến thức, ý tưởng của tác giả. • Vừa được tiếp xúc với tiếng Anh, vừa được ôn lại những bài toán lập trình cơ bản. >> DOWNLOAD NGAY 4.6. Python cơ bản – một trong những tài liệu Python bằng tiếng Việt hay nhất Tài liệu “Python cơ bản – Cực kỳ cơ bản” (Tác giả: Võ Duy Tuấn) là cuốn tài liệu đầy đủ, dễ đọc, dễ hiểu dành cho bất kỳ ai quan tâm và bắt đầu làm quen với Python, một ngôn ngữ “hot” đang rất được ưa chuộng. Nội dung của cuốn sách bao gồm 15 chương: Chương 1: Hello World Chương 2: Cú pháp Chương 3: Phân chia Module Chương 4: Class Chương 5: Thao tác trên tập tin Chương 6: Xử lý hình ảnh Chương 7: Xử lý ‰le JSON Chương 8: Xử lý ‰le XML Chương 9: Kết nối Redis Chương 10: Kết nối Memcached Chương 11: Kết nối RabbitMQ Chương 12: Restful Client Chương 13: Gửi email với SMTP Chương 14: Socket Programming >> DOWNLOAD NGAY Nghề lập trình 27 4. TỔNG HỢP TÀI LIỆU HỌC LẬP TRÌNH CƠ BẢN CHO NGƯỜI MỚI 4.7. Tài liệu Java cho người mới học 4.7.1. Sách JavaCore Sách bao gồm 10 chương rất chi tiết, văn phong dễ hiểu, chắc chắn sẽ phù hợp với những bạn đang mới bắt đầu tìm hiểu về Java. Sách được website UDS tổng hợp lại nên đảm bảo an tâm về chất lượng. Chương 1: Lập trình hướng đối tượng Chương 2: Nhập môn Java Chương 3: Nền tảng của ngôn ngữ Java Chương 4: Các gói và giao diện Chương 5: AWT Chương 6: Applets Chương 7: Xử lý ngoại lệ Chương 8: Đa luồng Chương 9: Luồng I/O Chương 10: Thực thi bảo mật >> DOWNLOAD NGAY 4.7.2. Tổng hợp kiến thức Java trên 1 trang giấy Chỉ bằng 1 trang A4, các kiến thức Java được hệ thống hóa lại theo dạng sơ đồ cây, giúp bạn nắm được hết những kiến thức cốt lõi của Java. Các nội dung trong tài liệu học Java này bao gồm: • Chú thích trong Java • Định danh/Đặt tên • Phân loại biến • Các kiểu dữ liệu nguyên thủy (cơ sở) • Biểu thức, Toán tử • Cấu trúc điều kiện lặp • Ngoại lệ (Exception) • String và StringBuilder • Mảng • Scanner và Nhập/Xuất với tệp tin >> DOWNLOAD NGAY 4.8. Tài liệu PHP cho người mới học 4. 8.1. Sách lập trình PHP căn bản PHP là một trong những ngôn ngữ phổ biến nhất hiện nay với nhu cầu tuyển dụng cao từ các doanh nghiệp công nghệ. Cuốn sách Lập trình PHP căn bản bao gồm những nội dung cần thiết của một lập trình viên full-stack. Mục lục: Bài 1: Làm quen với PHP (giới thiệu, cấu hình, cài đặt. Bài 2: Tìm hiểu về cú pháp và phương thức PHP. Bài 3: Các phép toán và phát biểu có điều kiện. 28 Nghề lập trình 4. TỔNG HỢP TÀI LIỆU HỌC LẬP TRÌNH CƠ BẢN CHO NGƯỜI MỚI Bài 4: Làm quen với biến form và phương thức get và post. Bài 5: Đối tượng session và một số đối tượng khác Bài 6: Làm quen với khai báo hàm, chèn tệp tin. Bài 7: Cách xử lý chuỗi, mảng. Bài 8: Thao tác trên cơ sở dữ liệu MySQL Bài 9: PHP và Database Bài 10: Xóa, cập nhật dữ liệu dạng mảng >> DOWNLOAD NGAY 4.8.2. Tổng hợp kiến thức PHP trên 1 trang giấy Giống với Java đã kể trên, các kiến thức PHP ở tài liệu này được hệ thống hóa lại theo dạng sơ đồ cây, giúp bạn nắm được hết những kiến thức cốt lõi của ngôn ngữ lập trình PHP. Nội dung chính được chia làm 3 phần lớn: cú pháp cơ bản, mảng và cấu trúc điều kiện. >> DOWNLOAD NGAY 4.9. Think Java – giúp bạn xây dựng tư duy lập trình Cuốn sách THINK JAVA giới thiệu những khái niệm cơ bản nhất về lập trình, phù hợp cho những người mới học. Kiến thức mà cuốn sách cung cấp sẽ giúp bạn làm quen với lập trình, ngôn ngữ Java và xây dựng tư duy để trở thành một lập trình viên chuyên nghiệp. Mục lục: Chương 1: Lối đi của chương trình máy tính Chương 2: Biến, biểu thức và câu lệnh Chương 3: Phương thức rống Chương 4: Câu lệnh điều kiện và đệ quy Chương 5: GridWorld: Phần 1 Chương 6: Phương thức trả giá trị Chương 7: Lặp Chương 8: Chuỗi kí tự Chương 9: Đối tượng có thể biến đổi Chương 10: GridWorld: Phần 2 Chương 11: Tự tạo những đối tượng riêng Chương 12: Mảng Chương 13: Mảng các đối tượng Chương 14: Đối tượng chứa các mảng Chương 15: Lập trình hướng đối tượng Chương 16: GridWorld, phần 3 Phụ lục >> DOWNLOAD NGAY Java GridWorld Nghề lập trình 29 4. TỔNG HỢP TÀI LIỆU HỌC LẬP TRÌNH CƠ BẢN CHO NGƯỜI MỚI 4.10. Sách Thiết kế và xây dựng website Cuốn sách Web Developer – Thiết kế và phát triển website bao gồm tất cả kiến thức từ tổng quát đến cụ thể về việc thiết kế và phát triển một trang web. Mục lục: Chương 1 : Bạn cần gì để thiết kế một trang web Chương 2 : Thiết kế và xây dựng website Chương 3 : Những điều nên và không nên trong thiết kế website Chương 4 : SEO Chương 5 : Những thủ thuật trong thiết kế và lập trình Chương 6 : Phát triển web Chương 7 : Kỹ năng viết bài Chương 8 : Dịch vụ Hosting Chương 9 : Dịch vụ tên miền Chương 10 : Chiến lược phát triển một trang web Chương 11 : Luật bản quyền >> DOWNLOAD NGAY 4.11. Bộ tài liệu các kỹ năng lập trình Bộ tài liệu “Set Kỹ Năng Lập Trình Viên Chuyên Nghiệp Cần Có” cung cấp kiến thức kĩ thuật nền tảng cần thiết cho quá trình phát triển của bất kỳ một lập trình viên nào mong muốn tiến xa trong sự nghiệp. Tài liệu rất phù hợp với các bạn sinh viên, các lập trình viên mới vào nghề. Bộ tài liệu gồm có những kĩ năng mà một lập trình viên không thể thiếu là: • Clean Code (Mã sạch): Hướng dẫn các bạn cách để viết mã sạch. Những dòng code được viết ra không phải chỉ dành cho máy tính, mà còn là để cho con người (bảo trì, phát triển…), đây là điều cực kì quan trọng nhưng thường ít được dạy kĩ càng khi ở trường. • Những nguyên lí lập trình nâng cao (SOLID): Viết code chạy được chỉ là bước đầu tiên. Để trở thành lập trình viên giỏi chúng ta cần phải biết cách viết code dễ bảo trì, dễ mở rộng và linh hoạt hơn. Tất cả các nội dung trên được trình bày chi tiết dưới dạng Slide đi kèm với Video hướng dẫn. >> DOWNLOAD NGAY 4.12. Sách BigData Cuốn sách “Big data – Dữ liệu lớn” là một tác phẩm cho ta nhìn thấy sự thay đổi của dữ liệu lớn đối với khoa học công nghệ cũng như nó sẽ làm thay đổi cuộc sống của chúng ta như thế nào. Dữ liệu lớn là cuốn sách lớn đầu tiên về điều to lớn sắp diễn ra. Mục lục: Chương 1: Hiện Tại Chương 2: Nhiều Hơn Chương 3: Hỗn Độn Chương 4: Tương Quan 30 Nghề lập trình 4. TỔNG HỢP TÀI LIỆU HỌC LẬP TRÌNH CƠ BẢN CHO NGƯỜI MỚI Chương 5: Dữ Liệu Hóa Chương 6: Giá Trị Chương 7: Những Tác Động Chương 8: Những Rủi Ro Chương 9: Kiểm Soát Chương 10: Tiếp Theo >> DOWNLOAD NGAY 4.13. Tổng hợp tài liệu Design Patterns Được xây dựng theo dạng “template” – Design patterns for Beginners là các giải pháp tổng thể đã được tối ưu hóa, được tái sử dụng cho các vấn đề phổ biến trong thiết kế phần mềm mà chúng ta thường gặp phải hàng ngày. Bộ tài liệu bao gồm: • Sách Design Patterns for Beginners Part 1 • Sách Design Patterns for Beginners Part 2 • Tài liệu hướng dẫn: Video + Slide hướng dẫn > DOWNLOAD NGAY Trên đây là những tài liệu học lập trình được tổng hợp từ nhiều nguồn khác nhau. Mong rằng với những tài liệu trên, có thể giúp ích cho việc học tập của bạn. Nghề lập trình 31 5. VỀ CODEGYM Về CodeGym CodeGym là hệ thống đào tạo lập trình hiện đại dành cho mọi đối tượng từ những người mới bắt đầu, sinh viên công nghệ thông tin đến các lập trình viên có tay nghề. Chương trình đào tạo hiện đại chuẩn quốc tế CodeGym là hệ thống đào tạo duy nhất tại Việt Nam xây dựng riêng chương trình đào tạo phát triển phần mềm hiện đại theo tiêu chuẩn quốc tế đang được các doanh nghiệp hàng đầu thế giới như Google, Facebook áp dụng: Agile, Scrum, DevOps. Nền tảng công nghệ đào tạo và học tập ưu việt Hệ thống kho tri thức CodeGym X, phòng thực hành CodeGym Lab, công cụ luyện code CodeGym Bob cùng sự huấn luyện và dẫn dắt 100% thời gian của các các huấn luyện viên là các chuyên gia đầu ngành đến từ các doanh nghiệp, các trường đào tạo CNTT hàng đầu tại Việt Nam và khu vực. Doanh nghiệp đồng hành đào tạo và tuyển dụng học viên Doanh nghiệp hợp tác với CodeGym tham gia vào quá trình đào tạo từ khi thiết kế chương trình theo nhu cầu và xu thế công nghệ của thị trường, đến đánh giá chất lượng học viên qua các giai đoạn và tuyển dụng sau khi học xong. 32 Nghề lập trình 5. VỀ CODEGYM Trở thành lập trình viên chuyên nghiệp sau 5 tháng với Coding Bootcamp Bootcamp Chương trình CodeGym Coding Bootcamp được xây dựng nhằm đào tạo những lập trình viên hiện đại. Hoàn thành khoá học, học viên có đủ năng lực của một lập trình viên chuyên nghiệp, có thể tham gia trực tiếp vào các dự án phần mềm tại doanh nghiệp hoặc tự mình xây dựng các ứng dụng, phần mềm khác nhau. Để đào tạo thành công các học viên ít hoặc không có nền tảng công nghệ thành những lập trình viên full-stack chuyên nghiệp và nhận được việc làm ngay khi học xong chỉ sau 20 tuần, CodeGym đầu tư bài bản cho hoạt động nghiên cứu, phát triển và xây dựng chương trình học riêng phù hợp với đặc điểm người học theo các trình độ khác nhau và yêu cầu thực tế của doanh nghiệp Việt Nam. Đồng thời, CodeGym hợp tác chặt chẽ với doanh nghiệp để đánh giá và nâng cao chất lượng đào tạo, đảm bảo việc làm. Thông qua công nghệ giáo dục, ứng dụng công nghệ thông tin, lộ trình học tập và huấn luyện được cá nhân hoá đến từng học viên thông qua hệ thống phần mềm học tập hiện đại, các huấn luyện viên và giảng viên kèm 1-1 trong 100% thời gian đào tạo nhằm hỗ trợ và đảm bảo học viên hoàn thành được mục tiêu học tập. Nghề lập trình 33 5. VỀ CODEGYM Lộ trình học tập 5 - 6 tuần Bạn đang ở đây 5 tuần Lập trình cơ bản Bạn sẽ bắt đầu quá trình huấn luyện bằng việc học các kiến thức lập trình nền tảng. Lập trình nâng cao Bạn sẽ được đào tạo để nắm vững các khái niệm và kỹ thuật cốt lõi trong lập trình, nâng cao tư duy và kỹ năng lập trình Java/PHP 2 tuần Lập trình web back-end 4 - 7 tuần Bạn sẽ học và làm chủ công nghệ phát triển ứng dụng web với Java/PH P/NodeJs, OOP, Spring MVC/Laravel/ NestJS, Database, REST, Coding Lập trình front-end Bạn sẽ học các ngôn ngữ chính là HTML, CSS, TypeScript, thực hành với các framework như Bootstrap, Angular/React JS, Jquery và luyện các kỹ thuật Prototyping, UX/UI. Convention, Linux, UML. THĂM 3 tuần Project Kỹ Năng Phỏng Vấn DOANH NGHIỆP Doanh nghiệp tuyển dụng Tốt nghiệp Dự án và nghề nghiệp Bạn sẽ hoàn thiện các kỹ năng lập trình của mình thông qua việc tham gia vào các nhóm phát triển phần mềm và chuẩn bị cho việc tốt nghiệp, ứng tuyển vào vị trí lập trình viên trong doanh nghiệp. Dịch vụ làm việc 3 tuần Ứng tuyển nhận việc Bạn sẽ được CodeGym hỗ trợ tham gia các phiên ứng tuyển để nhận được công việc phù hợp với bạn nhất. 34 Nghề lập trình 5. VỀ CODEGYM Coding Bootcamp đầu tiên tại Việt Nam Đào tạo lập trình viên chuyên nghiệp theo phương pháp huấn luyện thực chiến: Nội dung sát với yêu cầu thực tế của doanh nghiệp Thời gian đào tạo ngắn Cường độ huấn luyện cao Thực hành liên tục Huấn luyện cá nhân hoá, hỗ trợ tối đa cho tới khi làm được việc Cam kết việc làm Bạn sẽ được đào tạo toàn diện các kỹ năng nghề nghiệp và sẵn sàng làm việc ngay khi học xong. CodeGym cam kết học viên sẽ nhận được việc làm trong 45 ngày sau khi kết thúc khoá học. Các vị trí lập trình bạn có thể đảm nhiệm: LTV Back-end LTV Front-end LTV Full-stack Nghề lập trình 35 6. ĐĂNG KÝ TUYỂN SINH Hướng dẫn đăng ký xét tuyển Đăng ký tư vấn và xét tuyển 01 02 03 04 05 Bạn có thể liên hệ CodeGym để nhận được tư vấn và đăng ký xét tuyển bằng một trong các cách sau: Gọi đến số hotline: 0246 253 8829 Inbox qua Facebook: www.fb.com/codegym.vn Gửi email đến: [email protected] Nhận lịch hẹn xét tuyển Sau khi nhận được đăng ký xét tuyển và tư vấn cho bạn khoá học phù hợp, bộ phận tuyển sinh sẽ liên hệ đặt lịch hẹn mời bạn đến tham dự phiên xét tuyển tại các cơ sở đào tạo của CodeGym nơi bạn đăng ký. Thi tuyển và phỏng vấn Tại phiên xét tuyển, bạn sẽ trải qua các vòng làm bài kiểm tra GMAT và phỏng vấn. Nhận kết quả xét tuyển Trong vòng 1-2 ngày sau khi tham gia xét tuyển, bộ phận Tuyển sinh sẽ liên hệ thông báo kết quả xét tuyển và hướng dẫn bạn các thủ tục đăng ký nhập học nếu trúng tuyển. Đăng ký nhập học và nộp học phí Bạn nộp đơn đăng ký nhập học và ký thoả thuận cam kết việc làm. 36 Nghề lập trình CÁC CƠ SỞ CỦA CODEGYM CÔNG TY CP CODEGYM VIỆT NAM CodeGym Hà Nội A: Số 23, Lô TT-01, KĐT MonCity, đường Hàm Nghi, Mỹ Đình 2, Nam Từ Liêm, Hà Nội A: Tầng 2, Tòa Hapulico 17T4, Nguyễn Huy Tưởng, Q. Thanh Xuân, Hà Nội E: [email protected] F: fb.com/codegym.vn W: codegym.vn H: 0246 253 8829 CodeGym Việt Trì (Văn phòng tuyển sinh) A: Băng 1, Quang Trung, phường Dữu Lâu, TP. Việt Trì, Phú Thọ E: [email protected] F: fb.com/CodeGymviettri W: codegym.vn H: 096 906 7392 CodeGym Huế A: Tầng 4 - 5, tòa B trường Đại học Phú Xuân cơ sở 1, 28 Nguyễn Tri Phương, phường Phú Xuân, TP. Huế E: [email protected] F: fb.com/codegymhue W: hue.codegym.vn H: 0234 629 1888 CodeGym Thái Nguyên (Văn phòng tuyển sinh) A: 36A, Cách Mạng Tháng Tam, phường Phan Đình Phùng, TP. Thái Nguyên E: [email protected] F: fb.com/codegym.vn W: codegym.vn H: 086 259 6485 CodeGym Quảng Trị A: 133 Lý Thường Kiệt, TP. Đông Hà, Tỉnh Quảng Trị E: [email protected] F: fb.com/CodeGymQuangTri W: codegym.vn/trung-tam-codegym-quang-tri H: 070 272 3723 - 097 737 6416 CodeGym Đà Nẵng A: Tầng 10, 295 Nguyễn Tất Thành, phường Thanh Bình, quận Hải Châu, TP. Đà Nẵng E: [email protected] F: fb.com/codegymdanang W: danang.codegym.vn H: 0236 651 7021 Nghề lập trình 37 Công ty CP CodeGym Việt Nam