Công nghệ Thông tin ngày nay đã là một phần đời sống của chúng ta, trở thành một ngành rất “hot” và được nhiều bạn trẻ lựa chọn. Thế nhưng ngay cả các bạn học sinh-sinh viên và các bậc phụ huynh vẫn còn nhiều định kiến và chưa thật sự hiểu về ngành này do thiếu những thông tin chính xác. Vậy nên mình xin viết một bài phân tích về các xu hướng công việc chính trong ngành Công nghệ dựa vào dữ liệu từ hơn 10,000 post tuyển dụng được crawl từ TopCV - nền tảng tìm kiếm việc làm đang nổi lên trong một vài năm trở lại đây. Đây là một chủ đề mà bạn nên quan tâm bởi vì cuộc cách mạng công nghiệp 4.0 đang tạo ra nhiều ngành nghề mới với background đa dạng (IT, Kinh tế, Khoa học, Thiết kế đồ họa, Ngôn ngữ, ...), chưa kể đến môi trường làm việc phù hợp với những người trẻ và mức thu nhập trung bình thường cao hơn so với mặt bằng chung. Thực tế thì nhiều bạn bè của mình mặc dù không có background IT nhưng hiện đang có công việc tốt và sự nghiệp đầy hứa hẹn trong các công ty công nghệ.

Lưu ý: Khi mình sử dụng cụm từ "công ty công nghệ" thì nó còn bao gồm cả công ty về các lĩnh vực khác nhưng có tuyển các vị trí công việc liên quan đến công nghệ.

I. Các công ty công nghệ thường tập trung ở đâu?

Phần này mình sẽ vẽ 2 biểu đồ Heatmap thể hiện sự phân bố các công ty công nghệ về mặt địa lý ở 2 TP lớn là Hà Nội và TP.HCM. Những bạn làm trong lĩnh vực công nghệ có thể đưa ra các quyết định quan trọng về nơi ở như thuê nhà hoặc mua nhà dựa trên 2 biểu đồ này.
Hà Nội
Như chúng ta có thể thấy, các công ty công nghệ ở Hà Nội thường tập trung chủ yếu ở các quận Cầu Giấy, Đống Đa, Thanh Xuân, Ba Đình, Hoàn Kiếm. Sự phân bố dày đặc hơn ở vùng phía Tây Bắc của trung tâm thành phố.
TP.HCM
Các công ty công nghệ ở TP.HCM có sự phân bố dày đặc hơn so với thủ đô Hà Nội, chủ yếu tập trung ở vùng trung tâm thành phố như là Quận 1, Quận 3 và Quận 4. Phía Tây thành phố cũng tập trung khá nhiều công ty nhưng không có mật độ dày đặc như vùng trung tâm.

II. Các xu hướng công việc chính

Phần này mình sẽ sử dụng thuật toán LDA (Latent Dirichlet Allocation) - thuật toán nổi tiếng được sử dụng để phân loại chủ đề một cách tự động mà trong trường hợp này là các loại hình công việc trong ngành Công nghệ. Nếu muốn tìm hiểu sâu hơn về thuật toán này và cách sử dụng thì các bạn có thể google thêm. Việc phân loại chủ đề sẽ dựa trên các Tag Kỹ năng đã được clean và bổ sung cho đầy đủ trong mỗi post tuyển dụng. 
Ví dụ về phần JD và phần Tag Kỹ năng:
Phần JD

Phần Tag Kỹ năng
Ở phần này, các từ khóa trong wordcloud cũng chính là các kỹ năng cần thiết cho công việc. Số lượng chủ đề mình chọn là 12 dựa vào sự tối ưu của model và khả năng diễn giải từng chủ đề.

Topic 1: Các công việc liên quan đến Quản trị Hệ thống và Quản trị Mạng

Top 20 từ khóa đại diện
Top 10 JD đại diện






Để máy chủ và hệ thống mạng, máy tính của một văn phòng hoạt động trơn tru thì các doanh nghiệp, tổ chức sẽ cần đến Chuyên viên quản trị hệ thống. Họ là những người trình độ chuyên môn cao và kỹ năng kỹ thuật mạnh mẽ có thể chịu trách nhiệm với toàn bộ hệ thống nội bộ.
Các kỹ năng cần thiết dựa vào các từ khóa đại diện:
_ Có kinh nghiệm với cơ sở dữ liệu (Oracle, MySQL, SQL), mạng (LAN, WAN).
_ Khả năng code bằng Python hoặc ngôn ngữ khác
_ Có các chứng chỉ chuyên nghiệp (MCSA, CCNA, CCNP)
_ Có kinh nghiệm về hệ điều hành Linux, Unix và các ứng dụng nền tảng như DNS, Database
_ Kinh nghiệm vận hành hệ thống ảo hóa VMware

