Khai giảng khóa học lập trình C++ Tại Tin Học Hoài Ân

Trong số hàng trăm ngôn ngữ lập trình đang cùng tồn tại, một số được dùng phổ biến hơn những ngôn ngữ còn lại. C++ là một ngôn ngữ phổ biến như thế.  Một số trang web giống như langpop.com vẫn cập nhật bảng xếp hạng các ngôn ngữ đang được dùng nhiều nhất, nếu bạn muốn tìm hiểu. Như bạn có thể thấy, C, Java và C++ là 3 ngôn ngữ luôn giữ vị trí rất cao trong bảng xếp hạng.

Câu hỏi đặt ra là : Có nhất thiết phải chọn một ngôn ngữ phổ biến ? Có những ngôn ngữ rất thú vị nhưng ít được sử dụng rộng rãi. Nếu bạn học những ngôn ngữ này, bạn sẽ gặp khó khăn trong việc tìm người có thể giúp bạn khi bạn gặp phải vấn đề gì đó. Đó là lí do vì sao C++ là một lựa chọn tốt cho những người mới bắt đầu : có rất nhiều người lập trình bằng C++ và bạn sẽ không cảm thấy lạc lõng khi học ngôn ngữ này.
Tất nhiên cũng có những tiêu chí khác ngoài tính phổ biến. Tiêu chí quan trọng nhất theo quan điểm cá nhân của tôi là bậc của ngôn ngữ. Có hai nhóm ngôn ngữ lập trình : ngôn ngữ bậc cao và ngôn ngữ bậc thấp.
Vậy ngôn ngữ bậc cao là gì ?
Đó là một ngôn ngữ khác hẳn so với ngôn ngữ nhị phân, nghĩa là khác hẳn so với cách máy tính vận hành. Nó giúp bạn lập trình một cách nhanh chóng và dễ dàng.
Ngược lại, ngôn ngữ bậc thấp có vẻ gần gũi với sự vận hành của máy tính hơn : nó thường đòi hỏi nhiều hơn ở bạn nhưng cũng cho bạn nhiều khả năng kiểm soát hơn đối với những gì bạn làm.
C++ được xếp vào nhóm ngôn ngữ lập trình bậc thấp. Điều này không có gì khiến bạn phải sợ hãi cả. Mặc dù khá phức tạp, ngôn ngữ này có những ưu điểm nổi bật như hiệu năng và tốc độ cao.  Trên thực tế, lí do chính khiến phần lớn các trò chơi được phát triển bằng C++ chính là sức mạnh và tốc độ của ngôn ngữ này. Đây là lí do khiến C++ trở thành một ngôn ngữ mà bạn không thể bỏ qua.
Sơ đồ sau đây giới thiệu với bạn một số ngôn ngữ lập trình phân loại theo bâc :
Hệ thống ngôn ngữ
Bạn có thể thấy chúng ta có thể lập trình bằng hệ nhị phân dựa vào một ngôn ngữ cổ điển có tên gọi Assembleur. Bởi vì riêng việc viết một chương trình để thực hiện các phép tính cơ bản bằng ngôn ngữ nhị phân đỏi hỏi những nỗ lực khủng khiếp mà người thường khó có thể làm được, chúng ta thường ưu tiên sử dụng một ngôn ngữ lập trình (trung gian).
Trong lập trình, khái niệm « bậc » là một khái niệm tương đối. Chúng ta có thể coi C++ là ngôn ngữ bậc thấp so với Python, nhưng nó ở bậc cao hơn so với Assembleur. Tất cả phụ thuộc vào góc nhìn của chúng ta.
Tóm tắt các điểm mạnh của C++
C++ rất phổ biến. Như bạn đã thấy, nó là một trong những ngôn ngữ được sử dụng nhiều nhất trên thế giới. Vì thế chúng ta có thể tìm thấy rất nhiều các tài liệu trên internet cũng như các sự trợ giúp trên các diễn đàn về C++. Thậm chí có những người tốt bụng viết hẳn giáo trình C++ dành cho người mới bắt đầu.
C++ rất nhanh, thậm chí là cực nhanh. Ưu điểm này khiến nó là lựa chọn số 1 cho các ứng dụng cần tốc độ, điển hình như các trò chơi, các phần mềm tài chính hay các chương trình quân sự hoạt động theo thời gian thực.
Nó có tính di động (portable) : Một đoạn code C++ trên lý thuyết có thể được chuyển đổi một cách dễ dàng để chạy trong Windows, Mac OS hay Linux. Bạn không cần phải viết lại chương trình của mình để chạy trong một plateform khác.
Có rất nhiều các thư viện cho C++. Các thư viện là các mở rộng cho một ngôn ngữ, gần giống như các plug-in.  C++, bản thân nó, không thể làm được nhiều điều, nhưng khi kết hợp với các thư viện, chúng ta có thể tạo các chương trình 3D, mạng, âm thanh, cửa sổ,…
C++ đa mô hình (multi-paradigms). Nghĩa là chúng ta có thể lập trình C++ bằng nhiều cách khác nhau. Vì bạn vẫn đang chập chững bước vào thế giới lập trình nên chúng tôi sẽ chưa giới thiệu ngay với bạn các cách lập trình khác nhau, tuy nhiên bạn có thể biết một trong số đó là lập trình hướng đối tượng. Đây là cách lập trình  giúp làm đơn giản hóa cơ cấu code trong các chương trình của chúng ta và giúp một số đoạn code có thể được tái sử dụng một cách dễ dàng.  Toàn bộ phần II của giáo trình sẽ được dành để nói về lập trình hướng đối tượng.
Cần phải nhấn mạnh với bạn C++ không phải là ngôn ngữ duy nhất đáng để học. Bản thân nó cũng có các nhược điểm so với nhiều ngôn ngữ khác, điển hình là sự phức tạp của nó. Với C++ bạn có rất nhiều quyền kiểm soát đối với hoạt động của máy tính (và việc quản lí bộ nhớ) : đây là một điểm mạnh nhưng nếu bạn sử dụng nó không đúng, bạn sẽ rất dễ dàng làm « treo » chương trình. Chúng ta sẽ dần dần tìm hiểu tất cả các vấn đề này xuyên suốt giáo trình.
Làm quen với C++
Dưới đây là một chương trình đơn giản để bạn dễ dàng hình dung về C++ : Chương trình hiển thị dòng « Hello world ! » ra màn hình (chương trình kinh điển để bắt đầu học lập trình). Đây sẽ là một trong những mă nguồn (code) đầu tiên mà chúng ta sẽ tìm hiểu trong chương tiếp theo.
  1. #include
  2. using namespace std;
  3. int main(){
  4.     cout << "Hello world!" << endl;
  5.     return 0;
  6. }
