Только что уволен — как узнать, хороший ли я инженер-программист?

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

Мне было трудно получить эту работу. Я не силен в написании тестов. У меня были они от 9 разных компаний и прошли 3 из них. Готовлюсь к ним регулярно, используя материалы.

Кроме того, в 2016 году у меня была летняя стажировка, которую я пытался преобразовать в работу на полный рабочий день, но они в основном сказали, что оставят меня в качестве стажера, но не хотели нанимать меня на полный рабочий день.

В учебе я был великолепен. Я получил степень магистра компьютерных наук со средним баллом 4.0 по одной из 10 лучших программ компьютерных наук, а бакалавриат закончил со средним баллом по компьютерным наукам со средним баллом 3.70.

Мне нравится быть инженером-программистом, но я чувствую, что нет хорошего способа оценить навыки. Как я могу понять, действительно ли я плох, или мне просто нужно больше тренироваться?

Обновление за два с половиной года: я нашел хорошую работу инженера-программиста и преуспел в ней. Через 2 года я ушел в поисках лучшей работы по разработке программного обеспечения. Я сейчас хорошо разбираюсь в кодировании тестов, но я знаю, что в целом это не значит, хороший ты программист или нет. Как и быть уволенным один раз. Теперь я почти уверен, что меня уволили, потому что они узнали, что я был на рынке труда, и они думали, что это повредит их репутации, если я уйду (у них было несколько высокопоставленных людей, уволившихся за месяцы / годы до того, как я уволился).

