Ответ 1
Вызовите своего предыдущего работодателя и поговорите с тем, кто унаследовал весь ваш старый код. Они расскажут вам, насколько хорош программист.;)
На предыдущем интервью мне задали вопрос: "От 0 до 10, как вы оцениваете себя как программиста?"
Мне было очень сложно ответить, поскольку я не знаю метрики, чтобы оценить, насколько хороши мои навыки. Более того, зная, насколько хорошо вы выполняете, было бы полезно понять, что вам нужно улучшить, чтобы стать лучшим программистом.
Итак, есть ли способ узнать, насколько хорошо вы выполняете свою работу?
Вызовите своего предыдущего работодателя и поговорите с тем, кто унаследовал весь ваш старый код. Они расскажут вам, насколько хорош программист.;)
Это трудный вопрос. С чисто интроспективной точки зрения, я считаю, что одна из лучших показателей "хорошего программиста" такова: насколько вам нравится ваше ремесло? Я встречал много разработчиков, некоторые из них очень хорошие, но я никогда не знал никого, кто был разработчиком 9-5, и управлял чем-то лучшим, чем посредственные результаты.
Конечно, смотреть внутрь - это не лучший способ измерения компетенции. Я должен подумать, что ваши коллеги-программисты смогут дать вам довольно солидный ответ. Там социальный этикет вовлечен в формулировку такого вопроса, но потенциал все еще существует. По моему опыту, те, с кем вы работаете, будут иметь лучшее представление о том, насколько хорошо вы это делаете, хотя бы потому, что это те, кто должен очистить беспорядок, если вы допустили ошибку.: -)
Окончательный лакомый кусочек: программирование - это решение проблемы, чистое и простое. Подумайте о том, как вы приближаетесь к трудным проблемам, которые приходят вам на ум. Во-первых, как вы эмоционально реагируете на сложную задачу? И, во-вторых, как будет выглядеть ваш код? Вы просто взламываете свой путь в джунглях до тех пор, пока не придете к каким-то результатам, или ваш подход методичен, хорошо измерен и (что наиболее важно) сильно исследован? Действительно хорошие программисты - это не те, кто знает все или может реализовать алгоритм Дейкстры на восьми языках холодным, это те, кто часами проливает текстовые книги и неясные блоги, чтобы найти этот крошечный самородок идеи, которая так и происходит чтобы иметь решающее значение для рассматриваемой проблемы. Если у вас есть терпение и страсть, чтобы проложить свой путь через глубокий вызов, а также смирение, чтобы смотреть на других для идей, тогда вы хорошо на пути к этому "10".
10 - Вы не знаете, что ничего не знаете.
9 - Ты просто хвастаешься, и ты, наверное, не так хорош, как считаешь. Даже если вы действительно так хороши, вам не хватает политических навыков, чтобы увидеть, что выберет "9" о вас. Это, или вы очень хорошо известны/поклоняетесь в отрасли (т.е. Вы однажды написали книгу, и у нее есть прозвище "Книга ______" или акроним, который большинство разработчиков сразу узнает), и не боится бросать ваше имя вокруг.
8 - Ты чертовски хорош, и ты это знаешь, но ты достаточно умен, чтобы осознать стигму выбора 9 или 10. Лучше бы это сделать.
7 - Ты очень хорош, но ты знаешь, что тебе есть чему поучиться.
6 - Вы компетентны и многому учитесь, но не очень уверены в своих способностях. Вы уверены, что вы не 7?
5 - Достойный младший разработчик. Вы просто не в школе и достаточно умны, чтобы понять, что вы действительно ничего не знаете о реальном программировании, но знаете, как взломать код.
4 - Посредственный юниор dev. Вы просто не в школе, но ваши основные навыки кодирования оставляют желать лучшего. Вам нелегко было пропустить большинство ваших классов программирования, но по какой-то причине вы решили продолжить карьеру в разработке программного обеспечения. Вы также на самом деле не верите в себя, поэтому почему следователь?
3 или ниже - Если у вас так мало уверенности в возможностях программирования, почему вы обращаетесь к заданиям по программированию?
Итак, "правильный" ответ, вероятно, 5-7, в зависимости от того, на какую работу вы проводите собеседование. У 8 достаточно опыта, чтобы она не задавала этот вопрос.
В этом интервью речь идет не о том, насколько вы хороши как разработчик. Это о том, сколько у вас самосознания и насколько вы оправдываете (для интервьюера) любую фигуру, которую вы выдвинули.
Правильный ответ на этот вопрос во время интервью (в отличие от философского ответа) заключается в том, чтобы выбрать самые сильные области и дать хорошие доказательства того, что вы находитесь в топ-% разработчиков в этих конкретных областях.
Например, вы можете сказать, что при создании надежного программного обеспечения вы находитесь на вершине Y%, потому что это одна из ваших специальностей. Тогда вы можете привести несколько примеров. В качестве альтернативы вы могли бы сказать, что разумным способом оценки навыков развития является то, сколько денег вы зарабатываете.
То, что вы не должны делать, это буквально ответить на вопрос. Это обычно не то, что хочет интервьюер.
Как кто-то, кто соберет потенциальных разработчиков, я бы сказал, что где-то между 6-8 будет самый безопасный ответ на этот вопрос. Я предполагаю, что средний ответ примерно равен 7. Я думаю, что это действительно больше, чтобы отсеять некомпетентных (0-5) или невежественных (9-10). Если вы решите ответить 9+, будьте готовы это доказать.
Если вы действительно хотите серьезно ответить на вопрос для себя, я бы сказал, что Матрица компетенций программиста - отличная отправная точка для такие районы должны включать в себя.
Я знал кого-то, кто использовал этот вопрос интервью в течение многих лет. Он сказал, что лучшие программисты, как правило, оценивают себя примерно в 7 человек. В частности, люди, которые оценили себя в 10 человек, обычно были уверены в своих способностях, потому что никогда не встречали хорошего программиста. Но никогда не встречал одного, с кем бы они когда-либо узнали какие-либо реальные навыки? Есть, конечно, исключения. Но если вы настроились на сообщество, вы, вероятно, узнаете, кто такие исключения.
Это явление, кстати, не ограничивается программированием. Я нашел это в нескольких вещах. Люди, которые самостоятельно оценивают себя 10 из 10, обычно не очень хороши. Люди, которые очень хорошо разбираются в X, хороши, потому что они нашли других людей, которые хорошо разбираются в X, и поэтому собираются сравнивать себя с более сложной группой сверстников и обычно не будут оценивать себя на уровне 10. Я нашел это истинным для значений X, как далеко от игры в настольный теннис или шахматы.
Кажется, что есть три уровня владения языком любого языка программирования:
Я думаю, это приведет вас по шкале от 1 до 10
Стоит отметить, что глубокое знание одного языка может затруднить изучение другого. Потому что, как только вы думаете в терминах языка "А", вы должны переделать свой мозг, чтобы изучить язык "B". Очевидно, что это применимо только при переходе к совершенно другому типу программирования, например. C- > С++, С# → F #, Java → Scala и т.д. Поэтому я не думаю, что он может быть "идеальным программистом" в реферате.
Ваш рейтинг эйлеров проекта может дать представление (а не ваши навыки, но ваша страсть к тому, чтобы не сдаваться до конца):
Один вполне действительный подход к "как бы вы оцениваете себя от 1 до 10?" заключается в том, чтобы указать неотъемлемую проблему с самооценкой. Чтобы обобщить результаты экспериментов в этой увлекательной статье:
Вы можете разумно суммировать это, поскольку 50% самооценок - ложь, а еще 25% ошибочны. Таким образом, вы могли бы попросить интервью беспилотного, если они либо тратят свое время, либо оценивают вас психологически....
Кроме того, зная, насколько хорошо вы выполняете, было бы полезно понять, что вам нужно улучшить, чтобы стать лучшим программистом.
На самом деле знание того, что вам нужно улучшить, важно для понимания того, насколько хорошо вы выполняете. Просто взгляните на людей, с которыми вы работаете или взаимодействуете, и попытайтесь выяснить, что с ними связано, что вы хотели бы видеть себя лучше. Это поможет вам стать лучшим программистом. По мере того как вы расширяетесь, смотрите на другие команды и исходные коды (другие проекты с открытым исходным кодом), чтобы помочь вам улучшить себя дальше.
Я думаю, что лучший способ ответить на вопрос о том, как себя оценивать, - это сказать, что я оцениваю себя в процентах от всех других людей, с которыми я работал.
Короткий ответ: вы измеряете себя против своих сверстников. То есть, возьмите кого-то, кто ничего не знает и не назначит 0, возьмите лучшего программиста, которого вы лично знаете, и назначьте 10 - как вы считаете себя по сравнению с этими двумя людьми? Ближе к лучшему? Это будет 8. Средний? это будет 5.
Просто не отвечайте 0 или 10 и старайтесь быть объективными. Точка вопроса не оценивает вас как программиста, а оценивает ваши навыки при самооценке. Ваше понимание, то есть.
Есть только одна метрика, по которой можно измерить хорошего программиста: LOC/hr. Каждая другая метрика лишняя: p
Если люди жалуются на то, что у вас нет ничего на вашей тарелке, пока несколько ваших программных систем находятся в производстве, это просто означает, что ваши системы были хорошо спроектированы и хорошо закодированы, и, в отличие от других обезьян корпоративного кода, у вас нет 6-месячная очередь проблемных билетов, в которой вы заняты.
Если это так, похлопайте себя по спине. Вы делаете хорошую работу.
Помните, что программное обеспечение не выполняется, пока оно не делает деньги.
Как интервьюер, я задал бы этот вопрос, чтобы увидеть, как электив кандидат выражает себя.
Плюс это показывает, насколько они самокритичны и какие стандарты они устанавливают для себя и своих коллег.
не только он говорит вам, насколько они знают о божественном/плохом программировании, он говорит вам, насколько хорошо они будут взаимодействовать с клиентом для извлечения требований и насколько они хороши для остальных членов команды.
Фактический ранг 0-10 гораздо менее важен.
Я считаю, что важно не оценивать важность знания языка.
Наибольшие навыки, которые может иметь программист, находятся в области решения проблем и дизайна. К тому времени, когда вы приступите к использованию языка, который вы выбрали, он почти просто печатает. (признавая, что одна область, которую вы надеялись использовать для решения проблем и навыков проектирования, находится в макете вашего кода, чтобы решить проблему удобочитаемости и обслуживания)
Таким образом, мера программиста заключается в том, насколько хорошо они могут объединить разный ряд идей или проблем для решения конкретной проблемы. Более умение - это потенциально просто добавление областей знаний, которые можно использовать.
Конечно, ничто из этого не помогает в качестве показателя для определения вашего собственного навыка, но другие уже заявили, что это довольно неплохой вопрос в любом случае.: -)
Если вам нужен звуковой байт для ответа:
Когда я начал профессионально работать, я, вероятно, был 2, теперь я бы сказал, что мне было около 7, но каждый день я работаю, чтобы достичь 10.
Слова в минуту.
По-моему, это сложно (и в контексте интервью даже вопрос UNFAIR)! До сих пор я работал в трех разных компаниях. Каждый раз, когда я встречал очень мало отличных программистов (намного лучше меня), много хороших программистов и нескольких программистов, которые должны измениться к лучшему. Но невозможно поставить их в категории от 0 до 10!
Есть много "аспектов добра", чтобы быть программистом; процесс оценки будет варьироваться в зависимости от того, какой из них вам интересен. Вот несколько идей:
Вы всегда можете конкурировать с другими программистами и видеть, насколько хорошо ваши способности мышления. Вы можете попробовать сайты, такие как www.topcoder.com или www.spoj.pl или wwww.codechef.com они предоставляют вам ряды, и вы можете видеть, насколько хорошо вы это делаете. Однако они чисто проверяют ваши алгоритмические мозги, а не то, как вы кодируете. Если бы меня спросили об этом вопросе, я бы сказал, что я постоянный ученик и верю в то, что вы делаете и исправляете ошибки, я не боюсь самокритиковать свой код, и я не согласен просить других указать мою ошибку, вы может решить, в каком масштабе он сидит.
Определите масштаб 100%.
Определите, что вы остаетесь на отметке 100.0.
Определите позиции других разработчиков и известных личностей ИТ.
Рассчитайте, насколько вы лучше.
Меня спрашивали пару раз. Когда я только что вышел из университета, я сказал 7/8. Теперь, когда я работаю несколько лет, я говорю 4, хотя я думаю, что теперь я бесконечно лучше.
Я не вижу 0-10 в виде графика прямой линии. Я вижу его скорее как экспоненциальный граф. Поэтому я уверен, что все еще говорю 4 из десяти, но я считаю, что я лучше, чем 90% кодеров. Я видел некоторые их работы, и меня это пугает. Я работал над программным обеспечением SSL для банковского программного обеспечения, и страшно, что он действительно работает. Таким образом, есть те 10% кодеров, которые лучше меня, чем я. Я не уверен, смогу ли я когда-нибудь догнать их. Дойти до 4, на мой взгляд, легко. Путь сложнее добраться до 5. От 5 до 6 невероятно страшно.
Великие кодеры, достойные 8, 9 или 10.
Опыт. Чем больше у вас опыта, тем лучше. Вы знаете только, что испытали.
Размер и сложность системы, которую вы разработали (или успешно работали без повреждения).
Довольно ценная дискуссия здесь. Любил. Я, как собеседник, хотел бы дать ответ на этот вопрос следующим образом.
Я хотел бы сначала проанализировать этот вопрос.
Анализ зависит от нескольких вещей, таких как: язык, рамки, характер проблемы, (Я PHP и Wordpress парень так ответ в этом контексте) 1. плагиновая работа, 2. строительство с нуля, 3. Использование api
Мой общий подход был бы (в большинстве случаев) 1. понимать данный (или уже построенный) объем функциональности (относительно текущей постановки задачи) 2. Рассчитывать один из лучших способов решения (есть определенно больше, чем каждый раз каждый раз...) 3. кодирование 4. тестирование в режиме реального времени (для настройки производительности) 5. На начальных этапах любого программиста все четыре этапа являются рекурсивными до получения окончательного решения, но по мере роста опыта 1 2 шага становится рекурсивным.
Способность понимания фундаментальной философии любого языка - это imp. Отдых - это решение проблем.
И в PHP я думаю, что мне 6.5.