Học cách sử dụng C (hoặc C ++) là một yêu cầu để trở thành một lập trình viên giỏi (xuất sắc)? [đóng cửa]


25

Khi tôi mới bắt đầu học cách lập trình, các lập trình viên thực thụ có thể viết lắp ráp trong giấc ngủ của họ. Bất kỳ trường học nghiêm túc nào trong khoa học máy tính sẽ bao gồm một chút đào tạo và thực hành về lập trình bằng cách sử dụng lắp ráp. Điều đó đã thay đổi, đến mức tôi thấy bằng cấp Khoa học Máy tính với sự lắp ráp, nếu bao gồm tất cả, được chuyển xuống một nhiệm vụ, và một chương, trong tổng số hai tuần làm việc trong 4 năm học.

Lập trình C / C ++ dường như đã đi theo một con đường tương tự. Tôi không còn ngạc nhiên khi phỏng vấn những sinh viên tốt nghiệp đại học, những người đã không dành hơn hai tuần để lập trình trong C ++ và chỉ đọc C trong một cuốn sách ở đâu đó. Mặc dù bằng cấp CS nghiêm trọng nhất dường như vẫn bao gồm thời gian học và sử dụng một hoặc cả hai ngôn ngữ đáng kể, xu hướng rõ ràng là hướng tới C / C ++ ít được thi hành hơn ở trường.

Rõ ràng có thể tạo ra một sự nghiệp tạo ra công việc tốt mà không bao giờ đọc hoặc viết một dòng mã C hoặc C ++.

Với tất cả những điều đó, việc học hai ngôn ngữ có đáng để nỗ lực không? Có phải tất cả họ đều cần phải xuất sắc? (ngoài lời khuyên rõ ràng, không có ngôn ngữ cụ thể, chẳng hạn như "lựa chọn ngôn ngữ tốt có lẽ rất quan trọng đối với giáo dục toàn diện" và "có lẽ nên tiếp tục thử và học ngôn ngữ mới trong suốt sự nghiệp của lập trình viên kéo dài các tế bào màu xám ")


8
C có mặt khắp nơi trong cơ sở hạ tầng phần mềm ngày nay. Học nó chắc chắn sẽ cho bạn hiểu sâu hơn về những gì thực sự xảy ra trong phần mềm bạn viết. (Xem lập trình viên.stackexchange.com/questions/14744 / Cách ).
Charles Salvia

Tôi cũng tìm thấy câu trả lời ở đây có liên quan: lập trình
blueberryfields

Tiếp tuyến: một lập trình viên giỏi thoải mái với các mô hình lập trình khác nhau, điều này có nghĩa là đã học (và sử dụng) một số ngôn ngữ.
Matthieu M.

Học nhiều ngôn ngữ không thể làm tổn thương.
Tối đa

4
Không có C / C ++. Chỉ có C và C ++. Chúng là những ngôn ngữ rất khác nhau và câu trả lời có thể khá khác nhau tùy thuộc vào việc bạn đang nói về điều gì.
Caleb

Câu trả lời:


63

Joel Spolsky (yeah, Joel) lập luận một thời gian trở lại mà các lập trình viên khó khăn thực sự biết cách sử dụng ngôn ngữ khó khăn hơn (như C, C ++ và Lisp) và cấu trúc của họ (như con trỏ và các tính năng chức năng), và đó là ngôn ngữ cấp cao thường là không "Khó" đủ để chứng tỏ năng lực của bạn.

Tôi có thể hiểu quan điểm của anh ấy rằng mọi người biết C và C ++ và thực sự giỏi về nó biết nhiều hơn về những gì diễn ra dưới mui xe so với những người, nói, lập trình trong Ruby (và chỉ trong Ruby). Tôi muốn nói nó như thế này: nếu bạn biết một ngôn ngữ "cứng", có lẽ đó là một bằng chứng tốt cho thấy bạn có thể lập trình trong khi tôn trọng những hạn chế nghiêm trọng hoặc bạn nắm vững những cách suy nghĩ phức tạp. Nếu bạn giỏi ngôn ngữ cấp cao, bạn cũng có thể lập trình trong khi tôn trọng các ràng buộc nghiêm trọng, nhưng không có bằng chứng nào về ngôn ngữ đó.

Tôi không nghĩ rằng học C hoặc C ++ sẽ làm hỏng bộ não của bạn (một số người dường như tin điều này mặc dù). Trên thực tế, học nó chỉ để đánh giá cao các ngôn ngữ cấp cao tốt hơn có thể là một ý tưởng tốt.


