Tự học CPP

Những điều cần chuẩn bị và hướng dẫn cơ bản cho người mới học C++

admin
Tháng Mười Một 6, 2019 0 Comment

Hiện nay, khái niệm ngôn ngữ lập trình C++ không còn quá xa lạ gì nữa, vì C++ đã và đang được ứng dụng rất nhiều, ngay cả một số người không chuyên về IT cũng biết đến ngôn ngữ lập trình này. Hầu hết các trường đại học, cao đẳng hay thậm chí các trung tâm giảng dạy về công nghệ thông tin đều có chương trình đào tạo về ngôn ngữ lập trình C++. Bởi vì, học C++ là bước đệm để học các ngôn ngữ lập trình khác, như: C#, Java… Nếu như học viên học ngay một ngôn ngữ lập trình khác mà không học qua C++ trước, thì việc học sẽ khó khăn trong việc tiếp thu hơn, đôi khi mất đến vài tháng để có thể làm quen được. Trong khi, giảng dạy cho học viên ngôn ngữ C++, thì việc học các ngôn ngữ khác sẽ được rút gọn lại do C++ được ứng dụng nhiều, hầu hết các loại ngôn ngữ khác đều có “hình bóng” của C++ trong nó.

Đối với người mới bắt đầu, việc tự học C++ có thể sẽ rất khó khăn. Bài viết này xin được cung cấp các kiến thức cẩm nang cơ bản, giúp dẫn dắt việc học cho người mới bắt đầu có thể tiếp cận với ngôn ngữ lập trình này một cách dễ dàng hơn.

Những bước đầu trên con đường học ngôn ngữ lập trình C++

Đầu tiên bạn cần có một trình biên dịch

Trình biên dịch (Compiler) hay có thể hiểu là phần mềm biên dịch. Trình biên dịch cũng có thể hiểu là một chương trình làm nhiệm vụ dịch một chuỗi các câu lệnh (được viết bằng một ngôn ngữ lập trình nào đó – ngôn ngữ nguồn – mã nguồn), thành một chương trình tương đương (Chương trình được dịch ra gọi là mã đối tượng) Lưu ý rằng, chương trình tương đương này phải ở dưới dạng ngôn ngữ máy tính mới (ngôn ngữ đích). Thường thì, ngôn ngữ đích ở cấp thấp hơn ngôn ngữ nguồn. Có nhiều trình biên dịch C++ miễn phí giúp cho việc học như:

1. Gnu Compiler Collection(tập hợp các công cụ biên dịch mã nguồn từ dự án GNU hay còn gọi là Bộ trình dịch GNU)

GNU
GCC- bộ công cụ biên dịch mã nguồn

Bộ trình dịch này bao gồm các trình dịch cho nhiều ngôn ngữ khác nhau. Đây cũng là bộ trình dịch chính thức của GNU và được đa số các hệ điều hành tương tự như hệ Unix sử dụng làm trình dịch tiêu chuẩn (chẳng hạn như hệ điều hành Linux, Mac OS X hay dòng hệ điều hành BSD).

Thực ra, ban đầu nó chỉ hỗ trợ cho ngôn ngữ lập trình C, cho nên tên gốc của nó là GNU C Compiler (trình dịch C của GNU). Đến 12/1987, GCC mở rộng sang việc hỗ trợ dịch ngôn ngữ C++.

2. Clang- IDE mạnh mẽ hỗ trợ rất tốt C++

clang
Clang được dùng trong việc xây dựng Chrome và Firefox

Dự án Clang cung cấp hệ thống với nền tảng ngôn ngữ Front-end và bộ công cụ hỗ trợ tốt cho hệ ngôn ngữ lập trình C (C, C++, Objective C/C++, OpenCL, CUDA và RenderScript) chủ yếu cho các dự án LLVM. Ngoài ra Clang còn bao gồm cả 2 bộ biên dịch tương thích với GCC và MSVC.

Clang hỗ trợ đầy đủ tất cả các tiêu chuẩn ISO C++ được công bố ( C++ 98, C++ 03, C++ 11 và C++ 14) và hầu hết các tiêu chuẩn C++ 17 sắp tới. Cộng đồng Clang vẫn đang tiếp tục cải thiện các tiêu chuẩn C++ giữa các phiên bản cập nhật bằng cách thu nhập và theo dõi các lỗi được báo cáo và giải quyết vấn đề ngay khi có giải pháp.

Công việc thử nghiệm cũng đang liên tục được triển khai để tối ưu thông số kỹ thuật hoạt động của C++ giúp thúc đẩy tương lai của ngôn ngữ lập trình C ++.

3. Visual Studio 2017 Community- IDE đến từ ông lớn Microsoft

