--------------- <> -----------------
--- KHOA HỌC - CÔNG NGHỆ - GIÁO DỤC - VIỆC LÀM ---
--- Học để đi cùng bà con trên thế giới ---

Tìm kiếm trong Blog

Nhập môn ngành CNTT (1) - Tổng quan về nghề (1)

1. Mở đầu

Có thể bạn đã bước vào ngành học này với những lý do khác nhau. Tuy nhiên, tôi đoán là bạn đang mong muốn đi theo một trong ba hướng sau:

- [1] Trở thành một Chuyên gia Khoa học máy tính (KHMT): Bạn đam mê nghiên cứu bản chất của tính toán, sáng tạo thuật toán mới, đào sâu vào Trí tuệ nhân tạo (AI) và các hệ thống lõi

- [2] Trở thành một Kỹ sư CNTT: Bạn muốn làm chủ công nghệ, vận hành hạ tầng, phát triển phần mềm và giải quyết các bài toán thực tế của doanh nghiệp

- [3] Làm việc liên quan đến Kỹ năng số và Ứng dụng phổ thông: Bạn nhận ra mình không thích làm công việc thuần kỹ thuật (như lập trình hay quản trị mạng), nhưng muốn ứng dụng công nghệ làm "công cụ" cho các lĩnh vực khác (Kinh doanh số, Marketing, Quản trị, Sáng tạo nội dung...), hoặc đơn giản là bạn đang trong giai đoạn trải nghiệm để tìm kiếm định hướng phù hợp nhất cho bản thân.

Xem hình minh họa,


Mỗi hướng đi đều có đặc thù và giá trị riêng. Một lựa chọn tốt không phải là lựa chọn "hoành tráng" nhất, mà là lựa chọn “phù hợp nhất” với năng lực của bạn và đáp ứng được thị trường lao động.

Để biết bạn thực sự hợp với hướng nào, chúng ta sẽ tìm hiểu sơ qua về mỗi hướng công việc ngay sau đây.

1.1 Chuyên gia KHMT

Để trở thành Chuyên gia KHMT, dưới đây là những thông tin cơ bản giúp bạn bước đầu định hình về lĩnh vực này:

Muốn trở thành Chuyên gia KHMT cần học những gì?

- Nền tảng Toán: Toán rời rạc, Giải tích, Đại số tuyến tính, Xác suất thống kê. Đây là kiến thức nền giúp bạn hiểu bản chất thuật toán, tối ưu hiệu năng, xây dựng các mô hình và hệ thống có độ tin cậy cao

- Cấu trúc dữ liệu và thuật toán: Mảng, danh sách liên kết, cây, đồ thị, thuật toán tìm kiếm, sắp xếp, quy hoạch động

- Lý thuyết máy tính & Hệ thống lõi: Khái niệm về tính toán (Automata), Hệ điều hành, Kiến trúc máy tính, Mạng máy tính, Trình biên dịch

- Lập trình hệ thống / Đồng thời (Concurrent) & Song song (Parallel)

- Cơ sở dữ liệu

- Kỹ thuật phần mềm (design pattern, architecture, testing, CI/CD)

- Các hệ thống phân tán

- Lĩnh vực chuyên sâu (chọn 1 hoặc 2 hướng và tập trung thật sâu): 

    + Trí tuệ nhân tạo (AI) & Học máy (Machine Learning/Deep Learning)

    + Xử lý ngôn ngữ tự nhiên (NLP) & Thị giác máy tính (Computer Vision)

    + Mật mã học (Cryptography) & An toàn thông tin

    + Khoa học dữ liệu (Data Science) & Xử lý dữ liệu lớn (Big Data)

Sau khi ra trường làm được những công việc gì?

- Kỹ sư AI / Học máy (AI/Machine Learning Engineer): Xây dựng, huấn luyện và tối ưu các mô hình AI/ML

- Nhà khoa học dữ liệu (Data Scientist): Phân tích dữ liệu lớn, tìm ra tri thức và dự báo xu hướng

- Nghiên cứu viên AI/KHMT (Research Scientist): Làm việc tại các viện nghiên cứu, trường đại học, trung tâm R&D để tối ưu, phát minh ra thuật toán, công nghệ mới

