Кофе-брейк #74. Советы по тому, как разработчику произвести первое впечатление на новой работе. 3 сильно недооцененных навыка в разработке программного обеспечения
Советы по тому, как разработчику произвести первое впечатление на новой работе
Источник: Honeypot
Если вы планируете работать в новой компании, вам стоит позаботиться о том, как произвести наилучшее впечатление на своего менеджера и команду.
Безусловно, не все советы пригодятся вам как новичку, но часть из них точно будет полезна тем, кто окажется в конкурентной среде и захочет почувствовать себя влиятельнее.
Приготовьтесь к трехмесячному процессу построения своей репутации
Думайте о своих первых трех месяцах так, как если бы вы работали над тем, чтобы достичь наилучшей физической формы. Как правило, в краткосрочной перспективе постоянные тренировки будут для вас не слишком приятны, но как только вы получите желаемое тело, все изменится. Чтобы создать хорошую репутацию, нужно время. При условии, что вы будете последовательны, для этого обычно хватает трех месяцев.
1. Получите ясность в отношении ожиданий от вашей работы
Менеджеры, как правило, плохо формулируют ожидания от людей, которые на них работают. Типичный разговор выглядит так:
Вы: "Что вы от меня ждете?"
Менеджер: "Что вы сами от себя ждете?"
Вы: "Я хочу делать работу как можно лучше, но я хотел бы знать, чего вы от меня ждете."
Менеджер: "Я надеюсь, что вы сделаете свою работу как можно лучше!"
Вы: "Хорошо, но что именно это значит?"
Менеджер: "Будьте командным игроком и помогите нам добиться успеха."
Вы: "Как я узнаю, хорошо ли я работаю?"
Менеджер: "Вы будете командным игроком, который поможет нам добиться успеха."
Иными словами, вы вряд ли когда-нибудь получите прямой ответ на простой вопрос о том, что вам нужно делать, чтобы добиться успеха на новой работе.
Чтобы найти бессистемного менеджера, задайте этот вопрос: «Какие три главных вещи я всегда должен делать, чтобы добиться успеха?»
Если ваш менеджер не выпрыгнет с криком из окна при мысли о необходимости общаться, вы должны получить конкретный ответ. После этого ваша миссия проста: всегда делать эти три вещи.
2. Найдите экспертов в своей области и учитесь у них
Когда вы приступаете к новой работе, вы многого не знаете. Чтобы с этим бороться, поищите в своей компании экспертов и спросите, что по их мнению вам следует знать. Найти таких экспертов может быть трудно, поскольку название должности часто не указывает на опыт, но в любом случае поищите их. В противном случае вы рискуете получить неправильные советы от тех, кто не разбирается в вашем вопросе.
3. Меньше критикуйте
У каждой компании есть проблемы, и абсолютно никто не хочет, чтобы новый сотрудник напоминал ему о том, что он из себя представляет. Как правило проблемы, с которыми вы сталкиваетесь, видят и другие люди, и эти они сохраняются по какой-либо причине. Вы можете навлечь на себя настоящие неприятности, предлагая даже самую невинную и благонамеренную критику. Поэтому, как правило, лучше не говорить о том, что по вашему мнению следует улучшить.
4. Слушайте и задавайте вопросы вместо того, чтобы высказывать свое мнение, даже когда его спрашивают
Хотя никто не хочет слышать, как вы что-либо критикуете, они часто спрашивают ваше мнение, просто чтобы узнать вас поближе. Даже если вас наняли исключительно из-за вашего опыта, не делитесь своими взглядами в течение первых трех месяцев. Вместо этого задавайте вопросы в ответ на вопросы:
Они: "Как ты думаешь, это нормальная дата для дедлайна?"
Вы: "А дату дедлайна изменить уже нельзя?"
Они: "Да, они сказали, что это окончательная дата."
Вы: "Они могут уменьшить количество заданий?"
Они: "Не знаю, мы никогда не спрашивали."
Таким образом вы показываете свой уровень знаний, используя метод Сократа, который позволяет вам не заработать катастрофическую репутацию «самоуверенного». Вместо этого у людей сложится впечатление, что вы вдумчивы, любопытны, дипломатичны и ориентированы на решения, даже если вы не предлагаете решения.
5. Всегда будьте спокойны и профессиональны, никогда не расстраивайтесь и не показывайте эмоции
Никогда никому не рассказывайте о том, что вас что-то расстраивает — даже по секрету. Если рассказать о своих разочарованиях хотя бы одному человеку, о вас сложится впечатление, что вы плохо справляетесь со стрессом. Развивайте и создавайте ауру спокойствия, независимо от того, насколько вы злитесь. Независимо от того, насколько неправильно действуют ваши коллеги или насколько несправедливой может быть ситуация, всегда оставайтесь профессионалом.
6. Реагируйте положительно, когда другие относятся к вам отрицательно
Интервьюеры, как правило, показывают лучшую версию себя кандидату, которого они хотят нанять. Из-за этого вы часто не можете понять, есть ли в этом коллективе токсичная атмосфера. Если вы оказались во враждебном окружении, никогда не участвуйте в негативе, а вместо этого компенсируйте его позитивом. Кто бы что ни говорил, в любой ситуации всегда находите светлую сторону и делитесь ею со своими коллегами. Со временем вы не только заработаете репутацию человека, с которым хотят быть рядом, но и сможете изменить атмосферу в коллективе к лучшему.
7. Сотрудничайте правильно — не слишком много и не слишком мало
В каждой компании свои представления о том, что такое сотрудничество. Постарайтесь действовать осторожно и выяснить социальные нормы. Если вы слишком много просите о помощи, люди могут подумать, что вы некомпетентны. Если вы недостаточно просите о помощи, они могут подумать, что вы высокомерны. Может быть сложно определить правильный баланс, особенно в первые три месяца, когда вам нужно будет попросить о помощи, но все же вы хотите показать себя компетентным.
8. Выполняйте свои обязательства несмотря ни на что
В первые три месяца будьте готовы пойти на жертвы, потому что вы никогда не должны пропускать ни одного взятого на себя обязательства. Чтобы заслужить репутацию ответственного и надежного человека, нельзя опаздывать. Если вы знаете, что склонны затягивать с выполнением задач, делайте их сверхурочно. Если у вас проблемы с тем, чтобы приходить на встречи вовремя, всегда подключайтесь к ним на 10 минут раньше. Если вы говорите, что собираетесь что-то сделать, всегда доводите дело до конца.
9. С энтузиазмом относитесь к любой порученной вам задаче, какой бы она ни была
Новые разработчики, приходящие в компанию, обычно не получают самой приятной работы. Вам могут поручить черную, скучную, утомительную или несущественную работу. Вы можете чувствовать, что к вам снисходительны, или что люди не признают вашу истинную ценность, или даже что вы подвергаетесь несправедливому обращению. Отложите все эти чувства в сторону и вместо этого проявите большой энтузиазм по отношению к любой задаче. На самом деле, когда вы впервые присоединитесь к компании, вам не будут поручать самые важные и привлекательные задачи, поэтому терпение — это достоинство.
10. Выполняйте задачи быстро, точно и качественно
Предположите, что все будут судить вас о том, как вы выполняете поставленные задачи — потому что так и будет. Поэтому для создания хорошей репутации вашей целью должны быть скорость, точность и качество:
скорость: вы завершаете свою работу раньше, чем ожидалось;
точность: вы фиксируете каждую деталь;
качество: вы подтверждаете, что ваша работа без дефектов.
Хотя люди склонны судить о вас по этим критериям, вы редко услышите прямую обратную связь по любому из них, но предполагайте, что люди смотрят.
Через три месяца начните отказываться от нерациональных методов
Поздравляю! Вы прошли через три изнурительных месяца. Если вы следовали советам, ваша репутация должна быть отличной. Однако, как и при работе над телом, готовым к пляжному отдыху, после достижения пора избавиться от привычек, которые вы не можете поддерживать в долгосрочной перспективе. Постепенно сокращайте все, что нарушает баланс между работой и личной жизнью.
3 сильно недооцененных навыка в разработке программного обеспечения
Источник: Better Programming
Разработка ПО — это обширная область, которая состоит из нескольких дисциплин. Естественно, что она нуждается в разных наборах навыков в зависимости от конкретной области, в которой вы работаете. Например, хорошие знания UI / UX — отличный бонус, если вы подаете заявку на позицию фронтенд-разработчика, но к бэкенду это не относится.Я часто замечал, что разработчики — особенно новички — склонны сосредотачиваться на технических навыках. Структуры данных, алгоритмы, паттерны проектирования, работа с БД. Список можно продолжать и продолжать.
Однако когда компании нанимают инженеров-программистов, они смотрят не только технические навыки. Вероятно, вы сталкивались со случаями, когда человека с обычными навыками программирования продвигали вместо более технически подкованных коллег. Чаще всего это происходит потому, что технические навыки — это лишь часть работы разработчика ПО. Не менее важны мягкие (гибкие) навыки.
Независимо от того, являетесь ли вы разработчиком, ищущим новую должность, или интервьюером, ищущим идеального кандидата, вы стоит уделить внимание этим трем важным навыкам.
1. Умение упрощать сложные задачи
Часто разработчики в начале карьеры берутся за изучение нескольких языков программирования, фреймворков и модных инструментов. Учитывая множество ресурсов, доступных в интернете, это не такая уж плохая идея. Честно говоря, знание синтаксиса и концепций различных языков открывает больше возможностей для работы. Но здесь есть и обратная сторона медали.
Некоторые программисты проводят слишком много времени в поисках решений — в Google, Stack Overflow или где-то еще. Это научит вас хорошо гуглить ответы, но не научит решать проблемы. Неудивительно, что этим разработчикам не хватает аналитических навыков и стратегического мышления, и это становится препятствием, когда они сталкиваются с незнакомой им проблемой.
По сути, у большинства языков одни и те же базовые концепции. У каждого из них есть псевдоанглийский синтаксис, условные операторы и другие конструкции.
Таким образом, переключение с одного языка на другой не потребует огромных усилий. Кроме того, языки приходят и уходят. Решение проблем — это мета-навык, который вам нужен, и он гораздо важнее, чем наличие в арсенале нескольких языков программирования.
Как начать тренироваться в решении проблем? Один из способов улучшить этот навык — не торопиться писать код, когда у вас есть проблема, которую нужно исправить. Сначала решите проблему на бумаге. Попробуйте разбить ее на более мелкие части. Кроме разработчиков, псевдокод часто используют интервьюеры, когда им нужно оценить кандидатов.
Стоит отметить, что ни один разработчик не может все запомнить. Даже самый опытный специалист время от времени ищет ответы на Stack Overflow или в других руководствах. Но дело в том, что вам нужно понимать, как все работает на самом деле, а не просто учиться копировать и вставлять.
Умение решать сложные проблемы и эффективно их упрощать — очень недооцененный навык. Один из надежных способов развить его — работать над собственными проектами.
Подход, основанный на проектах, учит разбивать проблему на части. Это поможет вам глубже изучить основы разработки, а также даст вам дополнительное преимущество — распознавание закономерностей. Также это научит вас быстро диагностировать проблемы. Вы сможете понимать, что работает, а что нет, как только посмотрите на новую проблему.
Изучение языков программирования для разработчика — то же, что и расширение словарного запаса для писателя. Это достаточно приятно, но не стоит тратить все свое время на запоминание словаря.
Чтобы начать общение, вы должны обладать фундаментальными знаниями. Разработчик, который знает, как решать проблемы, представляет гораздо большую ценность, чем тот, кто просто знает несколько языков.
2. Искусство тестирования и отладки кодовых баз
Многие разработчики ненавидят писать тесты для собственного кода. И у них всегда сложные отношения с тестировщиками программного обеспечения. В результате разработчики часто упускают из виду тестирование. Во многом это связано с тем, что они склонны думать оптимистично, а не реалистично. Поговорите, например, с любым iOS-разработчиком, и я сомневаюсь, что вы услышите упоминание о фреймворке XCTest. Не удивляйтесь, если они его вообще не использовали.
Многие разработчики эмоционально связаны со своим кодом и считают, что в нем нет ошибок. Чаще всего тесты пишут не те, кто пишет код. Тем не менее, тестирование — важный аспект цикла разработки программного обеспечения.
Как разработчику убедить себя писать тесты? Прежде всего, тестирование — это единственный способ доказать, что ваш код работает и ничего не ломает. Еще одно важное преимущество написания тестов заключается в том, что они помогают разработчикам найти недостатки в своем коде и сделать его надежным.
Хорошие навыки тестирования выделяют разработчика. Они помогают вам мыслить критически, выявлять ошибки и улучшать навыки отладки. Это еще один важный навык для вашего скиллсета.
Когда случаются ошибки, на помощь приходит отладка. Отладка — это методологический подход, который лучше осваивать на практике. Помимо устранения ошибок, отладка увеличивает скорость, с которой вы можете читать код и перемещаться по незнакомой базе кода. Оттачивая свои навыки отладки, вы в целом станете лучшим разработчиком.
Как и многие разработчики ПО, интервьюеры также часто не обращают внимание на отладку. Один из способов оценить навыки кандидатов в этой области — предложить гипотетические сценарии. Более того, можно изменить тесты, добавив в них ошибки, и посмотреть, как кандидаты справятся со своими задачами.
Высока вероятность, что разработчики будут тратить больше времени на отладку, чем на написание новых фич. Человек с плохими навыками отладки может потратить много времени и создать узкие места в работе ПО. Поэтому, я не могу не подчеркнуть, насколько важно уметь выполнять отладку и находить разработчиков с такими навыками.
3. Умение эффективно общаться
Разработчик может работать в одной команде с менеджерами проектов и дизайнерами. Возможно, вы даже будете заниматься парным программированием. Поэтому общение — актуальный навык для разработчиков.
Я видел, как много инженеров-программистов сосредоточились исключительно на своих технических навыках, полностью игнорируя язык, на котором мы общаемся каждый день.
Умение общаться устно и письменно очень важно. Проведение презентаций и митингов требует отличных коммуникативных навыков. Эта способность не ограничивается только объяснением своей точки зрения коллегам. Знание, как успокоить других, справляться с конструктивной критикой, разрешать споры, не становясь агрессивными, навыки активного слушания — все это важные составляющие хорошего командного игрока.
Вы можете столкнуться с ситуациями, когда вам придется работать с коллегами над решением общей задачи или объяснять какой-то вопрос человеку без технического образования. Способность объяснить свою работу так, чтобы ее мог понять не профессионал, сделает вас более универсальным и более ценным для вашей компании.
Умение писать — еще один ценный навык, который разработчики слишком часто упускают из виду. Хорошая документация, аргументированные предложения по электронной почте и четко сформулированные проектные предложения — все это зависит от отличных навыков письма.
Разработчики сейчас часто работают удаленно, поэтому письменное общение очень важно для взаимодействия с другими членами команды.
Хорошие навыки письма также улучшают ваши навыки программирования. Осмысленные имена переменных и методов, а также полезные комментарии, которые задают контекст, очень важны для упорядочивания вашей кодовой базы.
Хороший код не всегда самый умный и эффективный. Напротив, хороший код прост, ясен и понятен.
Заключение
Написание кода — это самый важный навык, который следует учитывать даже при приеме на работу. Однако мягкие навыки сильно недооцениваются. Решение проблем, критическое мышление, общение и сотрудничество — все это сегодня играет огромную роль в профессиональной разработке. Работа над мягкими навыками также улучшает ваши навыки разработки ПО, поскольку вы становитесь более чуткими и стремитесь писать код для реальных людей. Что еще более важно, это открывает возможности для дальнейшего развития вашей карьеры.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