Đối với tôi, tôi là người C # và Java. Tôi thấy 2 ngôn ngữ này khá giống nhau nên tôi dễ dàng giao nhau hơn. Tôi không chắc có nên chọn ngôn ngữ khác không. Có suy nghĩ gì không?
Đối với tôi, tôi là người C # và Java. Tôi thấy 2 ngôn ngữ này khá giống nhau nên tôi dễ dàng giao nhau hơn. Tôi không chắc có nên chọn ngôn ngữ khác không. Có suy nghĩ gì không?
Câu trả lời:
Tôi có thể nghĩ ra ít nhất năm lý do để học một ngôn ngữ, và có vẻ như cuối cùng bạn nên học một ngôn ngữ cho mỗi ngôn ngữ này.
Đây không phải là về việc bạn học được bao nhiêu ngôn ngữ. Đó là về việc học các khái niệm mới. Một số ngôn ngữ có thể có thể dạy cho bạn nhiều khái niệm, trong khi những ngôn ngữ khác có thể chỉ dạy một ngôn ngữ.
Nếu bạn biết C #, có lẽ bạn sẽ không học được điều gì mới khủng khiếp bằng cách học Java. Nhưng bạn sẽ học nếu bạn học Haskell.
Vì vậy, khi bạn chọn một ngôn ngữ mới để học, hãy chọn một thứ sẽ dạy cho bạn những khái niệm mà bạn chưa biết.
Tôi muốn nói điều quan trọng nhất là khả năng học hỏi nhanh. Điều đó nói rằng điều quan trọng là phải biết các ngôn ngữ khác nhau được sử dụng cho các mục đích khác nhau. Ví dụ tôi biết:
1) Python và Perl cho danh mục ngôn ngữ script
2) C ++ là ngôn ngữ "khung"
3) Java cho ứng dụng di động
4) C cho số lượng lớn mã di sản
5) Một số ngôn ngữ lỗi thời tôi từng biết khi còn trẻ (Cơ bản, Pascal, Clipper, v.v.)
Tôi muốn nói rằng bạn cần ít nhất một ngôn ngữ chính và một ngôn ngữ chính . Biết C # Tôi muốn nói bạn cần học Python hoặc Perl hoặc Ruby tiếp theo. (Tôi sẽ đi với Python nhưng đó chỉ là vấn đề ưu tiên).
Thật tốt khi học một ngôn ngữ lập trình mới mỗi năm. Nhưng thay vì học một cái gì đó tương tự như những gì bạn đã biết, tôi sẽ khuyên bạn nên học một cái gì đó hoàn toàn khác biệt như Scala hoặc F #. Nó sẽ chỉ cho bạn những cách mới để làm mọi thứ và cuối cùng làm phong phú thêm kỹ năng lập trình của bạn.
Bạn nên tập trung vào các ngôn ngữ bạn cần và sử dụng cho những gì bạn đang làm . Thực sự học một ngôn ngữ xuất phát từ thực tiễn, vì vậy bạn sẽ nhận được lợi ích của ngôn ngữ đó khi bạn thực hành ngôn ngữ đó. Nếu bạn sẽ học một ngôn ngữ mới trong thời gian rảnh rỗi, thì hãy thực hiện nó bằng cách thực hiện nó trong các nhiệm vụ tăng độ phức tạp, để bạn thực sự nắm bắt được nó.
tập trung vào không có. tập trung vào việc học và viết mã sạch; rõ ràng, biểu cảm, đơn giản và quan trọng nhất, không trùng lặp.
đi theo các nguyên tắc của loại lập trình đó, những điều cơ bản (ví dụ, đóng gói cho OOP; ý nghĩa của nó và ý nghĩa của nó) và tìm hiểu một số nguyên tắc
công cụ này sẽ làm cho công việc của bạn dễ dàng hơn. điều này thậm chí sẽ giúp những người làm việc với bạn hoặc sau bạn dễ dàng hơn.
ya, bạn cũng phải biết cú pháp khá tốt. nhưng đó không phải là thứ khiến bạn mất tập trung trong một thời gian dài
và ya, bạn cũng phải hiểu khá rõ các công nghệ bạn sử dụng. nhưng những điều đó có thể được ưu tiên theo mức độ phức tạp mà doanh nghiệp của bạn yêu cầu.
hai cái cuối cùng không phải là trọng tâm chính, mà là một số trọng tâm
Một lập trình viên cần phải tập trung vào lập trình không phải trên một ngôn ngữ / ngôn ngữ cụ thể.
Nhiều như là cần thiết để làm công việc của bạn.
Nhưng C # và Java gần giống như tiếng Anh Anh và tiếng Anh Mỹ. Bạn có thể học được điều gì đó mới bằng cách đi Phần Lan hoặc Navajo.
Tôi không nghĩ rằng bạn nhất thiết có thể thành thạo một ngôn ngữ mà không có đủ sự hiểu biết về các ngôn ngữ khác để thấy ngôn ngữ đó "từ bên ngoài" như trước đây. Mỗi ngôn ngữ khác nhau mang lại một thứ khác cho bảng và các khái niệm chúng mang lại là những thứ bạn có thể lấy lại cho các ngôn ngữ chính mà bạn làm việc cùng.
Vì vậy, thời gian học sử dụng các ngôn ngữ khác không bao giờ lãng phí ngay cả khi bạn không có kế hoạch sử dụng chúng cho mục đích thương mại.
Câu ngạn ngữ cũ là học một ngôn ngữ mỗi năm và tôi chắc chắn sẽ nói trong mười năm đầu tiên hoặc lâu hơn nữa bạn cần phải làm điều đó. Có lẽ ngoài việc bạn có thể chọn giữa việc khám phá một số trong những điều bạn đã biết sâu hơn (có thể cập nhật kiến thức về những người bạn đã học được vài năm trước) hoặc làm việc với các thư viện cụ thể thay vì tích lũy ngôn ngữ mới vô tận, nhưng hãy chú ý khám phá thực hành lập trình thông qua làm việc với các ngôn ngữ khác nhau chắc chắn là một sự trợ giúp cho sự phát triển của bạn với tư cách là một lập trình viên.
Các ngôn ngữ lập trình phổ biến như C # và Java sẽ giúp bạn luôn có việc làm tốt, nhưng không đủ khác biệt để học cách giải quyết vấn đề mới. Tôi nghĩ rằng có một số ngôn ngữ mà bạn ăn cùng (những ngôn ngữ bạn sử dụng để thực hiện công việc của mình) và những ngôn ngữ khác mà bạn chơi cùng. Cả hai đều có mục đích của họ.
Tôi đã thấy rằng bằng cách học các ngôn ngữ lập trình mới, tôi cũng đã học được những cách mới và thanh lịch hơn để giải quyết vấn đề. Đó không phải là về số lượng ngôn ngữ, hoặc tần suất bạn chọn chúng. Mỗi ngôn ngữ lập trình đáng để học có một quan điểm riêng, điều này buộc bạn phải tiếp cận vấn đề của mình với một tư duy mới. Nhiều khi giá trị đến từ việc học hỏi tư duy đó.
Tôi đã chơi với Smalltalk và tôi thích nó. Ngôn ngữ chỉ là một niềm vui để phát triển với. Khi bạn đã quen với các thành ngữ, chúng giúp bạn biểu cảm hơn với mã của bạn. Tôi đã không bỏ lỡ kiểu gõ tĩnh mà bạn có trong Java / C ++ / C #. Các khái quát mà chúng ta sống trong các ngôn ngữ gõ tĩnh của chúng ta thực sự là các cấu trúc để khắc phục các hạn chế của việc gõ tĩnh.
Tôi sử dụng Ruby và Ruby on Rails thường xuyên, mặc dù không phải để trả công ngay bây giờ. Nguyên tắc thiết kế của Ruby là "tăng hạnh phúc lập trình viên". Bạn phải yêu thứ tình cảm đó, và phần lớn tôi nghĩ nó mang lại.
Cuối cùng, Java sẽ đi theo hướng của lisp và Smalltalk và C # sẽ theo sau. Những gì sẽ ở đó để có vị trí của họ vẫn được nhìn thấy. Vào cuối ngày, nếu bạn biết cách giải quyết vấn đề và bạn có một số cách để giải quyết vấn đề, bạn sẽ có thể tìm một công việc và chọn bất kỳ ngôn ngữ nào bạn cần cho nó.
Khi nói đến việc giữ cho các kỹ năng được cập nhật và linh hoạt, tôi nghĩ bạn nên cố gắng học ít nhất một ngôn ngữ lập trình hoàn toàn mới cứ sau 6 tháng. Và tôi có nghĩa là một ngôn ngữ rất, rất khác nhau.
Vì vậy, trong khi tìm hiểu thêm về khung .net trong khi sử dụng C # hoặc các khung công tác Java sẽ giúp duy trì sự khập khiễng, học Haskell, Smalltalk, Scala, Clojure hoặc Ruby sẽ mở rộng kỹ thuật của bạn và giúp bạn suy nghĩ theo những cách khác nhau, một số trong đó bạn có thể sử dụng một cách hữu ích trở lại ngôn ngữ chính của bạn và một số ngôn ngữ có thể giúp bạn tiến lên nếu Java không còn là vua của ngọn đồi.
Nếu bạn chưa bao giờ học C, thì mặc dù cú pháp của nó đã được đưa vào Java, nhưng suy nghĩ có thể hoàn toàn khác. Thật đáng để biết nó, theo chiều sâu, và thậm chí tốt hơn, hiểu cách mã OO có thể được viết bằng ngôn ngữ này mà dường như chỉ mang tính thủ tục.
Tôi khuyên bạn nên đọc cuốn sách "Beyond Java" của Bruce Tate, trong đó chỉ nêu quá rõ những nguy hiểm của việc chỉ có một ngôn ngữ, lưu ý đến sự lên xuống của C ++. Mặc dù C ++ vẫn chưa kết thúc và còn nhiều thập kỷ nữa, nhưng nó ngày càng bị hạn chế chỉ sử dụng trong các tình huống không thể hưởng lợi từ việc tăng năng suất trong các ngôn ngữ khác. Ngược lại, Sinatra, một khung ruby, cho phép bạn xây dựng một dịch vụ web đơn giản trong khoảng 6/7 dòng mã, tương đương C ++ có thể là một trật tự lớn hơn mức này.
Khi bạn không phải là người nói tiếng Anh bản ngữ, ít nhất bạn phải tập trung vào việc cải thiện tiếng Anh của mình . Tôi đang nói rằng dựa trên kinh nghiệm của tôi. Hiểu ngôn ngữ đó đã giúp tôi rất nhiều.
Tất cả các tài liệu tốt (sách, bài viết, mã, v.v.) để học ngôn ngữ lập trình, công nghệ và khái niệm mới được viết bằng tiếng Anh.
Ngôn ngữ là công cụ để hoàn thành công việc. Một số ngôn ngữ tốt cho một số loại vấn đề, những ngôn ngữ khác thường tốt ở tất cả các loại giải quyết vấn đề. Tôi khuyên bạn nên học ngôn ngữ mới khi chúng ra đời. Đừng bị ám ảnh bởi những gì là thời trang trong tháng này, nhưng hãy học những gì họ có thể làm, những gì họ giỏi. Lời khuyên của tôi là 1 ngôn ngữ mới mỗi năm. Chúng xuất hiện nhanh hơn thế, nhưng bạn đang tìm cách đưa các công cụ mới vào hộp công cụ của mình, chứ không phải là đứa trẻ thời trang mới trong khối.
Một bài luận nói về sự khác biệt trong ngôn ngữ là "Đánh bại mức trung bình" của Paul Graham. Tôi khuyên bạn nên đọc nó, nhưng một phần quan trọng ở đây (anh ấy sử dụng "Blub" làm ngôn ngữ giả định để bạn không tranh cãi về những gì langage yêu thích của bạn có thể làm):
Hay làm thế nào về Perl 4? Giữa Perl 4 và Perl 5, các bao đóng từ vựng đã được thêm vào ngôn ngữ. Hầu hết các tin tặc Perl đều đồng ý rằng Perl 5 mạnh hơn Perl 4. Nhưng một khi bạn đã thừa nhận điều đó, bạn đã thừa nhận rằng một ngôn ngữ cấp cao có thể mạnh hơn ngôn ngữ khác. Và nó theo sau một cách khó hiểu rằng, ngoại trừ trong những trường hợp đặc biệt, bạn nên sử dụng sức mạnh mạnh nhất bạn có thể nhận được.
Ý tưởng này hiếm khi đi theo kết luận của nó, mặc dù. Sau một độ tuổi nhất định, lập trình viên hiếm khi chuyển đổi ngôn ngữ một cách tự nguyện. Bất cứ ngôn ngữ nào mọi người thường sử dụng, họ có xu hướng xem xét chỉ đủ tốt.
{snip}
Chừng nào lập trình viên Blub giả định của chúng ta đang nhìn xuống sự liên tục sức mạnh, anh ta biết mình đang nhìn xuống. Ngôn ngữ kém mạnh mẽ hơn Blub rõ ràng là kém mạnh mẽ hơn, vì chúng thiếu một số tính năng mà anh ấy đã từng sử dụng. Nhưng khi lập trình viên Blub giả định của chúng tôi nhìn theo hướng khác, tiếp tục sức mạnh, anh ấy không nhận ra mình đang nhìn lên. Những gì anh ta nhìn thấy chỉ là những ngôn ngữ kỳ lạ. Anh ta có lẽ coi họ có sức mạnh tương đương với Blub, nhưng với tất cả những thứ lông lá khác cũng bị ném vào. Blub là đủ tốt cho anh ta, bởi vì anh ta nghĩ trong Blub.
Tuy nhiên, khi chúng tôi chuyển sang quan điểm của một lập trình viên sử dụng bất kỳ ngôn ngữ nào cao hơn tính liên tục sức mạnh, chúng tôi thấy rằng anh ta lần lượt xem thường Blub. Làm thế nào bạn có thể làm bất cứ điều gì được thực hiện trong Blub? Nó thậm chí không có y.
Bằng cách cảm ứng, các lập trình viên duy nhất ở một vị trí để thấy tất cả sự khác biệt về sức mạnh giữa các ngôn ngữ khác nhau là những người hiểu ngôn ngữ mạnh nhất. . cách họ nghĩ về các chương trình.
http://www.paulgraham.com/avg.html
Hầu hết các ứng dụng chúng tôi gửi được viết bằng C # hoặc VB. Khi chúng tôi cần thêm kịch bản vào một ứng dụng, chúng tôi đã chọn Python (Lua là lựa chọn của người chạy bộ). Chúng tôi đang học F # vì điều đó có thể làm một số điều mới mẻ khó giải thích và hiểu nếu tất cả những gì người ta biết là C # / Java / VB.
Trước hết, có một số ngôn ngữ rất khó tránh đối với hầu hết các lập trình viên: javascript, sql, c, v.v. vì vậy bạn cũng có thể làm quen với chúng, chúng sẽ không biến mất.
cũng là một ý tưởng tốt để biết một ngôn ngữ kịch bản gõ vịt ... ví dụ như một trong những perl, python, ruby, lua, v.v ... những điều này cực kỳ hữu ích cho một loạt các vấn đề lớn bao gồm tự động hóa phần lớn công việc hàng ngày của bạn
tốt hơn hoặc tồi tệ hơn, bạn cũng có thể sẽ chạy vào c # và / hoặc java tại một số điểm, chúng khá phổ biến.
trong mọi trường hợp, đừng giới hạn bản thân một cách giả tạo. những lập trình viên mà tôi biết rõ ràng là người tránh chọn các công cụ thú vị dường như đã làm tắc nghẽn thế giới quan và tác động hạn chế.
Điều này có thể trở thành một chuyên gia khác so với tranh luận tổng quát theo một nghĩa nào đó. Một số người có thể dành một thời gian dài để biết một ngôn ngữ đến độ sâu lớn, hoạt động tốt với họ. Những người khác có thể muốn biết một chút về một loạt các ngôn ngữ khác nhau phù hợp với họ. Hầu hết mọi người nằm giữa hai thái cực này.
Nếu bạn muốn đề xuất ngôn ngữ để khám phá ở đây là một vài ý tưởng:
Lập trình chức năng - Haskell hoặc Lisp sẽ là những ví dụ ở đây và sự thay đổi mô hình có thể là một chút của một công cụ quay đầu ở một mức độ nào đó.
Cơ sở dữ liệu cụ thể - PL / SQL hoặc T-SQL xuất hiện như một thứ có thể hữu ích nếu bạn muốn thực hiện nhiều công việc phụ trợ hơn với các hệ thống yêu cầu cơ sở dữ liệu cho một số chức năng của nó.
Ngôn ngữ web UI - ActionScript hoặc Javascript sẽ là ví dụ ở đây về ngôn ngữ được sử dụng trong Ứng dụng Internet phong phú, mặc dù AIR có thể khiến một số ứng dụng máy tính để bàn sử dụng các cuộc gọi web trong một số trường hợp như Twhirl sử dụng API Twitter.
Đây chỉ là những ý tưởng và tùy thuộc vào nơi bạn muốn trở thành những ý tưởng này có thể hữu ích hoặc vô dụng với bạn. Chúc may mắn với bất kỳ lựa chọn nào bạn thực hiện.
Một lập trình viên cần biết ba ngôn ngữ: C, tiếng Anh và một cái gì đó khác.
C rất giống ngôn ngữ cốt lõi, nó gần với máy và có các quy tắc cú pháp phổ biến đối với một số ngôn ngữ cấp cao. C buộc bạn phải suy nghĩ về những thứ như cấu trúc dữ liệu theo một cách rất khác so với Java. Ngoài ra, vms Python và Ruby đều được tích hợp sẵn trong C và bạn có thể chuyển C thành cả hai ngôn ngữ khi bạn muốn tăng tốc độ của mình.
Tiếng Anh là ngôn ngữ chung của lập trình. Hầu hết các sách, báo cáo kỹ thuật, trang web kỹ thuật và các bài báo đều xuất bản bằng tiếng Anh và đôi khi chỉ bằng tiếng Anh. Hơn nữa, nếu tiếng Anh không phải là ngôn ngữ đầu tiên của bạn, thì việc học tiếng Anh sẽ mở rộng bộ công cụ của bạn để thao túng các khái niệm (tất nhiên điều này cũng dành cho người nói tiếng Anh học một số ngôn ngữ khác).
Cái gì đó khác phải là một ngôn ngữ không mang tính thủ tục, hoặc không được gõ tĩnh, hoặc hướng đối tượng mạnh mẽ, hoặc về mặt nào đó chỉ khác về cơ bản với C. Haskell, Scala, Python, Ruby, một số phương ngữ Lisp, bất cứ điều gì .
Sau đó, bạn có thể tìm hiểu bất cứ tình huống cụ thể nào của bạn yêu cầu, có thể là C # hoặc Java.