C ++ khó học như thế nào

Hãy xem Chỉ số cộng đồng lập trình TIOBE — một chỉ báo về mức độ phổ biến của các ngôn ngữ lập trình — và bạn sẽ thấy rằng Go của Google và ở mức độ thấp hơn là Dart và Perl đang có xu hướng tăng. Tuy nhiên, C đáng kính là một ngôn ngữ có mức độ phổ biến đang giảm mạnh, theo chỉ số

Trong một thế giới có nhu cầu rất lớn đối với các ứng dụng web và di động được mã hóa bằng các ngôn ngữ cấp cao hơn, dễ học và gỡ lỗi và khó mắc lỗi — ít nhất là so với C — người ta có thể cho rằng không có lý do gì phải bận tâm với ngôn ngữ thấp.

[

Coi chừng 14 lý do tại sao các dự án phần mềm thất bại, các phương thức lãnh đạo có thể nhấn chìm dự án phần mềm của bạn và 11 bí mật đen tối của việc hiện đại hóa ứng dụng. Tìm hiểu cách tăng tốc độ phát triển phần mềm (không giết chết tinh thần)

]

Điều này có nghĩa là C không đáng để học?

[ Bjarne Stroustrup khai thác lập trình chung để có C++ tốt hơn ]

động lực nhu cầu

C là một ngôn ngữ cơ bản vẫn được sử dụng trong ngành CNTT. Nhưng điều đó có thể thay đổi, Mark Driver, một nhà phân tích nghiên cứu tại Gartner cho biết. “Chúng [C và C++] là ngôn ngữ mẹ đẻ của lập trình cấp hệ thống, và chúng có thể sẽ tồn tại trong nhiều năm nữa. Tuy nhiên, cuối cùng, các ngôn ngữ như Google Go hoặc D có thể thay thế chúng. ”

Driver cho biết: “Chúng tôi thấy hầu như không có nhu cầu về C hoặc C++ trong số các khách hàng tập trung vào CNTT của chúng tôi. Ông nói: “Những gì chúng tôi thấy là Java và các ngôn ngữ mã được quản lý khác đang được sử dụng. “C không cho phép bạn giải quyết nhiều thực tiễn tốt nhất về kiến ​​trúc hiện đại và sự gia tăng của các ngôn ngữ như Java và C# phần lớn là để giải quyết vấn đề này. ”

Nhưng Driver cho biết có một lĩnh vực đang phát triển nhanh chóng, nơi có khả năng có nhu cầu rất lớn đối với các lập trình viên có kỹ năng về C. internet vạn vật (IoT). Ông nói rằng sự trỗi dậy của IoT có thể dẫn đến sự hồi sinh lớn về nhu cầu về cơ sở mã và thời gian chạy nhỏ. “Đối với khối lượng công việc truyền thống, không cần phải đếm số byte như trước đây. Nhưng khi nói đến các ứng dụng IoT, nhu cầu đó lại một lần nữa xuất hiện. Vì vậy, chúng ta có thể thấy nhu cầu về kỹ năng C đang tăng trở lại. ”

[ 10 kỹ năng internet vạn vật được yêu cầu nhiều nhất ]

Đến C hay không đến C?

Trong nhiều chủ đề diễn đàn về chủ đề này, một lập luận phổ biến ủng hộ việc học C là nó hơi giống học tiếng Latinh - bạn có thể không bao giờ cần sử dụng nó, nhưng nó giúp các ngôn ngữ khác học nhanh hơn và dễ thành thạo hơn

Azriel Fasten, một nhà phát triển phần mềm, người cũng đưa ra các bài học về JavaScript, nói điều này về việc học C để giúp bạn tiếp thu các ngôn ngữ khác dễ dàng hơn. “Tôi nghĩ học C cho mục đích đó giống như lấy bằng nghệ thuật tự do. Liệu một mức độ lịch sử giúp bạn? . Có học C không? . ”

Điều đó có nghĩa là C là ngôn ngữ mà ai đó đang xem xét chuyển sang phát triển phần mềm nên bắt đầu? . Quan điểm của ông là thời gian của sinh viên nên dành để học các kỹ năng lập trình cơ bản như phát triển thuật toán hoặc giải quyết vấn đề hơn là theo dõi lỗi, điều này có thể cần thiết trong C. “C rất dễ bị lỗi, điều này cũng có thể gây ra các vấn đề về bảo mật,” anh ấy chỉ ra. “Các ngôn ngữ khác loại bỏ 80% lỗi mà bạn có thể mắc phải trong C. ”

Fasten cũng chỉ ra rằng những người theo học lập trình mà không có bằng khoa học máy tính đầy đủ thường tìm kiếm công việc trong các lĩnh vực phát triển ứng dụng di động hoặc web, trong đó C không liên quan. (Đó là bởi vì nếu một ứng dụng đang thực hiện một lượng I/O đáng kể - giống như một ứng dụng web sẽ làm vậy - thì ứng dụng đó sẽ đợi mạng trong phần lớn thời gian và lợi ích của việc lập trình bằng C sẽ bị mất. Chỉ những ứng dụng hiệu suất cao, chẳng hạn như xử lý dữ liệu, cùng với mã cấp thấp, chẳng hạn như nhân hệ điều hành và trình điều khiển, mới thực sự cần bằng một ngôn ngữ như C. )

