Search…

C++ - Vị Thần Của Quá Khứ, Hiện Tại Và Vị Lai

08/08/20206 min read
C++ Tượng đài trong ngành Công nghệ thông tin.

C hay xa hơn chút là C++ ... cũ, nhưng vẫn còn sống và ... sống khỏe

Nếu công việc của bạn liên quan đến lập trình, hẳn là bạn đã nghe nói về C/C++.

Tuy C/C++ không chứng tỏ vị thế mạnh mẽ trong ứng dụng, phát triển web hoặc xây dựng các ứng dụng web phức tạp nhưng có một phân khúc mà C/C++ sẽ luôn nắm giữ.

Ngay cả khi bạn chuyên về một ngôn ngữ lập trình khác bạn chắc chắn biết về C/C++. Nó được mô tả như "lingua franca" của ngôn ngữ lập trình.

Lingua franca: Một ngôn ngữ được công nhận là ngôn ngữ chung phổ biến bởi những người với ngôn ngữ bản địa khác nhau.

Python (một ngôn ngữ lập trình cấp cao hướng đối tượng) dựa trên C/C++. Hầu như sâu bên trong tất cả các ngôn ngữ trừu tượng vẫn là C/C++. Luôn có một lý do tại sao C/C++ thường là ngôn ngữ đầu tiên bạn học khi bạn bắt đầu bậc học của mình.

C/C++ được coi là ngôn ngữ lập trình cấp trung. Đối với hầu hết lập trình viên, nó là thứ gần nhất với assembly. Bạn có thể lập trình C/C++ trên hệ thống và thiết kế một ứng dụng chạy trên hệ thống đó. Điều này đưa C/C++ ở giữa Assembly và các ngôn ngữ cấp cao hơn như Java hay C#, ...

Thật dễ dàng để nghĩ rằng C/C++ đã cũ, lỗi thời hoặc thay thế bằng một số ngôn ngữ mới hơn, xu hướng hơn. Nhưng bây giờ thực sự là thời điểm tốt nhất để có kiến thức tốt về C/C++ để tạo lợi thế cho tương lai của bạn.

C/C++ là quá khứ, hiện tại và tương lai

Nhìn sơ qua các thiết bị gần nhất quanh bạn. Rất có thể nó được lập trình bằng C. Hệ điều hành chắc chắn được viết - ít nhất là một phần - bằng C/C++. Và các driver cũng không phải ngoại lệ.

Khi xu hướng Internet of Things (IoT) tiếp tục lan rộng, rất nhiều trong số các thiết bị IoT được lập trình bằng C/C++ và các firmware cũng không ngoại lệ. C/C++ cũng có mặt trong việc lập trình ra các trình biên dịch.

Không chỉ đóng góp vào lập trình phần cứng. Bất cứ thứ gì cần phải xử lý dữ liệu khổng lồ hoặc yêu cầu hiệu suất tối ưu thường được viết bằng C/C++, do hiệu năng tuyệt vời của nó.

Các hệ quản trị cơ sở dữ liệu phổ biến nhất thế giới như Oracle, MySQL, MS SQL Server và PostgreSQL, được viết bằng C/C++ cũng như các máy chủ Apache và nginx.

Ngày nay, các bộ phim 3D bom tấn được tạo ra với các ứng dụng được viết bằng C/C++ (Ví dụ như NUKE vì chúng phải tính toán rất nhiều phép tính mỗi giây và cần phải render càng khỏe càng tốt).

Theo Chỉ số TIOBE, sự phổ biến liên tục của C/C++ luôn đứng trên top 5 và đã luôn quanh quẩn ở đó.

Vì vấn đề hiệu suất mà ngành công nghiệp ô tô luôn bám lấy C/C++ để xây dựng nhiều ứng dụng như hệ thống tự lái vì tất cả quá trình xử lý trong xe tự hành phải được thực hiện trong thời gian thực, cũng như bạn đã biết ở Việt Nam đã bắt đầu ngành công nghiệp ô tô với Vinfast - cơ hội việc làm sẽ không thể thiếu.

