STDIO
Tìm kiếm gần đây

    Nội dung

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

    02/06/2014
    08/08/2020
    C++ - Vị Thần Của Quá Khứ, Hiện Tại Và Vị Lai
    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.

    STDIO Training

    Trung tâm đào tạo lập trình cho doanh nghiệp

    Thảo luận

    In order to comment you must be a STDIO Insider. Please sign up or log in to continue.

    Đăng nhập

    Bài viết liên quan

    Bản Chất Của Biến Trong C/C++

    Bản Chất Của Biến Trong C/C++

    Những ngày đầu được học và làm việc với các kiểu biến như int, float, char….Tôi luôn có những thắc mắc về:”Điều gì đang xảy ra bên trong biến int, char… khi ta cấp phát ...

    Trần Hữu Danh

    16/01/2015

    Quản Lý Vị Trí Các Đối Tượng Trong Game

    Quản Lý Vị Trí Các Đối Tượng Trong Game

    Thông thường khi khởi tạo một đối tượng trong game, các lập trình viên đều khởi tạo một vị trí nào đó cho chúng. Điều đó có nghĩa là các đối tượng luôn tồn tại trong game ...

    Ryan Lê

    30/03/2015

    C++11 - Smart Pointers - Quản Lý Tài Nguyên

    C++11 - Smart Pointers - Quản Lý Tài Nguyên

    Khi chương trình lớn dần lên, ta sẽ cần phải sử dụng các tài nguyên chia sẻ, và khi đó ta mới thật sự đối mặt với vấn đề về quản lý tài nguyên trong C++. Smart pointer sẽ ...

    Hoàng Tiến Đạt

    06/12/2014

    Rvalue References Và Move Semantics

    Rvalue References Và Move Semantics

    Vì đây sẽ là một khái niệm khó hiểu đối với những người chưa biết về nó. Do đó, bài viết không đưa ra khái niệm “Move semantics” ngay mà sẽ đi sơ lượt qua các khái niệm ...

    Hoàng Tiến Đạt

    02/12/2014

    Hiện Thực Game Zero Với Unity - Phần 3 - Điểm Số Và Progress Timer

    Hiện Thực Game Zero Với Unity - Phần 3 - Điểm Số Và Progress Timer

    Tiếp tục chuỗi bài viết Hướng Dẫn Hiện Thực Game Zero Với Unity, ở phần trước, tôi đã giới thiệu và hướng dẫn các bạn cách hiện thực gameplay của game Zero. Trong phần 3 ...

    Rye Nguyen

    10/08/2015

    10 Phần Mềm Nổi Tiếng Được Viết Bằng C/C++

    10 Phần Mềm Nổi Tiếng Được Viết Bằng C/C++

    Giới thiệu các phần mềm nổi tiếng được viết bằng C/C++ với hiệu năng cao, tính phổ biến và rất hữu ích, minh chứng cho sức mạnh của C/C++ vượt thời gian.

    STDIO TrainingGóc nhìn

    09/08/2020

    Áp Dụng Kĩ Thuật OOP Trong Quá Trình Xây Dựng Framework Dựa Trên Thư Viện SDL

    Áp Dụng Kĩ Thuật OOP Trong Quá Trình Xây Dựng Framework Dựa Trên Thư Viện SDL

    Trong quá trình xây dựng Engine của bản thân mình, thông qua bài viết Khởi Tạo Môi Trường Lập Trình Game Sử Dụng Thư Viện SDL (Simple DirectMedia Layer) của Nghĩa Nguyễn ...

    Hoàng Thái

    09/09/2015

    Cơ Bản Về XML

    Cơ Bản Về XML

    Hiện nay không thể phủ nhận được vai trò quan trọng của ngôn ngữ XML trong môi trường phát triển ứng dụng. Trong bất cứ một ứng dụng nào, chúng ta cũng có thể dễ dàng bắt ...

    Đinh Hòa

    03/09/2015

    Type-casting Trong C++

    Type-casting Trong C++

    Chuyển đổi kiểu dữ liệu (type-casting) là một kỹ năng quan trọng trong lập trình C/C++. Một số bài toán phức tạp không thể giải được do dữ liệu không tương thích, qua quá ...

    Rye Nguyen

    30/07/2015

    LinQ – Giới Thiệu Và Cách Sử Dụng

    LinQ – Giới Thiệu Và Cách Sử Dụng

    LinQ có tên gọi là Language Integrated Query, một thư viện cung cấp cho ngôn ngữ lập trình C# và Visual Basic, giúp quản lí database theo mô hình MVC và kết nối database ...

    Bùi Nguyễn Minh Hoàng

    29/08/2015

    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    developer@stdio.vn

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020