Một chút về lịch sử của C++
Lịch sử lập trình đã trải qua một quăng thời gian rất dài trước khi C++ ra đời. Ở thời kì đầu, bàn phím thậm chí còn chưa tồn tại, người ta đă sử dụng những tấm card như hình bên dưới để đưa ra các lệnh cho máy tính. Công việc này đòi hỏi thời gian và sự tỉ mỉ rất cao.
Với sự phát triển của tin học, bàn phím và các ngôn ngữ lập trình đầu tiên cũng ra đời :
1958 : Rất lâu trước đây, thời mà máy tính nặng hàng tấn và có kích thước bằng cả tòa nhà của bạn, con người đã bắt đầu phát minh ra một ngôn ngữ có tên là Algol.
1960-1970 : công nghệ phát triển, người ta tạo ra một ngôn ngữ mới có tên là CPL, sau đó phát triển thành BCPL, rồi được đổi tên thành ngôn ngữ B (bạn không cần phải ghi nhớ tất cả những thứ này :) ).
1970 : Vào một ngày đẹp trời, người ta tạo ra một ngôn ngữ lập trình mang tên C. Ngôn ngữ này, sau khi có một số thay đổi, vẫn là một trong những ngôn ngữ được sử dụng nhiều nhất bây giờ (theo langpop.com).
Khóa học lập trình C++ tại Hoài Ân
1983 : Một thời gian sau, người ta nghĩ đến việc thêm vào C những yếu tố mới để làm nó phát triển hơn. Một ngôn ngữ mới ra đời dưới cái tên C++ và được hình thành hoàn toàn trên nền ngôn ngữ C. C++ thực chất là C với nhiều yếu tố mới. Các yếu tố mới này gồm có khái niệm lập trình tiên tiến như lập trình hướng đối tượng, đa hình (polymorphism), flux,… Tóm lại, đó là những yếu tố có vẻ khá phức tạp với bạn vào thời điểm này nhưng chúng ta sẽ có cơ hội quay trở lại nghiên cứu chúng vào phần sau của giáo trình.
Chờ một chút,… nếu như C++ là một bước cải tiến của C thì tại sao ngày nay vẫn còn rất nhiều người lập trình bằng C ?
Vì không phải ai cũng cần đến những bước cải tiến của C++. Bản thân ngôn ngữ C cũng đủ mạnh để làm nền tảng cho các hệ điều hành như Linux, Mac OS X và Windows.
Những người không cần đến các cải tiến (cũng như sự phức tạp) của C++ tiếp tục lập trình bằng C bất chấp tuổi đời của ngôn ngữ này. Nói một cách khác, một ngôn ngữ có thể đă già nhưng vẫn phù hợp với thời đại.
Cha đẻ của C++
Bjarne Stroustrup, một kĩ sư tin học người Đan Mạch, đă xây dựng C++. Không hài lòng với những gì C có thể làm được, ông đã tạo ra, vào năm 1983, ngôn ngữ C++ bằng việc thêm vào C các tính năng mà theo ông C vẫn còn thiếu.
Bjarne Stroustrup hiện đang giảng dạy về tin học tại đại học Texas A&M ở Mỹ. Ông là một hiện tượng lớn của thế giới tin học mà bạn cần phải nhớ (ít nhất là tên ông).
Rất nhiều ngôn ngữ khác được xây dựng lấy ý tưởng từ C++, ví dụ như Java.
C++, mặc dù đã tồn tại trong một thời gian tương đối dài, vẫn đang tiếp tục được cải tiến và hoàn thiện. Một phiên bản mới, có tên gọi C++1x, đang trong giai đoạn xây dựng và phát triển. Nó không phải một ngôn ngữ mới mà là một phiên bản nâng cấp của C++. Những đổi mới mà nó mang lại dường như quá phức tạp với chúng ta nên chúng ta sẽ không nói đến nó trong giáo trình này.

Bài viết liên quan

BẢN ĐỒ CHỈ DẪN