CS Foundation 101 (P2): Nguồn tài liệu tham khảo CS Foundation hay nhất

Thống kê cho thấy, tuy 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ả. 

một khoá học hay làm tài liệu tham khảo CS Foundation
Khóa học CS50 của đại học Harvard thu hút hơn 2,8 triệu người học

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

Đọc các sách chuyên ngành cũng là một trong những cách giúp bạn nâng cao CS Foundation
Đọc các sách chuyên ngành cũng là một trong những cách giúp bạn nâng cao 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

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.

Khóa học về Python tài liệu tham khảo CS Foundation
Khóa học của Jose Portilla trên Udemy được thu hút được hơn 1 triệu học sinh 

Điểm mạnh của khóa học này nằm ở chương trình giảng dạy thực tế và dễ hiểu. Nội dung bài giảng đi từ các kiến thức cơ bản (ví dụ: các cú pháp và các khái niệm) cho đến các kiến thức nâng cao hơn (ví dụ: lập trình hướng đối tượng trong Python). Đồng thời, song song với lý thuyết sẽ có nhiều bài tập coding cho bạn thực luyện.

Tất cả giúp người học dễ “thấm” và nắm chắc các kiến thức Python. Bạn sẽ không cảm thấy các kiến thức mình học chỉ là trên sách vở. Ngoài ra, giống như CS50, ở cuối khóa học này của Udemy, bạn sẽ được làm một capstone project. Project này giúp bạn vận dụng kiến thức đã học, dùng ngôn ngữ lập trình Python tạo nên một phần mềm của riêng mình.

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.

Cuốn sách 800 trang của Luciano Ramalho mang đến cho bạn những kiến thức nâng cao về python cùng những coding example cụ thể. Quan trọng hơn cả, sách cung cấp cho bạn những công cụ, libraries hữu ích, giúp bạn học cách viết code dễ hiểu dễ đọc và tối ưu hơn.

Cuốn sách dày 800 trang giúp bạn nâng cao khả năng code bằng ngôn ngữ Python
Cuốn sách dày 800 trang giúp bạn nâng cao khả năng code bằng ngôn ngữ Python

2.1.2. JavaScript

JavaScript, được ứng dụng trong cả lập trình frontend, backend, mobile hay cả desktop app, là ngôn ngữ phổ biến nhất thế giới trong vài năm trở lại đây.

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. 

JavaScript có tài liệu tham khảo CS Foundation là khoá học trên Udemy
Một khóa học khác trên Udemy về Ngôn ngữ lập trình mà bạn không nên bỏ lỡ

Một điểm cộng lớn cho khóa học của Jonas Schmedtmann là chương trình học bắt đầu từ những concept cơ bản, rất thích hợp cho các bạn có một chút kiến thức về lập trình và mới “chập chững” tìm hiểu về JS. Đan xen giữa các bài giảng là các dự án, giúp bạn áp dụng ngay những nội dung đã được học vào lập trình project thực tế.

Đâ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.

 Cuốn sách tài liệu tham khảo CS Foundation Eloquent JaveScript
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”

Cũng như khoá học của Udemy, cuốn sách chia sẻ các kiến thức lập trình JavaScript từ dễ đến khó. Một số nội dung nổi bật mà cuốn sách bao quát là:

  • Syntax
  • Control
  • Data
  • Cách dùng DOM để tương tác với browsers một cách hiệu quả
  • Cách dùng OOP và functional programming để tổ chức code

Ngoài ra, tuy không thể thực hành trực quan như các khoá học online, cuốn sách vẫn giúp người đọc luyện tập cơ bản. Bạn sẽ được hướng dẫn tạo ra một Web application hoặc dùng Node.js để lập trình backend.

2.2. Lập trình hướng đối tượng (OOP)

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. 

Đây là một cuốn sách rất đầy đủ và đặc biệt dễ hiểu về khái niệm, ý nghĩa của OOP cũng như cách vận dụng các design patterns (mẫu thiết kế) khi lập trình hướng đối tượng.

Cuốn cho OOP tài liệu tham khảo CS Foundation
“Design Patterns: Elements of Reusable Object-Oriented Software” là một cuốn sách đầy đủ và đặc biệt dễ hiểu về design patterns

Đặc biệt, ở chương hai, các tác giả sử dụng case study là một project thực tế làm ví dụ minh hoạ cho bạn. Từ project đó, cuốn sách chỉ ra chi tiết các cách giải quyết một số vấn đề trong lập trình hướng đối tượng bằng cách sử dụng các design patterns.

Design Patterns: Elements of Reusable Object-Oriented Software có thể làm cuốn sách gối đầu giường, giúp bạn nâng cấp kiến thức về OOP.

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,… 

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

Việc tìm kiếm thông tin trên JavaTPoint rất dễ dàng do các kiến thức được phân loại thành các đề mục nhỏ, nên bạn có thể tra cứu và ôn tập các trường kiến thức mình còn thiếu rất nhanh chóng. 

2.3. Hệ điều hành

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.

Với lối viết cô đọng và thực tế, “Operating System: Three Easy Pieces” là cuốn sách giúp bạn “master” kiến thức về hệ điều hành

