Chỉ còn 7 suất cuối trong tháng này, hỗ trợ tư vấn ngoài giờ hành chính (Trị giá 500,000 VND)
Dưới đây là review của học viên khoá CS50 có tên là Phoebe Voong-Fadel chia sẻ trên trang FreeCodeCamp
Bạn muốn tham gia khoá học CS50 nhưng còn băn khoăn không biết liệu nó có phù hợp với mục tiêu của bạn hiện tại hay không?
Là một người không có bằng cấp về Khoa học máy tính và đang tìm cách học những kiến thức cơ bản trong lĩnh vực này, tôi cũng từng ở trong hoàn cảnh tương tự. Đó là lý do tại sao tôi quyết định đăng ký khóa học và ghi lại trải nghiệm của mình trong bài viết này.
Tôi sẽ cung cấp góc nhìn tổng quát về CS50, giúp bạn quyết định xem liệu đây có phải là khóa học phù hợp với bạn hay không.
CS50 là một khóa học giới thiệu về Khoa học máy tính kéo dài 10 tuần, có thể học trực tuyến hoặc tại trường. Khóa học này được giảng dạy tại Đại học Harvard và Yale.
Người đứng đầu khóa học là Giáo sư David J. Malan. Ông được hỗ trợ bởi đội ngũ CS50, bao gồm các Trợ giảng cấp cao và một đội ngũ sản xuất hoàn chỉnh. Khóa học diễn ra từ ngày 1 tháng 1 đến ngày 31 tháng 12.
Có nhiều lý do khiến CS50 có thể là lựa chọn tốt cho bạn. Dưới đây là một vài lý do:
Có 10 tuần học bao gồm bài giảng, bài thực hành và các bài tập cần phải hoàn thành. Cuối khoá học có dự án tốt nghiệp.
Đúng vậy. Thực tế, khoảng hai phần ba sinh viên đăng ký CS50 chưa từng tham gia khóa học Khoa học máy tính nào trước đó. Vì vậy, nếu bạn mới bước vào lĩnh vực này và muốn học những kiến thức cơ bản, bạn sẽ có nhiều bạn đồng hành.
Tuy nhiên, đừng mong đợi khóa học dễ dàng. Mặc dù các bài giảng được thiết kế sao cho dễ hiểu và hấp dẫn, các bài tập và bài thực hành có thể khiến bạn thấy khó khăn. Trung bình, học viên nên dành khoảng thời gian dự kiến 12 giờ mỗi tuần cho khóa học.
Bạn có thể chọn nhận chứng chỉ CS50 miễn phí hoặc trả tiền để nhận chứng chỉ xác nhận từ edX.
Bạn có thể chuyển tất cả các bài nộp sang năm tiếp theo. Tôi đã làm điều này và quá trình rất đơn giản. Nội dung khóa học hầu như không thay đổi, chỉ có một số cập nhật về tài liệu khóa học.
Trong tuần đầu tiên của khóa học, bạn sẽ được giới thiệu về thế giới Khoa học máy tính và cách mà con số, văn bản và hình ảnh được biểu diễn dưới dạng nhị phân.
Bạn cũng sẽ học về thuật toán (algorithms) và mã giả (pseudo code), và có một phần giới thiệu thực hành về Scratch, một ngôn ngữ lập trình với giao diện đồ hoạ thân thiện và dễ sử dụng.
Đối với bài tập đầu tiên, bạn sẽ tạo một dự án Scratch. Đây là một cách thú vị để bạn làm quen với khóa học và có một trải nghiệm lập trình đầu tiên.
Trong tuần thứ hai của khóa học, bạn sẽ đi sâu vào C, một ngôn ngữ lập trình cấp thấp.
Bạn sẽ học những kiến thức cơ bản về lập trình như hàm, điều kiện, biểu thức boolean, vòng lặp và biến.
Đối với bài tập, bạn sẽ tạo một chương trình xuất ra một kim tự tháp với các ký tự dấu thăng giống như cuối một màn chơi trong trò chơi Super Mario.
Bạn sẽ tiếp tục học về ngôn ngữ C và tìm hiểu các chủ đề như cách chương trình của bạn biên dịch, gỡ lỗi, mảng, ký tự, chuỗi và đối số dòng lệnh.
Đối với bài thực hành, bạn sẽ viết một chương trình mã hóa Caesar, và đối với bài tập, bạn sẽ làm một thử thách kiểu scrabble.
Trong tuần thứ ba, bạn sẽ học về các loại tìm kiếm khác nhau (tuyến tính và nhị phân) và các loại sắp xếp khác nhau (selection và bubble), cũng như đệ quy.
Bạn cũng sẽ học về ký hiệu big O, có thể khá khó hiểu nhưng là một khái niệm quan trọng trong Khoa học máy tính. May mắn thay, khóa học cung cấp các video ngắn bổ sung về các khái niệm khó hơn, cung cấp một giải thích chi tiết hơn với các ví dụ.
Tuần thứ tư tập trung vào bộ nhớ, bao gồm các chủ đề như con trỏ, địa chỉ, phân bổ bộ nhớ và giải phóng bộ nhớ, phát hiện rò rỉ bộ nhớ và giải thích cách một stack overflow xảy ra.
Bài thực hành và bài tập liên quan đến việc thao tác các tệp âm thanh và hình ảnh.
Trong tuần cuối cùng lập trình bằng C, bạn sẽ học cách con trỏ có thể được sử dụng để lưu trữ địa chỉ trong bộ nhớ cho danh sách liên kết.
Bài thực hành củng cố kiến thức về con trỏ của bạn, và bài tập yêu cầu tạo một chương trình kiểm tra chính tả. Đây là một bài tập đặc biệt khó khăn và bạn nên dành thời gian để hiểu các tệp khởi đầu được cung cấp trước khi bắt đầu.
Tuần thứ sáu đánh dấu sự chuyển đổi từ C sang Python, một ngôn ngữ lập trình phổ biến và dễ học hơn so với C. Bạn sẽ làm các bài tập yêu cầu dịch các chương trình đã viết bằng C sang Python.
Trong tuần thứ bảy, bạn sẽ học về cơ sở dữ liệu quan hệ và SQL (Ngôn ngữ Truy vấn Có cấu trúc), sử dụng SQLite để thực hiện các truy vấn trên dòng lệnh và trong Python.
Bài tập là một thử thách thú vị, khi bạn phải giải quyết một sự việc bí ẩn để tìm ra ai đã đánh cắp con vịt CS50 thông qua một loạt các truy vấn SQL!
Tuần thứ tám bao gồm các kiến thức cơ bản về internet và web, bao gồm HTML, CSS và JavaScript ở phía client.
Đối với bài tập, bạn sẽ tạo một trang chủ về bản thân.
Trong tuần thứ chín, bạn sẽ học về Flask, một framework Python được sử dụng để xây dựng các ứng dụng web. Bạn sẽ học về các chủ đề như forms, layouts và templating sử dụng Jinja, các yêu cầu POST và GET, và cách gửi email từ một ứng dụng Flask. Bạn cũng sẽ đi qua quá trình xây dựng một ứng dụng full-stack.
Đối với bài tập, bạn sẽ thử thách kỹ năng của mình bằng cách triển khai một ứng dụng tài chính full-stack, kết hợp tất cả những gì bạn đã học trong khóa học. Đây là một dự án đầy thách thức nhưng bổ ích, mang lại cho bạn trải nghiệm thực tế về việc xây dựng một ứng dụng web thực tế.
Không có bài tập trong tuần này. Có một giảng viên khách mời và phần tổng kết từ Giáo sư Malan.
Phần cuối cùng của khóa học là dự án tốt nghiệp. Yêu cầu là:
"Xây dựng một thứ gì đó bạn quan tâm, giải quyết một vấn đề thực tế, ảnh hưởng đến cộng đồng của bạn, hoặc thay đổi thế giới."Đề bài rất mở, để bạn có thể tự do chọn bất kỳ ngôn ngữ lập trình và dự án nào mà bạn thích. Bạn cũng sẽ phải ghi lại một video ba phút trình bày ứng dụng của mình.
Khóa học đầy thách thức, với rất nhiều những kiến thức mới khó khăn. Tôi đã phải đọc thêm về các chủ đề mà tôi không quen/thoải mái. Hầu hết mọi người không hoàn thành khóa học, nhưng ngay cả khi bạn không hoàn thành, bạn vẫn có thể hưởng lợi từ những gì bạn học được. Theo lời của Giáo sư Malan: "Điều cuối cùng quan trọng trong khóa học này không phải là ở đâu so với các bạn cùng lớp mà là bạn ở đâu so với chính mình khi bắt đầu."
CS50 là một khóa học toàn diện và được đánh giá cao, cung cấp một nền tảng vững chắc trong Khoa học máy tính.
Là một lập trình viên Front end tự học không có bằng cấp về Khoa học máy tính, tôi thấy rằng khóa học là một cách tuyệt vời để lấp đầy các lỗ hổng kiến thức và củng cố hiểu biết của tôi về các kiến thức cơ bản trong lĩnh vực này.
Các bài giảng hấp dẫn và được sản xuất tốt, và các bài tập thách thức nhưng mang lại cơ hội quý giá để áp dụng những gì bạn đã học.
Khóa học bao gồm một loạt các chủ đề, giúp giới thiệu về Khoa học máy tính một cách tốt nhất. Tổng thể, đây là một khóa học nổi bật và là một trong những trải nghiệm học tập trực tuyến tốt nhất mà tôi từng có.
Tôi hy vọng bạn thấy bài viết này hữu ích và nó đã giúp bạn quyết định xem có nên tham gia CS50 hay không.
Nếu bạn đang gặp khó khăn khi tự mình học CS50 và cần tìm kiếm sự giúp đỡ, đăng ký ngay khoá học giúp chinh phục chứng chỉ CS50 cùng CoderSchool
Khoá học của CoderSchool có gì đặc biệt?
> Tìm hiểu thêm TẠI ĐÂY
Tham gia ngay 45 phút định hướng cùng Mentor tại CoderSchool hoàn toàn miễn phí
Chương trình đảm bảo việc làm sau tốt nghiệp