Học nhiều ngôn ngữ đồng thời [đóng]


35

Khi học các ngôn ngữ mới, tốt hơn hết là bạn nên cam kết với một ngôn ngữ 100% và đợi cho đến khi bạn "thành thạo" nó để chuyển sang ngôn ngữ khác hoặc làm việc để học các ngôn ngữ khác nhau cùng một lúc?

Nếu có vấn đề, tôi hiện đang học C ++ và tôi cũng muốn biết Java và Python.


12
Thường không có thứ gọi là trôi chảy 100%. Cả Jon Skeet cũng không phải Eric Lippert đều biết 100% C #.
Công việc


3
Không học ngôn ngữ, học cách sử dụng ngôn ngữ để thực hiện một chương trình cụ thể. Tức là nếu bạn là một lập trình viên thì bạn không sử dụng ngôn ngữ nào, vì bạn có thể đạt được kết quả tương tự. Tồi tệ hơn, ngay khi bạn đặt một ngôn ngữ để "học" ngôn ngữ khác, bạn sẽ bắt đầu quên ngôn ngữ trước đó.

Miễn là bạn thực sự HỌC cả hai ngôn ngữ.
Tulains Córdova

@Maxpm Bạn có thể cho biết trải nghiệm của bạn với việc học nhiều lang cùng một lúc không ...
Rahul Patil

Câu trả lời:


31

Tôi không chỉ không gặp vấn đề với việc học nhiều ngôn ngữ cùng một lúc, tôi nghĩ rằng nó có thể trực tiếp mang lại lợi ích cho bạn ở chỗ một thứ gì đó trong một ngôn ngữ có thể làm sáng tỏ một vấn đề bạn có thể có trong ngôn ngữ khác. Ví dụ, ngôn ngữ chính của tôi là C # và khi giao dịch với LINQ, tôi đã sử dụng định dạng SQL (điều này rất tốt, tôi hoàn toàn không sử dụng nó, nhưng có vẻ như đó không phải là cách tuyệt vời để làm điều đó). Tôi tránh xa Lambdas bởi vì, thành thật mà nói, tôi đã không hiểu họ và tài liệu C # mà tôi thấy không cung cấp một định nghĩa rõ ràng (đối với tôi). Sau đó, tôi bắt đầu chọn một vài cuốn sách về F # và bắt đầu học nó, điều đó đã cho tôi thời điểm ah ha! Thời khắc hiểu được Lambdas như thế nào.

Tôi đã thấy rằng khi tôi đã trải nghiệm nhiều hơn và nhiều hơn với các ngôn ngữ khác (và khung), tôi đã trở nên tốt hơn tại C # (và ASP.Net). Đó là lý do tại sao tôi tin rằng học nhiều ngôn ngữ cùng một lúc không phải là điều xấu!


1
Tôi hoàn toàn đồng ý và tôi cũng bắt đầu với C #. Có rất nhiều điều tôi gặp phải trong ngôn ngữ đó mà từ quan điểm của người mới bắt đầu của tôi rất khó nắm bắt và nếu tôi nắm bắt được chúng, hiểu chúng là gì hoặc tại sao chúng được sử dụng cũng khó như vậy. Tôi đã học được về một vài ngôn ngữ khác và nó đã tạo ra sự khác biệt trên thế giới. Đặc biệt vì mỗi ngôn ngữ là khác nhau, bạn có thể học các khía cạnh khác nhau của lập trình từ mỗi ngôn ngữ.
fender1901

49

Nếu đó là ngôn ngữ đầu tiên của bạn, tôi nghĩ sẽ tốt hơn nếu học nó đủ tốt để hiểu cách ngôn ngữ lập trình hoạt động.

Một khi bạn có nền tảng tốt, bạn có thể chọn bao nhiêu tùy thích.


2
+1 Tôi nghĩ rằng điều đó tạo ra sự khác biệt lớn cho dù bạn đang học ba ngôn ngữ đầu tiên so với thứ tư, thứ năm, thứ sáu, v.v.
keithjgrant