- Kỹ sư Xử lý hình ảnh / Ngôn ngữ tự nhiên: Phát triển các hệ thống nhận diện khuôn mặt, dịch thuật tự động, chatbot thông minh

- Kỹ sư Thuật toán (Algorithm Engineer): Tối ưu tốc độ xử lý, bộ nhớ cho các hệ thống phức tạp (search engine, game engine, giao dịch tài chính)

Ngoài ra, bạn còn có thể làm việc ở nhiều vị trí khác như: Software Engineer, Data Engineer, MLOps Engineer, Security Engineer.

Môi trường làm việc ở đâu?

- Các tập đoàn / công ty công nghệ lớn

- Phòng nghiên cứu & Phát triển (R&D) thuộc doanh nghiệp công nghệ, ngân hàng, quỹ đầu tư

- Viện nghiên cứu & Trường Đại học (nghiên cứu khoa học, giảng dạy)

- Công ty Khởi nghiệp AI / DeepTech

- Công ty outsourcing và doanh nghiệp đang chuyển đổi số

Mức thu nhập và cơ hội thăng tiến?

Mức thu nhập trong ngành KHMT (cũng như CNTT) thay đổi khá nhanh theo thị trường, kinh nghiệm, kỹ năng và quy mô công ty.

Bạn có thể cập nhật mức lương thực tế bằng cách tìm kiếm tên vị trí + “mức lương” trên các trang tuyển dụng hoặc hỏi AI. Ví dụ: “senior data engineer mức lương tại Việt Nam”

Về cơ hội thăng tiến, trong hầu hết tổ chức bạn có 2 hướng phát triển chính:

- Hướng chuyên môn: Từ Engineer > Senior > Staff/Principal > Distinguished Engineer > …

- Hướng quản lý: Từ Team Lead > Manager > Director > …

Ngoài ra còn có thể chuyển sang hướng khởi nghiệp hoặc trở thành chuyên gia độc lập. Việc lựa chọn hướng phát triển phụ thuộc vào năng lực, tố chất và định hướng cá nhân của bạn.

AI có thay thế được bạn không?

Bạn sẽ có nguy cơ bị AI thay thế nếu:

- Chỉ biết “gọi thư viện” mà không hiểu bản chất: Biết dùng PyTorch, TensorFlow nhưng chỉ dừng ở mức ráp mã nguồn, thiếu nền tảng toán học và không nắm được nguyên lý cốt lõi phía sau

- Ngừng cập nhật tri thức: Ngành KHMT thay đổi rất nhanh. Nếu không theo dõi những thay đổi về công nghệ, kỹ thuật và nghiên cứu mới, kiến thức của bạn sẽ nhanh chóng bị lạc hậu

- Thiếu tư duy giải quyết bài toán thực tế: Có giải pháp tốt nhưng không chuyển hóa được thành sản phẩm mang lại giá trị thực tế

AI là sản phẩm do con người tạo ra. Nó chỉ có khả năng thay thế những công việc mang tính lặp lại hoặc lập trình cơ bản.

Ngược lại, AI đang trở thành công cụ hỗ trợ đắc lực. Những chuyên gia biết tận dụng AI để đẩy nhanh nghiên cứu, tối ưu giải pháp và tạo ra sản phẩm mới chính là người sẽ trụ vững trong thị trường lao động.

1.2 Xem và đọc thêm

Sử dụng các từ khóa sau, tìm kiếm trên Youtube, Google, hoặc hỏi Chatbot để xem và đọc thêm: chuyên gia KHMT cần học gì? Làm được những việc gì? Ở đâu? Mức thu nhập? Tác động của AI tới nghề nghiệp liên quan đến KHMT.

1.3 Bài tập và câu hỏi

Bài tập

Bài tập 1.1: Bạn có tố chất và năng lực để theo ngành KHMT không? Tại sao?

Bài tập 1.2: Nếu bạn dự định theo ngành KHMT, hãy nhờ Chatbot liệt kê một lộ trình học cho bản thân.

Câu hỏi