34

Có, biết C (hoặc C ++) là bắt buộc để trở thành một lập trình viên xuất sắc (trong thời đại hiện tại của chúng tôi).

Đó không phải là ngôn ngữ, đó là môi trường.

Các chương trình không chạy trong chân không. Lập trình viên xuất sắc biết môi trường của anh ấy / cô ấy, giống như nhà điêu khắc vĩ đại biết tài liệu của anh ấy / cô ấy. Môi trường lập trình hiện tại của chúng tôi (hệ điều hành, trình biên dịch, mạng, v.v.) được xây dựng trên C / C ++.

Lập trình viên xuất sắc viết các chương trình hiệu quả và gỡ lỗi chúng trong các tình huống thực tế. Anh ta phải biết môi trường - và ngày nay nó đòi hỏi phải biết C / C ++.

Chỉnh sửa: Không thể cưỡng lại việc thêm tham chiếu Ma trận. Morpheus có thể hỏi: bạn có muốn uống thuốc Java và tiếp tục sống trong thế giới thoải mái do máy ảo cung cấp không? Hay bạn uống thuốc C và xem lỗ thỏ đi sâu đến đâu?


9
+1 cho tham chiếu Ma trận, tôi sẽ giữ nó để sử dụng trong tương lai :-)
Konamiman

20

Tôi phải tham khảo một bài viết khác của Joel. Trong Định luật trừu tượng , việc học các ngôn ngữ như C, Lisp, C ++ và các ngôn ngữ liên quan đến quản lý bộ nhớ cũng liên quan đến việc học cách suy nghĩ định nghĩa chúng ta cho phần còn lại của sự nghiệp.

Giáo sư của tôi trong lớp Thuật toán và Cấu trúc dữ liệu của tôi, William Spears, đã nói với rất nhiều sinh viên Khoa học máy tính hoài nghi tại sao chúng ta không học các công cụ mới nhất. Các sinh viên phàn nàn rằng họ cảm thấy như họ không được chuẩn bị cho "thế giới thực" bởi vì chúng ta không học Java. Chúng tôi không học JavaScript. Không có lớp học về HTML. Chúng tôi không học [[CÔNG NGHỆ CHỨNG MINH TẠI ĐÂY]].

Tại sao chúng ta không học các công cụ mới nhất? Theo giáo sư của chúng tôi, công nghệ thay đổi nhanh đến mức trong 4 năm, các công cụ chúng ta học rất có thể bị lỗi thời. Chà, sau vài năm trong ngành, tôi sẽ phải nói rằng tôi đồng ý với đánh giá của anh ấy.

Mục đích của giáo dục Khoa học Máy tính là học cách học. Tìm ra giải pháp cho nhiều vấn đề trong quá trình phát triển thường đòi hỏi khả năng suy nghĩ vượt trội, chỉ có thể đến từ việc học cơ bản, cơ bản, dưới vỏ bọc, Khoa học máy tính thô xuất phát từ việc làm việc với C, C ++ và Lisp.

Khi những điều trừu tượng trong thế giới thực bị rò rỉ, và họ sẽ, một sự hiểu biết về những điều cơ bản là những gì tách biệt trung bình với tốt nhất.


3
Chắc chắn là tôi đang thiếu gì đó. Lisp phải làm gì với việc học cơ bản? Đó là sự đảo ngược trừu tượng lớn nhất từng được phát minh. Một trong những mục tiêu thiết kế cơ bản ban đầu của nó là "hãy giả vờ rằng chúng ta không thực sự sử dụng máy Turing và xem chúng ta có thể đơn giản hóa mọi thứ bằng cách làm điều đó như thế nào".
Mason Wheeler

6
@Mason: Học Lisp sẽ không cho bạn biết gì về máy tính trong thế giới thực. Nó sẽ dạy cho bạn rất nhiều về lý thuyết tính toán. Khoa học máy tính thô là về nhiều hơn máy tính thô.
David Thornley

2
@Mason Wheeler Learning lisp giới thiệu một số khái niệm nâng cao, bao gồm: dữ liệu / mã có thể hoán đổi cho nhau, mã phản chiếu / tự sửa đổi và tầm quan trọng của việc xem trình biên dịch của bạn / vm là một phần của sản phẩm cuối cùng của bạn
blueberryfields

@blueberryfields: ... tất cả đều được coi là lỗ hổng bảo mật và có hại ở mức độ này hay mức độ khác bởi các lập trình viên giàu kinh nghiệm hơn. Những điều rất xấu để dạy cho người mới.
Mason Wheeler

