Last updated on

Từ Ý Tưởng Đến Phần Mềm: Con Người Đã Dạy Máy Tính Hiểu Mình Như Thế Nào?


Có một điều khá kỳ lạ mà chúng ta hiếm khi để ý.

Mỗi ngày, hàng tỷ người mở điện thoại và sử dụng các ứng dụng như Google, Facebook, Grab, TikTok hay ChatGPT.

  • Chúng ta tìm đường.
  • Chúng ta nhắn tin.
  • Chúng ta xem video.
  • Chúng ta đặt đồ ăn.
  • Chúng ta trò chuyện với AI.

Mọi thứ diễn ra tự nhiên đến mức đôi khi ta quên mất rằng phía bên kia màn hình là một cỗ máy. Và cỗ máy đó không thực sự hiểu bất kỳ điều gì trong số đó.

  • Nó không hiểu “đặt xe”.
  • Nó không hiểu “mạng xã hội”.
  • Nó không hiểu “bạn bè”.
  • Nó cũng không hiểu câu hỏi:

“Tìm cho tôi một quán cà phê đẹp gần đây.”

Ở tầng thấp nhất, máy tính chỉ biết một số lượng rất nhỏ các phép toán đơn giản được biểu diễn bằng tín hiệu điện. Đó là tất cả những gì nó biết.


Một Câu Hỏi Thú Vị

Vậy làm thế nào một ý tưởng trong đầu con người lại có thể trở thành thứ mà một cỗ máy chỉ biết tính toán có thể thực hiện được?

Làm thế nào câu nói:

“Tôi muốn xây dựng một ứng dụng nhắn tin.”

có thể trở thành hàng triệu dòng mã nguồn?

Làm thế nào những dòng mã nguồn đó trở thành các lệnh mà CPU có thể thực thi?

Và làm thế nào hàng tỷ transistor bên trong máy tính phối hợp với nhau để cuối cùng tạo ra một tin nhắn xuất hiện trên màn hình của người khác?

Nếu nhìn kỹ hơn, đây không chỉ là câu chuyện của lập trình.

Đây là câu chuyện về cách loài người xây dựng nên một hệ thống ngôn ngữ và các lớp trừu tượng để giao tiếp với máy tính.


Computer Science Thực Sự Nghiên Cứu Điều Gì?

Nhiều người nghĩ Computer Science đơn giản là học lập trình. Nhưng lập trình chỉ là một phần rất nhỏ của bức tranh. Đằng sau một dòng code là hàng chục năm nghiên cứu về:

  • Toán học
  • Logic
  • Thuật toán
  • Ngôn ngữ lập trình
  • Hệ điều hành
  • Kiến trúc máy tính
  • Mạng máy tính
  • Hệ thống phân tán

Thoạt nhìn, những lĩnh vực này có vẻ tách biệt.

Nhưng thực chất chúng đang cùng giải quyết một bài toán duy nhất:

Làm thế nào để biến ý định của con người thành những quá trình tính toán mà máy tính có thể thực thi một cách chính xác và hiệu quả?

Hay nói ngắn gọn hơn:

Computer Science là ngành nghiên cứu cách biến suy nghĩ của con người thành hành động của máy tính.


Hành Trình Từ Ý Tưởng Đến Thực Thi

Mỗi phần mềm đều bắt đầu từ một ý tưởng.

Ví dụ:

“Tôi muốn xây dựng một ứng dụng nhắn tin.”

Ý tưởng đó sẽ phải đi qua rất nhiều tầng trừu tượng trước khi trở thành một hệ thống thực sự chạy được.

Ý tưởng

Mô hình hóa vấn đề

Toán học

Lý thuyết tính toán

Thuật toán

Cấu trúc dữ liệu

Ngôn ngữ lập trình

Compiler & Runtime

Hệ điều hành

Kiến trúc máy tính

Mạng máy tính

Hệ thống phân tán

Ứng dụng thực tế

Mỗi tầng tồn tại vì một lý do. Mỗi tầng giải quyết một vấn đề cụ thể. Và mỗi tầng đều góp phần thu hẹp khoảng cách giữa:

Ý tưởng của con người

Máy tính thực thi được

Chúng Ta Sẽ Đi Qua Những Gì?

Trong series này, chúng ta sẽ lần lượt khám phá từng tầng của hành trình đó. Không phải bằng cách học thuộc định nghĩa. Mà bằng cách trả lời những câu hỏi thực tế:

1. Toán học

  • Tại sao khoa học máy tính lại bắt đầu từ toán học?
  • Toán học giúp mô tả bài toán như thế nào?
  • Điều gì khiến một bài toán trở nên “tính toán được”?

2. Lý thuyết tính toán

  • Máy tính có thể giải được mọi bài toán không?
  • Có những bài toán nào về bản chất là không thể giải?
  • Giới hạn thực sự của máy tính nằm ở đâu?

3. Thuật toán & Cấu trúc dữ liệu

  • Điều gì tạo nên một thuật toán tốt?
  • Vì sao hai chương trình cho cùng kết quả nhưng tốc độ lại khác nhau hàng trăm lần?
  • Máy tính biểu diễn các khái niệm trong thế giới thực như thế nào?

4. Ngôn ngữ lập trình

  • Tại sao tồn tại nhiều ngôn ngữ lập trình?
  • Điều gì xảy ra khi chúng ta viết code?
  • Máy tính “đọc” chương trình như thế nào?

5. Compiler & Runtime

  • Điều gì xảy ra sau khi nhấn nút Run?
  • Compiler thực sự làm gì?
  • Mã nguồn được chuyển thành mã máy như thế nào?

6. Hệ điều hành & Kiến trúc máy tính

  • CPU thực thi chương trình ra sao?
  • Bộ nhớ hoạt động như thế nào?
  • Hệ điều hành giúp chương trình chạy được bằng cách nào?

7. Mạng & Hệ thống phân tán

  • Một tin nhắn được gửi từ điện thoại này sang điện thoại khác như thế nào?
  • Điều gì giúp Google, Facebook hay ChatGPT phục vụ hàng triệu người dùng cùng lúc?
  • Một hệ thống lớn được xây dựng từ những thành phần nào?

Mục Tiêu Của Series

Nếu bạn mới bước chân vào ngành phần mềm, series này sẽ giúp bạn nhìn thấy bức tranh tổng thể thay vì chỉ học các khái niệm rời rạc.

Nếu bạn đã làm phần mềm nhiều năm, hy vọng nó sẽ giúp kết nối lại những mảnh ghép mà chúng ta thường học riêng lẻ:

  • Toán học
  • Thuật toán
  • Ngôn ngữ lập trình
  • Compiler
  • Operating System
  • Computer Architecture
  • Distributed Systems

Bởi cuối cùng, tất cả chúng đều là những phần của cùng một câu chuyện.

Câu chuyện về cách con người biến một ý tưởng trong đầu mình thành thứ mà máy tính có thể thực hiện được.


Computer Science không chỉ là câu chuyện về máy tính.

Nó là câu chuyện về cách con người biến suy nghĩ của mình thành những thứ máy tính có thể hiểu, thực thi và mở rộng ở quy mô của cả thế giới.