🏗️ Tại Sao Bạn Không Nên Học AI Trước Khi Học IT: Lời Khuyên Từ Chuyên Gia
-Tác giả: Viet Nguyen - Senior AI Engineer
-Facebook: "https://www.facebook.com/vietnh1009"
Học AI trước khi học IT giống xây nóc nhà trước khi xây móng nhà vậy 🙄

Hi các bạn,
Mình có 2 lời khuyên/góp ý dành cho những bạn nào đã, đang hoặc có ý định học AI:
- Nếu các bạn có ý định học AI, hãy đảm bảo rằng bản thân đã trang bị những kiến thức cơ bản về ngành CNTT.
- Còn nếu các bạn đang học về các chuyên ngành có liên quan đến AI rồi, thì hãy đảm bảo rằng mình không vì đắm chìm vào các mô hình Machine Learning, Deep Learning mà bỏ qua những kiến thức nền tảng về CNTT.
Mình biết là AI là 1 ngành cực hot ở VN trong những năm gần đây, và có rất rất nhiều bạn đang theo học các chuyên ngành hay định hướng có liên quan đến AI, ví dụ như là Data Science, Machine Learning hay Deep Learning. Nhưng mình mong các bạn nhớ 1 điều, trước khi các bạn là 1 AI engineer, 1 Data scientist hay đại loại thế, các bạn là 1 ITer. Điều đó có nghĩa là các bạn cần nắm được các kiến thức cơ bản về IT.
Vì sao mình lại nói vậy?
Qua quá trình mình dạy các lớp học online về AI/Data Science/Machine Learning trong gần 1 năm qua, mình thấy có 1 tình trạng là có kha khá nhiều các bạn là sinh viên IT nhưng lại hổng nhiều kiến thức cơ bản của ngành chúng ta. Mình đoán là có 2 lý do chính:
- Các môn về AI thú vị hơn
- Các môn đại cương, cơ sở ngành thường nhiều bạn học đối phó, qua môn thôi là đủ
Nhưng các bạn tin mình đi, các kiến thức cơ bản, như xác suất thống kê, hệ điều hành, cấu trúc dữ liệu và giải thuật, mạng máy tính, kiến trúc máy tính, cơ sở dữ liệu,... cực kỳ quan trọng trong quá trình các bạn đi làm sau này, bất kể các bạn đi làm về AI hay 1 nhánh nào của IT.
Ví dụ cụ thể
Mình lấy ví dụ cho các bạn, dựa trên chính những task mà bản thân mình đã trải qua:
1️⃣ Cấu trúc dữ liệu và giải thuật
Với những bạn có định hướng theo mảng Computer Vision như mình, khi chúng ta sử dụng các mô hình Deep Learning, ví dụ như là object detection hay object tracking để xử lý dữ liệu đầu vào, kết quả của những mô hình này thường sẽ phải trải qua các bước post-processing (hậu xử lý) để có thể cho ra được kết quả cuối cùng, hoặc là được sử dụng như là input cho module tiếp theo. Các bước hậu xử lý này yêu cầu các kiến thức về thuật toán (bài toán đường đi ngắn nhất, thuật toán tìm kiếm theo chiều rộng/sâu, …). Đây là các kiến thức các bạn sẽ được trang bị thông qua môn học Cấu trúc dữ liệu và giải thuật - 1 trong số các môn học có thể coi là signature của sinh viên IT.
2️⃣ Hệ điều hành mã nguồn mở
Nếu các bạn là end-user (người dùng cuối), Windows là hệ điều hành phổ biến và tiện dụng nhất. Điều này thì không có gì để bàn cãi. Nhưng nếu các bạn là 1 lập trình viên nói chung hay kỹ sư AI nói riêng, các hệ điều hành mã nguồn mở, mà đại diện tiêu biểu là Ubuntu mới là chân ái.
Nói riêng về AI nhé. Nếu các bạn đang học về Deep Learning, 1 công việc khá thú vị mà các bạn sẽ được học/làm, đó là huấn luyện các mô hình Neural network (mạng nơ-ron). Với các mô hình nhập môn, bé bé xinh xinh thì không sao, nhưng với các mô hình lớn (mà thật ra khi đi làm các bạn sẽ toàn làm việc với các mô hình từ lớn đến father of lớn mà thôi) thì gần như chắc chắn các bạn sẽ không thể nào huấn luyện chúng được trên laptop hay PC cá nhân của các bạn được, mà sẽ cần sử dụng đến các server (ví dụ như là AWS của Amazon, Azure của Microsoft hay Google Cloud của Google).
Để có thể truy cập và thao tác trên những server này, các bạn sẽ cần thành thạo với việc làm việc với các terminal - đặc sản của các hệ điều hành mã nguồn mở. Sẽ không có chuyện các bạn có thể teamviewer hay ultraview đến server rồi sử dụng UI để thao tác đâu các bạn nhé.
Nếu các bạn đang học các chuyên ngành về CNTT, các bạn sẽ có 1 môn học, tên là Hệ điều hành mã nguồn mở hoặc Linux, tùy cách đặt tên của từng trường. Các bạn tin mình đi, môn học này cực kỳ hữu ích nếu các bạn muốn theo ngành CNTT nói chung, cũng như AI nói riêng. Mình còn chưa nói đến Docker đúng không? Hầu hết các Docker Image về AI đều chạy trên Ubuntu các bạn nhé.
3️⃣ Cấu trúc thư mục và đường dẫn
1 kiến thức khá cơ bản của CNTT mà mình trong quá trình dạy học thấy nhiều bạn học viên chưa nắm vững, đó là kiến thức về cấu trúc thư mục (thư mục cha, thư mục con, thư mục gốc) cũng như đường dẫn (đường dẫn tương đối, đường dẫn tuyệt đối). Những kiến thức này tuy đơn giản nhưng vô cùng cần thiết khi các bạn làm về AI. Thiết lập đường dẫn đến dataset, đường dẫn đến mô hình như thế nào? Khi nào thì nên sử dụng đường dẫn tương đối, khi nào thì nên sử dụng đường dẫn tuyệt đối để khi share code hay xa hơn là triển khai mô hình thì không phải sửa lại đường dẫn? Những kiến thức này các bạn sẽ được học thông qua môn Hệ điều hành.
4️⃣ Mạng máy tính và An ninh mạng
Lại nói về việc huấn luyện các mô hình AI. Như mình đã nói thì khi các bạn đi làm, ít ai huấn luyện mô hình trên máy tính cá nhân, mà phần lớn sẽ sử dụng các server/máy ảo với sức tính toán mạnh mẽ. Để truy cập được vào chúng, các bạn sẽ cần thiết lập và share public key (khóa công khai) của máy cá nhân của các bạn. Nếu các bạn muốn biết public key là gì, hay vì sao khi chia sẻ public key thì các bạn lại được quyền truy cập vào các server/máy ảo, thì các môn Mạng máy tính và An ninh mạng là câu trả lời.
5️⃣ Xác suất thống kê
1 trong những hướng đi mà rất nhiều bạn học về AI lựa chọn, đó là trở thành 1 Data Scientist. Bản thân mình trước khi trở thành 1 AI engineer như hiện tại cũng đã có 3 năm đầu sau khi tốt nghiệp làm Data Scientist. Để có thể trở thành 1 Data Scientist, các bạn sẽ cần nắm được các kiến thức về xác suất để có thể hiểu cách mà dữ liệu được tiền xử lý cũng như cách mà các mô hình AI đưa ra dự đoán. Ngoài ra, các bạn sẽ cần trang bị kiến thức về Hypothesis testing (kiểm định giả thuyết). Và để có thể học và hiểu cách mà kiểm định giả thuyết được tiến hành thì các bạn bắt buộc phải có kiến thức về thống kê. Và đây là lúc môn Xác suất thống kê các bạn được học từ những năm đại cương phát huy tác dụng.
Kết luận
Mình làm về AI 8 năm nay rồi, thời lượng công việc thực sự có liên quan tới AI mỗi ngày của mình ko quá 40% các bạn ạ. 60% còn lại nếu ko có kiến thức cơ bản về mạng, hệ điều hành, cấu trúc dữ liệu, cơ sở dữ liệu thì mình không làm nổi. 1 vài bạn sinh viên AI mình từng tiếp xúc năm 3 năm 4 thậm chí là sắp ra trường nhưng thiếu kiến thức cơ bản về IT, chỉ biết mỗi AI và hết, như vậy thực sự là không ổn chút nào.
Nhà phải xây từ móng chứ ko thể ốp mỗi cái mái tôn được các bạn ạ. Nếu coi căn nhà các bạn muốn xây là AI, thì IT chính là cái móng nhà. Cách các bạn xây móng sẽ quyết định xem căn nhà của các bạn có vững chãi hay không 😎
Mình hi vọng những chia sẻ này có ích cho các bạn ☺️