- Chương trình OSSU cung cấp một chương trình đào tạo khoa học máy tính hoàn chỉnh miễn phí thông qua các tài liệu trực tuyến từ những trường đại học hàng đầu thế giới
- Tái hiện cấu trúc chương trình khoa học máy tính ở trình độ cử nhân đại học với các phần nhập môn, cốt lõi, nâng cao và dự án cuối khóa
- Tất cả bài giảng và bài tập đều miễn phí hoặc phần lớn miễn phí, dù một số bài đánh giá có thể phát sinh chi phí
- Mạng lưới hỗ trợ người học toàn cầu năng động như cộng đồng Discord cùng việc cập nhật tài liệu được duy trì liên tục
- Người học có thể học độc lập hoặc theo nhóm, linh hoạt điều chỉnh tiến độ và lựa chọn theo hoàn cảnh của bản thân
OSSU là gì và vì sao quan trọng
OSSU(Open Source Society University) là một chương trình học mã nguồn mở được thiết kế để bất kỳ ai cũng có thể tự học ở trình độ tương đương bằng chính quy ngành khoa học máy tính mà không tốn chi phí. Chương trình tận dụng các bài giảng và tài liệu công khai từ những trường đại học hàng đầu thế giới như Harvard, MIT, Princeton, với mục tiêu không chỉ truyền đạt kiến thức rời rạc mà còn mang lại trải nghiệm học tập cân bằng dựa trên lý thuyết, thực hành và ứng dụng.
- Tất cả tài liệu học tập đều được tuyển chọn từ các nguồn miễn phí, chất lượng cao, công khai trên mạng
- Bám sát chặt chẽ các chuẩn cử nhân nền tảng ngành khoa học máy tính quốc tế như tiêu chuẩn CS2013
- Hướng tới những người có khả năng tự tạo động lực, duy trì thói quen học tập lâu dài và tìm kiếm hỗ trợ từ cộng đồng học tập toàn cầu
Cấu trúc và đặc điểm của chương trình
- Nhập môn (Introduction to CS): Giúp trải nghiệm những khái niệm cơ bản và sự thú vị của khoa học máy tính cũng như lập trình. Bao gồm lập trình Python, lý thuyết tính toán, cấu trúc dữ liệu cơ bản và thuật toán
- Cốt lõi (Core CS): Tương ứng với phần chương trình đến năm thứ 3 đại học, bao gồm bắt buộc các nội dung về lập trình (hàm, hướng đối tượng, thiết kế phần mềm), toán học (toán rời rạc, thống kê, xác suất, giải tích), hệ thống (kiến trúc máy tính, OS, mạng), lý thuyết (thuật toán, bài toán NP...), bảo mật, ứng dụng và đạo đức
- Nâng cao (Advanced CS): Tương ứng với giai đoạn năm cuối. Có thể chọn lĩnh vực quan tâm trong lập trình chuyên sâu, hệ thống, lý thuyết, an toàn thông tin và toán cao cấp
- Dự án cuối khóa: Vận dụng kiến thức đã học để thực hiện dự án thực tế, chia sẻ và kiểm chứng kết quả cùng những người học đồng hành trên toàn cầu. Có thể dùng như minh chứng năng lực thực tế và portfolio xin việc
Cách học và chi phí
- Có thể học chương trình một cách độc lập hoặc theo nhóm
- Mỗi học phần được khuyến nghị hoàn thành theo thứ tự, nhưng nếu đã nắm nội dung nào đó thì có thể bỏ qua
- Mọi bài giảng đều được cung cấp miễn phí trực tuyến. Trên một số nền tảng (Coursera, edX...) có thể phát sinh chi phí khi chấm bài tập/kỳ thi/dự án, nhưng trong đa số trường hợp, việc học tự thân vẫn là miễn phí. Chương trình cũng hướng dẫn hỗ trợ tài chính (học bổng/Financial Aid) để giảm gánh nặng kinh tế
- Có cung cấp mẫu Google Spreadsheet để hỗ trợ quản lý tiến độ học tập và ngày hoàn thành dự kiến
Cộng đồng và hỗ trợ
- Có máy chủ Discord dành cho người tham gia – nơi diễn ra sôi nổi các hoạt động thảo luận bài học, đặt câu hỏi và kết nối bạn học
- Có các kênh phản hồi tích cực như GitHub Issue và đề xuất cải thiện chương trình
- Có thể thêm quá trình hoàn thành OSSU vào hồ sơ LinkedIn
Khuyến nghị kiểm tra chương trình mới nhất qua website chính thức và kho GitHub
Danh sách chi tiết chương trình
Điều kiện tiên quyết
- Core CS yêu cầu toán ở trình độ trung học phổ thông (đại số, hình học, giai đoạn trước giải tích)
- Advanced CS chỉ có thể chọn sau khi hoàn thành toàn bộ phần cốt lõi
- Các môn Advanced systems yêu cầu kiến thức vật lý cơ bản ở trình độ trung học phổ thông
Nhập môn CS (Introduction to CS)
- Bước khởi đầu với khoa học máy tính. Giới thiệu các phép tính cơ bản, lập trình mệnh lệnh, cấu trúc dữ liệu, thuật toán...
- Bài giảng bắt buộc: 'Introduction to Computer Science and Programming using Python' (14 tuần)
Core CS
Lập trình
- Thực hành đa dạng về hàm/hướng đối tượng/kiểm thử/pattern/typing/sự đa dạng ngôn ngữ
- Systematic Program Design, Programming Languages (A–C), Object-Oriented Design, Software Architecture...
Toán học
- Bao gồm toán rời rạc, chứng minh toán học, thống kê cơ bản, ký hiệu O lớn, xác suất, giải tích
Công cụ và môi trường phát triển
- Các công cụ thiết yếu trong thực tế như terminal, shell scripting, vim, command line, quản lý phiên bản (git)
Hệ thống
- Hiểu tổng thể nguyên lý hoạt động của máy tính từ phần cứng đến hệ điều hành và mạng
- Ví dụ: dự án Nand to Tetris, OS Three Easy Pieces, Networking...
Lý thuyết
- Bao gồm phân tích thuật toán, chia để trị, đồ thị, quy hoạch động, bài toán NP...
Bảo mật
- Bao gồm các môn tự chọn như nền tảng an toàn thông tin, lập trình an toàn, phân tích lỗ hổng, mạng/mật mã...
Ứng dụng
- Bao quát rộng tới các lĩnh vực ứng dụng thực tiễn như cơ sở dữ liệu, machine learning, đồ họa máy tính, kỹ nghệ phần mềm
Đạo đức
- Nhấn mạnh đạo đức nghề nghiệp thiết yếu cho kỹ sư như bối cảnh xã hội của công nghệ, tính chuyên nghiệp, sở hữu trí tuệ, quyền riêng tư dữ liệu
Advanced CS
- Lựa chọn theo định hướng nghề nghiệp/lĩnh vực quan tâm. Gồm lập trình song song, compiler, các ngôn ngữ như Haskell/Prolog, gỡ lỗi/kiểm thử phần mềm
- Nhiều lựa chọn rộng như kiến trúc máy tính, phân tích số/logic/xác suất, lý thuyết tính toán, an toàn thông tin, xây dựng hệ thống...
Dự án cuối khóa (Final Project)
- Chọn dự án thực chiến rồi thiết kế, triển khai và chia sẻ
- Ví dụ tùy chọn: dịch vụ full-stack, robotics, data mining, big data, IoT, cloud computing, data science, phát triển game...
- Có thể tự thực hiện hoặc dùng các khóa học được đề xuất
Sau khi hoàn thành việc học
- Xác nhận đã tiếp thu kiến thức tương đương bằng cử nhân trong lĩnh vực CS
- Được khuyến nghị kết nối tiếp với chuẩn bị việc làm, đọc chuyên sâu (có danh sách cung cấp), các buổi gặp gỡ lập trình viên offline...
- Khuyến khích khám phá công nghệ mới (các ngôn ngữ như Elixir/Rust/Idris...)
Quy tắc vận hành và đội ngũ
- Tuân thủ Bộ quy tắc ứng xử OSSU
- Hướng dẫn cách hiển thị và quản lý tiến độ cá nhân trên GitHub (sử dụng kanban)
Đội ngũ vận hành chính của OSSU
- Eric Douglas (nhà sáng lập OSSU), Josh Hanson (technical maintainer), Waciuma Wanjohi (academic maintainer), cùng các cộng tác viên khác trên toàn thế giới
Kết luận
OSSU mở ra con đường để bất kỳ ai trên thế giới cũng có thể phát triển năng lực ở trình độ bằng chính quy ngành khoa học máy tính miễn phí, từ đó tiếp cận rộng rãi hơn với công việc thực tế và định hướng nghề nghiệp trong ngành IT hiện đại.
Sự kết hợp giữa tiến độ linh hoạt, tiêu chuẩn nghiêm ngặt, cộng đồng toàn cầu và tài liệu miễn phí chất lượng cao là điểm mạnh lớn so với các chương trình công khai khác.
4 bình luận
> Tôi nghĩ những bài báo kiểu “đừng học CS” đã bỏ lỡ ý nghĩa thật sự.
Bản dịch mượt thật, thú vị ghê haha
OSSU Open Source Society University - Tự học Computer Science
Có vẻ GeekNews đã từng giới thiệu từ khá sớm. Trong thời gian đó đã có thêm khá nhiều nội dung.
Ý kiến trên Hacker News
Tôi nghĩ OSSU thực sự là một nơi rất tốt nếu bạn là một kỹ sư giàu kinh nghiệm và muốn giúp đỡ người học
Tôi đang điều hành một chương trình giáo dục giúp sinh viên tự học khoa học máy tính. Tôi cũng thường dùng chương trình OSSU như một tài liệu tham khảo
Tự học có rất nhiều ưu điểm, nhưng sinh viên nhất định phải biết rằng nó cũng có những điểm cần cẩn trọng
Bạn phải tự nỗ lực hơn nhiều về “signaling” và networking, và những lợi ích xã hội có được khi thuộc về một trường đại học thường sẽ thiếu vắng trong con đường tự học
Việc không có bằng cấp có thể xem là ở trạng thái “marked”, xem giải thích ở đây
Khi mắc lỗi hoặc gặp khó khăn, người ta rất dễ quy nguyên nhân cho việc không có bằng cấp
Một số người tuyển dụng cho rằng thuê người không có bằng là một rủi ro về mặt chính trị, nên ngay từ đầu bạn có thể đã khó được nhận
Không phải là không thể vượt qua, nhưng vì thế chúng tôi chuẩn bị và vượt qua điều đó ngay từ đầu
Điểm mạnh của tự học là tốc độ học nhanh, không phải lặp lại những phần thừa thãi, và có thể học mọi thứ trong đúng ngữ cảnh
Nếu nhận ra mình thiếu nền tảng, khi đó chỉ cần quay lại học phần đó
Tôi nghĩ đây là một cách học gần như tất yếu trong các công việc kỹ thuật, nhưng nó không phù hợp với mọi sinh viên
Đáng tiếc là trong thực tế, nhiều người bị “ép” phải tự học vì hoàn cảnh tài chính không cho phép vào đại học
Nếu không hiểu rõ các trade-off thì lại càng vất vả hơn
Tham khảo: Divepod
Tôi đã có kinh nghiệm mentoring quá trình tự học của nhiều người
Tôi đã bỏ lỡ nhiều cơ hội tốt vì còn non nớt ngay sau khi tốt nghiệp trung học và không thể hoàn thành tử tế bằng CS
Cá nhân tôi nghĩ Teach Yourself CS là một lựa chọn thay thế tốt hơn
Tôi là một ví dụ chứng minh rằng chỉ tự học thôi cũng đủ để xây dựng sự nghiệp
Tôi đã làm trong ngành hơn 20 năm
Nhưng nếu chọn con đường này, chắc chắn sẽ có những công ty và vai trò mà bạn “không bao giờ” vào được
Những nơi đó phần lớn là các công ty hàng đầu, trả lương cao nhất, điều kiện làm việc tốt
Điều quan trọng không chỉ là tấm bằng, mà còn là mạng lưới cựu sinh viên. Khi có bằng, sẽ tồn tại một “câu lạc bộ lớn” nơi người cùng trường gần như chắc chắn sẽ tuyển bạn
Nếu tự học, bạn sẽ không bao giờ có được mạng lưới đó
Thực tế là gì? Bạn thường chỉ còn lại những chỗ mà người khác đều từ chối. Những nơi quái gở, lừa đảo, startup thiếu vốn, hoặc công ty đã khủng hoảng
Hiếm lắm mới kiếm được một chỗ tốt, mà kể cả vậy cũng khó ở lâu
Lương thấp hơn, và nguy cơ bị lợi dụng cũng lớn hơn nhiều
Cũng khó nhận được nhiều offer cùng lúc, nên vị thế của bạn trên thị trường giảm đi
Vì thế, cả sự nghiệp về mặt tài chính có thể đi trên một quỹ đạo hoàn toàn khác
Tìm việc khó hơn rất nhiều, phải nỗ lực gấp đôi
Bạn thường xuyên bị nghi ngờ kiểu “mặc cảm không đủ tư cách”, cả từ chính mình lẫn từ đồng nghiệp
Chỉ một sai lầm thôi cũng có thể tạo ra hệ quả rất lớn
Dù vậy, nó vẫn tốt hơn là không làm gì cả, nhưng nếu có cơ hội thì tôi nghĩ đi học chính quy vẫn tốt hơn
Tôi không muốn phủ nhận trải nghiệm của bạn, nhưng tôi là người 100% tự học và đã làm việc ở nhiều loại công ty khác nhau, từ big tech, unicorn đến startup
Tôi đã làm lập trình viên vài năm rồi quay lại trường để lấy bằng CS
Câu chuyện này đúng ở một mức độ nào đó, nhưng phần lớn chỉ áp dụng ở giai đoạn đầu và khi năng lực của bạn thuộc nhóm thấp trong tập thể đồng nghiệp
Tôi khá giống ADHD và cũng ở đâu đó trên phổ tự kỷ
Điều thường bị quên trong câu chuyện này là lý do lớn nhất để học khoa học máy tính không nhất thiết phải là kiếm việc hay nâng kỹ năng đi làm
Tôi hơi băn khoăn liệu việc chương trình chỉ gồm các bài giảng “miễn phí và mã nguồn mở” có vô tình tạo ra giới hạn hay không
Tôi nghĩ nếu thực sự muốn học bài bản thì cũng không nên ngại đầu tư tiền vào các tài liệu chất lượng cao
Tôi đồng ý với ý này
Tôi nghĩ bằng cấp có tác dụng bù đắp phần lớn những bất lợi xã hội
Trong nhiều bình luận, người ta đang trộn lẫn chuyện trường học tạo network với chuyện chỉ tuyển người từ một số trường nhất định
Đúng là cơ hội tìm việc qua các mối quan hệ trong trường học hoặc trong sự nghiệp sẽ tăng lên
Nhưng khi sự nghiệp phát triển hơn, sức mạnh của các mối quan hệ hình thành sau đại học lại trở nên lớn hơn
Những vị trí đòi hỏi bằng từ một trường cụ thể hoặc bằng tiến sĩ có ý nghĩa nhiều hơn ở khía cạnh “tín hiệu” chứ không hẳn là network
Tức là một tín hiệu đáng tin để người tuyển dụng không cần phải hỏi thêm nhiều
Người tự học phải tìm cách đi đường vòng cho điều này hoặc bỏ thêm công sức
Bạn phải định hướng theo kiểu thu hút sự chú ý bằng quan hệ cá nhân hoặc sản phẩm/công việc của mình, hoặc nhận giới thiệu để né quy trình tuyển dụng thông thường và có được cơ hội
Khi nghe câu “bản thân cơ hội đã biến mất hoàn toàn”, tôi lại nghĩ tới ý rằng “may mắn không phải chiến lược, nhưng tăng số lần thử sẽ tăng xác suất gặp may”
Tôi tò mò rốt cuộc mục tiêu là gì
Hơi tiếc là trong những cuộc tranh luận kiểu này, cả hai phía đều tỏ ra quá phòng thủ
Thật sự rất tuyệt vời.