Большинство программистов специализируются на одном стеке, оставляя другие вещи, или они являются экспертами на нескольких языках одновременно? Если это больше, чем один, сколько стандартно?
Под экспертом я подразумеваю больше, чем просто знание синтаксиса языка - эксперт знает достаточно стандартных библиотек, инструментов, сред и синтаксиса, чтобы иметь возможность писать нетривиальные программы без необходимости постоянно искать вещи или читать книги / учебные пособия.
programming-languages
self-improvement
experience
blueberryfields
источник
источник
Ответы:
Основное преимущество знания нескольких языков заключается не в их непосредственном написании. При прочих равных условиях я бы предпочел работать с программистом на C #, который также знает C, Python и Lisp (например), а не с теми, кто когда-либо взламывался только на C #. Дело не в том, что знание большего количества языков лучше, а в том, что возможность думать о проблемах на разных уровнях и с разных точек зрения действительно полезна.
Речь идет не о проверке еще одного языка или о включении его в ваше резюме; вам просто нужно хорошо понять его базовые концепции, чтобы программировать его, чтобы получить максимальную выгоду. Вы не получите этого от базового понимания синтаксиса.
Более прямой ответ - «это зависит».
В более крупных компаниях вы ожидаете / вам разрешено специализироваться, но, как я уже сказал выше, я считаю, что понимание вещей, помимо вашего единственного любимого инструмента, все же приносит пользу.
В меньших местах вы действительно не можете сойти с рук. Если ничего другого, вам, как правило, нужно поддерживать свое приложение, а также создавать его, и вы, вероятно, не сможете использовать те же языки для работы с журналами / манипулированием данными, что и для создания своего приложения. Я думаю, что вы могли бы технически избежать знания одного языка, но выгода от наличия хорошо работающего, строго типизированного (или, по крайней мере, поддерживающего утверждения), вероятно, скомпилированного языка делает тяжелую работу и язык сценариев для обслуживания / Задачи установки / создания сценариев кажутся довольно большими. Я бы не хотел обойтись без этого, конечно.
источник
У вас очень интересный вопрос:
Я не думаю, что любой программист должен быть «экспертом» по конкретному языку. Я верю в то, что как программисты мы должны быть экспертами в программировании, разработке алгоритмов, мыслить чётко, но язык программирования - это то, что вы только изучаете.
«Хороший» программист, под хорошим я имею в виду, что он занимается проектами разработки, не обращая внимания на классическое «я никогда не работал с этим раньше», должен выучить язык менее чем за 5 рабочих дней. Вы изучаете лучшие практики, инструменты и библиотеки в основном из двух способов: 1: чтение и 2: работа. Либо вы отскакиваете головой от кода, либо читаете кучу книг.
Через несколько лет после того, как «хорошие программисты пишут просто код» без кода C #, C ++ или Java, вы поймете, что после того, как вы научитесь разрабатывать программы, язык и технологии не так уж важны. Конечно, вы будете знать, как перемещаться по C # лучше, чем PHP, но если вы хорошо выучите, вы найдете, как пройти через Python, если потребуется.
Надеюсь, мои идеи, как вы!
источник
Один, но это не значит, что вы можете пренебречь другими. Вы должны знать достаточно, чтобы обосновать, почему вы не используете их или знать свои ограничения, чтобы вы могли обратиться за помощью в случае необходимости.
источник
Я думаю, что это, вероятно, зависит от вашей личности, есть люди, которые любят копаться в укромных уголках темы, и есть другие, которые любят получать широкий взгляд на вещи. Вам, вероятно, нужно будет выяснить, какой вы тип личности. Я не ставлю одно над другим, у каждого есть свое применение.
Как первый, вы будете экспертом, гуру, специалистом. Как последнее, вы будете иметь более общее использование и, возможно, использоваться в различных ситуациях, но, возможно, не будете углубляться в предмет.
источник
Один. Но тебе лучше быть чертовски хорошим в этом.
источник
Один
Тот, что перед вами.
источник
Как сказал Джоэл в подкасте SO, лучше знать много языков и знать, как и когда использовать правильный язык для задачи. Есть вещи, которые вы можете сделать намного быстрее на одном языке, чем на другом. Я думаю, что было бы хорошо знать императивный язык и функциональный язык, например. Много раз изучение более сложного или более эзотерического языка тренирует ваш мозг для того, чтобы стать лучшим программистом в целом.
источник
Нет, поскольку есть некоторые программисты, которые не будут экспертами ни в одном языке, но им нравится разнообразная среда, в которой они находятся, и они будут использовать разные языки в зависимости от обстоятельств, поскольку некоторые могут знать несколько серверных технологий, таких как PHP, ASP.Net в C # .Net, или VB.Net, или Java, пара скриптовых языков на стороне клиента, таких как JavaScript или Flash, и это без использования какого-либо оборудования, используемого здесь для размещения веб-контента.
В то же время, могут быть некоторые программисты, которые являются экспертами в дюжине языков или более, поскольку именно это они изучают с большой долей вероятности большую часть времени, чтобы не отставать от всего на каждом языке.
источник
Один, но должен уметь читать нетривиальные программы реального мира, которые время от времени пишутся на нескольких других языках. В некотором смысле, тот, в котором программист является экспертом, похож на их родной язык, они думают на этом, но изучение и говорение на других языках очень хорошо, поскольку это показывает, что программист может ценить другие способы мышления. Если они могут говорить на нескольких языках так же свободно, как и на своем родном языке, это потрясающе.
источник
Это хороший вопрос, но я не думаю, что есть стандарт. Обычно, как я видел, люди полностью разбираются в одном языке высокого уровня (C ++, Java и т. Д.) В одной среде (windows / linux, mac, solaris). Они примерно знают другой язык высокого уровня, но не до конца понимают его. (например, C ++, Java люди знают друг друга примерно). Примерно я имею в виду, что они могут сравнивать выполнение одной задачи на языке, на котором они являются экспертами, и на другом языке. И затем они умеренные в некоторых скриптовых языках. (Например, люди Linux знают bash, люди Windows знают VBA, люди Интернета знают PHP).
Для меня важен базовый алгоритм знания, а не язык. Если ваши основы хороши, есть меньше шансов испортить на любом языке.
Но да, иногда полезно знать, какой язык лучше подходит для какой задачи. например, следующий код намного быстрее в паскале, чем в C.
strcat (А, "Привет"); strcat (A, "WOrld"); strcat (A, "Я говорю привет!");
Это потому, что Паскаль сохраняет длину строки в первом месте и, следовательно, легко перейти к последнему месту. В Си конец строки равен '\ 0', и, следовательно, вам фактически придется пройти всю строку для операции strcat.
источник
Это зависит от среды, в которой вы программируете. На предыдущей работе большая часть моей работы была в Perl; во время моего пребывания там я довольно опытный в этом. Сейчас я работаю в месте, где есть устаревшие программы на трех языках, синтаксис которых я почти не знаю; Я должен поддерживать их в дополнение к моей работе над новыми проектами. Теперь я меньше владею любым языком, но я думаю, что я лучше чувствую себя в программировании . Я научился мыслить более абстрактно, сначала увидеть общую картину, а затем поискать синтаксис и библиотеки, чтобы заполнить детали.
источник