Có nên học ngôn ngữ mới hay chỉ nên tập trung vào những ngôn ngữ bạn đã biết và tăng kiến ​​thức về nó? [đóng cửa]


22

Cách nào có lợi và hiệu quả hơn?


1
Điều này không phụ thuộc vào loại công việc và dự án? Nếu bạn làm việc cho một tập đoàn lớn, có lẽ bạn không thay đổi công nghệ quá thường xuyên, nếu bạn tự do, bạn có sự lựa chọn.
Chris

@Chris: Gợi ý, "Ngôn ngữ và khung", hầu hết các nhà phát triển không còn chỉ làm việc với trình biên dịch dòng lệnh và trình soạn thảo văn bản, mà là các thư viện, IDE, BD, Thrid-Party Tools, ... ;-)
umlcat

1
Đánh giá bằng cách tăng số phiếu, câu hỏi này mang tính xây dựng theo ý kiến ​​của nhiều người. Tôi nghĩ Mark Trapp thực sự là một chương trình máy tính được viết để đóng các câu hỏi.
T. Webster

Câu trả lời:


18

Tôi nghĩ bạn cần cả hai. Bạn phải tập trung vào năng lực cốt lõi của mình và nâng cao hiểu biết về chúng, nhưng đồng thời cũng có ích khi nhìn ra bên ngoài và xem những gì khác ở ngoài kia. Tiếp xúc với các phương pháp khác và các ngôn ngữ khác là rất quan trọng để làm cho một nhà phát triển tốt hơn về tổng thể. Như vậy, có rất nhiều cách để nuôi mèo, và biết càng nhiều trong số chúng càng tốt sẽ giúp bạn trở thành một kẻ tâm thần tốt hơn trong việc chọn công cụ phù hợp cho một nhiệm vụ cụ thể.

Vì vậy, hãy dành phần lớn thời gian của bạn để cải thiện trình độ đã chọn và dành một chút thời gian cho việc học một cái gì đó mới.


4
+1 Để biết cách sử dụng tốt "búa" của bạn, nhưng cũng biết rằng những thứ như "tua vít", "cưa" và "dính dính" tồn tại.
Ryan Hayes

1
Và hầu hết các lần học một ngôn ngữ mới có thể đưa bạn đến một mẫu thiết kế hoặc thứ gì đó hữu ích mà bạn chưa bao giờ nghĩ đến việc sử dụng ngôn ngữ của riêng bạn.
Tấn

8

Có người nói "Một ngôn ngữ không thay đổi cách bạn nghĩ về lập trình là không đáng để học".

Vì vậy, nếu bạn biết Java, sẽ có rất ít lợi ích khi học C # (hoặc ngược lại). Nếu không phải vì lý do thực tế (nghĩa là bạn cần nó để giải quyết vấn đề), tôi sẽ đề nghị bám vào một Ngôn ngữ theo Nghịch lý và lịch trình của bạn vẫn đủ đầy;).

Chuyên gia, mặt khác, theo kinh nghiệm của tôi chủ yếu đạt được "trong lĩnh vực", tức là, khi làm việc trong một dự án, vì vậy nó đến một cách tự nhiên.


1
C # cung cấp các tính năng mới thú vị cho các nhà phát triển Java. Biểu cảm của Linq & lambda có thể mở mắt ra một thế giới mới.
Carra

Trên thực tế, tôi sẽ nói rằng việc đưa một chương trình C # ra thị trường đã dễ dàng hơn (ít nhất là đối với tôi), sau đó đưa một chương trình Java ra thị trường. Vì vậy, theo nghĩa đó, đôi mắt của tôi đã mở ra rằng tôi có thể có các tiện ích của Java trong khi tránh được một số thiếu sót của nó. Bất kể cuộc chiến ngọn lửa ngôn ngữ, tôi muốn nói rằng đó là một điểm tốt.
riwalk

+1 Tôi đã khởi nghiệp bằng .NET và đã thực sự học được rất nhiều từ sự hiểu biết của mình với Objective C và JavaScript.
Trevor

@Carra: tôi đã không nhận thức được điều đó (trải nghiệm sâu sắc cuối cùng của tôi với cả hai là, khi Java 1.5 là hiện tại). Có sự khác biệt, theo kinh nghiệm của bạn, đã phát triển đủ lớn để khiến chúng đủ khác biệt để đảm bảo một đề xuất để học cả hai (từ quan điểm 'học thuật')?
keppla

Có lẽ bạn vẫn còn tốt hơn để học một và một ngôn ngữ chức năng. Vì vậy, tổng thể tôi đồng ý với bạn.
Carra

3

Có rất nhiều tranh luận thực sự tốt ở cả hai phía. Nhiều năm trước tôi đã được trình bày với câu hỏi chính xác đó ... tập trung vào ngôn ngữ chính của mình và cố gắng trở thành một "chuyên gia" HOẶC chọn một ngôn ngữ mới và mở rộng khả năng tiếp thị của tôi. Tôi chọn tập trung vào một ngôn ngữ.

Thực sự sẽ không có một câu trả lời sai. Cả hai đều có giá trị, nó thực sự sẽ sôi sục với cái nào phù hợp hơn với bạn và nơi bạn muốn sự nghiệp của mình đi đến.


2