12

Tôi nghĩ một kỹ năng quan trọng đối với các lập trình viên là khả năng học các ngôn ngữ lập trình mới. Vì vậy, tôi có xu hướng đề nghị một người cố gắng học một ngôn ngữ trước và sau đó thêm ngôn ngữ khác.

Dù ngôn ngữ đầu tiên của bạn là quá trình học các ngôn ngữ bổ sung nên:

  • Tìm một tài liệu tham khảo cú pháp tốt cho ngôn ngữ mới
  • Xác định điểm mạnh của ngôn ngữ mới, đừng chỉ viết mã bằng ngôn ngữ mới như thể đó là ngôn ngữ bạn đã biết (lập trình có dấu)
  • Khám phá các khu vực của ngôn ngữ mới không ánh xạ tới các ngôn ngữ trước bạn đã sử dụng trước đó
  • Tìm các ví dụ mã và không xem xét chúng, hãy thử viết mã giống nhau từ đầu và xem cách triển khai của bạn khác với ví dụ

Theo thời gian khi bạn tích lũy các ngôn ngữ, bạn sẽ hình thành ngôn ngữ mã giả trừu tượng nội bộ của riêng bạn sẽ giúp bạn dịch giữa các ngôn ngữ bạn biết. Ngôn ngữ nội bộ này là khung bạn sẽ sử dụng để học ngôn ngữ mới một cách nhanh chóng.


1
+1 cho "xác định thế mạnh của ngôn ngữ mới ...". Rất đẹp
Nick Burns

8

Học ngôn ngữ song song là điều khá bình thường. Ví dụ lập trình web. Bạn đang xử lý ít nhất ba ngôn ngữ: phía máy chủ (php, java, .net, ruby, python ...), mã máy khách (java script và html), cơ sở dữ liệu (sql).


cũng không htmlphải sqllà ngôn ngữ lập trình.
aeid

chữ l là viết tắt của ngôn ngữ
Boris Pavlović

7

Tôi không thấy vấn đề học nhiều ngôn ngữ cùng một lúc. Trên thực tế, bạn không bao giờ thực sự thành thạo một ngôn ngữ, vì vậy, thực sự, bất cứ khi nào bạn làm việc với nhiều hơn một ngôn ngữ, có lẽ bạn đang học cả hai ngôn ngữ.

Bạn có thể muốn tập trung vào một ngôn ngữ để vượt qua những điều cơ bản chỉ để giữ cho bản thân không bị lẫn lộn hai ngôn ngữ. Điều này đặc biệt đúng nếu bạn đang học các ngôn ngữ tương tự, như Java và C #.


JavaScript / Python có thể là một lựa chọn tốt nhờ sự khác biệt của chúng. Làm ví dụ
nick indiess

6

Tôi đã giảng dạy lập trình được vài năm, vì vậy tôi có thể chia sẻ kinh nghiệm của mình với bạn. Tôi cho rằng C # là ngôn ngữ đầu tiên của bạn, vì vậy kinh nghiệm của tôi khi dạy lập trình cho những người chưa từng lập trình trước đây có thể hữu ích.

Trước hết, để tôi nói với bạn rằng học nhiều hơn một ngôn ngữ là điều mà mọi lập trình viên dày dạn nên làm. Nhưng điều này không có nghĩa là bạn nên học nhiều ngôn ngữ cùng một lúc nếu bạn chỉ mới bắt đầu.

Trong nhiều năm, các sinh viên đã chỉ ra rằng phải mất khoảng một năm để một ngôn ngữ được củng cố trong tâm trí (ít nhất là ngôn ngữ đầu tiên), đôi khi nhiều hơn một chút, đôi khi ít hơn một chút. Nếu bạn cố gắng dạy nhiều hơn một ngôn ngữ trong một năm, sinh viên có xu hướng trộn lẫn chúng và nhầm lẫn giữa các khái niệm và ngôn ngữ. Mặc dù các sinh viên tiến bộ, họ có rất nhiều thói quen xấu khó có thể loại bỏ sau này. Nếu bạn đang tự học, nguy cơ này cao hơn.