Sau khi chia sẻ các khái niệm, cuốn sách của 2 tác giả Remzi Arpaci-Dusseau và Andrea Arpaci-Dusseau sẽ tập trung giải thích cách một hệ điều hành hoạt động dựa trên CPU scheduling, quản lý bộ nhớ (memory), và file storage. Với lối viết cô đọng và thực tế, nội dung cuốn sách chắc chắn sẽ giúp bạn “master” các kiến thức quan trọng về Operating System.

2.4. Mạng máy tính

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,…

Được sử dụng làm textbook chính thức của khóa học Computer Networking tại Đại học Stanford, Computer Networking: A Top Down Approach là cuốn sách gối đầu của nhiều sinh viên Computer Science. Do vậy, nếu bạn không lựa chọn học Mạng máy tính trên giảng đường, hãy tham khảo cuốn sách này để chuẩn bị phỏng vấn thật tốt nhé!

Cuốn sách là textbook chính thức của khóa Computer Networking của Đại học Stanford

2.5. Cấu trúc dữ liệu và Giải thuật

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 "Cracking the Coding Interviews"

Các câu hỏi trong cuốn sách thường gặp trong các buổi phỏng vấn với Google, Amazon, Facebook hay Microsoft. Do đó, bạn hãy lưu ý tìm đọc và luyện tập theo cuốn sách này nếu muốn nâng cao khả năng thành công trong vòng phỏng vấn với các công ty “mơ ước”.

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. 

Data Structure and Algorithms in Python

Điểm mạnh mà bạn không thể bỏ qua của cuốn sách chính là cách định nghĩa và giải thích các bài tập ví dụ chi tiết dễ hiểu. “Cày” xong cuốn sách, kiến thức và kỹ năng vận dụng của bạn sẽ được nâng cao đáng kể.

2.6. Cơ sở dữ liệu

Cuốn sách được dùng làm textbook của California Institute of Technology

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. 

Database System Concepts là cuốn sách được nhiều giảng viên, giáo sư đại học giới thiệu tìm đọc. Ngoài ra, đây cũng là sách giáo khoa của môn “CS101b – Introduction to Relational Databases” tại California Institute of Technology. Bởi vậy, nếu bạn đang muốn củng cố kiến thức về Database, đây sẽ là người “trợ lý” rất được việc của bạn.

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 SQLZooHackerRank.

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

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

https://vn.got-it.ai/blog/wp-content/uploads/2021/04/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
May 05, 2021
Share this post to:
Tags:
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
trackback
CS Foundation 101 (P3): Làm thế nào để ghi điểm trong vòng phỏng vấn Competency tại Got It? - Blog | Got It AI
28 days ago

[…] phần 1 và phần 2 của series CS Foundation 101, bạn đã biết được các khái niệm, sáu yếu tố quan […]

Các bài viết liên quan
CS Foundation 101 (P3): Làm thế nào để ghi điểm trong vòng phỏng vấn Competency tại Got It?

CS Foundation 101 (P3): Làm thế nào để ghi điểm trong vòng phỏng vấn Competency tại Got It?

Sau phần 1 và phần 2 của series CS Foundation 101, bạn đã biết được các khái niệm, sáu yếu tố quan trọng trong CS Foundation, cũng như những khóa học giúp nâng cao kiến thức CS Foundation.  Bài viết cuối của series sẽ chia sẻ tới các bạn một số điểm cần lưu ý […]
CS Foundation 101 (P2): Nguồn tài liệu tham khảo CS Foundation hay nhất

CS Foundation 101 (P2): Nguồn tài liệu tham khảo CS Foundation hay nhất

Thống kê cho thấy, tuy 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 […]
CS Foundation 101 (P1): CS Foundation là gì? 6 yếu tố bạn cần nắm vững là gì?

CS Foundation 101 (P1): CS Foundation là gì? 6 yếu tố bạn cần nắm vững là gì?

Theo thống kê, một năm Got It chỉ có thể tuyển khoảng 3% các ứng viên nộp CV đầu vào. Điều khiến 90% các bạn apply chưa vượt qua được vòng Competency chủ yếu là sự thiếu hụt kiến thức về Computer Science Foundation (CS Foundation). Không chỉ có Got It, các tập đoàn công […]
Hướng dẫn xóa 1 phần tử trong mảng của Python

Hướng dẫn xóa 1 phần tử trong mảng của Python

Nhiều bạn mới học lập trình sẽ không biết cách xóa 1 phần tử trong mảng của Python. Việc xoá phần tử sẽ trở nên dễ dàng hơn nếu bạn biết những phương thức phù hợp. Trong bài viết này, Got It sẽ chia sẻ tới bạn 4 cách để xóa 1 phần tử trong […]
Conversational AI

Conversational AI

Trong số những sản phẩm mà Got It đang xây dựng, Conversational AI (CAI) là sản phẩm có tuổi đời trẻ nhất, chưa có nhiều khách hàng nhất. Tuy nhiên, đây lại là sản phẩm phức tạp nhất và được kỳ vọng lớn nhất trong chiến lược phát triển của công ty. Tại sao lại […]
Git và GitHub — liệu bạn đã thật sự biết cách sử dụng?

Git và GitHub — liệu bạn đã thật sự biết cách sử dụng?

Biến Git và GitHub trở thành công cụ đắc lực cùng Software Engineer nhà Got It!