Topic 2: Các công việc liên quan đến quản lý, quản trị

Top 20 từ khóa đại diện
Top 10 JD đại diện






Các công việc ở cấp độ Quản lý trong ngành Công nghệ như Product Manager, Project Manager, SCRUM master, ... Các kỹ năng cần thiết dựa vào các từ khóa đại diện là các kỹ năng mềm như kỹ năng giao tiếp, kỹ năng làm việc nhóm, kỹ năng lãnh đạo, kỹ năng lên kế hoạch và tiếng Anh.

Topic 3: Các công việc Mobile Developer sử dụng thư viện React Native

Top 20 từ khóa đại diện
Top 10 JD đại diện






React Native là một framework được tạo bởi Facebook, cho phép các lập trình viên sử dụng JavaScript để làm mobile apps trên cả Android và iOS với trải nghiệm và hiệu năng như native. React Native vượt trội ở chỗ chỉ cần viết một lần là có thể build ứng dụng cho cả iOS lẫn Android.
Việc này giúp chúng ta có thể tiết kiệm được thời gian, công sức, tiền bạc. Giúp tốc độ ra sản phẩm cũng như cập nhật ứng dụng nhanh chóng mặt. Có thể nói React Native là một cross-platform để xây dựng một ứng dụng di động hiệu quả.
Các kỹ năng cần thiết dựa vào các từ khóa đại diện:
_ Có kinh nghiệm với CSS3, HTML5, TypeScript, ES6
_ Kinh nghiệm về thư viện quản lý (Redux)

Topic 4: Các công việc Developer sử dụng ngôn ngữ Java

Top 20 từ khóa đại diện
Top 10 JD đại diện






Ngày nay cơ hội việc làm cho các lập trình viên Java luôn không ngừng rộng mở. Chính sức hút từ cái tên ngôn ngữ lập trình Java đã mở ra một cơ hội cực kì lớn cho những ai đã và đang đi theo con đường lập trình.

Có 10 lý do mà nhiều Developer sử dụng Java đến vậy:

_ Java thuộc loại ngôn ngữ lập trình rất dễ tìm hiểu. Với cú pháp rõ ràng có đi kèm chú thích nhỏ, việc đọc và học ngôn ngữ lập trình Java có thể trở nên dễ dàng và thuận tiện hơn.
_ Java là một ngôn ngữ lập trình hướng đối tượng
_ Hàm dùng sẵn (API function) của Java có số lượng vô cùng phong phú
_ Java có thể xuất hiện ở khắp mọi nơi, từ các thiết bị di động, máy tính để bàn cho đến các ứng dụng web, webservice, các ứng dụng mobile (Android, iOS, Windows Phone, …)
_ Bên cạnh các công cụ Eclipse và Netbean, các công cụ lập trình khác hỗ trợ cho Java ngày nay cũng đang phát triển ngày một nhiều
_ Các thư viện mã nguồn mở đóng vai trò vô cùng quan trọng, đảm bảo Java có thể được sử dụng ở khắp mọi nơi. Java có một kho các framework nguồn mở rất phong phú và đa dạng, được cộng đồng đóng góp, hỗ trợ.
_ Java là ngôn ngữ lập trình miễn phí
_ Hỗ trợ tài liệu xuất sắc – Javadocs
_ Java là nền tảng độc lập, có thể “viết một lần chạy mọi nơi”. Java cho phép bạn viết code một lần và có thể thực thi ở nhiều hệ điều hành khác nhau. Điển hình như việc bạn có thể viết code trên Hệ điều hành Windows và chạy trên nền tảng Linux, Mac OS…
_ Sự hỗ trợ cộng đồng tuyệt vời

Các kỹ năng cần thiết dựa vào các từ khóa đại diện:

_ Có kinh nghiệm lập trình với một trong các framework: Struts, Spring MVC, Hibernate
_ Có kinh nghiệm làm việc với các cơ sở dữ liệu như SQL Server, Oracle, MongoDB hoặc MySQL

Topic 5: Các công việc Front-End Developer

