Chào các em sinh viên! Trong bài viết gần nhất, tôi đã giải đáp hai thắc mắc đầu tiên liên quan đến Máy tính, Con người và Trí tuệ nhân tạo.
Khám phá những kiến thức mới luôn là trải nghiệm thú vị, và giờ đây, khi các em quyết định theo học ngành Công nghệ thông tin, sẽ có một danh sách các môn học cần trải qua. Các em sinh viên mới nhập học luôn đầy ắp niềm vui và sự hứng khởi, và thực sự ngành Công nghệ thông tin rất thú vị. Sinh viên ngành này có cơ hội tham gia vào nhiều lĩnh vực chuyên sâu khác nhau. Một số trường Đại học cung cấp các chuyên ngành hẹp cho sinh viên chọn lựa từ năm thứ hai hoặc ba, trong khi một số khác thì không. Tôi sẽ bàn luận thêm về cơ hội nghề nghiệp trong ngành Công nghệ thông tin và Trí tuệ nhân tạo trong các bài viết tới.
Hình 1. Nhập học chuyên ngành CNTT.
Tuy nhiên, con đường học tập không phải lúc nào cũng trải đầy hoa hồng. Có không ít trường hợp sinh viên cảm thấy bị mất phương hướng mà tôi đã chứng kiến. Trong bài viết này, tôi muốn tập trung vào việc học Lập trình và trả lời câu hỏi: “Học những gì để thành thạo Lập trình”. Đối với hầu hết sinh viên CNTT Lập trình là bước khởi đầu, và là một thử thách không hề nhỏ trong suốt chặng đường học tập.
Câu hỏi 3. Học những gì để thành thạo Lập trình
Đầu tiên, tôi sẽ giải thích về khái niệm “Lập trình”. Lập trình là quá trình tạo ra một chương trình/phần mềm máy tính nhằm thực hiện một tác vụ hữu ích cụ thể nào đó. Và những người thực hiện công việc này được gọi là “Lập trình viên”. Để lập trình, Lập trình viên sẽ sử dụng các ngôn ngữ lập trình, đây là phương tiện giao tiếp để chỉ thị máy tính thực hiện đúng các công việc được yêu cầu. Hiện nay có rất nhiều ngôn ngữ lập trình, hầu hết trong số đó là ngôn ngữ bậc cao, tức là cú pháp của nó tương đối giống với ngôn ngữ tự nhiên (tiếng Anh), điều này làm cho việc học lập trình trở nên dễ dàng hơn nhiều so với những ngôn ngữ bậc thấp (những ngôn ngữ lập trình bậc thấp thực sự khá phức tạp – chúng gần gũi với máy tính, nhưng cực kỳ khó nhớ và khó hiểu đối với con người).
Hình 2. Lập trình viên tạo ra những chương trình/phần mềm máy tính hữu dụng.
Tôi không thiết kế lộ trình học tập cụ thể cho bất kỳ ngôn ngữ lập trình nào, vì vậy các em có thể bắt đầu với bất kỳ ngôn ngữ lập trình nào: Java, C#, hay Python. Bước đầu học một ngôn ngữ mới có thể khó khăn, giống như việc học một ngôn ngữ ngoại ngữ mới, nhưng việc học các ngôn ngữ lập trình tiếp theo sẽ trở nên dễ dàng hơn nhiều.
Hình 3. Nhiều sự lựa chọn ngôn ngữ lập trình hiện nay.
Hãy theo dõi lộ trình này và xác định xem các em đang ở đâu. Tôi hy vọng rằng nó sẽ hữu ích không chỉ cho những bạn sinh viên mới bắt đầu mà còn cho những sinh viên đang theo học có thể tự đánh giá xem mình đã đạt được những gì và cần gì cho thời gian sắp tới. Lộ trình học tập này được thiết kế ngắn gọn, nếu các em cần thêm thông tin, hãy để lại bình luận. Tôi sẽ cung cấp thêm chi tiết trong các bài viết tiếp theo.
- Các khái niệm lập trình cơ bản
- Biến, và Kiểu dữ liệu
- Các câu lệnh nhập liệu, xuất dữ liệu
- Cấu Trúc Điều Khiển: Câu lệnh Rẽ nhánh và Vòng lặp
- Mảng
- Hàm và Đệ Quy
- Xử Lý Ngoại Lệ (try-catch, ném ngoại lệ)
- Lập trình hướng đối tượng (Object Oriented Programming – OOP)
- Lớp và Đối tượng
- Các Nguyên lý chính của OOP: Đóng gói, Kế thừa, Đa hình, Trừu tượng
- Phân tích và thiết kế hệ thống thông tin
- UML diagrams: Use case diagram, Class diagram
- Cấu trúc dữ liệu và giải thuật
- Cấu trúc dữ liệu
- Cấu trúc tuyến tính: Array – ArrayList/List – LinkedList – Stack – Queue
- Cấu trúc phi tuyến (Nâng cao): Tree, Graph
- Giải thuật: Sorting algorithms, Search Algorithms (Linear, Binary search)
- Mẫu thiết kế (Design Patterns)
Một số mẫu thiết kế hữu dụng: Singleton, Factory Method, Prototype, Decorator, Observer.
- Học tập hướng chuyên sâu (Dive into Specializations)
- Trước khi đi vào một hướng chuyên sâu, hãy đảm bảo các em đã có kiến thức cơ bản về Cơ sở dữ liệu. Hãy tiếp tục tích lũy và học thêm về các hệ quản trị dữ liệu khác nhau (SQL, NoSQL).
- Dựa trên sở thích, có thể tiếp tục học tập một trong các hướng chuyên sâu sau:
- Web development (front-end, back-end),
- Mobile app development (iOS with Swift, Android with Kotlin),
- Game development (C#, Unity), etc.
- Riêng đối với hướng Khoa học dữ liệu (Data Science), và Trí tuệ nhân tạo (AI) các em có thể bắt đầu ngay sau bước 4 của lộ trình này; tuy nhiên, con đường chuyên môn hóa sau đó có nhiều sự khác biệt và sẽ được thảo luận riêng trong các bài viết khác.
Để kết thúc bài viết, tôi muốn truyền tải một thông điệp: “Coding is fun”. Thực sự là như vậy, nhưng hãy cố gắng vượt qua những giai đoạn khó khăn ban đầu.
Hình 4. Vượt qua những khó khăn ban đầu để tận hưởng niềm vui Lập trình.
Nghe là muốn học lập trình liền 😀