Есть много разных инженеров-программистов. Некоторые создают веб-сайты, другие работают со встроенными системами. Вы можете работать непосредственно над продаваемым продуктом или управлять серверными системами, поддерживающими остальную часть бизнеса. Все требуют своих уникальных навыков, и если вы хороши в одном виде работы, это не обязательно означает, что вы преуспеете в других. Соответствовали ли ваши навыки и таланты той работе, которую вы пытались выполнять?
По большей части. Мой опыт программирования был на Java, но компания использует Python. Python не сложный, и я чувствую, что очень быстро его освоил. Хотя, думаю, они бы не согласились...
Насколько большой была организация? Стартапы и небольшие компании, как правило, требуют от своих сотрудников более быстрого обучения.
В компании было чуть менее 100 человек.
Вы работали с другими программистами? На каком уровне и т. д. Если вас сочла неуместной команда, которая знает, что делает и имеет опыт адаптации джуниоров, это не то же самое, что быть уволенным в качестве единственного разработчика в стартапе с совершенно нереалистичными ожиданиями.
Я работал с другими программистами. Менеджмент успешно обучил как минимум трех инженеров от младшего до не младшего, но двое из тех людей, которых они успешно обучили, занимались второй работой в области разработки программного обеспечения. Я приехал прямо из колледжа.
Был ли у них план тренировок для вас? Как вы думаете, насколько хорошо вы встретили его? Просто кажется, что они должны были лучше использовать свое время с точки зрения тренировок, учитывая, что у них был целый год.
@ user70848, у них не было программы обучения. Их «обучение» заключалось в том, что я просто задавал вопросы, когда они у меня были. Я думал, что мое обучение прошло хорошо, и что я узнал то, что мне нужно было знать. Они сообщили мне лишь о легком недовольстве в начале апреля и уволили меня на этой неделе.
@TheComeBackKid, у тебя все получится! Перестань быть таким строгим к себе. Я рад за тебя. Теперь ты наконец-то можешь пойти устроиться на настоящую работу и получить признание. К черту этих идиотов за то, что они уволили тебя. Они не знают, что потеряли.
Как сказал cgTag... - Вопросы: Какова квалификация других людей, сотрудников, руководства, владельцев? Я видел много мест, где вы были бы самым квалифицированным специалистом. Какова скорость оборота? Если вы собираетесь получать чужие повышения, уходите...
@Rob, было несколько других инженеров-программистов, отчитывающихся перед парой менеджеров по разработке программного обеспечения. Другие разработчики имели 1-3 года опыта разработки программного обеспечения, прежде чем присоединиться к компании. Менеджмент имел около 5-6 лет опыта разработки и 4-6 лет управленческого опыта. Оборот довольно низкий. Я не собирался «брать» чье-либо повышение.
@TheComeBackKid - Спасибо за ответ. Если у них есть надлежащие полномочия (а не только приятель босса), то вам может быть полезно пройти «выходное интервью», чтобы точно узнать, почему они «уволили» вас из-за увольнения. Увольнение обычно зарезервировано для того, кто активно этого заслуживает. «Увольнение» почти наверняка повлияет на ваши льготы и будущую работу, в то время как увольнение почти никогда не влияет. Это кажется необъяснимым после недавних хороших отзывов.
@TheComeBackKid, у всех иногда случаются неудачи, и часто первая работа после окончания колледжа не подходит. Если вам нравится то, что вы делаете, и вы понимаете работу, рассмотрите возможность того, что вас уволили не за то, что вы думаете. Если да, то от "практики" будет мало толку. Найдите наставника, который понимает вас и может помочь вам лучше понять, что произошло.
Мне нравится, что вы зарегистрировались под именем @TheComeBackKid, чтобы задать этот вопрос.
Что было такого в университете, что заставило тебя так хорошо учиться? Каким бы ни был ответ, финансируйте работу, как лучшие вещи в университете.
Подумайте о том, чтобы внести свой вклад в какой-нибудь существующий проект свободного программного обеспечения (например, на github ...) в свободное время. Это может быть весело, улучшит ваши навыки и будет хорошо смотреться в резюме, и вы многому научитесь. Читайте также norvig.com/21-days.html
Вы получили две оценки производительности в прошлом году. Я полагаю, что в этих проверках было указано, что вам нужно улучшить, так что вы решили эти проблемы? Конечно, это звучит так, как будто у компании были какие-то проблемы, вы обычно не избавляетесь от сотрудников, что вы также дали положительные отзывы о работе, даже если у них были некоторые шероховатости. Вы четко знаете, как выполнять работу, учитывая, что у вас есть степень магистра в области CS и дополнительная степень в CS (хотя неясно, в какой области вы были), что может объяснить причину, по которой вы так сильно боретесь с «тестами по кодированию».
Вы проводите имитационные технические собеседования с другими соискателями. Вы берете у них интервью. Они берут у вас интервью. Это дает вам хорошее представление о том, насколько хороши другие. Используйте pramp.com. Они предоставляют основу для фиктивных интервью онлайн. И это бесплатно (я никоим образом не связан с этими парнями).
@ Роб, я спросил, почему меня уволили, а не уволили, и они сказали, что увольнение означает, что есть вероятность, что меня вызовут обратно на работу. На этом они оставили свое объяснение. Что, я думаю, означает, что они хотят, чтобы это вошло в историю как моя вина в том, что меня уволили.
@Ramhound, обзоры производительности в прошлом году были положительными и не дали никаких реальных конструктивных отзывов. «У тебя все отлично, продолжай делать то, что делаешь…» У компании не было проблем — они уволили меня из-за того, что они пытались удержать компанию на низком уровне. Кроме того, Ramhound, не могли бы вы объяснить последнее предложение, которое вы написали? Как успехи в программе магистра компьютерных наук приводят к проблемам в тестах по кодированию?
@TheComeBackKid — В Северной Америке: рядом со словом «Уволен» будет указана причина. Требуйте выходного пособия, требуйте пособия по безработице от правительства; они придумают ответ...
Похоже, вас не уволили, но компания не хотела платить вам зарплату. Не потому, что вы были плохи, а потому, что у них не было денег, чтобы нанять больше людей.
То же самое о том, чтобы не принимать это слишком тяжело. Также стоит оглянуться назад на то, что произошло, и спросить себя, были ли какие-то тонкие сигналы, которые вы могли пропустить. Например, ваш менеджер или руководитель группы неоднократно спрашивал, нравится ли вам работа? У вас неоднократно не было нового прогресса, о котором можно было бы сообщить на статусных собраниях? Они несколько раз просили внести одни и те же исправления/изменения? Не предполагая, что что-то из этого действительно произошло, но стоит подумать о том, могли ли быть какие-то сигналы, которые вы пропустили. Потому что это была бы возможность учиться в следующий раз. Вот и все.
Побывав в похожей ситуации, я вернулся к следующему: программирование — это то, чем я занимался ради удовольствия последние 27 лет. Мне это нравится, и это приходит ко мне естественно (конечно, с практикой!). Я программист . Относится ли это к вам, или вы считаете, что должны заставлять себя любить программирование и заниматься им? Напротив, мне приходится заставлять себя писать творчески. Когда я этим занимаюсь, мне это нравится, но я бы никогда не стал заниматься литературным творчеством просто как хобби. Так что я не творческий писатель. Надеюсь это поможет.
Синдром самозванца — актуальная тема, вам стоит почитать о ней.
Спасибо за обновление! Это отличный пример того, почему вы никогда не должны слишком серьезно относиться к мнению других людей о том, что вы можете и не можете делать. Очень рад слышать, что у вас все получилось.