Top 20 từ khóa đại diện
Top 10 JD đại diện






Lập trình viên Front-end là người tập trung phát triển phía Client Side, nói một cách đơn giản dễ hiểu là tập trung vào mảng phát triển xây dựng giao diện và trải nghiệm cho người dùng, là người phụ trách phát triển hiển thị và trải nghiệm người dùng cho ứng dụng web. Front-end Developer chính là người quyết định cái nhìn đầu tiên của người dùng về trang web, đồng thời mang lại một trang web dễ dàng thao tác và sử dụng.

Các kỹ năng cần thiết dựa vào các từ khóa đại diện:

_ Thành thạo HTML5, CSS3, Bootstrap và ngôn ngữ lập trình JavaScript, TypeScript
_ Thành thạo các framework front-end (Angular, ReactJS, VueJS, …)
_ Thành thạo Jquery, LESS/SASS

Topic 6: Các công việc liên quan đến Sale 

Top 20 từ khóa đại diện
Top 10 JD đại diện






Công việc chính của Nhân viên kinh doanh là cung cấp các giải pháp hoàn thiện và thích hợp cho từng khách hàng nhằm tăng doanh thu và lợi nhuận cho doanh nghiệp. Theo đó, một Nhân viên kinh doanh cần phải tập trung hướng về mục tiêu, chủ động tìm kiếm và tạo dựng mối quan hệ với các khách hàng tiềm năng.
Các công việc chính:
_ Giới thiệu, tư vấn và thuyết phục các đối tượng khách hàng sử sản phẩm/dịch vụ của doanh nghiệp
_ Tìm kiếm, duy trì và phát triển mạng lưới khách hàng và đối tác tiềm năng thuộc nhiều lĩnh vực (trực tiếp hoặc gián tiếp)
_ Giải quyết các vấn đề và phàn nàn của khách hàng để đảm bảo độ hài lòng, tin cậy của khách
_ Báo cáo lên các cấp quản lý về nhu cầu, vấn đề, mối quan tâm của khách hàng; hoạt động của đối thủ cạnh tranh và tiềm năng trong việc phát triển kinh doanh sản phẩm/dịch vụ
Các kỹ năng cần thiết dựa vào các từ khóa đại diện chủ yếu là các kỹ năng mềm và thông thạo phần mềm CRM.

Topic 7: Các công việc Mobile Developer (iOS, Android)

Top 20 từ khóa đại diện
Top 10 JD đại diện






Mobile Developer là những lập trình viên chuyên về công nghệ di động như phát triển ứng dụng trên các nền tảng Android và iOS. Nhiệm vụ chính của một Mobile Developer là xây dựng và phát triển các chức năng của ứng dụng di động, không ngừng cải thiện và tối ưu hóa ứng dụng di động để đáp ứng nhu cầu người dùng.

Các kỹ năng cần thiết dựa vào các từ khóa đại diện:

Android Developer:
_ Thành thạo Flutter, Java, Kotlin
_ Có kinh nghiệm về OOP, Design Pattern (MVC, MVP)
_ Có kinh nghiệm làm việc theo mô hình Agile/Scrum
_ Thành thạo Unity nếu code game trên di động
_ Có kinh nghiệm làm việc với hệ quản trị cơ sở dữ liệu SQLite
_ Có kinh nghiệm về UI/UX
iOS Developer:
_ Thành thạo Swift
_ Có kinh nghiệm về OOP, Design Pattern (MVC, MVP)
_ Có kinh nghiệm làm việc theo mô hình Agile/Scrum
_ Thành thạo Unity nếu code game trên di động
_ Có kinh nghiệm làm việc với hệ quản trị cơ sở dữ liệu SQLite
_ Có kinh nghiệm về UI/UX

Topic 8: Các công việc Web Developer sử dụng ngôn ngữ PHP

Top 20 từ khóa đại diện
Top 10 JD đại diện






Dựa theo một số bài viết trên Facebook của một số trang lập trình nổi tiếng trên thế giới, họ cho rằng PHP đã lỗi thời và sẽ bị loại bỏ trong tương lai. Nhưng thực tế thì rất nhiều website nổi tiếng như Facebook, Github, Wikipedia, Pornhub, Wordpress, ... vẫn đang sử dụng PHP. Và có thể bạn chưa biết, theo thống kê của W3Techs, khoảng 78,9% website hiện tại đang sử dụng PHP, có nghĩa là, cứ 10 website bạn truy cập thì có đến 8 website sử dụng PHP. Và như chúng ta có thể thấy, vẫn đang có rất nhiều tuyển dụng PHP developer trên TopCV.

