Thống kê cho thấy, mặc dù kiến thức nền tảng ngành Computer Science (CS Foundation) thường được dạy trong các tín chỉ tại các trường Đại học, Cao đẳng, nhưng có đến hơn 90% ứng viên đã từng "fail" Got It vì chưa nắm chắc CS Foundation.
Nguyên nhân lớn nhất được các Engineer của Got It chỉ ra là do sự thiếu tìm tòi, đào sâu, nghiên cứu về CS Foundation của các bạn ứng viên.
Phần đông các bạn chỉ trả lời được định nghĩa, tính chất của sáu yếu tố trong CS Foundation, nhưng lại chưa thể hiểu rõ căn nguyên vấn đề để trả lời tốt các câu hỏi "tại sao" mà các Engineer Got It đưa ra. Một số ít lại chưa được học về các yếu tố ở trường bởi một số môn như Mạng máy tính (Networking), Hệ điều hành (Operating Systems),… là môn không bắt buộc.
Để hỗ trợ các bạn sinh viên CNTT tự tin vượt qua vòng kiểm tra CS Foundation ở các công ty công nghệ nói chung và ở Got It nói riêng, các Engineer của chúng mình đã tổng hợp và chia sẻ một số khoá học, tài liệu giúp bạn học, nghiên cứu và ôn tập để nâng cao CS Foundation.
Hãy cùng Got It tìm hiểu về các nguồn tài liệu tham khảo CS Foundation trong bài viết hôm nay nhé!
1. Khóa học tổng quan về CS Foundation miễn phí
Để học và ôn lại kiến thức tổng quan về CS Foundation, một trong những khoá học bạn nên tham khảo là khoá học CS50’s Introduction to Computer Science. Khóa học này được thiết kế và giảng dạy bởi các giáo sư thuộc Đại học Harvard.
Khóa học CS50 bắt đầu bằng những bài giảng mang lại hiểu biết khái quát về khoa học máy tính. Sau đó, bạn sẽ tiếp cận với một loạt các bài giảng về cấu trúc dữ liệu (data structures), thuật toán (algorithms), quản lý tài nguyên (resource management), lập trình web (web development) hay bảo mật thông tin (information security system).
Điểm đặc biệt của CS50 là bạn sẽ được dạy cách tư duy sử dụng thuật toán và cách áp dụng thuật toán để giải quyết các vấn đề khi lập trình một cách hiệu quả.
Ngoài ra, cuối khóa CS50, bạn được giao thực hiện một final project (dự án cuối khoá). Final project là nơi bạn có thể vận dụng những kiến thức đã học để tự mình phát triển một phần mềm hữu ích. Tech stack của khoá học này cũng rất đa dạng, trải dài từ C, Python, SQL, Javascript, HTML đến CSS. Do vậy, bạn có thể yên tâm học ngôn ngữ phù hợp với mục tiêu tương lai của mình.
Harvard CS50 là khoá học được đánh giá rất cao trong giới chuyên môn, với gần 3,000,000 bạn đã tham gia học. Bên cạnh đó, đây cũng là một khoá học vô cùng hữu ích nếu bạn đang phân vân về con đường tương lai của mình.
Thông qua các bài học và dự án thực chiến, CS50 sẽ giúp bạn trả lời câu hỏi: Liệu lập trình viên có phải con đường sự nghiệp thực sự dành cho bạn không? Bởi nếu không thực sự hứng thú và đam mê với nội dung, bài tập của CS50, bạn có thể cân nhắc chuyển sang các ngành nghề dùng đến kiến thức tech khác phù hợp với bạn hơn như Quality Assurance, thay vì làm Software Engineer.
2. Tài liệu tham khảo về từng yếu tố trong CS Foundation
Nếu bạn đã nắm chắc các kiến thức chung về CS Foundation và chỉ quan tâm một số yếu tố nhất định, bạn có thể tham khảo thêm các cuốn sách và các trang web tham khảo hữu ích được Got It tổng hợp dưới đây.
Cả 6 yếu tố trong CS Foundation đều có những nguồn tài liệu tham khảo hay, giúp bạn đào sâu và nâng cao hiểu biết của mình đó!
2.1. Ngôn ngữ lập trình
Như đã đề cập ở bài CS Foundation 101 (Phần 1), hiện có rất nhiều ngôn ngữ lập trình như Python, Java, C, C++,… Mỗi ngôn ngữ đều có những điểm mạnh, yếu riêng. Bạn sẽ là người lựa chọn học ngôn ngữ lập trình nào phù hợp với định hướng ngành nghề của mình.
Ở Got It, chúng mình sử dụng hai ngôn ngữ chính là Python và JavaScript. Vì vậy, những tài liệu, trang web tham khảo được chia sẻ dưới đây sẽ xoay quanh hai ngôn ngữ này.
2.1.1 Python
- Khoá học “Complete Python Bootcamp From Zero to Hero in Python”: Complete Python Bootcamp From Zero to Hero in Python là một trong những khoá học online phổ biến và được đánh giá cao về ngôn ngữ Python dành cho người mới bắt đầu (beginners). Khoá học được giảng dạy trên nền tảng Udemy bởi Jose Portilla, một chuyên gia về Data Science. Hiện, Complete Python Bootcamp đã nhận được điểm 4.6/5 cho hơn 360,000 lượt đánh giá và có hơn 1 triệu người lựa chọn theo học.
- Sách “Fluent Python (2nd edition)“: Bên cạnh khóa học của Udemy, nếu bạn đã có kiến thức cơ bản về Python, Fluent Python (2nd edition) sẽ là công cụ rất hữu ích hỗ trợ bạn thành thạo lập trình bằng ngôn ngữ siêu phổ biến này.
2.1.2. JavaScript
- Khoá học “The Complete JavaScript Course 2021: From Zero to Expert“: The Complete JavaScript Course 2021: From Zero to Expert là một khoá học về JavaScript được đánh giá cao trên Udemy. Tuy chưa có độ phổ biến như khóa học Python của Jose Portilla, nhưng khóa học này đã thu hút hơn 400,000 học sinh và nhận được đánh giá 4.7 trên 5 sao.
- Eloquent JavaScript: Đây là một cuốn sách cực hay đặc biệt dành cho các bạn beginner không thích học "online". Bởi, bạn có thể "cày" cuốn sách này để nạp các kiến thức cơ bản về JavaScript thay cho việc học trực tuyến.
2.2. Lập trình hướng đối tượng (OOP)
-
Sách “Design Patterns: Elements of Reusable Object-Oriented Software": Một trong các cuốn sách bạn nên tham khảo để học thêm về OOP là Design Patterns: Elements of Reusable Object-Oriented Software. Cuốn sách được chắp bút bởi 4 tác giả Erich Gamma, Richard Helm, Ralph Johnson, và John Vlissides. Họ đều là những người có kinh nghiệm lâu năm nghiên cứu về Computer Science.
-
Website của JavaTpoint: Ngoài ra, nếu bạn muốn tìm một địa chỉ để ôn tập nhanh các kiến thức về OOP, bạn có thể ghé phần OOP trong trang JavaTPoint. JavaTPoint là một website cung cấp kiến thức về lập trình, các ngôn ngữ lập trình khác nhau và tổng hợp một số câu hỏi cho các vị trí khác nhau của các công ty lớn như IBM, MS, Adobe,…
2.3. Hệ điều hành
- Sách “Operating Systems: Three Easy Pieces": Operating Systems: Three Easy Pieces sẽ là một lựa chọn phù hợp nếu mối quan tâm của bạn thiên nhiều hơn về Operating System. Cuốn sách xoay quanh ba khái niệm của hệ điều hành là virtualization (ảo hoá), concurrency và persistence với cách diễn đạt cực kỳ ngắn gọn và dễ hiểu.
2.4. Mạng máy tính
- Sách “Computer Networking: A Top Down Approach": Computer Networking: A Top Down Approach của Kurose và Ross là cuốn sách bao hàm các kiến thức xoay quanh các lớp của mạng máy tính, cùng các khái niệm liên quan đến network như: security, protocols,…
2.5. Cấu trúc dữ liệu và Giải thuật
-
Sách “Cracking the Coding Interview": Cracking the Coding Interview là một trong những cuốn sách được "cày" nhiều nhất bởi các sinh viên năm cuối hoặc sinh viên mới ra trường để ứng tuyển vào các tập đoàn công nghệ hàng đầu thế giới. Cuốn sách chia ra các dạng bài và lời giải cho các câu hỏi liên quan đến Cấu trúc dữ liệu và Giải thuật.
-
Sách “Data Structures and Algorithms in Python": Data Structures and Algorithms in Python là một cuốn sách được biên soạn cẩn thận với lối viết rất dễ hiểu. Python đang trở thành ngôn ngữ lập trình được ưa chuộng số một thế giới, gây tiếng vang bởi sự đơn giản trong syntax (cú pháp) và có một cộng đồng developer rất mạnh mẽ. Data Structures and Algorithms in Python sẽ giúp bạn tự học và luyện tập cách giải quyết các bài toán về dữ liệu và giải thuật bằng ngôn ngữ nổi bật này.
2.6. Cơ sở dữ liệu
-
Sách “Database System Concepts" (7th edition): Một cuốn sách về Database được đánh giá cao là Database System Concepts (7th edition) viết bởi Silberschatz, Korth và Sudarshan. Đây là cuốn sách phù hợp cả với những bạn mới bắt đầu tìm hiểu về cơ sở dữ liệu hay các bạn đã học qua, cần tra cứu, đọc thêm về một vài điểm quan trọng để ôn tập phỏng vấn.
-
Website SQLZoo và HackerRank: Ngoài ra, một gợi ý giúp các bạn sinh viên công nghệ nâng cao kiến thức về Database của chúng mình là: Hãy dành thời gian luyện tập về SQL qua các quizzes trực tuyến. Luyện tập với các quizzes là một trong những cách hiệu quả nhất để bạn thành thạo khả năng viết các câu lệnh query khi trả lời phỏng vấn. Bạn nên tham khảo các bài quizzes trên SQLZoo và HackerRank.
3. Lời kết
Trên đây là các khoá học và cuốn sách làm tài liệu tham khảo CS Foundation mà bạn nên tìm học và ôn tập. Got It mong rằng những chia sẻ trên sẽ giúp bạn phát triển hơn nữa trên con đường tương lai. Đồng thời, phần nào hỗ trợ bạn tăng tỷ lệ thành công trong các vòng phỏng vấn.
Hãy tiếp tục theo dõi blog của Got It để đón đọc "CS Foundation 101 (Phần 3): Cách ghi điểm trong vòng phỏng vấn Competency" (vòng phỏng vấn sử dụng kiến thức CS Foundation). Phần 3 của Series CS Foundation 101 sẽ bật mí một số câu hỏi mà Got It hay đặt ra cho các ứng viên về kiến thức CS đó. Đừng bỏ lỡ nhé!
Người viết: Mike - Got It