Câu 1a: Đây là một trong ba hướng đi chính mà sinh viên CNTT thường mong muốn khi bước vào ngành học này? Phát biểu nào không đúng?

A. Trở thành một chuyên gia Khoa học máy tính

B. Trở thành một kỹ sư CNTT

C. Trở thành một chuyên gia về giống cây trồng

D. Làm việc liên quan đến Kỹ năng số và Ứng dụng phổ thông

Câu 1b: Để trở thành Chuyên gia KHMT, nền tảng Toán mà bạn cần học gồm những môn nào?

A. Toán rời rạc, Giải tích, Đại số tuyến tính, Xác suất thống kê

B. Đại số đại cương, Hình học vi phân, Lý thuyết số, Toán cao cấp A1

C. Toán kinh tế, Phương trình vi phân, Tối ưu hóa tuyến tính, Thống kê doanh nghiệp

D. Logic học, Toán tài chính, Giải tích hàm, Đại số trừu tượng

Câu 1c: Đâu là một trong các lĩnh vực chuyên sâu được đề xuất cho Chuyên gia KHMT?

A. Quản trị hệ thống mạng

B. Phát triển giao diện người dùng website

C. Trí tuệ nhân tạo (AI) & Học máy (Machine Learning/Deep Learning)

D. Quản lý dự án phần mềm theo mô hình Agile/Scrum

Câu 1d: Trong thời đại AI phát triển, tại sao việc "chỉ biết gọi thư viện" mà không hiểu bản chất lại khiến một chuyên gia KHMT có nguy cơ bị AI thay thế?

A. Vì các thư viện hiện nay đều do AI tự viết ra nên con người không được phép sử dụng

B. Vì khi chỉ dừng ở mức ráp mã nguồn, thiếu nền tảng toán học và nguyên lý cốt lõi, công việc đó thực chất chỉ mang tính lặp lại hoặc lập trình cơ bản mà AI hoàn toàn có thể làm được

C. Vì các công ty công nghệ lớn hiện nay cấm nhân viên sử dụng các thư viện mã nguồn mở có sẵn

D. Vì việc gọi thư viện làm giảm tốc độ xử lý của máy tính, khiến giải pháp không thể ứng dụng vào thực tế

-----

Bài sau: Nhập môn ngành CNTT (2) - Tổng quan về nghề (2)

TinHocChoNguoiDiLam (3): Tạo tài liệu ghi chép trên mạng

Bài trước: TinHocChoNguoiDiLam (2): Tổ chức, lưu trữ dữ liệu

-----

3. Tạo tài liệu ghi chép trên mạng

Tới bài học này, bạn đã biết:

- Tạo thư mục trên ổ đĩa, trên mạng

- Tạo tập tin trên ổ đĩa, trên mạng

- Không nên để dữ liệu (tập tin, thư mục) trên ổ đĩa C:\, Documents, Desktop vì dễ bị mất dữ liệu

- Biết cách đặt tên tập tin, thư mục (không nên dùng dấu tiếng Việt, nên viết tên liền nhau, viết hoa chữ cái đầu tiên của mỗi chữ - ví dụ: TaiLieu, DuLieu, HinhAnh)

Tùy theo nhu cầu sử dụng, bạn sẽ tạo ra các loại tập tin khác nhau.

Phần này sẽ hướng dẫn bạn sử dụng máy tính để tạo ra một tài liệu, giúp bạn ghi chép các thông tin cần thiết trong học tập, cũng như trong cuộc sống.

Học và tự học là một kỹ năng, hay năng lực cần thiết của mỗi người. Ghi chép chính là một công việc quan trọng của quá trình học và tự học.

3.1 Tầm quan trọng của ghi chép

Mặc dù chúng ta có rất nhiều tài nguyên để học, như các video trên youtube, tài liệu trên các trang web, sách điện tử (ebook), trợ lý ảo (copilot, gemini, chatgpt), thầy cô, bạn bè.

Nhưng có một công việc quan trọng mà bạn phải làm là: tự “hệ thống” lại kiến thức cho bản thân. Tự bạn viết lại kiến thức theo cách của chính bạn. Khi viết, kiến thức sẽ được não của bạn âm thầm ghi nhớ, và hệ thống lại một cách logic, giúp bạn truy vấn lại dễ dàng, hiểu sâu, có thể kết nối chúng lại với nhau.