2
@Mason Tôi không hiểu ngữ cảnh của bình luận của bạn - chúng tôi đang nói về những lập trình viên xuất sắc ở đây, không phải người mới. Tôi sẽ không xem xét một lập trình viên, người không có hiểu biết thấu đáo về các khái niệm này và áp dụng chúng một cách thích hợp (và thường xuyên) trong công việc của mình, để trở thành một chuyên gia.
blueberryfields

18

Hãy để tôi đặt nó theo cách này. Giả sử bạn cần thuê ai đó để thực hiện một số công việc C ++ và ai đó áp dụng đã thực hiện một dự án C ++ ở trường đại học nhưng chỉ được lập trình bằng Java kể từ khi tốt nghiệp. Ngược lại, giả sử bạn cần thuê ai đó cho một số công việc Java và ai đó áp dụng người đã làm một dự án Java ở trường đại học nhưng chỉ được lập trình trong C ++ kể từ khi tốt nghiệp.

Bạn sẽ được thoải mái hơn khi tuyển dụng? Tôi sẽ tranh luận về anh chàng C ++, vì việc chuyển sang sử dụng ngôn ngữ thu gom rác dễ dàng hơn nhiều so với việc di chuyển khỏi một người. Tương tự như vậy đối với các khái niệm khác và các ngôn ngữ khác, như chuyển từ biên dịch sang giải thích hoặc từ gõ tĩnh sang gõ động. Trong hầu hết mọi tính năng bằng cách so sánh tính năng mà bạn có thể thực hiện giữa các ngôn ngữ, C ++ xuất hiện ở giai đoạn khó khăn, điều này gây khó khăn khi lập trình, nhưng cũng là cơ sở tuyệt vời để đánh giá một lập trình viên.

Bạn có thể phát triển sự nghiệp mà không cần chạm vào mã C hoặc C ++ không? Chắc chắn, nhưng tôi vẫn không muốn thuê một người không thể hoặc không sợ làm điều đó.


3
Lập luận không ấn tượng. Nếu tôi cần công việc Java được thực hiện, tôi sẽ thuê một người có kinh nghiệm về Java. Nếu tôi cần công việc C ++, tôi sẽ thuê một người có kinh nghiệm về C ++. Nếu tôi phải thuê một anh chàng Java cho vị trí C ++ thì tôi có thể dành thêm thời gian phỏng vấn để hỏi anh ta về con trỏ và quản lý bộ nhớ và RAII; tương tự, nếu tôi phải thuê một anh chàng C ++ cho vị trí Java thì tôi sẽ dành nhiều thời gian hơn cho cuộc phỏng vấn hỏi về người hốt hoảng, mẫu thiết kế, phản xạ, v.v. Cả bộ kỹ năng dường như không cần nhiều thông minh, chỉ cần kinh nghiệm. Hầu hết các đường cong học tập là trong các thư viện nào.
Aaronaught

13

Không, không bắt buộc phải học C hoặc C ++ để trở thành một lập trình viên giỏi nhưng hiểu nó sẽ giúp xóa một số khái niệm cơ bản như Quản lý bộ nhớ.


7

học hai ngôn ngữ có đáng để nỗ lực không?

Rõ ràng có thể tạo ra một sự nghiệp tạo ra công việc tốt mà không bao giờ đọc hoặc viết một dòng mã C hoặc C ++.


6

Nói tóm lại, không có họ. Chúng là những ngôn ngữ hữu ích để học, nhưng bạn có thể dễ dàng trở thành một lập trình viên xuất sắc mà không cần chạm vào một dòng C hoặc C ++. Hầu hết các lập trình viên xuất sắc có thể đã chạm vào họ, nhưng đó là điểm chính - trong rất nhiều ứng dụng ngày nay họ không được sử dụng nhiều như .NET và Java, và do đó, nhu cầu của họ đã giảm đi phần nào.

Lưu ý rằng tôi không nói rằng chúng không đáng để học, tôi nghĩ cả hai đều là ngôn ngữ quan trọng để học, đặc biệt nếu bạn dự định tạo dựng sự nghiệp từ lập trình. Nhưng bạn có thể trở thành lập trình viên đàng hoàng mà không cần phải chạm vào không? Chắc chắn rồi.


5

