it-swarm-vi.com

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

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 muốn biết Java và Python.

36
Maxpm

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 không hề gõ nó chút nào, nhưng nó chỉ giống như một 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 didn 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 cuốn sách ah ha! Khoảnh khắc hiểu 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 việc học nhiều ngôn ngữ cùng một lúc không phải là một điều tồi tệ!

31
Jetti

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.

49
OscarRyz

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 thử học một ngôn ngữ trước rồi 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 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.

12
Jason Aller

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 (tập lệnh Java và html), cơ sở dữ liệu (sql).

8
Boris Pavlović

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 #.

7
Paul Whitehurst

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ù học sinh tiến bộ, nhưng chúng 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 nhìn 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 #, tôi sẽ tránh xa C, C++, Objective C và Java chắc chắn; 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 chức năng ngôn ngữ như Haskell, Scheme, F #, Erlang, Clojure hoặc có thể là Scala.

6
sergut

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à làm thế nào 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 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.

5
Arkaaito

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 # rồi vào Python và F #. Tôi thực sự thích phong cách chức năng của F # khiến tôi phải thử Scala và Clojure. Bây giờ bởi vì học tất cả các ngôn ngữ mà tôi đã tìm thấy Scala để phù hợp với những gì tôi làm. Thêm vào đó tôi thực sự tin tưởng vào OOP và các kiểu 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ó.

2
Richard Todd