Bạn có thể tìm thấy C/C++ ở rất nhiều nơi trên thế giới, hầu hết các ngôn ngữ mới hơn đều có cách giao tiếp với C. C++ ABI là một trong những giao diện dễ sử dụng nhất.

Chỉ số lượng code được viết bằng C/C++ chứng tỏ có nhu cầu cho các lập trình viên C/C++ trong nhiều năm tới.

Việc thay thế một hệ thống trong C/C++ sẽ rất tốn kém, ngay cả đối với các tổ chức có tư tưởng tiến bộ nhất. Về mặt lý thuyết, bạn có thể thay thế C bằng C++, hoặc Go hoặc Rust, nhưng cũng không có đủ động lực thúc đẩy thay đổi. Tôi đã từng đào tạo ở nhiều công ty, mặc dù họ cần đào tạo về Java hoặc các ngôn ngữ cấp cao khác nhưng họ vẫn yêu cầu trong quá trình đào tạo phải có thêm phần các ngôn ngữ này có thể gọi sang các hàm trong thư viện của C/C++ để tái sử dụng các module được viết bằng C/C++ sẵn có của họ để tiết kiệm chi phí.

Bạn nên học C/C++, ngay cả khi bạn đã chuyên về ngôn ngữ lập trình khác

Ngay cả khi bạn là một front-end developer, hoặc thông thạo các ngôn ngữ lập trình hướng đối tượng như Java / Python, vẫn có lợi khi có một chút kiến thức về C/C++. Một số lý do như:

Bạn muốn hiểu sâu hơn về máy móc. Mức độ ngôn ngữ bạn sử dụng càng thấp, bạn càng gần với máy. Với C, bạn có thể viết gần với phần cứng và thao tác trực tiếp với bộ nhớ. Hiểu cách phân bố bộ nhớ hoạt động hoặc cách C/C++ sử dụng các thanh ghi để lưu trữ dữ liệu, có thể giúp bạn có thêm lợi thế trong việc viết code hiệu quả ngay cả khi bạn không sử dụng C/C++.

Bạn là một lập trình viên mới bắt đầu và muốn tiếp thu nhiều ngôn ngữ nhanh hơn. Chuyển từ ngôn ngữ lập trình này sang ngôn ngữ tiếp theo sẽ suôn sẻ hơn rất nhiều khi bạn có tư duy nền tảng và trừu tượng dần. Các ngôn ngữ trừu tượng cao sẽ khó học hơn nếu bạn không hiểu được sự trừu tượng hóa! Với C/C++, bạn học các nền tảng của lập trình hiện đại và sẽ tiếp tục vươn lên.

Bạn muốn có nhiều cơ hội việc làm trong một lĩnh vực đang phát triển. IoT là tương lai. Bạn sẽ còn tiếp tục thấy nhu cầu ngày càng tăng đối với các lập trình viên C/C++ có thể làm việc với công nghệ nhúng, điều khiển và điện tử.

Trong quá khứ, bạn có thể tránh đối mặt với C/C++ vì nhu cầu như front-end, back-end tạo ứng dụng có thể được phát triển bằng những ngôn ngữ dễ tiếp cận hơn, nhưng đồng thời đã tạo nên 1 lực lượng cạnh tranh đáng kể. Đồng thời cũng sinh ra 1 chiều ngược lại đó là không có quá nhiều các developer C/C++.

Nếu so sánh với các khóa học về C/C++ và các ngôn ngữ khác như Java, C# ... bạn cũng thấy rằng không thấy nhiều các khóa học C/C++. Vì thế hãy bắt đầu từ nền tảng trước và khuyên bạn học C/C++ ngay bây giờ và bạn sẽ không hối hận đâu.

IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024