Ответы (10)

Как я могу понять, действительно ли я плох, или мне просто нужно больше тренироваться?

Учитывая ваши положительные результаты на прежней работе и отличные оценки, полученные на протяжении всей академической карьеры, рискну сказать, что вы на самом деле хороший инженер.

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

В связи с этим могу дать вам совет:

  • Не разочаровывайтесь в том, что одна компания уволит вас через год (что является приличным сроком), потому что «они не могут обучить вас необходимым навыкам в установленные сроки» . Многие компании возлагают на своих разработчиков действительно нереально высокие ожидания/временные рамки, и, к сожалению, многие из них видят в нас одноразовых кодовых обезьян , которых они могут просто сжимать до истощения (иногда они не делают этого, потому что они «злые», именно так, как их промышленные и рыночные работы).

    Однако многие другие компании не такие, поэтому нечестно с вашей стороны отказываться от своих надежд из-за этого инцидента.

  • Тем не менее, профессионал никогда не должен прекращать практиковать , даже если он был лучшим. Самые успешные профессионалы и инженеры никогда не перестают учиться. Говоря словами Микеланджело: Ancora imparo . Вот почему я предлагаю вам рассматривать все это как еще одну возможность учиться и расти ; сохраняйте хорошее, помните о плохом (которое как раз и учит нас) и двигайтесь дальше. Там вас ждет много других интересных заданий и вещей, если вы дадите им шанс прийти.

Сказав все это, я думаю, что осталось пожелать удачи, обновить свое резюме, начать поиск работы и быть уверенным в своих навыках. Ваше "возвращение"... ;) ...ждет вас.

Спасибо. Вполне возможно, что их ожидания не оправдались. Я определенно пытаюсь получить другую работу программиста. Может быть, если следующий закончится так же, я пересмотрю.
Да, успокойтесь и не дайте себя подвести ни одной компании.
@TheComeBackKid, не берись за любую работу. Тщательно подбирайте их, чтобы вы больше не испытали такой кисло-сладкий опыт. Я знаю, что искать работу сложно, но настойчивость здесь является ключевым фактором. Рад, что смог помочь.
Это хороший совет. Как узнать, какую работу взять? Есть ли какие-то особые качества, которые, по вашему мнению, мне следует искать?
@TheComeBackKid Боюсь, это та часть, которую вы должны решить сами. Я не могу сказать вам, какую работу выбрать или какие качества вам следует искать, но если вы доверяете своей интуиции и своим Принципам, вы узнаете.

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

Не принимайте это на свой счет. То, что они сделали, было бизнес-решением, ожидаемая окупаемость инвестиций времени, денег и внимания разработчиков была меньше того, что вы могли бы вернуть. Если вы зациклитесь на том, что вас уволили, это поглотит вас на долгие месяцы. Лучшее, что вы можете здесь сделать, — это потратить некоторое время на то, чтобы распаковать и переоценить свой текущий набор навыков, выбрать направление карьеры и отправиться в плавание. Не задерживайтесь в порту, дуясь.

Мне было трудно получить эту работу. Я не силен в написании тестов. У меня были они от 9 разных компаний и прошли 3 из них. Готовлюсь к ним регулярно, используя материалы.

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

Кроме того, в 2016 году у меня была летняя стажировка, которую я пытался преобразовать в работу на полный рабочий день, но они в основном сказали, что оставят меня в качестве стажера, но не хотели нанимать меня на полный рабочий день.

Возможно, это возможность спросить, нанимают ли они. Теперь у вас за плечами годовой опыт и лучший набор навыков, чем в колледже. Может быть, это был бы хороший вариант спросить, так как они знали вас раньше.

В учебе я был великолепен. Я получил степень магистра компьютерных наук со средним баллом 4.0 по одной из 10 лучших программ компьютерных наук, а бакалавриат закончил со средним баллом по компьютерным наукам со средним баллом 3.70.

Я могу вспомнить, что после вашей первой работы средний балл не имеет большого значения. Но я могу ошибаться; не забудьте включить эту информацию в свое резюме и рассказать об этом во время собеседования.

Мне нравится быть инженером-программистом, но я чувствую, что нет хорошего способа оценить навыки. Как я могу понять, действительно ли я плох, или мне просто нужно больше тренироваться?