Các kỹ năng cần thiết dựa vào các từ khóa đại diện:

_ Có kinh nghiệm lập trình Front-end: HTML, Ajax, CSS, Javascript, Jquery, Bootstrap
_  Có kinh nghiệm về mô hình MVC
_ Có kinh nghiệm làm về framework Laravel, Codeigniter
_ Có kinh nghiệm về CSDL (MySQL, SQL,...)

Topic 9: Các công việc liên quan đến thiết kế đồ họa, hình ảnh, giao diện mà đại diện chính là UI/UX Designer

Top 20 từ khóa đại diện
Top 10 JD đại diện






UI là viết tắt của từ User Interface có nghĩa là giao diện người dùng. Hiểu một cách đơn giản nhất thì UI bao gồm tất cả những gì người dùng có thể nhìn thấy như: màu sắc web, bố cục sắp xếp như thế nào, web/app sử dụng fonts chữ gì, hình ảnh trên web có hấp dẫn hay không, ...
Trong thiết kế thì UI đóng vai trò là yếu tố truyền tải thông điệp từ người thiết kế, nhà cung cấp dịch vụ, sản phẩm tới người dùng. Đơn giản hơn thì nhà thiết kế đóng vai trò như 1 lập trình viên hoặc nhà xây dựng để bất cứ ai cũng có thể hiểu và sử dụng được sản phẩm của họ.
UX là viết tắt của từ User Experience có nghĩa là trải nghiệm người dùng. Đơn giản hơn thì UX là những đánh giá của người dùng khi sử dụng sản phẩm như: Website hay App của bạn có dễ sử dụng hay không, có thân việc bố trí sắp xếp bố cục như vậy đã được hay chưa? Sản phẩm đó có đạt được mục đích đề ra không.
Người làm về UX hay còn gọi là UX Designer. UX Designer sẽ nghiên cứu và đánh giá về thói quen và cách mà khách hàng sử dụng rồi đánh giá về sản phẩm website/App nào đó. Sử dụng và đánh giá ở đây đơn giản là những vấn đề: tính dễ sử dụng, sự tiện ích, sự hiệu quả khi hệ thống hoạt động.
UI/UX Designer là những người chuyên đi thiết kế giao diện/trải nghiệm người dùng cho sản phẩm. Nó có thể là giao diện của một website hoặc một app điện thoại. Nhiệm vụ chính là đảm bảo tính thẩm mỹ và sự tiện dụng của nó.

Topic 10: Các công việc Devops Engineer/Fullstack Developer

Top 20 từ khóa đại diện
Top 10 JD đại diện






Trong topic này thì Devops Engineer nổi trội hơn nhiều so với Fullstack Developer nên mình sẽ tập trung giới thiệu về Devops Engineer.
Đơn giản thì DevOps là một văn hóa làm việc đề cao sự hợp tác, hướng đến việc kéo hai giai đoạn phát triển – vận hành xích lại gần nhau hơn. Cụ thể, chu trình phát triển phần mềm (Software Development Life Cycle) bao gồm hai giai đoạn chính: phát triển và vận hành.
_ Giai đoạn phát triển (development) bao gồm phần việc của designer, developer, QA QC…
_ Giai đoạn vận hành (operations) có sự tham gia của system engineer, system administrator, operation executive, release engineer, DBA, network engineer, security engineer…
Hai giai đoạn này tương đối tách rời nhau, đặc biệt là ở các công ty có quy mô trung bình trở lên. Vì vậy, khái niệm DevOps ra đời nhằm tối ưu hóa chu trình phát triển phần mềm, giúp sản phẩm IT được release nhanh và thường xuyên hơn.
Về lý thuyết, người trong ngành thường coi DevOps là một “phương pháp” hay “văn hoá”. Tuy nhiên, ta lại thấy có nhiều công ty tuyển dụng vị trí “DevOps Engineer”. Vì thực tế, hiện tại DevOps không chỉ được coi là phương pháp, mà còn là một chức danh công việc.
DevOps Engineer thường là người có kinh nghiệm về cả mảng phát triển sản phẩm lẫn vận hành hệ thống. Ngoài ra, đôi khi họ còn có kỹ năng kinh doanh và giao tiếp tốt với cả khách hàng. Ngày càng có nhiều công ty tìm kiếm những nhân tài như vậy. Vì họ tin rằng, để các chuyên gia về DevOps phụ trách lĩnh vực này sẽ đảm bảo toàn bộ quá trình phân phối sản phẩm diễn ra hiệu quả và tự động hoá ổn định.