Học ngôn ngữ mới chủ yếu là một phương tiện để có được các khái niệm mới và tăng hiệu quả của bạn với lập trình. Học lập trình tự nó rất khác với học một ngôn ngữ mới để lập trình.

Bạn nên tập trung vào việc làm cho chương trình của bạn tốt hơn (và có rất nhiều số liệu để đo lường điều đó, nhiều người chủ quan; không quan trọng, hãy chọn số liệu và tinh chỉnh chúng theo thời gian, sử dụng chúng cho giáo dục của bạn).

Đã nói điều này, học các ngôn ngữ 'mới hơn' (nói, Python) qua danh sách cũ của bạn (như, nói ' C' và nhiều ngôn ngữ khác) sẽ giúp bạn suy nghĩ hiệu quả hơn và tập trung vào các khái niệm cốt lõi cần được cải thiện. Lấy ví dụ xa hơn, nó có thể không xuất hiện ngay lập tức nhưng bạn có thể thấy Cchương trình của mình trở nên tốt hơn vì bạn đã suy nghĩ bằng Python. Bạn thậm chí có thể bắt đầu viết Python thay vì mã psudo cho C. Bây giờ, đó là một mã psudo dễ đọc và dễ kiểm chứng hơn nhiều.

Điều này mang lại cho chúng tôi để tóm tắt về câu hỏi chính:
Có, bạn nên tập trung vào các ngôn ngữ bạn đã biết và tăng kiến ​​thức về chúng - miễn là chúng vẫn được sử dụng cho bạn. , bạn cũng nên học hỏi các ngôn ngữ mới hơn để cung cấp cho bộ não của bạn các công cụ mới hơn để suy nghĩ (thậm chí nhanh hơn) các giải pháp cho nhu cầu lập trình của bạn.


1

Thống trị một khung lập trình (và ngôn ngữ liên quan) và dành thời gian rảnh rỗi cho một "miền" khác, tốt nhất là khác nhau. Ví dụ: Máy khách-máy chủ C ++, Ruby trên Web


1

Học một ngôn ngữ mới

Nó phụ thuộc vào mục đích mà bạn đang học ngôn ngữ. Nếu bạn đang học ngôn ngữ vì nó sử dụng một mô hình khác hoặc phù hợp với một miền vấn đề cụ thể. Tuy nhiên, nếu đó là một ngôn ngữ rất giống với ngôn ngữ bạn đã biết và tất cả những gì bạn dự định làm là viết lại tất cả mã hiện có của bạn bằng ngôn ngữ mới đó, thì có lẽ không có nhiều giá trị (ví dụ, viết lại một ứng dụng web python trong hồng ngọc) trong đó.

Kiến thức sâu hơn về ngôn ngữ hiện tại

Nếu bạn đã cảm thấy rất thoải mái khi lập trình bằng ngôn ngữ, quen thuộc với tất cả các thành ngữ của nó và có thể viết chương trình trong đó mà không cần phải xem tài liệu cho mỗi cuộc gọi thư viện, có lẽ không còn nhiều điều để tìm hiểu về nó. Mặt khác, nếu kiến ​​thức về ngôn ngữ của bạn không sâu sắc, có thể có một số giá trị trong việc học thêm. Một số cách hay để đánh giá xem bạn đang ở trại trước hay sau cho ngôn ngữ X

  1. Có bao nhiêu chương trình bạn đã viết bằng ngôn ngữ X?
  2. Nếu bạn tiếp tục sử dụng Stack Overflow và xem xét các câu hỏi được gắn thẻ X, bạn có thể cảm thấy thoải mái bao nhiêu câu hỏi trong số đó?
  3. Mọi người có đến giúp bạn với ngôn ngữ X không?

Nếu câu trả lời của bạn cho những câu hỏi này nằm ở đâu đó dọc theo dòng chữ "rất nhiều", "hầu hết chúng" và "vâng, và nó đang gây phiền nhiễu", thì đó là một dấu hiệu tốt cho thấy bạn đã thành thạo ngôn ngữ và nên chuyển sang một thứ gì đó Mới.


0

Nếu bạn đã đủ giỏi với ngôn ngữ mà bạn quen thuộc, sẽ không có gì tốt để học các thủ thuật cụ thể, chi tiết cho một chút thú vị ... nó sẽ hoàn toàn lãng phí thời gian. Tuy nhiên, khi bạn khá khó chịu với một ngôn ngữ, đề xuất là làm chủ ngôn ngữ đó trước.

Bên cạnh các ngôn ngữ còn có các khung, các mẫu ... để học một khung bạn phải biết một ngôn ngữ, vì vậy đối với các ngôn ngữ rất giống nhau, việc học chúng không giúp được gì hơn là mang lại một số niềm vui không quá buồn cười.

Ý kiến ​​cá nhân của tôi là bạn nên luôn phát triển khả năng của mình để tạo ra phần mềm nhanh hơn, bảo mật hơn, mạnh mẽ hơn, cho nhiều nền tảng hơn và rút ngắn thời gian hơn, vì mục đích đó bạn có thể cần học một ngôn ngữ mới, khung mới, IDE mới (điều đó cũng quan trọng như ngôn ngữ) và chỉ khi bạn thực hiện mục đích đó thì khoản đầu tư của bạn mới đáng giá.

Ít nhất đừng học một ngôn ngữ mới để tăng số lượng ngôn ngữ bạn biết.

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.