Khi viết ra được, nghĩa là bạn đã hiểu rất rõ từng khái niệm, từng ý tưởng, và dễ dàng nói lại, trình bày lại cho người khác.

Khi chưa viết ra được một cách rõ ràng, mạch lạc một chủ đề nào đó, chứng tỏ bạn chưa nắm chắc về nó.

Bạn hãy tự trải nghiệm, và cảm nhận.

3.2 Tạo tài liệu ghi chép trên Google Docs

Bạn có thể tạo tài liệu ghi chép trên máy tính hoặc trên mạng. Phần này sẽ hướng dẫn bạn cách tạo tài liệu ghi chép trên mạng (Google Docs), vừa tiện trong quá trình sử dụng, ngồi ở đâu cũng truy cập, ghi chép được; lại có thể chia sẻ dễ dàng cho người khác.

Cách tạo một tài liệu trên Google Docs:

- Đăng nhập vào tài khoản gmail của Google. Bấm vào ô hình vuông (cạnh tên tài khoản) > chọn mục Drive


- Chọn nút New > chọn Google Docs để tạo một tập tin mới, chúng ta sẽ ghi chép kiến thức vào tập tin này. 


- Đặt tên cho tập tin. Nhập tên cho tài liệu (tập tin) vào ô Untitled document, ví dụ TuHocTinHoc, bấm phím Enter để hoàn thành. Vậy là chúng ta đã có nơi để ghi chép, để “hệ thống” lại kiến thức.

- Trong giao diện soạn thảo của Google Docs > bấm đúp vào vùng Header (vùng đầu trang) > vào menu Insert, chọn Horizontal Line để chèn một đường kẻ ngang cho vùng header, nhập dòng chữ cho tài liệu, ví dụ Tèo tự học tin học. Căn phải, in nghiêng dòng chữ vừa nhập.


- Trong giao diện soạn thảo của Google Docs, bấm đúp vào vùng Footer (vùng cuối trang) > vào menu Insert, chèn một đường kẻ ngang, gõ vào chữ Trang, thêm một khoảng trắng và chèn số trang.

- Để chèn số trang, để dấu nhắc chuột sau chữ Trang (có một khoảng trắng với chữ Trang) > vào menu Insert > chọn mục Page elements > chọn Page numbers > chọn mục đầu tiên, dòng thứ 2.


- Kết quả sẽ được tài liệu như hình sau:

3.3 Bài tập

Bài tập 3.1 Bạn tự tạo một tài liệu ghi chép cho bản thân trên Google Docs.

-----

Bài sau: TinHocChoNguoiDiLam (4): Tạo tài liệu ghi chép trên máy tính

CuTeoHocLamWeb (9): Làm giao diện một trang thương mại

Bài trước: CuTeoHocLamWeb (8): Thao các căn bản trên blogger

-----

9. Làm giao diện một trang thương mại

9.1 Trang mẫu

Để việc học thú vị, chúng ta sẽ cùng nhau làm giao diện một trang web thương mại thực tế.

Đây là trang mẫu, chúng ta sẽ cùng nhau làm từng phần của giao diện web: https://bercy.bold-themes.com/demo-01/

Chúng ta sẽ vừa làm vừa học các kỹ thuật và khái niệm liên quan đến HTML, CSS và JavaScript.

- Tạo thư mục dự án trong ổ đĩa D:\ hoặc E:\, đặt tên thư mục dự án là coffeeshop

- Trong thư mục coffeeshop, tạo tập tin index.html và tạo 4 thư mục con gồm: html, css, js, assets


- Mở tập tin index.html bằng VS code để bắt đầu lập trình

- Trong VS code, gõ dấu chấm than (!) > tab để tạo ra cấu trúc của một tài liệu html như sau

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

</body>

</html>

- Chúng ta sẽ viết mã HTML vào vùng <body> </body>

Như đã biết, nội dung trang web sẽ được tạo ra trong vùng <body> </body>.