Я согласен, что нет надежного способа измерить мастерство, учитывая, что проблемы, с которыми вы сталкиваетесь, никогда не бывают одними и теми же, определение того, «лучше» вы или «хуже», приведет вас в кроличью нору самоанализа . сомнения и паралич. До вашей следующей постоянной работы, возможно, стоит рассмотреть контрактные должности? Таким образом, вы можете практиковаться и получать деньги за небольшие проекты.

Спасибо за подробности. Я рад, что есть свидетельства того, что я не единственный, кто безуспешно претендует на сотни вакансий. Я проверю внештатный материал.
Есть несколько довольно надежных способов измерения навыков. Например, можно сравнить время, затрачиваемое разработчиками на решение проблемы на ( projecteuler.net ) или ( leetcode.com ), или их способность решить проблему вообще.
Решение заранее определенной головоломки или проблемы — это одно измерение, но оно не охватывает всего, что является частью повседневных инструментов разработчика. Другими словами, работа — это нечто большее, чем навыки программирования, навыки межличностного общения также необходимы. В современную эпоху никто не кодирует в одиночку, о чем свидетельствуют stackoverflow и github.

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

Когда вы говорите: «Я плохо разбираюсь в тестах», вы имеете в виду, что во время собеседования вам сложно писать рабочий код? Если это так, то вам придется практиковаться, чтобы быть конкурентоспособным на рынке труда. Я постоянно провожу собеседования с кандидатами, и никого не возьмут на работу, если он не продемонстрирует способность программировать во время собеседования. Так что либо начните личный проект по программированию в интересующей вас области, либо, может быть, выберите новый язык и поработайте над проблемами, подобными тем, что были в Project Euler .

Большинство тестов по кодированию, которые я прошел (2 из 3), я проходил во время собеседования. Это те, которые находятся на hackerrank, которые я склонен терпеть неудачу. Например, один, с которым я недавно столкнулся, назывался «Круг друзей» ( leetcode.com/problems/friend-circles/description ). У меня было около 2 часов, чтобы закончить его на моем ноутбуке.
@TheComeBackKid Теперь вы знаете, над чем работать: другие проблемы с того же сайта. Может быть, получить копию «Введение в алгоритмы» Кормена и работать над этим.

Тот факт, что вас уволили, не означает, что вы плохой инженер. Это означает, что вы не подходили для той роли, в которой вы были.

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

Удачи.

Это даже не означает однозначно, что он не подходил. У большинства компаний, которые я когда-либо видел, где-то в книгах есть поддельные и случайные HR-материалы. Некоторые компании и начальники - более капризны, чем другие. Они кажутся несколько случайно распределенными, но между ними существует корреляция.

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

Многие компании (обычно средние и мелкие) не нанимают новых выпускников только потому, что они не могут обеспечить правильную среду/правильные задачи. Вообще говоря, компания должна быть выше определенного размера и иметь определенный уровень зрелости, чтобы иметь новых выпускников. Таким образом, особенно если компания была на меньшем уровне и/или у них не было много новых выпускников, проблема могла быть на стороне компании, а не на вашей стороне.

Конечно, я не знаю, так ли это, но не стоит сомневаться в своих способностях на основании одного примера. Я видел, как МНОГИЕ замечательные люди были уволены по той или иной причине. Многие увольнения происходят не из-за проблем со способностями.

Вы задаете неправильный вопрос. Кем ты хочешь быть?

Побывав в похожей ситуации, я вернулся к следующему: программирование — это то, чем я занимался ради удовольствия последние 27 лет. Мне это нравится, и это приходит ко мне естественно (конечно, с практикой!). Я программист . Относится ли это к вам, или вы считаете, что вам нужно заставлять себя любить программирование и заниматься им регулярно? Напротив, мне приходится заставлять себя писать творчески. Когда я это делаю, мне это нравится, и я думаю, что у меня есть к этому способности, но я бы никогда не стал заниматься литературным творчеством просто как хобби. Я просто не писатель. Поэтому я думаю, что это вопрос номер один, и вам нужно взглянуть на свою личную историю, а не на свои эмоции, чтобы ответить на него. То, что вы делаете, демонстрирует то, что вы любите, гораздо лучше, чем то, что вы чувствуете .

Вы будете усерднее работать над тем, что хотите, и будете тяготеть к своим навыкам.

