C++ cơ bản | 1. Lập trình là gì? Học lập trình có khó không?

MỤC LỤC:

0. Thiết bị cổ xưa nhất được sử dụng để tính ? 

Để có thể co gọn lại thành một từ ngắn gọn Máy tính, ta cùng quay trở lại quá khứ để biết đến 1 thứ gọi là Thiết bị hỗ trợ tính toán. 

Cổ xưa nhất chính là Ngón tay. ( Giả dụ ông A có 2 con bò, .. thì tương ứng với số ngón tay, và ông A dùng nó để đi trao đổi thông tin với những người khác, 2 con bò cần nằm tại chuồng, việc mang 2 con bò đi khắp mọi nơi để trao đổi là một điều gì đó hết sức khó nói : ))) ). 

Và khi số lượng bò vượt quá số lượng ngón tay và ngón chân của ông A, thì cần làm gì để đại diện cho số lượng đây. Đó chính là que tính. 

Rồi đến 1 ngày những que tính cũng là quá ít để hỗ trợ tính toán cho con người. 

Người xưa cần phải có một thứ gì đó ở tầm cao hơn. Chính là lúc người ta cần đến bàn tính Abacus.

Abacus (ra đời vào khoảng 2500 năm TCN) là một máy tính hoạt động bằng tay, giúp cộng và trừ số có kích thước lớn. Nó cũng lưu trữ trạng thái kết quả ( bằng cách cất vào trong tủ, và không động đến nó ) ( ý tưởng sơ khai của ổ cứng hiện nay ). 

Bàn phím Abacus - công cụ tính toán xa xưa

1. Máy tính là gì? 

Máy tính được tạo ra để giải quyết bài toán lớn hơn rất nhiều, khi quy mô và tri thức nhân loại ngày càng phát triển. Ví dụ để tính toán, quản lý những con số khổng lồ: những bài toán quản lý hàng tỷ tỷ số liệu, với logic rất phức tạp. 

Và về chi tiết tiến bộ nhân loại đã tạo ra được chiếc máy tính như nào, nếu bạn muốn tìm hiểu, có thể tra cứu thông tin này tại wiki

2. Chính xác thì "LẬP TRÌNH" là gì? 

Lập trình (tiếng Anh là Coding) - một cách nói khác "Lập trình máy tính" chính là một công việc cực kì khó hiểu được thực hiện bởi các lập trình viên siêu phàm. 

Không, câu trên chỉ có một nửa sự thật, Giống kiểu Thanos chỉ muốn giết một nửa nhân loại sau cú búng tay ( mà sao lại là Búng tay nhỉ, vỗ tay có nhanh hơn không, : ]] , nhỡ búng sịt thì có phải quê vcđ không?, à mà thôi, quay lại với hiện tại nào... )

"Lập trình máy tính đơn giản là việc hướng dẫn máy tính thực hiện những thứ bạn muốn một cách tường minh nhất. "
( máy tính nó không đủ thông minh để hiểu được những gì bạn không nói, hoặc dựa vào tính cách của bạn : ]] , bạn sẽ vặn tôi về trí thông minh nhân tạo, Ok cái đấy chúng ta sẽ nói đến ở một câu chuyện khác nhé )

Lập trình viên thời xưa thì phải diễn đạt hướng dẫn này thậm chí chính xác bằng ngôn ngữ máy, điều này đòi hỏi sự hiểu biết về phần cứng và công sức rất lớn trong việc viết lệnh.

Nhưng hiện đại, các ngôn ngữ lập trình bậc cao hơn ra đời, gần với ngôn ngữ đọc hiểu của con người hơn, ngắn gọn hơn. Giúp cho các lập trình viên có thể tập trung đầu tư vào logic hơn là chi tiết vào kiến trúc máy tính vốn quá chi tiết và mang tính máy móc trước kia. 

Nhưng để lập trình viên hiện đại và máy tính có thể hiểu nhau thì cần có trình biên dịch. Trình biên dịch sẽ làm nhiệm vụ biên dịch ngôn ngữ lập trình ra ngôn ngữ máy, tương thích với các tín hiệu máy tính, để máy tính có thể hiểu được. 

Mồi ngôn ngữ lập trình, cần có trình biên dịch được tạo riêng cho nó. 

Ví dụ: GCC là một tập hợp các trình biên dịch thiết kế cho C++

Theo wiki:

Tên gốc của GCC là GNU C Compiler (Trình biên dịch C của GNU), do ban đầu nó chỉ hỗ trợ dịch ngôn ngữ lập trình C, GCC 1.0 được phát hành vào năm 1987, sau đó được mở rộng hỗ trợ dịch C++ vào tháng 12 cùng năm đó.[1] Các thành phần đầu vào của trình biên dịch (front end) sau đó cũng được phát triển cho các ngôn ngữ lập trình Fortran, Pascal, Objective C, Java, Ada, Go và một số ngôn ngữ khác

Lập trình viên hiện đại sẽ tư duy và hướng dẫn sự hoạt động của máy tính thông qua các ngôn ngữ lập trình. 

3. Học lập trình có khó không?

Vậy để bắt đầu với lập trình hiện đại, việc hiểu biết sâu về kiến trúc máy tính không còn là điều kiện tiên quyết nữa. Chúng ta đi sâu vào ứng dụng thực tế, và giải quyết các bài toán logic, việc sử dụng các ngôn ngữ bậc cao thân thiện như C++ sẽ giúp lập trình viên nhanh chóng nắm bắt được công nghệ hơn.  

Tuy vậy, kiến trúc về phần cứng là cần thiết để chúng ta có thể xử lý được các lỗi phần mềm bí hiểm và bài toán về cải thiện hiệu suất chương trình trong tương lai. 
Vậy nên chúng ta cũng cần bổ sung kiến thức về nó mỗi ngày, song song với kiến thức về ngôn ngữ lập trình. 

Chúng ta sẽ bàn chi tiết hơn về ngôn ngữ lập trình ở bài viết sau. 
Cảm ơn bạn đã quan tâm bài viết này!
Tuấn Ti Tiện

Author:

Tôi là Tuấn Anh, một lập trình viên C++, hiện tại đang làm việc với Qt Framework. Giờ đã là bố của một thanh niên nhỏ, gần đây tôi thấy mình cần sống có trách nhiệm hơn nữa. : ]] Tôi cảm thấy nếu tôi không có nơi nào đó để ghi lại, tôi sẽ quên mất nhiều thứ. Dấu chân trên cát cũng vậy, nếu ta không chụp ảnh nó lại, rồi nó cũng sẽ bị gió làm mờ đi dần rồi mất hút hẳn. Cảm ơn anh em đã ghé qua và đọc những gì tôi viết. Hữu duyên thiên lý Ngô tương nặng, à nhầm Năng tương ngộ. : ]] Thân ái 3000!
© Giao diện website thiết kế bởi TuanTiTien.com