Нужно ли изучать новые языки или только сосредоточиться на языках, которые вы уже знаете, и расширить свои знания о них? [закрыто]

22

Какой способ является более выгодным и продуктивным?

Чанки патхак
источник
1
Разве это не зависит от типа работы и проектов? Если вы работаете в крупной корпорации, вы, вероятно, не слишком часто меняете технологии, если у вас есть свободный выбор, у вас есть выбор.
Крис
@Chris: Предложение "Языки и фреймворки", большинство разработчиков больше не работают только с компилятором командной строки и текстовым редактором, но с библиотеками, IDE, BD, инструментами трехсторонней вечеринки, ... ;-)
umlcat
1
Судя по подсчетам голосов, этот вопрос , по мнению многих, является конструктивным. Я думаю, что Марк Трапп на самом деле компьютерная программа, написанная для закрытия вопросов.
Т. Вебстер

Ответы:

18

Я думаю, что вам нужно оба. Вы должны сосредоточиться на своих основных компетенциях и улучшить свое понимание их, но в то же время полезно взглянуть на улицу и посмотреть, что еще там. Знакомство с другими подходами и другими языками очень важно, чтобы сделать его лучшим разработчиком в целом. Есть много способов снять шкуру с кошки, и знание как можно большего количества из них сделает вас психопатом лучше в выборе правильного инструмента для конкретной задачи.

Так что, проводите большую часть своего времени, улучшая выбранный навык, а часть времени посвящайте изучению чего-то нового.

Адам Лир
источник
4
+1 За знание того, как правильно использовать свой «молоток», а также за знание того, что существуют такие вещи, как «отвертки», «пилы» и «липкая прихватка».
Райан Хейс
1
И в большинстве случаев изучение нового языка может подвергнуть вас шаблону проектирования или чему-то полезному, о чем вы никогда не думали, используя свои собственные языки.
AttackingHobo
8

Кто-то сказал: «Язык, который не меняет того, как ты думаешь о программировании, не стоит изучать».

Так что, если вы знаете Java, вы мало изучите C # (или наоборот). Если бы не по прагматическим причинам (т. Е. Вам это нужно для решения проблемы), я бы предложил придерживаться одного языка для каждой парадигмы, и ваше расписание все еще достаточно полно;).

С другой стороны, специализация, по моему опыту, в основном достигается «в полевых условиях», т. Е. При работе над проектом, поэтому это естественно.

keppla
источник
1
C # предлагает интересные новые функции для разработчиков Java. Выражения Linq & lambda могут открыть глаза в новый мир.
Карра
На самом деле, я бы сказал, что вывести на рынок программу на C # было проще (по крайней мере для меня), чем вывести на рынок Java-программу. Таким образом, в этом смысле мои глаза были открыты в том смысле, что я мог иметь удобства Java, избегая при этом некоторых ее недостатков. Независимо от языковых войн пламени, я бы сказал, что это хороший момент.
riwalk
+1 Я начинал в .NET и действительно многому научился из моих увлечений Objective C и JavaScript.
Тревор
@Carra: я не знал об этом (мой последний глубокий опыт работы с обоими был, когда Java 1.5 была текущей). Разве, по вашему опыту, разница стала достаточно большой, чтобы сделать их достаточно разными, чтобы можно было рекомендовать изучить оба (с «академической» точки зрения)?
Кеппла
Вы, вероятно, еще лучше выучить один и функциональный язык. Так что в целом я с тобой согласен.
Карра
3

Есть много действительно хороших споров с обеих сторон. Много лет назад мне был задан именно этот вопрос ... сконцентрируйся на своем основном языке и попытайся стать "экспертом" ИЛИ подобрать новый язык и расширить свою конкурентоспособность. Я решил сосредоточиться на одном языке.

Там действительно не будет неправильный ответ. У обоих есть свои достоинства, это действительно сводится к тому, какой из них подходит вам лучше и куда вы хотите, чтобы ваша карьера пошла.