Большинство людей не работают так усердно над тем, чего они не хотят в глубине души. Они не так быстро учатся и не так быстро растут. А если что-то дается им особенно тяжело, они часто и над этим не работают (за исключениями, конечно!). И наоборот, если вы действительно любите программирование (опять же, основываясь на своей истории, а не на своих эмоциях прямо сейчас, которые, по понятным причинам, будут немного беспорядочными), вы, естественно, будете усердно работать над этим и расти, и тем более, если вы иметь природный талант разработчика. Так что, если вы годами занимаетесь программированием ради удовольствия и не бросаете это занятие, я бы сказал, что у вас есть 100% фундамента, необходимого для того, чтобы стать хорошим программистом. После этого нужно просто попрактиковаться и научиться вписываться в корпоративную машину,

Куда пойти отсюда

То же самое о том, чтобы не принимать это слишком тяжело. Убедитесь, что вы не корите себя за это. Это случается со многими из нас в какой-то момент нашей карьеры, и это не конец света. Есть следующая работа после предыдущей. Сказав это, каждый плохой опыт в жизни — это возможность, из которой мы можем извлечь уроки. Так что стоит оглянуться назад на то, что произошло, и спросить, чему вы можете научиться из этого. Спросите себя, были ли какие-то тонкие признаки того, что они недовольны вашим выступлением, которые вы могли пропустить. Иногда менеджеры не умеют общаться или сообщают о недовольстве пассивно-агрессивно способами, которые очень легко не заметить. Ваш менеджер или руководитель группы неоднократно спрашивал, нравится ли вам работа? У вас неоднократно не было нового прогресса, о котором можно было бы сообщить на статусных собраниях? Они несколько раз просили внести одни и те же исправления/изменения? Я не предполагаю, что что-то из этого произошло, но стоит подумать о том, могли ли быть какие-то сигналы, которые вы пропустили. Потому что это была бы возможность учиться в следующий раз. И наоборот, не пропустили ли вы какие-нибудь красные флажки, говорящие о том, что это токсичная среда или что у вас был плохой менеджер? Вы пропустили какие-нибудь тревожные сигналы о том, что у компании финансовые проблемы или грядут увольнения? Развитие повышенного самосознания и осведомленности о вашем корпоративном окружении — очень ценный вывод из такого болезненного опыта. Но, в конце концов, 1) выясните, что вы но стоит подумать о том, могли ли быть какие-то сигналы, которые вы пропустили. Потому что это была бы возможность учиться в следующий раз. И наоборот, не пропустили ли вы какие-нибудь красные флажки, говорящие о том, что это токсичная среда или что у вас был плохой менеджер? Вы пропустили какие-нибудь тревожные сигналы о том, что у компании финансовые проблемы или грядут увольнения? Развитие повышенного самосознания и осведомленности о вашем корпоративном окружении — очень ценный вывод из такого болезненного опыта. Но, в конце концов, 1) выясните, что вы но стоит подумать о том, могли ли быть какие-то сигналы, которые вы пропустили. Потому что это была бы возможность учиться в следующий раз. И наоборот, не пропустили ли вы какие-нибудь красные флажки, говорящие о том, что это токсичная среда или что у вас был плохой менеджер? Вы пропустили какие-нибудь тревожные сигналы о том, что у компании финансовые проблемы или грядут увольнения? Развитие повышенного самосознания и осведомленности о вашем корпоративном окружении — очень ценный вывод из такого болезненного опыта. Но, в конце концов, 1) выясните, что вы вы пропустили какие-либо красные флажки, что это токсичная среда или что у вас был плохой менеджер? Вы пропустили какие-нибудь тревожные сигналы о том, что у компании финансовые проблемы или грядут увольнения? Развитие повышенного самосознания и осведомленности о вашем корпоративном окружении — очень ценный вывод из такого болезненного опыта. Но, в конце концов, 1) выясните, что вы вы пропустили какие-либо красные флажки, что это токсичная среда или что у вас был плохой менеджер? Вы пропустили какие-нибудь тревожные сигналы о том, что у компании финансовые проблемы или грядут увольнения? Развитие повышенного самосознания и осведомленности о вашем корпоративном окружении — очень ценный вывод из такого болезненного опыта. Но, в конце концов, 1) выясните, что выхотите быть (из вашей личной истории), 2) отряхнуться и снова встать на лошадь или двигаться дальше, если программирование не для вас, и 3) поразмышлять и узнать все, что можно извлечь из этого опыта.

Хорошо, вас уволили по соображениям производительности. Если вы находитесь в США, подавали ли вы заявление на пособие по безработице? Имейте в виду, что если вы не были уволены по уважительной причине (т. е. из-за физической ссоры, сексуальных домогательств и т. д.), вы все равно можете получать пособие по безработице. Большинство компаний, в которых я работал, увольняли меня по соображениям производительности, то есть после пары лет хороших отзывов о производительности. Даже если в письме, которое они вам дали, сказано, что вы уволены, если вы получаете пособие по безработице, это было увольнение.