Nó phụ thuộc vào sở thích của bạn.
Nếu bạn muốn lập trình hệ thống, vâng, bạn sẽ phải học C / C ++ vì chúng là ngôn ngữ mặc định của CS. Để làm quen với các khái niệm hệ điều hành, Trình biên dịch, Cấu trúc dữ liệu, Quản lý bộ nhớ, v.v. bạn phải biết C / C ++. Ngoài ra, hàng tấn văn bản, sách và bài viết hay có sẵn trên C / C ++ sẽ tối ưu hóa các kỹ năng lập trình của bạn. Vài ngày trước trong / * Lập trình viên * / i đã đọc một câu trả lời tuyệt vời cho Why C - Bởi vì nó gần với kim loại .
Mặt khác, nếu bạn muốn giới hạn lập trình ứng dụng, không cần phải sử dụng C / C ++, hãy bắt đầu trực tiếp với C # (.Net) / Java và bạn sẽ có một công việc phát triển tốt. Nhưng nếu bạn thực sự yêu thích lập trình khó, tôi chắc chắn một ngày nào đó bạn sẽ bắt đầu học C / C ++.


Gần kim loại! Yêu mà bình luận.
Wajih

3

Nó hoàn toàn phụ thuộc vào miền ứng dụng bạn muốn làm việc. Nếu bạn muốn chơi trong cảnh quan nhúng thì bạn cần biết nhiều về C hoặc C ++. C ++ có lẽ cũng là ngôn ngữ được sử dụng phổ biến nhất trong phát triển trò chơi. Nếu muốn làm việc trên các ứng dụng web thì C hoặc C ++ có thể không quan trọng bằng. Không có ngôn ngữ nào có uy tín được yêu cầu phải biết là ưu tiên để xác định một kỹ sư phần mềm giỏi.


3

C đã được đặt tên là "lắp ráp di động" rất đúng. Nó được thiết kế để làm cho Unix di động trên các bộ xử lý và mô tả mã rất gần với tập lệnh của bộ xử lý bên dưới.

Nếu bạn thấy rằng bạn muốn làm việc gần với phần cứng thực tế, trong trình điều khiển phần mềm hoặc thiết bị nhúng, v.v., không có cách nào khác C. Nếu bạn muốn làm việc trong các ngôn ngữ cấp cao hơn, chính là một ý tưởng tốt hơn vì nhiều tính năng khiến C mạnh mẽ cũng khiến C trở nên nguy hiểm vì vậy chúng đã được giảm bớt hoặc đơn giản là loại bỏ.

Cá nhân tôi cho rằng rất quan trọng để hiểu những gì cuối cùng sẽ cần để chạy các chương trình của bạn, vì nhiều quyết định thiết kế phụ thuộc vào điều này, vì vậy ít nhất bạn nên làm quen với cách ánh xạ mã vào tập lệnh lắp ráp và cách nó hoạt động trong thực tế phần cứng. Đó là những điều mà bạn cho là thực sự cần thời gian để làm và tại sao.

Do đó, tôi ít nhất sẽ đề nghị bạn xem qua C và một số mã số học con trỏ nâng cao, để bạn biết những gì bạn không phải đối phó hàng ngày.


1

C rất hữu ích để tìm hiểu vì nó gần với silicon. C hoặc ngôn ngữ lắp ráp sẽ mang lại cho bạn cảm giác tốt về những gì máy tính có thể làm và cách chúng làm điều đó, và điều này có thể hữu ích trong việc hiểu những gì có thể và những gì thực tế. Hơn nữa, có rất nhiều mã C ngoài kia mà bạn có thể quan tâm, và rất nhiều ngôn ngữ hiện đại hơn sử dụng nhiều cú pháp và ngữ nghĩa của nó.

C ++ là một ngôn ngữ cấp cao hơn có một số tính năng rất thú vị trong đó. Nó có nhiều công dụng tốt, và là một ngôn ngữ mạnh mẽ. Mặt khác, có rất nhiều ngôn ngữ mạnh mẽ và hữu ích khác ngoài kia.

Vì vậy, tôi thực sự khuyên bạn nên tìm hiểu về những gì xảy ra ở các cấp thấp hơn và C là một cách tuyệt vời để tìm hiểu chúng, vì vậy tôi khuyên bạn nên học C. C ++ là tùy chọn; học nó sẽ dạy cho bạn mọi thứ, nhưng có nhiều cách khác để học hầu hết trong số chúng, và nếu bạn đã làm việc trong một ngôn ngữ chính thống thì sẽ có những ngôn ngữ tốt hơn để học để tiếp thu các khái niệm mới.


0