Một người không nghi ngờ gì về việc C đã giúp anh trở thành một lập trình viên giỏi hơn là Miguel Morales, cựu kỹ sư phần mềm của AT&T, HPE và Cisco, hiện đang đăng ký học trực tuyến bằng C và C++ của công ty học tập trực tuyến Udacity's Self Driving Car Nano. “Một cách gián tiếp, kiến ​​thức về C đã giúp tôi trở thành một lập trình viên giỏi hơn,” anh ấy nói. “Hiểu cách máy hoạt động, cách máy sử dụng các thanh ghi để giữ dữ liệu, cách phân bổ bộ nhớ hoạt động, giúp bạn có thêm lợi thế ngay cả khi bạn không sử dụng C. Bạn trở nên có trách nhiệm hơn khi tạo các biến, cố gắng sử dụng thuật toán tốt nhất hiện có cho một tác vụ và sử dụng các lệnh 'tiếp tục' và 'ngắt' để tránh thực hiện các câu lệnh không cần thiết. Và chắc chắn, các ngôn ngữ hiện đại có các tính năng tối ưu hóa tuyệt vời, nhưng vấn đề là trách nhiệm bổ sung mà bạn được giao mang lại cho bạn lợi thế trong việc viết mã chất lượng. ”

[ 7 ngôn ngữ lập trình chúng ta thích ghét — nhưng không thể sống thiếu ]

Có lẽ quan điểm phổ biến nhất gặp phải khi nghiên cứu bài viết này là C là ngôn ngữ vẫn đáng để học, nhưng chỉ là ngôn ngữ thứ hai hoặc thứ ba. Bằng cách đó, bạn có thể viết mã (và kiếm sống) tương đối nhanh chóng, sau đó xây dựng hiểu biết sâu hơn sau này. Đó chắc chắn là quan điểm của Raymond Phan, kỹ sư thị giác máy tính tại Zebra Technologies.  

“Một số khái niệm về C khá đáng sợ, vì vậy tốt hơn là bạn nên có nền tảng cơ bản bằng một ngôn ngữ cấp cao hơn và sau đó tìm hiểu sâu về C nếu bạn muốn lập trình hiệu năng cao,” Phan nói. “Nhưng nếu không thì tôi sẽ chỉ gắn bó với các ngôn ngữ cấp cao. ”

Còn ý kiến ​​cho rằng học C giúp việc học các ngôn ngữ khác dễ dàng hơn và giúp bạn trở thành một lập trình viên giỏi hơn thì sao? . “Bạn sẽ không học về quản lý bộ nhớ nếu bạn không học C, vì vậy tôi đoán rằng học C sẽ giúp bạn đánh giá cao những gì đang diễn ra 'dưới vỏ bọc' trong một hệ thống. C có thể giúp với điều đó, nhưng khi bạn tiến xa hơn với C, nó có thể trở nên khó hiểu. ”

Một điểm cuối cùng. Kiến thức về C trong sơ yếu lý lịch của bạn có thể giúp bạn dễ dàng kiếm được việc làm hơn không - ngay cả khi công việc không yêu cầu điều đó?

“Tôi nghĩ C là một lợi thế khi có trong sơ yếu lý lịch của bạn vì nó khó, nhưng bạn vẫn sẽ được đánh giá dựa trên các kỹ năng liên quan của mình. Vì vậy, nó sẽ là một phần thưởng, nhưng không phải là yếu tố quyết định,” Phan nói

Mark Driver của Gartner đồng ý. Anh ấy nói: “Việc học thử C có xu hướng loại bỏ những thứ không cam kết, vì vậy ít nhất kiến ​​​​thức về C cũng khiến bạn trở nên nổi bật,” anh ấy nói

C có phải là ngôn ngữ khó học nhất không?

Không, C không phải là ngôn ngữ khó nhất . Viết mã nói chung không khó để học. Tuy nhiên, ngôn ngữ lập trình tương đối khó học. Nếu bạn là người mới bắt đầu lập trình, bạn có thể bắt đầu bằng cách xây dựng nền tảng vững chắc về khoa học máy tính trước khi chuyển sang C.

C có dễ học cho người mới bắt đầu không?

Mặc dù C có thể khá khó hiểu và khó học đối với người mới bắt đầu nhưng nó thực sự là một ngôn ngữ khá nhỏ và gọn với một bộ từ khóa, cú pháp và hàm tích hợp tối thiểu. Vì vậy, bạn có thể mong đợi học và sử dụng tất cả các tính năng của ngôn ngữ khi khám phá cách nó hoạt động.

Python hay C khó học hơn?

Cú pháp của chương trình C khó hơn Python . Cú pháp của chương trình Python rất dễ học, viết và đọc. Trong C, Lập trình viên phải tự quản lý bộ nhớ. Python sử dụng trình thu gom rác tự động để quản lý bộ nhớ.

Ngôn ngữ C có khó cho người mới bắt đầu không?

C khó học hơn JavaScript , nhưng đó là một kỹ năng quý giá cần có vì hầu hết các ngôn ngữ lập trình đều thực sự được triển khai bằng C. Điều này là do C là ngôn ngữ “cấp máy”. Vì vậy, học nó sẽ dạy bạn cách máy tính hoạt động và thực sự sẽ giúp việc học ngôn ngữ mới trong tương lai dễ dàng hơn.