Bên cạnh Visual Studio, tại Connect, Microsoft đã cho ra mắt Visual Studio Community miễn phí cho mọi người. Visual Studio 2017 Community là một IDE (Integrated Development Enviroment) được MS cá nhân hóa cho mục đích sử dụng cho cá nhân hơn là dành cho doanh nghiệp , hay nói các khác là một phần mềm, một môi trường phát triển phù hợp, giúp các lập trình viên tạo nên các loại phần mềm khác.

visual-studio-community
Visual Studio Community 2017- phiên bản Visual Studio miễn phí của Microsoft

Visual Studio 2017 Community là phiên bản nhẹ hơn và được tích hợp thêm tính năng cài đặt mô-đun giúp bạn có thể tùy chọn những tính năng cần thiết để các sản phẩm lập trình nhẹ hơn và biên dịch nhanh hơn.

4. Embarcadero- Phần mềm Code chuyên dụng cho C++

Embarcadero
Embarcadero- phần mềm chuyên về xây dựng phần mềm C++

Trình biên dịch C ++ miễn phí dựa trên nền tảng Clang của Embarcadero. Embarcadero Technologies cũng là một công ty phần mềm máy tính có trụ sở tại Mỹ. Công ty này chuyên phát triển, sản xuất cũng như cấp phép hoặc hỗ trợ các dịch vụ và sản phẩm có liên quan đến phần mềm.

5. Oracle Solaris Studio C++ Compiler- trình biên dịch C++ cho Linux, MacOS

oracle-solaris
Oracle Solaris 11- IDE lâu đời do ORACLE nghiên cứu phát triển

Trình biên dịch C++ của Solaris hỗ trợ tốt cho hệ điều hành được xây dựng trên nền tảng UNIX ( Linux, MacOS), miễn phí cho mọi mục đích thương mại và phi thương mại. Trình biên dịch này hỗ trợ tiêu chuẩn quốc tế ISO cho C++.

Phần mềm Oracle Solaris Studio bao gồm các trình biên dịch C, C ++ và Fortran, có các tính năng sau:

  • Tuân thủ các tiêu chuẩn hiện đại cho các ngôn ngữ lập trình C, C ++ và Fortran.
  • Sản xuất mã hướng đến mục tiêu cho các hệ điều hành, bộ xử lý, kiến ​​trúc, mô hình bộ nhớ cụ thể (32 bit bit và 64 bit bit), số học dấu phẩy động và hơn thế nữa, đó là: theo các tùy chọn dòng lệnh bạn chỉ định.
  • Thực hiện song song tự động trên mã nguồn nối tiếp để tạo ra các nhị phân thể hiện hiệu năng nâng cao trên các hệ thống đa lõi.
  • Sản xuất mã được tối ưu hóa theo cách mà bạn có thể chỉ định thông qua các tùy chọn dòng lệnh để phù hợp với ứng dụng và môi trường triển khai của bạn.
  • Chuẩn bị các nhị phân để gỡ lỗi hoặc phân tích nâng cao bằng các công cụ Oracle Solaris Studio khác.
  • Sử dụng các tùy chọn dòng lệnh giống nhau trên tất cả các trình biên dịch để chỉ định các tính năng này.

6. IBM XL C/C++ Compiler- trình biên dịch C++ tiêu chuẩn

Phiên bản cộng đồng dựa trên nền tảng Clang hoạt động trên Linux với Power, miễn phí sử dụng với mục đích xuất bản phần mềm.

IBM XL C/C++ Compiler
IBM XL C/C++- trình biên dịch chuẩn của IBM

Trình biên dịch IBM XL C và C++ cung cấp các công nghệ biên dịch và tối ưu hóa tiên tiến được xây dựng trên cơ sở mã chung để chuyển các ứng dụng giữa các nền tảng dễ dàng hơn. Chúng tuân thủ các tiêu chuẩn quốc tế và thông số kỹ thuật mới nhất của C/ C++.

Hoặc bạn cũng có thể dùng thử một trong những trang biên dịch online dưới đây, chúng hỗ trợ nhiều dạng ngôn ngữ ứng dụng dựa trên các nền tảng Clang, GCC, Intel và Microsoft. Một số chỉ được biên dịch để cho phép bạn kiểm tra xem mã của bạn có hoạt động đúng hay không và một số cũng cho phép bạn chạy thử nghiệm các ứng dụng của mình để kiểm tra kết quả:

godbolt.org (Clang, GCC, Intel ICC, VC++)

Wandbox  (Clang, gcc – includes Boost)

Online Visual Studio Compiler (VC++)

Rextester (Clang, GCC, VC++)

ideone.com (GCC, Clang)

Tự học C++ từ các nguồn tài nguyên mạng v à website dạy học

web học c++
Tự học C++ qua Website là một giải pháp tốt

