Часто можно услышать, что программисты должны выучить много разных языков, чтобы улучшить себя. Я все еще хожу в школу и не имею большого опыта программирования (чуть больше года). Но то, что было благородным намерением улучшить навыки программирования, превратилось в некую ОКР: я чувствую, что не успокоюсь, пока не изучу все относительно известные языки программирования.
И вот вопрос сам по себе: поможет ли вам использование языков программирования polyglot (и я не имею в виду обычное «программист должен знать хотя бы все парадигмы», я имею в виду в действительности все языки, о которых вы обычно слышите)? У кого-нибудь есть подобный опыт? Это помогает с работой / навыками / карьерой? Как часто вы можете применять эти навыки?
programming-languages
learning
skills
Антон Барковский
источник
источник
Ответы:
Что помогает
Это не помогает Хотя, когда вы знаете все парадигмы, вы можете изучать язык в неделю.
Просто лучше потратить неделю на изучение этого языка, когда вам нужен этот язык.
Примечание:
Изучение общих / популярных языков не так полезно, как изучение «всех парадигм». Первое не распространяется на второе. Например, изучение Self невероятно полезно для понимания прототипа ОО. Это не обычный и не популярный язык, но он гораздо полезнее изучения Python, когда вы уже знаете ruby.
Язык дизайна:
Знание большинства языков полезно, если вы пишете / разрабатываете новый язык. Так что для этого есть хороший сценарий использования, но это довольно ниша.
Что я рекомендую вам сделать вместо этого:
Прочитайте код завершения 2 как минимум 3 раза
Языки приходят и уходят влево и вправо в зависимости от того, что «популярно». Технология становится устаревшей через месяцы или годы в зависимости от того, на что похожа технологическая кривая. (Сеть не одобряет технологии каждые 6 месяцев).
Техника программирования и теория информатики всегда остаются неизменными.
источник
Дело не в умении кодировать на множестве языков, а в том, как вы говорите, в парадигмах. Чем больше вариантов вы знаете, тем лучше. Знание нескольких языков, безусловно, помогает, но если вы продолжите изучать одни и те же типы языков, вы быстро попадете в тупик.
Ключ в том, чтобы знать, на каком языке / системе лучше всего реализовать часть вашего проекта. Даже если вы выбрали один основной язык (как и большинство проектов), у вас все равно будут все виды инструментов, сценариев, автоматизации и поддержки сборки, которые необходимо написать. Обычно множество других языков или инструментов лучше, чем ваш основной язык.
Просто чтобы прояснить, я нахожу глупым пытаться выучить все языки, о которых вы на самом деле слышите: их сотни, и часто они - лишь небольшие вариации на других языках.
источник
ИМХО, это не так. Во-первых, потому что вы не можете выучить язык менее чем за год. Написание кода в нем занимает 2 дня, но для написания беглого и правильно сформированного кода для данного языка требуется большой опыт. Почему GC работает так, как работает, где выделять память, какие конструкции быстрее, как правильно объединять строки, какие опасные углы языка и т. Д.
Я пишу ужасный код Java / .NET, будучи разработчиком C ++, так как многие разработчики Java пишут ужасный код C ++.
Лучшее в изучении других языков - это то, что вы изучаете новые парадигмы и, возможно, имеете лучший инструмент для решения конкретной проблемы. Скажем, вам нужно очень быстрое непубличное приложение с графическим интерфейсом, .NET там незаменимо.
Но изучение языка так, что вы не используете структуры в .NET или не пропускаете все объекты в C ++, занимает много времени. Я думаю, что лучше потратить его на изучение принципов дизайна, платформ и вашего языка.
Но это только мое мнение.
источник
Это не практично, чтобы знать их, но может быть очень полезно знать о них. Под этим я подразумеваю, что когда у вас возникает новая проблема, вы можете сказать: «Я смутно помню, что у [другого языка] был превосходный способ решения подобных проблем. Я должен это найти».
источник
Вы бы больше помогли своей карьере, развивая знание предметной области, а затем изучая много языков программирования. Не говоря уже о том, что вам нужно будет изучить дополнительные инструменты, такие как, как использовать профилировщик на вашем языке, то же самое для отладчика, лучший графический интерфейс и как быстро программировать с ним, какие распространенные сторонние библиотеки существуют с компромиссами и языковые специфические идиомы.
Также разумнее научиться делать больше вещей, а не много способов делать то же самое.
источник
Я работал на нескольких системах, где компоненты были написаны на нескольких языках (худший нарушитель потребовал, чтобы я доставил код, написанный на Ada 83, C, Fortran 77, SQL и DCL, тогда как моя последняя работа потребовала, чтобы я поставил код на C ++ и Java ). Так что, да, есть случаи из реальной жизни, когда вам нужно знать несколько языков достаточно хорошо, чтобы быть продуктивными в них (продуктивно! = Опытно; вы не собираетесь быть глубоким экспертом в C ++ и Java и ... если вы не урод)
Кроме того, смысл изучения нескольких языков состоит в том, чтобы помочь отделить концепции от реализации . Для меня ООП не стал иметь смысла, пока я не работал с несколькими OOPL. Кроме того , в какой - то момент в вашей карьере, вы будете иметь , чтобы быстро переключать передачи и начать работать над чем - то совершенно новым и незнакомым; если вы потратите больше времени на то, что вам нужно знать, это облегчит этот переход, когда он произойдет.
источник
Я думаю, вам лучше бы выучить несколько разных языков, а затем хотя бы один из них, прежде чем начинать изучать все возможные языки. Если у вас есть минимальная ширина, глубина становится действительно важной для вашего прогресса в качестве разработчика. Я хотел бы увидеть кого-то с глубиной в одном или двух языках и немного других, чем кто-то со всем. Получение глубины похоже на изучение другой парадигмы, она изменит ваше представление о программировании и откроет двери для действительно сложных захватывающих проектов.
источник
Это как учиться говорить на многих языках. Изучить их все до такой степени, что они полезны, практически невозможно. Придерживайтесь тех, которые вы, вероятно, будете использовать, и вам будет лучше. Вы могли бы достаточно хорошо выучить C ++, C # и Java, но пытаться втиснуть в Perl, Python, VB (не VB.NET), Ruby и JavaScript на профессиональный уровень одновременно просто глупо. В течение дня не хватает часов, чтобы поддерживать свои навыки во всех из них одновременно.
источник