Первый раз был для меня сюрпризом, и я тоже тяжело переживал, В следующий раз уже не сюрприз. Часто это был новый менеджер, который убирал дом, чтобы установить свои любимые устройства. Моя цель - пережить увольнение.

Ваша реакция очень типична для очень компетентных людей, это синдром самозванца .

Теперь начните искать новую работу. Ожидайте, что это займет у вас около 4 месяцев. Тратьте 5 часов в день на поиск работы. Обычно я стараюсь найти 10 подходящих вакансий, на которые можно подать заявление, и 5 работ, которые меня растягивают в день. Помните, они просят Бога, но примут Христа.

Найдите проект с открытым исходным кодом, чтобы присоединиться и работать над ним. Работайте над этим от 2 до 4 часов в день. Бонусные баллы, если проект, над которым вы работаете, спонсируется компанией, в которой вы хотите работать.

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

Серьезно, не обращайте слишком много внимания на метрики, числа Норриса, строки кода... Работайте над тем, чтобы быть командным игроком и мотивировать себя учиться тому, что вам нужно научиться делать.

Наконец, найдите хобби, чтобы перезарядить аккумулятор, так сказать. Все, что вы делаете с удовольствием.

Удачи.

1) Как узнать, хороший ли ты инженер? Что ж, эта часть довольно проста. На самом деле не существует такого понятия, как «плохой инженер»; ты либо инженер, либо нет. Как только вы определили, что вы инженер, разница между «хорошим» и «плохим» заключается в развитии навыков, а это приобретаемый навык (это означает, что если вы сейчас «плохой» инженер, вы можете научиться быть «хорошим»). "инженер с опытом). Учитывая контекст этого вопроса, я предполагаю, что вы инженер, так что все остальное - это просто практика и обучение.

2) Школа на самом деле ничего не доказывает. У меня лично есть степень бакалавра и магистра компьютерных наук в одной из лучших школ моей страны. У меня есть работа инженером-программистом. Знаете ли вы, сколько вещей, которые я выучил в школе, я использую на регулярной основе? Почти ноль. Так что, если честно, ваше образование и ваш средний балл, вероятно, более полезны как абстрактная мера вашего учебного потенциала, чем как мера ваших конкретных навыков. Поэтому, хотя я бы не сказал, что высокий средний балл коррелирует с тем, чтобы быть «хорошим» инженером, он также не коррелирует с тем, чтобы быть «плохим» инженером. С чем это коррелирует, так это с вашей способностью превратиться из «плохого» инженера в «хорошего» инженера. В результате я бы не

3) Что касается ваших навыков собеседования, то большая их часть приходит с практикой. Предположительно, вы прошли курс «Алгоритмы и структуры данных» в школе, и, поскольку у вас высокий средний балл, я полагаю, вы очень хорошо с ним справились. Чтобы стать «хорошим» в решении задач на собеседовании, вы должны вспомнить (или переучить) материал из этого класса, потому что на большинство вопросов, которые вам будут задавать, можно будет ответить из этого материала. После этого только практика. Первые несколько раз вы потерпите неудачу, но потом вы привыкнете видеть то, что они хотят, и вы начнете снова и снова сталкиваться с одними и теми же проблемами и станете лучше справляться с ними. Это просто практика. Тем не менее, практика заключается в том, чтобы отвечать на вопросы в среде типа интервью; прохождение вопросов по чему-то вроде HackerRank или тому, что имеет ограниченную ценность; вы будете практиковать определенные навыки/алгоритмы, но если они не те, о которых спрашивает интервьюер, то это не имеет значения. Что лучше, так это научиться придумывать хорошие ответы на лету; ни один интервьюер не захочет задавать вопрос, на который вы уже знаете ответ, они хотят увидеть, как вы на лету придумываете ответы на вопросы, которые не знали заранее.

@JoeStrazzere Я имею в виду, что «плохой инженер» - это просто хороший инженер, который не знает, как делать что-то правильно. Никто по своей сути не является «плохим инженером» в абстрактном смысле; кого-то, кого можно считать «плохим инженером», можно научить быть «хорошим инженером», изучив хорошие инженерные методы / принципы.
@JoeStrazzere Как я уже сказал в своем ответе: я думаю (мое мнение), что средний балл ОП является хорошим показателем того факта, что ОП хочет и может научиться быть хорошим инженером.
@JoeStrazzere Хотите предложить правку? ;)