Nó phụ thuộc vào loại phần mềm bạn nghĩ bạn sẽ làm. Các trò chơi thường được viết bằng C / C ++ vì đây là ngôn ngữ tối ưu hơn khi nói đến mã thực thi. Những gì bạn viết mã chỉ là về những gì bạn nhận được, theo một cách nào đó.

Điều đó đang được nói, C # cũng đã được sử dụng để lập trình trò chơi. C # có lẽ là một trong những ngôn ngữ tốt nhất cho phát triển ứng dụng máy tính để bàn, ít nhất là trên nền tảng Windows.

Cùng với Visual Studio, C # đã trở thành gần như phát triển phần mềm ngôn ngữ tôi chỉ sử dụng (biện hộ rằng các ngôn ngữ như SQL và PHP vv) vì nó là cho tất cả các tính năng, đẫm máu tuyệt vời theo ý kiến của tôi.

Nếu bạn phát triển trên Windows, tôi thực sự khuyên bạn nên học C # .NET cùng với mọi thứ khác.

Tôi không tin rằng C ++ là một yêu cầu cho mọi người, nhưng thật tuyệt khi có kiến ​​thức cấp thấp hơn về con trỏ, quản lý bộ nhớ và các khái niệm khác.


1
@ Nick: Thế giới máy tính nằm ngoài cửa sổ và C #.
Kiểm lâm

2
Do đó tại sao tôi nói, "Nếu bạn phát triển trên Windows" .
Nick Bedford

0

@Nick Bedford nói đúng về tên miền bạn đang làm việc. Phần mềm của tôi đối tác viết trình điều khiển thiết bị và phần mềm nhúng. C là con đường để đi đến đó. Và đừng nghĩ về C ++ như một ngôn ngữ thứ hai, chúng có sự chồng chéo rất lớn.


3
Nếu bạn không nghĩ về C ++ như một ngôn ngữ khác với C, bạn thực sự không biết rõ về C ++. Chỉ làm việc trong sự chồng chéo là có thể nhưng không nên.
David Thornley

Có lẽ tôi nói quá về sự giống nhau. Nhưng chúng giống nhau hơn, ví dụ, C và Perl.
Brian Carlton

0

Nhiều người đã nói rằng C là tốt để học quản lý bộ nhớ và tôi đồng ý. Đối với quan điểm của tôi về việc học C là nó rất tốt để học vì lợi ích của việc học cách gỡ lỗi một chương trình. Rất nhiều điều có thể sai khi viết cho C đòi hỏi bạn phải suy nghĩ về cách bạn nên gỡ lỗi chương trình của mình. Tôi hiếm khi sử dụng một công cụ sửa lỗi trong bất kỳ chương trình nào của tôi (bằng C hoặc các ngôn ngữ khác) đơn giản vì C đã dạy tôi cách thêm các tiện ích gỡ lỗi tích hợp vào các chương trình.

Học C / C ++ có cần thiết cho sự nghiệp không? Không, nhưng tôi cũng đã thấy rất nhiều nhà phát triển Java, những người không biết nhiều kiến ​​thức cơ bản về lập trình vì họ chỉ học Java. Tương tự với các lập trình viên Perl. Học nhiều hơn một ngôn ngữ nên là một yêu cầu cho nghề nghiệp, cho dù C / C ++ có phải là một trong những ngôn ngữ đó hay không.


+1 - Nhìn thấy các khái niệm tương tự được trình bày theo một cách khác trong các ngôn ngữ khác nhau đã giúp tôi hiểu rõ hơn về các khái niệm đó và nhìn thấy chúng trong một ánh sáng hoàn toàn mới.
jmort253

0

Ban đầu, tôi từng nghĩ trường đại học của mình thuộc thế hệ Dennis M. Ritchie vì đã bao gồm C trong 2 học kỳ khi có rất nhiều ngôn ngữ tương đối mới như Java, Visual Basic et cetera. Nhưng thực tế là, hoặc ít nhất là bây giờ tôi tin rằng, C là một trong những ngôn ngữ tốt nhất giúp bạn hiểu các khái niệm cơ bản của lập trình.

Và về nghề nghiệp mà không học C (hoặc C ++) - Có, có thể, nhưng học C sẽ thể hiện kiến ​​thức của bạn về lập trình.


0