Вальтер
источник
2

Изучение новых языков - это в основном средство для получения новых концепций и повышения вашей эффективности с помощью программирования. Изучение программирования само по себе очень отличается от изучения нового языка для программирования.

Вы должны сосредоточиться на улучшении своих программ (и существует множество метрик для измерения, многие из которых субъективны; не имеет значения, выбирайте метрики и уточняйте их с течением времени, используйте их для своего образования).

Сказав это, изучение «новых» языков (скажем, Python) по старому списку (как, скажем, C«и многие другие») поможет вам более эффективно мыслить и сосредоточиться на тех основных понятиях, которые следует улучшить. Если продолжить этот пример, он может появиться не сразу, но вы можете найти, что ваше Cпрограммирование улучшается, потому что вы думали на Python. Вы могли бы даже начать писать Python вместо псевдокода для C. Теперь это гораздо более читаемый и проверяемый псевдокод.

Это подводит нас к подведению итогов по основному вопросу:
да, вы должны сосредоточиться на языках, которые вы уже знаете, и расширить свои знания на них - до тех пор, пока они все еще используются для вас. Кроме того , вам следует побаловаться новыми языками, чтобы дать мозгу новые инструменты, чтобы продумать (может быть, даже быстрее) решения для ваших потребностей программирования.

Nik
источник
1

Доминируйте в структуре программирования (и родственном языке) и оставьте немного свободного времени для другого, предпочтительно другого «домена». Пример: клиент-сервер C ++, Ruby on Web

umlcat
источник
1

Изучение нового языка

Это зависит от цели, для которой вы изучаете язык. Если вы изучаете язык, потому что он использует другую парадигму или подходит для конкретной проблемной области. Однако, если это язык, очень похожий на тот, который вы уже знаете, и все, что вы планируете сделать, это переписать весь ваш существующий код на этом новом языке, вероятно, не так уж много смысла (например, переписать веб-приложение на Python в рубин) в нем.

Более глубокое знание современного языка

Если вы уже чувствуете себя очень комфортно при программировании на языке, знакомы со всеми его идиомами и можете писать программы на нем, не обращаясь к документации по каждому отдельному вызову библиотеки, вероятно, узнать о нем намного больше. Если, с другой стороны, ваше знание языка не такое глубокое, возможно, вам стоит узнать больше. Вот несколько хороших способов определить, находитесь ли вы в первом или последнем лагере для языка X:

  1. Сколько программ вы написали на языке X?
  2. Если вы перейдете в Stack Overflow и посмотрите на вопросы, помеченные буквой X, на какие из них вы бы с удовольствием ответили?
  3. Люди приходят к вам за помощью по языку X?

Если ваши ответы на эти вопросы примерно такие же, как «много», «большинство из них» и «да, это раздражает», это хороший признак того, что вы освоили язык и должны перейти к чему-то новый.

Чжэхао Мао
источник
0

Если вы уже достаточно хорошо знакомы с языком, который вам знаком, нет смысла изучать очень подробные, специфические трюки для немного крутого ... это будет пустая трата времени. Тем не менее, когда вы чувствуете себя неловко с языком, советуем сначала освоить этот язык.

Помимо языков, есть фреймворки, шаблоны ... чтобы выучить фреймворк, вы должны знать язык, поэтому для очень похожих языков их изучение ничем не поможет, кроме как доставить немного веселья.

Мое личное мнение: вы всегда должны развивать свои возможности, чтобы создавать более быстрое, безопасное и надежное программное обеспечение для большего количества платформ и сокращать время, для этого вам может потребоваться выучить новый язык, новую платформу, новую среду IDE. (это так же важно, как язык), и только тогда, когда вы для этой цели, ваши инвестиции окупаются.

По крайней мере, не изучайте новый язык, чтобы увеличить количество языков, которые вы знаете.

tactoth
источник