Программное обеспечение — это не то, что вы практикуете, например, репетиции перед музыкальным концертом. Это то, что вы просто делаете. У вас есть немного кода, который нужно написать для удовлетворения конкретной потребности. Вы продолжаете цепляться за него, пока он не заработает. В конце концов, вы, вероятно, чему-то научились. Затем вы переходите к следующей работе в списке.

Со временем вы становитесь лучше в этом. Пока система, с которой вы привыкли работать, не устарела, и вы не перешли на что-то новое. Затем он возвращается к работе, пока вам не удастся снова заставить его работать.

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

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

Я не уверен, почему вы думаете, что программирование — это не то, что нужно практиковать. Вот что такое «выйти и сделать», и с точки зрения требуемого времени это очень похоже на музыкальную практику, но для другой деятельности. Выпускник CS, который никогда не занимался внеклассным программированием, как правило, гораздо менее искусен, чем выпускники, которые проводили свое свободное время, работая над личными программными проектами.
См. norvig.com/21-days.html контраргументы к утверждению, что «программное обеспечение — это не то, чем вы занимаетесь» .
@BasileStarynkevitch Спасибо, что поделились этим. Очень информативно. Мне особенно понравилась эта цитата: «Максимальный уровень производительности для людей в данной области не достигается автоматически в результате длительного опыта, но уровень производительности может быть увеличен даже очень опытными людьми в результате преднамеренных усилий по улучшению». ."
Развивать что-то, сталкиваться с препятствиями и преодолевать их, думать о проблемах и находить разные подходы к их решению, обсуждать и делиться идеями с другими и т. д. Все это практика. Быть разработчиком буквально означает постоянно практиковаться.

Я собираюсь сосредоточить свой ответ на последней части здесь, поскольку она связана с тем, о чем я думал в течение нескольких лет:

Мне нравится быть инженером-программистом, но я чувствую, что нет хорошего способа оценить навыки. Как я могу понять, действительно ли я плох, или мне просто нужно больше тренироваться?

Шкала числа Норриса — это метрика, по которой люди и организации могут оценивать себя.

Числа Норриса начинаются с 20 и увеличиваются на кратные 10. Они связаны с более глубоким пониманием фундаментальной конструкции и структуры любого данного программного приложения.

Для целей этого ответа число Норриса — это измерение строк кода приложения за вычетом библиотек, которые человек может писать и поддерживать самостоятельно.

Все начинают в 20 Норрис. Большинство формальных программистов довольно быстро переходят на 200 Norris. Программы 200 Norris обычно представляют собой быстрые и грязные сценарии, которые делают что-то важное, но делают только одну вещь. Такие программы «собраны вместе», что означает, что им, как правило, не хватает надлежащего форматирования кода и проверки ошибок, особенно от новых программистов. Многие программисты переходят на 2000 Norris, когда начинают создавать более крупные программы/скрипты.

Увеличить количество Норрисов с 2000 до 20 000 вне командной среды намного сложнее. В этот момент вы должны создавать серьезное приложение. В 20 000 Norris открывается много дверей (например, крупные проекты с открытым исходным кодом). Преодолеть от 20 000 до 200 000 Norris на индивидуальном уровне довольно сложно, поскольку существует не так много программных приложений, созданных одним человеком с более чем 200 000 строк кода приложения . Как правило, это слишком много для одного человека, чтобы разумно и активно поддерживать его.

Norris также указывает уровень комфорта. В какой момент можно написать приложение «во сне»? То есть количество умственных усилий, необходимых для перехода от идеи к развертыванию. Тех, кто получает степень CS, как правило, 200, реже 2000 Норрисов. Очень редко можно найти 20 000 разработчиков Norris сразу после колледжа. Такие разработчики обычно начинают писать программы задолго до поступления в вуз и считают диплом очень дорогой бумажкой.

Организационный номер Норриса аналогичен, но представляет собой среднее количество строк кода приложения на приложение, охватывающее всю организацию. В большинстве организаций 2000 или 20000 Норрисов. Малые предприятия с ИТ-отделом, разрабатывающим крошечные сценарии для организации, обычно не превышают 200 Norris. У организации также может быть 2000 Norris в среднем, но может быть одно или два приложения 20000 Norris, скрывающиеся внутри, которые немного увеличивают среднее значение, но недостаточно, чтобы довести его до 20000 Norris.

