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++
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 và không dễ dàng gì để có được thành công như blogger Lucidplot. 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)
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++
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 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++
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
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.
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 bán khóa học
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
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ể.
Cơ hội nghề nghiệp cho ngôn ngữ lập trình C++
Học lập trình trong những năm gần đây vẫn luôn là một trong những hướng đi đem lại nhiều lựa chọn và cơ hội làm việc nhất. Và riêng về lập trình C++ thì tuy là một ngôn ngữ lập trình đã lâu đời nhưng với sự phát triển ổn định của mình thì đây vẫn là một trong những ngôn ngữ lập trình nên học nhất thay vì các ngôn ngữ lập trình “ngàn đô”. Cơ hội và hướng đi dành cho các bạn học C++ có khá nhiều lựa chọn mà bạn có thể cân nhắc và một số lựa chọn nổi bật là:
1. Lập trình viên
Đương nhiên rồi, lập trình viên là công việc mà bạn nên hướng đến từ đầu để học hỏi thêm kinh nghiệm và nâng cao kỹ năng lập trình của mình. Những vị trí cấp cao hơn trong các công ty công nghệ, lập trình như: trưởng bộ phận, quản lý dự án, leader, … đều đa số đi từ con đường lập trình viên lên.
2. Tester
Kiểm thử phần mềm, đây là một trong những lựa chọn thú vị nhất trong công nghệ thông tin ngày nay. Kiểm thử phần mềm yêu cầu bạn cần phải có kiến thức rộng hơn là lập trình nhưng không cần phải có chuyên môn quá cao.
3. Freelancer
Freelancer là một trong những cách tốt nhất để bạn có thể nâng cao kĩ năng và kinh nghiệm của mình khi được tham gia nhiều dự án mới lạ với phong cách làm việc từ nhiều công ty, tổ chức khác nhau giúp bạn trải nghiệm được nhiều hơn về lập trình và mở rộng thêm các mối quan hệ cần thiết. Tuy nhiên đây là một con đường khá khó khăn nên bạn cần phải tìm hiểu thật kĩ trước khi quyết định.
Tìm hiểu thêm về Freelancer: https://www.youtube.com/watch?v=dQ3oLREFCxg
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.