Để tạo ra nội dung trang web, chúng ta sử dụng các thẻ của HTML.

Thẻ gồm phần mở thẻ (ví dụ <body>) và phần đóng thẻ (ví dụ </body>).

Một thẻ luôn gồm phần mở thẻ và phần đóng thẻ, với tên giống nhau.

Nội dung của thẻ cho biết ý nghĩa của phần nội dung bên trong. Ví dụ, muốn tạo ra một đoạn văn bản thì sử dụng thẻ <p> Đây là một đoạn văn bản </p>, chữ p viết tắt của paragraph (đoạn văn bản).

Quan lại trang web https://bercy.bold-themes.com/demo-01/, trang này sẽ gồm 3 phần là:

- Phần đầu trang, sử dụng thẻ <header> để tạo

- Phần giữa trang, sử dụng thẻ <main> để tạo

- Phần cuối trang, sử dụng thẻ <footer> để tạo

Chúng ta cùng tạo 3 phần cho trang web với mã nguồn như sau:

<body>

    <header>

 

    </header>

    <main>

 

    </main>

    <footer>

 

    </footer>

</body>

9.2 Phần header

Nội dung vùng header:


Gồm logo, menu cấp 1 và các biểu tượng (icon) có gắn liên kết (link) tới facebook, twitter và Instagram.

Lấy hình logo, lưu về thư mục assets: chuột phải vào hình logo > chọn save images as, đặt tên là logo_black.png > để lưu vào assets.

Header

Trong phần header, chúng ta tạo một vùng con bên trong, sử dụng thuộc tính (attribute) class để đặt tên cho vùng này là site-branding.

Để tạo các vùng, sử dụng thẻ <div> (viết tắt của division - vùng).

 <header>

        <div class="site-branding">

        </div>

    </header>

Vì div là phần tử trung tính (không có ngữ nghĩa), nên thuộc tính class=”site-branding” cũng cho chúng ta biết được ý nghĩa của phần tử div tương ứng. Ngoài ra, thuộc tính class sẽ được sử dụng để định dạng, trang trí cho phần tử <div class=”site-branding” tương ứng bằng CSS.

Vùng site-branding là vùng để hiển thị thông tin nhận diện thương hiệu.

Trong <div class="site-branding"> tạo một div con <div class="site-branding-inner">.

Trong <div class="site-branding-inner">, tạo 2 div con, gồm: <div class="site-branding-logo"> và <div class="main-navigation">

Xem mã nguồn:

    <header>

        <div class="site-branding">

            <div class="site-branding-inner">

                <div class="site-branding-logo">

 

                </div>

                <div class="main-navigation">

 

                </div>

            </div>

        </div>

    </header>

Trong <div class="site-branding-logo">, sử dụng phần tử a để tạo ra một liên kết, bên trong liên kết này là hình logo.

Phần tử a là viết tắt của chữ anchor, có nghĩa là cái mỏ neo, dùng để móc vào một nơi khác.

Cú pháp của phần tử a là <a href="trang1.html">Trang 1</a>

Trong đó:

- href là thuộc tính, chứa địa chỉ (URL) của một trang web, hoặc một vùng trong trang web. Với href là viết tắt của hypertext reference, nghĩa là tham chiếu tới một siêu văn bản.

-  “Trang 1” là nội dung được hiển thị ra ngoài giao diện, khi người dùng bấm chuột vào “Trang 1”, trình duyệt sẽ mở trang web “trang1.html”

Trong phần này, chúng ta sẽ thay thế chữ “Trang 1” là một cái hình. Để chèn hình, sử dụng phần tử img. Cú pháp của phần tử <img> là:

<img width="178" height="180" src="assets/logo_black.png">

Trong đó:

- Phần tử img là viết tắt của image (hình ảnh)

- Thuộc tính width xác định chiều rộng của ảnh (178 pixel), thuộc tính height xác định chiều cao của ảnh (180 pixel)

- Thuộc tính src là viết tắt của source (nguồn ảnh), trỏ tới vị trí của tập tin hình ảnh (assets/logo_black.png)

[index.html]

…

            <div class="site-branding-logo">

                <a href="index.html">

                    <img width="178" height="180" src="assets/logo_black.png">

                </a>

            </div>

            <div class="main-navigation">