Если в организации 2000 Норри, а в отдельном человеке едва ли 200 Норри, человеку будет трудно не отставать (т. е. будет сложно удержаться на плаву). Если организация состоит из 20 000 Норрисов или нанимает по заявке на 20 000 Норрисов, а человек — из 200 Норрисов, человека, вероятно, не возьмут на работу, если он не солжет, но в любом случае человек не протянет больше нескольких недель. Если у организации 200 Норрисов, а у отдельного человека 2000 Норрисов, человеку, скорее всего, будет скучно, и ему будет трудно сохранять интерес к новым проектам (т. е. отсутствие проблем). Кроме того, человек с 20 000 норм Норриса будет регулярно обнаруживать, что общаться с кем-то с 20, 200 и даже 2000 норм Норриса неудобно или сложно. Человек с более низким числом Норриса просто выиграл. t понимает цель определенных решений и может попытаться «рефакторить код» или назвать сотрудника 20 000 Norris «плохим разработчиком программного обеспечения». По моему опыту, единственный «плохой» разработчик программного обеспечения — это человек, который (непреднамеренно) пишет код с уязвимостями безопасности, а затем участвует в активном отрицании, когда на уязвимости указывают коллеги.

Только Norris Number может, если все стороны правдивы, определить, следует ли нанимать (или даже увольнять) человека. Отдельный разработчик также может перерасти организацию или наоборот. Если полагаться на честную метрику Норриса, можно пропустить тест на кодирование во время собеседования, который действительно может измерить только до 200 Норрисов за время, отведенное для среднего интервью. Norris Number может быть действительно хорошим фильтром для системы поиска работы для разработчиков программного обеспечения, и я сильно подозреваю, что в других отраслях есть аналогичные показатели, которые они могли бы использовать аналогичным образом.

Вместо того , чтобы решать проблемы , которые, как правило, сосредоточены на алгоритмическом дизайне, сосредоточьтесь на проектах . Какие проекты вам интересны? Создайте список и начните строить ЭТИ проекты в свободное время. Весь смысл разработки программного обеспечения заключается в том, чтобы создавать то, что интересно ВАМ. Программное обеспечение — это форма искусства, наполненная элегантностью и красотой. Да, вы тоже можете получать за это деньги, но если вы еще не занимаетесь любимым делом помимо официальной работы, вам следует начать это делать. Иначе вы проработаете 40 с лишним лет, а ваша жизнь будет пустой и лишенной каких-либо личных достижений.

Вы, кажется, ужасно очарованы числом Норриса — чем-то, что, по словам Джона Кука (который написал об этом в блоге), описывается как «Это должно быть юмористическим, а не научным». SLOC имеет значительное количество недостатков , которые делают его плохой метрикой для единственной оценки навыков разработчика. На мой взгляд, любой процесс найма (или увольнения), в котором использовалось бы только это, был бы катастрофическим.
Я не согласен. В отличие от строгого измерения SLOC, Norris является масштабируемой метрикой. И по моему опыту, в отличие от SLOC, это было правдой. Когда разработчик сталкивается с каждой стеной Norris, ему приходится переосмысливать свою стратегию разработки программного обеспечения, если он хочет продолжать работать. Нет прямой корреляции между измерением SLOC и Норрисом. Я также очень четко заявляю, что код приложения — это единственная часть Norris. Библиотеки исключены . Когда кто-то пишет приложение из 500 строк, использующее миллионы строк библиотечного кода (даже если библиотеки написаны им самим), это все равно приложение из 200 строк Norris.
Я также сказал, что «если все стороны будут правдивы об этом», можно будет использовать исключительно Норриса. Каждый всегда показывает себя в интервью с лучшей стороны (и интервьюер, и интервьюируемый). Так что реальность, очевидно, будет выглядеть иначе. ОП хотел знать, были ли они хорошими или плохими разработчиками. Я предоставил ответ, который дает им инструмент расчета, который они могут использовать для себя (и любой организации, в которой они, возможно, захотят работать). Ни один из других ответов здесь даже не пытался это сделать. Да, я немного очарован, но это не заслуживает отрицательного голоса.
Я никогда ничего не говорил о правдивости или нет - во всяком случае, я оценивал это по факту. Я также ничего не говорил о библиотеках или нет — они также не учитывались бы в KPI SLOC. И содержание других ответов не имеет отношения к моей оценке вашей - я проголосовал против, потому что это дерьмовая метрика (и вдвойне, если используется изолированно), все недостатки SLOC применимы и к Норрису.