Какая разница в многолетнем опыте разработчика с языком? [закрыто]

9

Как указано в названии, какова разница в многолетнем опыте работы с данным языком с точки зрения разработчиков? Например, если у одного разработчика было пять лет работы с языком A, а у другого разработчика было два года работы с языком B, а затем три года работы с языком A, будет ли между ними заметная разница?

rjzii
источник

Ответы:

26

"это зависит"

Опыт <> знания или понимания.

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

Программист 2 может быть тем, кто понимает понятия независимо от языка, который они используют. Или кто-то, кто нашел язык B слишком сложным и надеется, что A легче.

Кодинг ужасов "Годы опыта мифа" стоит прочитать

ГБН
источник
6
Как говорится, у вашего разработчика может быть пятилетний опыт работы с языком А - или он может иметь годичный опыт, повторенный пять раз.
Carson63000
1
+1 за правду - я работал с новыми сотрудниками с опытом работы более 8 лет, которые в лучшем случае оказались средними. И наоборот, мы только что наняли парня на год обучения в университете, и он превзошел все ожидания.
Дамовиза
4

Это зависит.

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

Разные языки позволяют делать разные вещи. Одно из написанных мной сочинений Пола Грэхема называется « Обыгрывание средних ». В нем он пытается убедить людей учиться шутить, но он также делает несколько очень полезных замечаний:

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

И фактически, наш гипотетический программист Blub не использовал бы ни один из них. Конечно, он не будет программировать на машинном языке. Вот для чего нужны компиляторы. А что касается Кобола, он не знает, как с этим можно что-либо сделать. У него даже нет x (особенность Blub на ваш выбор).

Пока наш гипотетический программист Blub смотрит на энергетический континуум, он знает, что смотрит вниз. Языки менее мощные, чем Blub, очевидно, менее мощные, потому что им не хватает некоторых функций, к которым он привык. Но когда наш гипотетический программист Blub смотрит в другом направлении, вверх по силовой среде, он не понимает, что смотрит вверх. То, что он видит, это просто странные языки. Вероятно, он считает их примерно равными по силе Блюбу, но с учетом всего этого и другого волосатого материала. Blub достаточно хорош для него, потому что он думает в Blub.

Однако, когда мы переключаемся на точку зрения программиста, использующего любой из языков выше энергетического континуума, мы обнаруживаем, что он в свою очередь смотрит на Блуба свысока. Как вы можете сделать что-нибудь в Blub? У этого даже нет y.

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

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

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

Моя самая большая трудность в выборе нового языка была связана с попыткой перейти с C # на Erlang, потому что он представлял не только новый синтаксис, но и новый способ мышления о программировании.

Уотсон
источник
5
Предполагая, что разработчик компетентен.
2010 года
2
@gbn: я могу абсолютно заверить вас, что в моем случае вы не можете сделать такое предположение :)
Watson
2

Вот что я ожидал / надеюсь:

  1. Свободное владение - они должны быть в состоянии писать больше кода с головой и меньше времени на поиск синтаксиса.
  2. Знайте разницу между предыдущей и текущей версиями и как переносить код из одной в другую.
  3. Иметь более полное представление о компиляции, распространении, тестировании и создании обновлений и исправлений.
  4. Создание / включение надстроек в IDE и повышение их эффективности.
JeffO
источник
2

Языки не проблема. Вы можете выучить весь язык за пару дней. Что требует больше времени для освоения, так это соглашения, API и различные сторонние платформы. Когда люди просят пять лет X, они не заботятся о языке, они хотят, чтобы у кого-то был большой опыт решения проблем на этом и с этим языком, чтобы им не приходилось платить ни за какую кривую обучения.

Джереми
источник
Вы можете выучить весь язык быстро, но если есть какие-то понятия, которые вы не знаете, это займет время. Не все языки имеют одинаковые понятия.
Дэвид Торнли
2

Экспертиза и обдуманная практика.

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

Если вы не пытаетесь улучшить, вы можете быть новичком навсегда!

После десяти тысяч часов осознанной практики вы достигнете опыта. (Этот вывод из образования / обучения по всей сети.)

Если ваш программист А не практиковал сознательно, они никогда не поправляются.

Если ваш программист Б не занимался умышленно, им никогда не станет лучше.

Еще одно открытие из того же исследования: если у меня 15000 часов, а у вас 10000, и я продолжаю практиковаться, и вы тоже, вы никогда не будете лучше меня.

Знание двух языков, вероятно, сделает B лучшим программистом (при условии соблюдения правил практики).

Тим Виллискрофт
источник
1

И вы используете их для языка А, я полагаю? (Понятно, что будет разница в языке B.)

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

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

Дэвид Торнли
источник
1

Я бы согласился, что язык есть язык, а понятия есть понятия.

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

По личному опыту я знаю, что многие люди были соблазнены непростой средой разработки Microsoft. Неверно, что они помещают текстовое поле на экран, затем устанавливают свойства с помощью мастера и перетаскивают данные из изображения базы данных, но действительно ли они являются программистами на каком-либо языке, если все, что они делают, - это устанавливают базовые тесты на равенство?

Эти люди никогда не смогут взять изученные ими Концепции и применить их к другому языку.

Когда я интервьюирую людей, меня больше интересует, как они делали свою разработку и какие фреймворки они использовали. Мне нравится задавать вопросы типа «Как вы пишете обработчик событий?», «Как именно вы помещаете данные в БД?» Или даже «Как сделать эту кнопку пурпурной, когда я нажимаю на нее?» это быстро отсеет дизайнеров и оставит программистов. Я обнаружил, что 3 или 4 года на самом деле программирования с год на моем языке выбора достаточно для того, что мне нужно.

Просто другое мнение,

Tal

Тэл Кэмерон МакМэхон
источник
1

«Многолетний опыт работы с языком / платформой X» - это во многом патология найма ...

Он открыт для интерпретации и не так полезен, как кажется на первый взгляд. Как уже было сказано, «Мифы о многолетнем опыте» хорошо читаются.

Кроме того, очень важно, что измерение самого «многолетнего опыта» может быть очень неточным. Вот пример из моего нынешнего выступления: моя основная задача - разработка и поддержка веб-приложения на Java. Тем не менее, это работает на стороне сервера, который является MFC / C ++ / SQL Server. Следовательно, я имею дело с кодом C ++ практически ежедневно. НО - этот опыт C ++ является относительно поверхностным и ориентированным на обслуживание, и я больше не пишу большие компоненты или программы с нуля на MFC / C ++ (хотя я привык в предыдущих ролях).

Могу ли я считать эти последние 5 лет как "5 лет опыта в C ++"? Может быть. Возможно, нет. В зависимости от того, как я хочу продать его, чтобы получить определенную роль, я могу легко переиграть его без откровенной лжи, или я могу признать, что на самом деле это не было 5 солидных «лет опыта C ++». :) Я уверен, что множество подобных случаев так же открыты для такого рода проблемы «неточности измерения». Глубина опыта может сильно омрачить качество опыта. Таким образом, «количество времени, проведенного с C ++» само по себе ничего не значит.

Бобби Столы
источник
-1

Да, Программист 1 не имеет синтаксического знания языка B.

Концепции программирования являются концепциями программирования. Язык - это просто синтаксис.

Майкл Райли - AKA Gunny
источник
5
о, так неправильно ...
Хавьер
Право Хавьера, язык - это намного больше, чем синтаксис ... есть соглашения, сторонние библиотеки, API, которые вы изучаете с опытом.
Даниэль С