Các kỹ năng cần thiết dựa vào các từ khóa đại diện:

_ Thành thạo ngôn ngữ Java, Python
_ Kinh nghiệm làm việc với database: MySQL, MongoDB
_ Kinh nghiệm làm việc với các ứng dụng Cloud như AWS
_ Có kinh nghiệm với các công cụ CI/ CD
_ Có kinh nghiệm trong việc quản lý hệ thống Linux
_ Có kinh nghiệm làm việc với Docker

Topic 11: Các công việc .NET Developer

Top 20 từ khóa đại diện
Top 10 JD đại diện






.NET (hay  còn gọi Dot Net) là một Framework cho phép Developer sử dụng để thực hiện phát triển cho các website, ứng dụng. Nền tảng này được phát triển bởi  Microsoft và nó chủ yếu chạy trên hệ điều hành Microsoft Window. 
Bạn nên chú ý rằng, .NET không được xem là loại ngôn ngữ lập trình mà là nền tảng cho phép các ngôn ngữ lập trình khác như C# hoặc Java có thể sử dụng để thực hiện tạo nên các ứng dụng hoặc website trên Internet. 
Cấu tạo của .NET chính là bộ code được viết sẵn bởi các lập trình viên hàng đầu của Microsoft. Những lập trình viên khác thường sử dụng nền tảng này nhằm mục đích phát triển ứng dụng, dịch vụ web một cách nhanh chóng hơn.
Một số ngôn ngữ lập trình được ứng dụng trên nền tảng .NET bao gồm: C#, VB.Net,..

Các kỹ năng cần thiết dựa vào các từ khóa đại diện:

_ Thành thạo C#, ASP.NET, MVC
_ Kiến thức về OOP
_ Có kinh nghiệm làm việc với các Database: SQL Server, MySQL, Oracle

Topic 12: Các công việc Tester và QA/QC

Top 20 từ khóa đại diện
Top 10 JD đại diện






_ Quality Assurance (viết tắt là QA): Bao gồm các hoạt động đảm bảo việc thực hiện các quy trình, thủ tục và tiêu chuẩn trong ngữ cảnh để xác minh của phần mềm phát triển và yêu cầu dự định.
_ Quality Control (viết tắt là QC): Bao gồm các hoạt động đảm bảo việc xác định của 1 phần mềm được phát triển đối với các yêu cầu tài liệu (hoặc không trong 1 số trường hợp).
_ Testing: Bao gồm các hoạt động đảm bảo việc xác định các bug/error/defects trong 1 phần mềm.

Các kỹ năng cần thiết dựa vào các từ khóa đại diện:

_ Các kỹ năng mềm như là Giao tiếp, Lãnh đạo, Làm việc nhóm, tiếng Anh và Lên kế hoạch
_ Có kinh nghiệm về mô hình Agile/Scrum
_ Chứng chỉ ISTQB
_ Có kinh nghiệm về phần mềm theo dõi lỗi và quản lý dự án nhanh Jira

III. Kết bài

Trên đây là bài phân tích của mình về các xu hướng công việc trong ngành Công nghệ dựa vào dữ liệu từ TopCV. Bài viết chỉ mang tính chất phân tích giới thiệu sơ bộ, nếu thực sự muốn xây dựng sự nghiệp trong thế giới công nghệ thì bạn có thể tìm hiểu sâu hơn trên Google, YouTube, các khóa học Coursera, hoặc sách như cuốn Người Trong Muôn Nghề: Ngành IT có gì? và DevUP của Spiderum. Rất nhiều điều thú vị và mới lạ đang chờ các bạn khám phá!
Do mình không có background IT và cũng chỉ mới là tay mơ trong ngành nên chắc hẳn bài viết sẽ có một số sai sót, rất mong nhận được những comment phản hồi đóng góp


Sắp tới mình sẽ viết thêm nhiều bài viết về khoa học dữ liệu, phân tích insight từ các bộ dữ liệu hay, và cả những chủ đề thú vị khác nữa. Nếu không muốn bỏ lỡ thì hãy follow mình nhé :))