Câu trả lời cho tôi là có. Cả C và C ++ đều là những khóa học bắt buộc trong chương trình cấp bằng CS của tôi và tôi tin tưởng rằng có bằng CS hoặc bằng cấp liên quan là một yêu cầu tối thiểu để trở thành một "lập trình viên giỏi". Hơn nữa, trở thành một "lập trình viên giỏi" có nghĩa là có thể hợp lý hóa các vấn đề xảy ra và hiểu lý do tại sao một cái gì đó không hoạt động như người ta có thể mong đợi. Quá nhiều lần trong sự nghiệp, tôi đã chứng kiến ​​những cá nhân bị cản trở bởi các vấn đề và nghĩ rằng có những thế lực siêu nhiên hoạt động chống lại họ ... thật là nực cười.

IMO, biết C thể hiện khả năng hiểu bất kỳ ngôn ngữ bắt buộc nào và giải quyết các vấn đề bằng cách sử dụng một trong những công cụ mạnh nhất từng được nhân loại phát minh ra.


0

Một lập trình viên tròn trịa có nhiều túi mánh khóe, và bao gồm:

1) Lập trình cấp thấp ... C ở mức tối thiểu. Một số lắp ráp sẽ không bị tổn thương.

2) Lập trình chức năng ... Một ngôn ngữ chức năng thuần túy, không phải là ngôn ngữ lai - Scheme hoạt động ở đây.

3) OOP ... Thông thường tôi sẽ nói smalltalk, nhưng tôi đoán bây giờ chúng ta có thể đi với Java.


0

C là mẹ của tất cả các ngôn ngữ lập trình .... chuyên gia am hiểu về C khiến bạn phải đi một chặng đường dài để biết bất kỳ ngôn ngữ nào khác như Java trong một thời gian ngắn.

C ++ là một trò chơi bóng hoàn toàn khác và phức tạp nhất trong số tất cả.


0

Không cần thiết phải học C hoặc C ++ để trở thành một lập trình viên giỏi (xuất sắc) tuy nhiên cần phải học hội để trở thành một lập trình viên giỏi (xuất sắc). Lập trình xuất sắc có nghĩa là tối ưu hóa qua bộ nhớ, Mhz, băng thông, hạn chế về năng lượng và sau đó chọn thiết kế và / hoặc triển khai tốt nhất để hoàn thành nhiệm vụ trong tay. Trong số các nhà khoa học máy tính, điểm yếu chính vẫn là, sau nhiều thập kỷ phát triển công nghệ, với việc quản lý dữ liệu một cách tối ưu. Đây là một tập hợp các kỹ năng được dạy bằng cách viết hội (bất kỳ hội đồng nào, nó có thể là ARM, hoặc MIPS, hoặc x86, hoặc vi điều khiển, hoặc DSP, hoặc thậm chí thấp hơn thế, thông qua verilog / VHDL).


0

Sử dụng thành thạo c, c ++, lắp ráp và Lisp, tôi sẽ nói rằng không cần phải học bất kỳ ngôn ngữ cụ thể nào để trở thành một lập trình viên giỏi. Kinh nghiệm của tôi với những gì làm cho một lập trình viên giỏi là có thể suy nghĩ theo cách giải quyết vấn đề. Ngôn ngữ chỉ cho phép bạn thể hiện kỹ năng giải quyết vấn đề của bạn. Ví dụ, sự đơn giản của C cho phép bạn dễ dàng thể hiện các thuật toán, trong khi Lisp cho phép bạn giải quyết các vấn đề một cách đệ quy. Vì vậy, một ngôn ngữ không làm cho bạn trở thành một lập trình viên. Bạn phải là người giải quyết vấn đề trước khi bạn trở thành một lập trình viên giỏi. Ngôn ngữ chỉ là công cụ bạn sử dụng để giải quyết vấn đề.


-1

Thật đáng để học C cũng đơn giản để có được sự hiểu biết vững chắc về quản lý bộ nhớ. Ditto cho C ++ ngoại trừ với mục tiêu học cấu trúc dữ liệu.


Không có vấn đề gì ngôn ngữ người ta sử dụng để tìm hiểu cấu trúc dữ liệu.
kirk.burleson

Tôi tin là có bởi vì trong rất nhiều ngôn ngữ khác, cấu trúc dữ liệu được sử dụng mà không biết chúng được xử lý như thế nào trong bộ nhớ. C ++ (không sử dụng STL) buộc lập trình viên phải học cách xử lý các cấu trúc dữ liệu ở mức thấp.
aqua

-1

Không. Có rất nhiều lập trình viên tệ hại viết mã C / C ++. Điều gì sẽ khiến bạn trở thành một lập trình viên giỏi là hiểu được khi nào và tại sao bạn cần phải viết một cái gì đó bằng C / C ++

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.