C++ Reference: Trang web này tập trung chính vào các loại tài liệu tham khảo, thư viện mẫu tiêu chuẩn, tài liệu kỹ thuật. Nó có bản lưu trữ thường xuyên để bạn có thể tải về sử dụng, phòng khi không có internet.

cplusplus.com: Trang web có các thông tin tổng hợp về ngôn ngữ C++, các tài liệu tham khảo, hướng dẫn và phần bài viết.

Hoặc bạn có thể tham gia các khóa học từ các Website dạy lập trình Online.

Tự học C++ thông qua sách

sách học c++
Sách hướng dẫn C++ từ cha đẻ của C++

Thời đại 4.0 đã làm cho nhiều người lãng quên sách. Nhiều người cho rằng chỉ cần lên mạng là có thể nắm bắt được mọi thứ. Chúng ta đang dần có thói quen lướt Facebook, lướt web để cập nhật tin tức mỗi ngày và nghĩ như vậy đã là quá đủ. Tuy nhiên, nhiều người quên mất rằng, sách vẫn là kho tàng tri thức của nhân loại. Có nhiều thứ bạn không thể tìm kiếm được trên Google mà chỉ có các cuốn sách chuyên ngành mới nhắc đến. Học lập trình C++ cũng vậy. Khi bạn đang là người mới bắt đầu tự học C++, bạn càng cần đọc các sách chuyên ngành để không bị “tẩu hỏa nhập ma”, “rối lung tung xèn” bởi vô vàn thông tin trên mạng. Có nhiều sách viết về ngôn ngữ lập trình C++, nhưng tôi nghĩ, nếu tự học C++ thì học từ sách của chính cha đẻ của C++ viết ra thì vẫn tốt hơn. Sau đây, tôi xin giới thiệu một số quyển sách C++ mà các bạn tự học C++ có thể “gối đầu gường”:

Programming: Principles and Practice Using C++, 2nd Ed. (tạm dịch: Lập trình: Nguyên tắc và thực hành sử dụng C ++, 2nd Ed.)

Nếu bạn hoàn toàn không biết gì về lập trình, thì cuốn sách này là lựa chọn số 1. Cuốn này được viết bởi Bjarne Stroustrup – cha đẻ của C++

A Tour of C++ (tạm dịch: Một chuyến tham quan của C ++ )

Đây cũng là một xuất bản của Bjarne Stroustrup. Nội dung của cuốn sách này xoay quanh các vấn đề như kiến thức cơ bản mà chúng ta có thể có được từ một lập trình viên C ++ có thẩm quyền là gì?

C++ Primer (tạm dịch: Sách nhập môn C++)

Là một trong những cuốn sách nổi tiếng nhất, bán chạy nhất trong lĩnh vực C++. Nó tuy không được viết bởi cha đẻ C++, nhưng cũng được viết bởi những người đồng nghiệp thân thiết nhất của ông này. Phần giới thiệu toàn diện về C++ ở cuốn sách này, giúp bạn đọc học được ngôn ngữ C++ nhanh hơn, sử dụng nó hiệu quả hơn.

The C++ Programming Language (tạm dịch: Ngôn ngữ lập trình C++)

Cuốn sách này đóng vai trò là một tài liệu tham khảo. Tuy không phải là sách hướng dẫn nhưng nó cũng chứa đựng các giải thích sâu rộng, cung cấp các kiến thức có giá trị cho người đọc.

The C++ Standard Library: A Tutorial and Reference (tạm dịch: Thư viện chuẩn C ++: Hướng dẫn và tham khảo)

Cuốn sách này được viết bởi Nicolai Josuttis. Nó cũng là một trong số những cuốn sách đáng nghiên cứu nhất. Đọc tài liệu này, người đọc sẽ được cung cấp thông tin toàn diện về từng thành phần thư viện, bao gồm cả việc giới thiệu về mục đích và thiết kế của nó. Cuốn sách giải thích rõ ràng các khái niệm phức tạp, các chi tiết lập trình thực tế cần thiết để sử dụng hiệu quả, định nghĩa chính xác của các lớp và hàm quan trọng nhất và rất nhiều ví dụ cụ thể.

Hy vọng bài viết trên đây, giúp ích cho bạn trong việc tự học  C++. Để hiểu hơn về ngôn ngữ lập trình C++, bạn có thể tham khảo thêm một số bài viết khác của web. Bên cạnh C++, còn có rất nhiều ngôn ngữ lập trình khác như C, C#, Java… Cũng có nhiều bài viết hay về các ngôn ngữ này trên web của chúng tôi mà bạn không nên bỏ qua. Cuối cùng, tôi hy vọng các bạn nắm bắt tốt các kiến thức từ trang web của chúng tôi, và xa hơn nữa là thành công trên con đường trở thành lập trình viên chuyên nghiệp của mình.