Tuy nhiên, tôi đã nhận thấy rằng nó hữu ích nếu bạn dạy hai ngôn ngữ với một cú pháp rất khác nhau. Khi hai ngôn ngữ lập trình trông thực sự khác nhau, nó giúp tâm trí thấy chúng là những thực thể thực sự khác nhau mà không gây ô nhiễm lẫn nhau. (Khi một ngôn ngữ lập trình giúp bạn hiểu các khái niệm khó trong ngôn ngữ khác, điều đó là tốt; khi một ngôn ngữ khiến bạn viết mã xấu bằng ngôn ngữ khác, điều đó thật tệ).

Do đó, khuyến nghị của tôi là nên sử dụng một ngôn ngữ lập trình cho năm đầu tiên của bạn. Ngoài ra, có thể là một ý tưởng tốt để học hai ngôn ngữ cùng một lúc miễn là chúng / trông rất khác nhau. Nếu ngôn ngữ đầu tiên của bạn là C #, chắc chắn tôi sẽ tránh xa C, C ++, Objective C và Java; và có lẽ là Python, Ruby và Javascript. Tôi sẽ khuyên bạn nên kết hợp C # với một ngôn ngữ chức năng như Haskell, Scheme, F #, Erlang, Clojure hoặc có thể là Scala.


5

Tôi nghĩ rằng học nhiều ngôn ngữ tại một thời điểm thực sự tốt hơn so với việc học một ngôn ngữ tại một thời điểm, bởi vì nếu các ngôn ngữ đủ khác nhau, mỗi ngôn ngữ sẽ mang lại cho bạn sự khác biệt so với ngôn ngữ kia. Cố gắng sắp xếp chúng để bạn bắt đầu một cái mới sau khi bạn đã vượt qua giai đoạn "người mới tuyệt đối" của giai đoạn trước; bằng cách này, bạn sẽ có cơ hội tốt hơn nhiều trong việc giữ lại không chỉ những gì bạn đã học về ngôn ngữ mà cả cách bạn học một ngôn ngữ mới. (Kỹ năng học ngôn ngữ tổng quát là điều bạn sẽ rất biết ơn sau này trong cuộc sống lập trình.)

Điều đó nói rằng, học ngôn ngữ đầu tiên của bạn đòi hỏi một sự đầu tư lớn về thời gian và năng lượng, và bạn có thể đơn giản là không có thời gian để thực hiện một dự án lớn khác trong quá trình này. Nếu bạn đang nghĩ về việc bắt đầu một ngôn ngữ khác vì bạn chán C ++ - đừng! Nó sẽ khuyến khích bạn trì hoãn. Nếu bạn đang suy nghĩ về việc bắt đầu một ngôn ngữ khác bởi vì bạn cứ thấy đề cập đến các dự án được viết bằng (nói) Java và bạn cảm thấy thất vọng vì bạn không thể dễ dàng đọc và phân tích mã - hãy làm! Đây là một lý do tuyệt vời để học một ngôn ngữ khác bất cứ lúc nào.


2

Tôi thấy việc học nhiều ngôn ngữ đồng thời có thể dẫn đến việc mất nhiều thời gian hơn để học một ngôn ngữ cụ thể (không cần phải nói thực sự). Tuy nhiên, trong trường hợp của tôi, nó đã cho phép tôi quyết định ngôn ngữ nào tôi thích và phong cách mã hóa mà tôi thích nhất.

Trong trường hợp của tôi, tôi bắt đầu với C # sau đó vào Python và F #. Tôi thực sự thích phong cách chức năng của F # dẫn tôi thử Scala và Clojure. Bây giờ vì học tất cả các ngôn ngữ này, tôi thấy Scala phù hợp với những gì tôi làm. Thêm vào đó bây giờ tôi thực sự tự tin vào OOP và các phong cách chức năng và có thể đọc và viết một số ngôn ngữ thành thạo. Đó là một kỹ năng tuyệt vời để 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.