Какой способ является более выгодным и продуктивным?
Какой способ является более выгодным и продуктивным?
Ответы:
Я думаю, что вам нужно оба. Вы должны сосредоточиться на своих основных компетенциях и улучшить свое понимание их, но в то же время полезно взглянуть на улицу и посмотреть, что еще там. Знакомство с другими подходами и другими языками очень важно, чтобы сделать его лучшим разработчиком в целом. Есть много способов снять шкуру с кошки, и знание как можно большего количества из них сделает вас психопатом лучше в выборе правильного инструмента для конкретной задачи.
Так что, проводите большую часть своего времени, улучшая выбранный навык, а часть времени посвящайте изучению чего-то нового.
Кто-то сказал: «Язык, который не меняет того, как ты думаешь о программировании, не стоит изучать».
Так что, если вы знаете Java, вы мало изучите C # (или наоборот). Если бы не по прагматическим причинам (т. Е. Вам это нужно для решения проблемы), я бы предложил придерживаться одного языка для каждой парадигмы, и ваше расписание все еще достаточно полно;).
С другой стороны, специализация, по моему опыту, в основном достигается «в полевых условиях», т. Е. При работе над проектом, поэтому это естественно.
Есть много действительно хороших споров с обеих сторон. Много лет назад мне был задан именно этот вопрос ... сконцентрируйся на своем основном языке и попытайся стать "экспертом" ИЛИ подобрать новый язык и расширить свою конкурентоспособность. Я решил сосредоточиться на одном языке.
Там действительно не будет неправильный ответ. У обоих есть свои достоинства, это действительно сводится к тому, какой из них подходит вам лучше и куда вы хотите, чтобы ваша карьера пошла.
Изучение новых языков - это в основном средство для получения новых концепций и повышения вашей эффективности с помощью программирования. Изучение программирования само по себе очень отличается от изучения нового языка для программирования.
Вы должны сосредоточиться на улучшении своих программ (и существует множество метрик для измерения, многие из которых субъективны; не имеет значения, выбирайте метрики и уточняйте их с течением времени, используйте их для своего образования).
Сказав это, изучение «новых» языков (скажем, Python
) по старому списку (как, скажем, C
«и многие другие») поможет вам более эффективно мыслить и сосредоточиться на тех основных понятиях, которые следует улучшить. Если продолжить этот пример, он может появиться не сразу, но вы можете найти, что ваше C
программирование улучшается, потому что вы думали на Python. Вы могли бы даже начать писать Python вместо псевдокода для C
. Теперь это гораздо более читаемый и проверяемый псевдокод.
Это подводит нас к подведению итогов по основному вопросу:
да, вы должны сосредоточиться на языках, которые вы уже знаете, и расширить свои знания на них - до тех пор, пока они все еще используются для вас. Кроме того , вам следует побаловаться новыми языками, чтобы дать мозгу новые инструменты, чтобы продумать (может быть, даже быстрее) решения для ваших потребностей программирования.
Это зависит от цели, для которой вы изучаете язык. Если вы изучаете язык, потому что он использует другую парадигму или подходит для конкретной проблемной области. Однако, если это язык, очень похожий на тот, который вы уже знаете, и все, что вы планируете сделать, это переписать весь ваш существующий код на этом новом языке, вероятно, не так уж много смысла (например, переписать веб-приложение на Python в рубин) в нем.
Если вы уже чувствуете себя очень комфортно при программировании на языке, знакомы со всеми его идиомами и можете писать программы на нем, не обращаясь к документации по каждому отдельному вызову библиотеки, вероятно, узнать о нем намного больше. Если, с другой стороны, ваше знание языка не такое глубокое, возможно, вам стоит узнать больше. Вот несколько хороших способов определить, находитесь ли вы в первом или последнем лагере для языка X:
Если ваши ответы на эти вопросы примерно такие же, как «много», «большинство из них» и «да, это раздражает», это хороший признак того, что вы освоили язык и должны перейти к чему-то новый.
Если вы уже достаточно хорошо знакомы с языком, который вам знаком, нет смысла изучать очень подробные, специфические трюки для немного крутого ... это будет пустая трата времени. Тем не менее, когда вы чувствуете себя неловко с языком, советуем сначала освоить этот язык.
Помимо языков, есть фреймворки, шаблоны ... чтобы выучить фреймворк, вы должны знать язык, поэтому для очень похожих языков их изучение ничем не поможет, кроме как доставить немного веселья.
Мое личное мнение: вы всегда должны развивать свои возможности, чтобы создавать более быстрое, безопасное и надежное программное обеспечение для большего количества платформ и сокращать время, для этого вам может потребоваться выучить новый язык, новую платформу, новую среду IDE. (это так же важно, как язык), и только тогда, когда вы для этой цели, ваши инвестиции окупаются.
По крайней мере, не изучайте новый язык, чтобы увеличить количество языков, которые вы знаете.