…

Lưu lại mã nguồn, mở trang index.html bằng trình duyệt để xem kết quả.

9.3 Làm menu chính

Menu chính (hay Menu cấp 1), gồm 5 mục: Home, About, Blog, Shop, Elements.

Trong HTML, người ta gọi vùng menu (trình đơn) là vùng điều hướng (navigation). Do vậy, chúng ta sẽ sử dụng phần tử nav để tạo vùng điều hướng.

Trong phần tử <div class="main-navigation">, tạo phần tử nav với thuộc tính class="menu-primary-menu-container"

            <div class="main-navigation">

                <nav class="menu-primary-menu-container">     

                </nav>

            </div>

Để tạo các mục của menu, chúng ta sử dụng phần tử ul.

Phần tử ul là viết tắt của unordered list, nghĩa là một danh sách không có thứ tự. Trong ul, sử dụng phần tử li để tạo các mục con. Phần tử li là viết tắt của list item, nghĩa là các mục của danh sách.

            <div class="main-navigation">

                <nav class="menu-primary-menu-container">

                    <ul class="main-navigation-menu">

                        <li class="menu-item">Home</li>

                        <li class="menu-item">About</li>

                        <li class="menu-item">Blog</li>

                        <li class="menu-item">Shop</li>

                        <li class="menu-item">Elements</li>

                    </ul>

                </nav>

            </div>

Lưu lại tập tin index.html, cập nhật lại trang web (refresh) để xem kết quả trên trình duyệt.

9.4 Chèn các biểu tượng mạng xã hội

Chúng ta sẽ tạo tiếp vùng các biểu tượng mạng xã hội (icon liên kết).


Vùng các biểu tượng mạng xã hội cùng cấp với vùng điều hướng (navigation). Vì vậy, chúng ta sẽ tạo phần tử <div class="site-navigation-widgets"> trong <div class="main-navigation">

            <div class="main-navigation">

                <nav class="menu-primary-menu-container">

                    <ul class="main-navigation-menu">

                 ...

       </ul>

                </nav>

                <div class="site-navigation-widgets">

                    

                </div>

            </div>

Trong phần tử <div class="site-navigation-widgets">, tạo 3 phần tử a để gắn liên kết tới 3 ứng dụng mạng xã hội facebook, x và instagram. Tạm thời chưa có tài khoản cụ thể của mạng xã hội, nên thuộc tính href sẽ tạm trỏ tới trang gốc của 3 mạng xã hội.

    <div class="site-navigation-widgets">

        <a href="https://www.facebook.com/"></a>

        <a href="https://x.com/"></a>

        <a href="https://www.instagram.com/"></a>

    </div>

Trong 3 phần tử a, chèn biểu tượng (icon) của 3 mạng xã hội tương ứng. Sử dụng phần tử i, giá trị thuộc tính class là giá trị của icon, ví dụ cho facebook: <i class="ri-facebook-fill"></i>.

 <div class="site-navigation-widgets">

    <a href="https://www.facebook.com/"><i class="ri-facebook-fill"></i></a>

    <a href="https://x.com/"><i class="ri-twitter-x-line"></i></a>

    <a href="https://www.instagram.com/"><i class="ri-instagram-line"></i></a>

 </div>

Mở trình duyệt, sẽ chưa thấy 3 biểu tượng của 3 mạng xã hội. Bạn cần nhúng thêm mã CSS cho phần tử i, bằng cách chép dòng mã sau vào vùng <head> của tập tin index.html.

 <link href="https://cdn.jsdelivr.net/npm/remixicon@4.5.0/fonts/remixicon.css" rel="stylesheet"/>

[index.html]

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <link href="https://cdn.jsdelivr.net/npm/remixicon@4.5.0/fonts/remixicon.css" rel="stylesheet"/>

</head>

Lưu lại tập tin mã nguồn, mở lại trang web để xem kết quả, như hình sau.

9.5 Bài tập

Bài tập 9.1 Lập trình các đoạn mã trong bài học.


-----

Cập nhật: 28/2/2025

Bài sau: