Как строится работа программиста
Достижения во всех областях не были бы возможны без мощного развития вычислительной техники. Целые армии электронщиков и программистов изо дня в день работают над дальнейшим усовершенствованием компьютеров, улучшая уже привычные их функции и внедряя и распространяя совсем новые.
Сфера применения компьютеров значительно расширяется. Это требует все большего объема работ по программированию. В результате расходы на него достигают более 90% от общей стоимости вычислительной техники – и доля их продолжает расти, а профессия программиста в наши дни стала одной из самых популярных.
Какими же качествами нужно обладать, чтобы стать признанным профессионалом в этой сфере? Чему научат в вузах? Что придется осваивать самостоятельно?
Часто приходится слышать, что человек, увлекающийся компьютерами, прочитав несколько книг, посвященных вопросам программирования, успешно пишет несколько программ на одном-двух языках. После чего считает себя профессионалом в этой сфере и недоумевает: чему же еще его могут научить?
Где и чему учат
Остановимся на специальности «Прикладная математика», так как она дает общие теоретические принципы программирования, обширную математическую базу для решения поставленных задач, а другие специальности все-таки готовят специалистов по их автоматизации. После окончания института студент получает квалификацию «инженер-математик». Студенты изучают практически все распространенные языки программирования (высокого и низкого уровня), уделяют внимание специальным языкам (предназначенным для решения узкопрофильных задач), а также знакомятся с пакетами готовых программ, которые в дальнейшем могут использовать в своих разработках (графические системы, СУБД, САПР и т. д.). Изучение этих предметов вырабатывает системное мышление, позволяет оценить проблему в комплексе – и подобрать наилучший вариант ее решения, применяя все полученные навыки.
Этапы работы
1. Любой процесс программирования начинается с постановки задачи.
Хорошо, когда программист – работник крупной фирмы или член группы разработчиков, таких же профессионалов, как он сам, а задачу перед ним ставит его коллега. Они будут разговаривать на одном языке и достаточно быстро поймут друг друга. Но если с заказчиком придется общаться самостоятельно, то надо приготовиться к длительной работе. Клиент чаще всего не в состоянии внятно объяснить, чего он хочет от новой программы, что должно в ней быть и как этому следует выглядеть на экране и в печатном документе. Наоборот, очевидное для заказчика программисту даже в голову не приходит. Так что на этом этапе последнему приходится выступать в какой-то степени в роли психолога, так как надо прояснить все непонятные вопросы, а потребитель, для которого они уже ясны, просто не считает нужным на них останавливаться – и раздражается, когда снова и снова уточняются непонятные формулировки. Кроме того, если люди друг друга поняли неправильно, вся остальная работа будет просто впустую затраченным временем. Этап завершается составлением технического задания, в котором максимально подробно описывается вся дальнейшая работа программиста.
В рамках этого этапа программисту часто приходится быстро освоить предметную область, о которой он раньше в лучшем случае только слышал. Сегодня надо рисовать географические карты, завтра придется моделировать биологические процессы, послезавтра – автоматизировать бухгалтерию и т. д. Да, узкопрофильными задачами чаще занимаются выпускники соответствующих вузов, в которых сейчас почти во всех есть специальность по информационным системам и автоматизации для конкретной области. Но неизвестно, где придется дальше работать. Поэтому человек, готовящийся стать программистом, должен уметь быстро находить необходимую для себя информацию в книгах.
Тут важно, чтобы не получилось как в известной шутке:

2. Далее следует определить, какая техника понадобится для автоматизации поставленной задачи.
Возможно, что мощности оборудования, имеющегося в распоряжении заказчика, не хватит для нормальной работы программы. Тогда надо дать рекомендации о закупке новых компьютеров с требуемыми характеристиками. Для чего, даже если вы уже давно закончили учебу, вам обязательно быть в курсе всего происходящего в области компьютерной техники, которая обновляется со скоростью, не виданной в других областях. Таким образом, непрерывное самообразование опять выходит на первый план.
3. Все вопросы прояснены – можно приступать, собственно, к написанию программы.
Этот процесс требует смирения и предельной точности. Команды компьютера формулируются абсолютно полно и четко. Машины могут делать только то, что им сказано, и потому выдаваемые им приказы не должны содержать ни малейшей двусмысленности. Поэтому этот этап начинается с разработки алгоритма, где излагается вся последовательность действий машины. При этом хорошенько продумайте все возможные варианты развития событий, опишите все возникающие ситуации: для этого и была предварительно внимательно изучена предметная область. Чем полнее алгоритм отслеживает стандартные и нестандартные ситуации, тем лучше будет работать программа в дальнейшем – и не зависать при каждом «удобном» (непредусмотренном) случае.

Не говоря о стандартных математических методах, для рационального написания алгоритма надо применить все свои навыки логического мышления, которое вырабатывается за годы решения математических задач. Почему все? Ведь вы не просто лично решаете задачу, а планируете такую последовательность команд, которая позволит компьютеру самому искать решение в каждом конкретном случае.
На этом же этапе программист определяется и с языком программирования, если это уже не сделано до него. Разные языки приспособлены для решения разных задач и при этом имеют свои достоинства и недостатки. Получив в процессе учебы представление о них, специалист должен выбрать оптимальный вариант как для себя лично, так и для других (программу, возможно, придется изменять и дорабатывать другому человеку) – а также не забыть о возможностях техники.
4. После написания программы начинается, как ни странно, самый трудоемкий этап – ее отладка.
В 90% случаев программа сработает не так, как задумывалось изначально. Обязательно найдется что-то непредусмотренное ситуация – и чтобы понять, в чем дело, приходится, задавая различные исходные условия, проходить все этапы шаг за шагом десятки раз, выявляя в лучшем случае непредвиденные ситуации, а в худшем – неправильное решение задачи. Человек, занимающийся такой работой, должен обладать завидной усидчивостью, терпением, спокойствием. Если этих качеств у вас нет, подумайте, стоит ли вам браться за программирование. Ведь вам будет очень сложно доводить дело до конца. Или вы остановитесь в своей профессиональной деятельности на маленьких задачках, заниматься которыми, конечно, тоже нужно – однако они не дадут интереса для ума и не принесут большой материальной отдачи.
5. Пусть все шаги успешно сделаны – останется последний: объяснить заказчику, что написанная программа – как раз то, что тот хотел.
В лучшем случае, если вы справились с постановкой задачи и на всех этапах работы контактировали с заказчиком (или постановщиком задачи), замечаний будет немного. Маленькие доработки – и программа готова.
В худшем… Придется привлечь все свои спокойствие и терпение и, набравшись горького опыта, начать сначала. При условии, если с вами захотят иметь дела.
Так что если вы решили, что программирование – это дело вашей жизни, то вас ждут МИРЭА, МГИЭМ и другие вузы. Но не забывайте, что высокооплачиваемым профессионалом вы сможете сделать себя только сами и учиться придется всю оставшуюся жизнь (или по крайней мере до пенсии).
20 советов для будущих программистов, которые ищут свою первую работу в IT: как получать удовольствие от собеседований

Процесс прохождения первых собеседований на позицию джуниор-разработчика — один из самых нервных периодов в жизни практически каждого программиста. Рассказываем, как вести себя на первых собеседованиях, чтобы получить работу и не потерять огромное количество нервов и времени.
Это адаптированный перевод статьи «20 Do’s and Don’ts for Software Engineering Interviews», повествование ведется от лица автора оригинала.
Недавно я провела несколько недель в поисках работы разработчиком ПО. Сейчас могу сказать, что это был интересный опыт и я узнала много нового. Мне удалось получить три оффера лишь за три недели, не говоря уже о других привлекательных возможностях, которые мне повстречались на пути. А еще я познакомилась с очень приятными людьми.
Я благодарна за весь этот позитивный опыт.
Вот несколько советов, которые я могу теперь дать другим соискателям. Они все про софт-скиллы, потому что вы и без меня знаете, как штурмовать LeetCode.
Конечно, на рынке огромное количество сильных инженеров. Но даже если вы — самый одаренный претендент на должность, наверняка вам есть над чем поработать в плане софт-скиллов. Я хочу дать вам советы, которые позволят успешнее пройти первые собеседования.
Уверенно говорите о прошлом опыте
У вас необычная трудовая для кандидата в программисты? Как и у меня! Вообще, первую вышку я получила в области бизнеса, а еще я работала в здравоохранении, и в администрации, сразу после колледжа. Из-за этого мне казалось, что я чем-то хуже других программистов, которые пишут код с детства. Но это не так.
В мире полно успешных инженеров, которые попали в IT окольным путем. И вообще — гуманитариям все очень рады. Мне несколько раз говорили на собеседованиях, что они фанатеют от свитчеров, поскольку те обладают прекрасным видением бизнес-процессов, и это не говоря о талантах в области разработки.
Самое важное — это без стыда говорить о своем прошлом, быть способным описать его четко и быстро, за несколько минут.
Порепетируйте этот навык:
- Расскажите о своем прошлом и том, как вы попали в IT.
- После этого сделайте переход к последнему опыту работы (даже если речь идет о вашем личном проекте).
- В конце расскажите, почему вы теперь ищете новую работу.
Конечно, репетировать такое очень неловко, но не беспокойтесь. Немного практики, и от смущения не останется и следа.
После рассказа о своем бэкграунде и предыдущем опыте немного расскажите, почему вы откликнулись именно на эту должность или как выбрали именно эту компанию, и почему именно этот выбор — подходящий для вашего набора навыков. Вот две самые главные вещи о вашем прошлом: будьте честны и оставайтесь собой
Даже если о чем-то из прошлого говорить неловко, никогда не лгите. Всегда честно отвечайте на вопрос: более того, тренируйтесь отвечать на такие вопросы, которые вызывают у вас дискомфорт. И помните — это совершенно нормально, когда ваш опыт отличается от опыта других кандидатов.
Какая была бы скукотища, если бы все люди имели одинаковый опыт! К тому же, честный рассказ о себе с большой вероятностью расположит к вам интервьюера. И помните: то, что отличает вас от других кандидатов, может оказаться вашим преимуществом.
Расставьте приоритеты
Еще до начала поиска работы я бы посоветовала подумать, что для вас важно в будущей работе. Здесь нет правильных или неправильных ответов — это вопрос о том, что вы любите и что наполняет вашу жизнь смыслом.
Может быть вы хотите работать в по-настоящему разношерстной команде? Или надеетесь на переквалификацию внутри компании? Например, в сторону менеджмента? А что у вас с балансом между работой и личной жизнью? Или вдруг вас это не интересует, главное — зарплата побольше?
Конечно, никто не требует от вас дать все ответы разом. Более того, я не советую отшивать все вакансии, которые не соответствуют вашим пожеланиям. И все же эта информация бесценна, ведь вы будете ей руководствоваться, когда придет время принять окончательное решение.
В качестве примера, вот несколько приоритетов, которые я отметила для себя:
- Сравнительно низкий показатель оттока клиентов среди инженеров
- Присутствие женщин на руководящих постах
- Фуллстек с фокусом на бэке
- Баланс между работой и личной жизнью
- Атмосфера поддержки и наставничество как одна из целей компании.
Проведите собственное исследование
Пока ищете работу, не забывайте изучать компании и проверять, соответствуют ли они вашим приоритетам. Придется задавать вопросы.
Например, вам может быть интересно, сколько обычно платят сотруднику на должности, на которую вы откликаетесь. Надолго ли сотрудники задерживаются в компании? Я бы еще спросила, как у сотрудников с отдыхом на рабочем месте.
В общем, я настоятельно рекомендую задавать эти и другие вопросы на собеседованиях. А также искать информацию по знакомым или пробивать компанию на этих сайтах:
- Glassdoor
Посмотрите, сколько сейчас людей с LinkedIn работает на компанию. Как давно они там работают? А есть среди сотрудников какое-то разнообразие? Ну а зарплаты с Glassdoor соответствуют вашим ожиданиям? Еще полно чатов в Slack, которые объединяют соискателей из разных социальных групп.
Конечно, ваше маленькое исследование не сможет дать ответы на все вопросы, но дополнительная информация никогда не помешает. Так что делайте заметки, задавайте вопросы и перечитайте свои записи, когда придет время выбирать оффер.
Сохраняйте на будущее текст вакансий
Часто люди сохраняют ссылку на вакансию после того, как откликнулись на нее. Я настоятельно рекомендую пойти дальше и скопировать весь текст страницы. Иногда вакансии удаляют с сайта. Так что если захочется посмотреть, на какую работу вас в итоге позвали, вы не сможете этого сделать.
Для сохранения вакансий подойдет простая таблица, но мне понравилось использовать Huntr.co. Было легко организовать все свои отклики вне зависимости от того, на каком этапе поиска работы я находилась.
Делайте заметки для каждого отклика
Это обязательный пункт. Делайте заметки для каждого собеседования. В конце каждого разговора выписывайте ключевые факты. Да, обычно кажется, что вы и так все запомните, но это только кажется.
Ну и разумеется, перечитывайте свои записи перед каждым следующим разговором с представителем этой компании. Вы будете уверенно себя чувствовать во время разговора и вполне вероятно произведете хорошее впечатление на интервьюера. Ведь не так много кандидатов в точности помнят детали прошлого разговора.
Запоминайте имена и произносите их!
Когда я говорю «запоминайте», я имею ввиду «делайте записи». Это все те же заметки для собеседований из предыдущего пункта.
Пока вы проходите через разные этапы собеседования, вы по факту говорите с участниками одной и той же команды. Если вы упомянете предыдущего интервьюера по имени («Да, Кирилл обсуждала это со мной»), это даст понять, что вы — внимательный человек, и легко впишетесь в команду. Да и согласитесь, фраза «тот парень, не помню, как его зовут» звучит совсем не очень.
Как только вы познакомились с новым человеком, запишите его имя и все детали, связанные с вашим разговором. Пригодится!
Искренне поблагодарите собеседника
Не поленитесь искренне поблагодарить каждого из собеседующих. Помните о том, что они потратили время в надежде сделать вас частью своей команды. Возможно, вы благодарите будущего коллегу или даже босса! Так что проявите немного манер перед тем, как закончить собеседование.
Задавайте вопросы
Всегда задавайте вопросы, абсолютно на всех этапах собеседования. Когда говорите за жизнь, можете поинтересоваться составом отдела разработки, их стеком, стилем менеджмента, и так далее.
И на техническом интервью вопросы очень важны. Потратьте время, чтобы прояснить детали задачи:
- Какие пограничные случаи следует учесть?
- А мы можем рассчитывать, что входные данные будут валидны?
- Объем входных данных будет большим?
Перед тем, как броситься на задачу, убедитесь, что все поняли. Так вы продемонстрируете собеседнику, что вы — внимательный и собранный программист. А еще сэкономите время на выборе неверного, но привычного алгоритма решения.
Ну и напоследок, не забывайте задавать вопросы о самом собеседовании. Если вам назначили собес, но вы ничего не знаете о формате встречи, просто спросите! Это нормально, рассказывать кандидату о том, ждет ли его техническое собеседование и о том, кто именно будет его собеседовать.
Если у вас есть такая возможность, посмотрите профиль вашего будущего собеседника в LinkedIn. Может, найдется какой-нибудь ледокол — например, общий знакомый.
Доверьтесь своим знакомствам
Напишите бывшим или нынешним коллегам, одноклассникам, — сообщите о том, что ищете новую работу. Может, на каком-нибудь митапе человек обмолвится, что ему не хватает специалиста в команду. Может, знакомый вашего знакомого сможет сходить к кадровикам в своей компании и спросить по поводу открытых вакансий.
С таким подходом вы пропустите скрининг и пообщаетесь с людьми из индустрии напрямую. А даже если ничего не выйдет, вы обсудите интересную для обоих тему особенностей найма в конкретной организации. Никогда не знаешь, куда тебя могут привести такие беседы. А потому не стесняйтесь их организовывать!
Только не забудьте при случае отплатить услугой за услугу.
Давайте обратную связь
После собеседования вас могут попросить об обратной связи. Это может быть автоматизированный опрос, типа сервиса Greenhouse, или личное письмо от рекрутера. Понятное дело, что сервисы собирают анонимный фидбек, а рекрутеры — нет.
Я советую давать честный ответ, если это возможно. Если вы собираетесь критиковать, обязательно включите в сообщение и что-нибудь позитивное. Помните, вам ни к чему сжигать мосты в отношениях с компанией или кем-то из ее представителей.
Да и потом, обратная связь нужна компаниям чтобы улучшить процесс найма для будущих соискателей. Кто знает, может быть вы — тот самый будущий соискатель?
Как участвовать в Open Source проектах Хекслета: На Хекслете есть множество Open Source проектов разной сложности — нам всегда нужна помощь разработчиков для развития этих сервисов.
Вот мы и обсудили о том, что я бы посоветовала делать на собеседованиях. Поговорим теперь о том, чего делать не стоит.
Не ждите от себя совершенства, особенно на техническом собеседовании
Я выбрала этот совет первым в списке, потому что для меня это — самый главный вывод, который я получила за три недели поиска работы. Я вдруг поняла, что собеседования всегда сопряжены с высоким уровнем стресса, поэтому выступать не на высоте — это нормально.
К тому же скорее всего человек, который проводит собеседование, не профи в найме. Может, он сидел себе спокойно да писал код, когда его вдруг дернули и посадили перед вами. Так что, вероятно, вы оба далеки от совершенства. Ну и ладно! Проявляйте доброту, оставайтесь спокойными, старайтесь изо всех сил и общайтесь с предельной ясностью.
И помните: у вас все равно есть шанс на оффер, даже если вы:
- Не успели решить задачу
- Завалили какой-то тест
- Попросили подсказку
Потратьте лишнее время на то, чтобы уточнить несколько моментов по задаче. Узнайте про пограничные случаи и делайте заметки. Если вы с терпением и внимательностью подойдете к задаче, это выделит вас среди множества других кандидатов.
В большинстве случаев никто не требует от вас совершенства. От вас требуется лишь показать, как вы подходите к решению проблем. Когда я это осознала, то мне стало намного проще проходить технические собеседования.
Если собеседование прошло не блестяще, это не повод себя накручивать
Не сдавайтесь и не ведите себя так, как будто все потеряно, если вдруг собеседование пошло не по плану. Работодатель оценивает в том числе то, как вы реагируете на неудачи.
Интервьюеру важно видеть, что вы не раскисаете, как только обстановка накаляется, и способны оставаться хладнокровными. Поэтому демонстрируйте позитивное отношение к ситуации от начала до конца, даже если собеседование проходит не очень. Ведите себя как человек, с которым вам самому было бы приятно работать.
Не бойтесь говорить о своих достижениях
Другими словами, не преуменьшайте свои победы. Я помню, как на одном собеседовании мне совсем не хотелось говорить о достижениях, которые я описала в резюме. Я решила, что они там все сами уже прочитали, незачем повторяться — только решат, что я хвастаюсь. Оглядываясь назад, я понимаю, какая это была ошибка!
Надо сказать, что большая часть моих собеседников никогда не читала моё резюме. А даже если и читали, то вряд ли что-то запомнили. Ну и потом, цель собеседования — дать возможность кандидату показать, как хорошо он подходит для работы.
Вот и показывайте! Смело говорите о своих достижениях. А если интервьюер уже знает о чем-то из вашего резюме, он просто вас остановит.
Не проходите больше одного собеседования в день
Теперь, когда многие собеседования проводятся онлайн, возникает соблазн назначить больше одного созвона в день. Даже если собеседования длятся по четыре часа, можно успеть впихнуть два в один день. Но я не советую так делать. Я предпочитаю оставлять между собеседованиями один день отдыха.
Помните, что даже в онлайн-разговоре вам придется часами отвечать на вопросы, решать задания и вообще всячески демонстрировать свой талант. Перегрузите себя — и возникает реальный риск провалить следующее собеседование.
Не забывайте отдыхать
Поиск работы — это, конечно, увлекательно, но выгорание тут — реальный риск. Спите достаточно, пейте много воды. Упражняйтесь или гуляйте каждый день. Иначе вряд ли вам получится проявить себя на собеседованиях, да и ресурсы организма не резиновые.
Не стесняйтесь просить о дополнительном времени
Как я уже говорила, забота о себе — ваш приоритет при поиске работы. И в то же время, некоторые (не все!) компании стремятся протащить кандидата через все собеседования как можно быстрее, чтобы вы не успели рассмотреть другие офферы.
Не бойтесь сказать о том, что вам нужно больше времени на техническое задание, или что вы не сможете появиться на собеседовании до определенной даты. Пусть люди уважают ваше время и расписание на всех этапах найма.
А еще просите дополнительное время для выполнения технического задания в тех случаях, если вам предлагают использовать малознакомую технологию. В резюме ведь написано, что вы с этой технологией не знакомы, так что попросить чуть больше времени — это нормально.
Не сжигайте мосты
Постарайтесь отнестись с уважением ко всем, с кем будете разговаривать. Никогда не знаешь, когда ваши дорожки снова пересекутся — может, знакомство окажется полезным?
А если вы решили отказаться от работы с какой-то компанией, сделайте это вежливо. Не надо игнорить! Скажите об отказе прямо, а еще упомяните, что хотели бы оставаться на связи и не против пообщаться в будущем. Поблагодарите за потраченное время. И если для отказа есть веская причина, можете предоставить обратную связь. Говорите честно, но проявляйте чувство такта.
Не кладите все яйца в одну корзину
В какой-то момент вы решите, что будете работать с компанией А, поэтому можно отказаться от компании Б. Не спешите! Пока не подписали трудовой договор, не отказывайте другим компаниям. Никогда не знаешь, что готовит будущее.
Например, я хотела работать удаленно, но у нанимателя не было договора для жителей моего штата. Эта маленькая деталь ускользнула от внимания HR. Наниматель не собирается делать лишнюю бумажную работу. А мне что делать? Возвращаться к охоте за вакансиями.
Не стесняйтесь напоминать о себе
Если со времени последнего собеседования прошло несколько рабочих дней, но с вами так и не связались, не стесняйтесь напоминать о себе. Вполне вероятно что ваш наниматель просто закрутился, или что новое собеседование с вами все еще в списке дел.
А даже если компания решила отказаться от вашей кандидатуры, лучше узнать об этом как можно раньше, чтобы направить силы на новую вакансию.
Не принимайте отказы близко к сердцу
Вам будут отказывать. Ожидайте отказов, они в порядке вещей! Не принимайте это как что-то личное. Ведь может случиться так, что вас не возьмут на одну должность в этой компании, зато предложат другую, в этой же компании. Ну и потом, а вдруг вы не подходите им сейчас, но будете подходить через несколько лет?
В любом случае, рынок сейчас просто дымится, вы обязательно что-нибудь подберете.
Помните о том, что ваш интервьюер может слишком сильно фокусироваться на технологиях, с которыми у вас мало опыта, и игнорировать технологии, в которых вы чувствуете себя уверенно. А может у них под рукой уже есть идеальный человек на эту вакансию? Поэтому нет смысла сочинять в голове причины отказа: как было на самом деле, мы никогда не узнаем.
Запоминайте обратную связь, какой бы она ни была, и подумайте, как учесть полученный опыт на следующем интервью. Не зацикливайтесь на отказах!
И все же наступят времена, когда поиск работы станет негативно влиять на ваше душевное здоровье. Поэтому обращайтесь за поддержкой к друзьям и семье, наставникам. А также помните о том, что вы имеете значение. И что вам не может подходить любая вакансия на рынке, и что это нормально.
Подводя итог
Удачи в охоте за оффером! Помните, что вас оценивают не только по техническим навыкам. Покажите, что вы — разумный и приятный человек, развивайте эти качества в себе.
Все, что я тут описала, основано на моем личном опыте. А опыт, как вы понимаете, разнится от человека к человеку. Каков ваш опыт? Расскажите в комментариях!
Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях
Как программисту вести себя на новом месте работы
Как вести себя на новой работе так, чтобы не вызвать ненависть коллег? Записано со слов руководителей отделов, тимлидов, ведущих разработчиков.
Сразу скажу, что в этот раз мы не будем разбирать ошибки верстки и программирования. На эту тему можно почитать другие статьи:
Я хочу поговорить именно о поведении в новой компании, в новой обстановке. Опросив нескольких руководителей и ведущих разработчиков, я составила список рекомендаций, которые пригодятся каждому разработчику при смене места работы.
О каких правилах стоит знать заранее, чтобы не доставлять неудобства новым коллегам и начать работать эффективно с первого дня?
Совет №1. Не осуждайте
Часто, приходя в новую компанию, разработчик презрительно относится к существующей кодовой базе. Ему бросаются в глаза неэлегантные решения, устаревшие технологии, костыли. Не стоит сразу предлагать все удалить и написать заново. Вполне вероятно, что вы не видите картины целиком. Ваши новые коллеги — неглупые ребята. Для каждого решения есть свои причины. Лучше спросите, почему так, а не иначе?
Совет №2. Роль — Проповедник
Вы много читаете, следите за развитием отрасли, пробуете все новинки. Вы пользуетесь только самыми продвинутыми инструментами. И вы готовы часами рассказывать, почему нужно пользоваться только этим, а вот то уже устарело.
Как только вы откроете рот, чтобы вступить в спор о технологиях, остановитесь. Сделайте глубокий вдох и успокойтесь. Ваши новые коллеги тоже следят за новинками отрасли. А попытка убедить их пользоваться тем, что нравится вам, не приведет ни к чему хорошему. В лучше случае, вы останетесь при своих мнениях. В худшем — вы испортите отношение к себе.
Совет №3. Игры в молчанку
Как мы уже поняли из первого совета, сложно увидеть всю картину целиком, только придя в компанию. Продукт разрабатывался долгое время многими разработчиками (только если это не стартап). Многое будет вам непонятно и не очевидно. Самый плохой в этой ситуации сценарий — это замкнуться в себе и пытаться разобраться самостоятельно.
Многие молодые разработчики бояться показаться неопытными, непрофессиональными или не хотят быть осмеяны новыми коллегами. Поверьте, все это надуманные страхи. Абсолютно все в команде готовы к тому, что новый человек будет задавать много вопросов.
Гораздо хуже будет если вы сразу приступите к выполнению задач, не поняв их до конца. И в итоге сделаете неправильно. И вам все равно придется начать задавать вопросы. Но вы потратите время впустую.
Лайфхак: получая новый таск, прочитайте его внимательно, представьте как будете решать его. Запишите на бумаге свои рассуждения и шаги решения, а также выпишите все вопросы, которые у вас возникли. Подойдите к тимлиду, старшему коллеге или наставнику и попросите уделить вам 10 минут его времени. Проговорите весь процесс решения задачи и задайте свои вопросы.
Это отличный способ получить недостающую информацию, проверить правильность своих рассуждений и уменьшить вероятность ошибки.
Совет №4. Не игнорируйте правила
В самом начале вам должны дать некие своды правил, принятых в компании. Сюда входят стайлгайды, код-стайлы, описания технологий, инструментов и рабочей среды. Также это могут быть дресс-код (не дай Бог), правила о защите данных, распорядки работы и прочее, прочее, прочее. Чем крупнее и старше компания, тем больше набралось правил.
Обязательно прочитайте их все. По возможности запомните или держите под рукой. Тут все как в уголовном кодексе: незнание не освобождает от ответственности.
И если неправильное имя класса или табы вместо пробелов не повлекут за собой ничего, кроме комментария при код-ревью, то нарушения правил безопасности могут обернуться серьезными последствиями.
Если вам не дали никаких документов, то обязательно уточните этот момент у руководителя. Возможно, единого документа еще не сформировано (никто не любит писать документацию). В этом случае попросите рассказать на словах, как все устроено в компании.
Совет №5. Изучайте обстановку
Обязательно изучите продукт, которым вы будете заниматься. Недостаточно будет просто открыть сайт, посмотреть на него и закрыть. Просмотрите все разделы, попробуйте всю функциональность на себе, залезьте в код, пройдитесь по папкам и файлам.
Потратьте на это время. Если вас сразу начинают заваливать задачами, то попросите отложить их. Не забывайте задавать вопросы.
Рассмотрим пример. Дано: Вы — верстальщик. Вас просят сверстать страницу для нового раздела сайта.
Неверным решением будет немедленно и с рвением приступить к верстке с нуля.
Пройдитесь по сайту. Вполне вероятно, что некоторые блоки уже реализованы и их можно использовать на новой странице.
Совет №6. Pull-request и code-review
Вам могут сказать, что вы можете никому не показывать ваш код. На самом деле нет.В самом начале всегда просите провести проверку кода более опытным коллегой или руководителем. Даже если это не принято в компании.
В первую очередь это убережет продукт от ваших ошибок. Это не значит, что вы неопытны или не умны. Но вы неизбежно будете делать ошибки просто в силу незнания каких-то тонкостей.
После того, как некоторая часть задач была проверена в режиме код-ревью, предложите (или настаивайте) на системе пулл-реквестов.
Совет №7. «А вот на прошлой работе…»
Даже если у вас большой опыт работы и названия компаний вызывают уважение сами по себе, не стоит акцентировать на этом внимание при каждом удобном случае.
Вполне вероятно, что ваш опыт будет неприменим в новой компании. Если вы работали в маленькой веб-студии, то хвастаться этим в банке будет немного нелогично.
Хотя если наоборот, то иногда можно.
Совет №8. Читайте по слогам
Внимательно и несколько раз перечитывайте задачу или техническое задание перед тем, как начать задавать вопросы, а тем более писать код. Не стоит предвзято относится к этим большим объемам текста. Чаще всего их пишут неглупые люди, которые знают продукт лучше вас. И в тексте вы найдете все необходимые исходные данные.
Совет №9. Человекопонятно
Старайтесь писать код так, как будто завтра вы передадите его другому человеку. Есть большая вероятность, что вас в ознакомительных целях посадили на одни задачи, а в дальнейшем вы будете заниматься чем-то другим. Комментируйте свой код. Документируйте код. Оформляйте код по всем правилам. Тогда вам не придется все объяснять на пальцах коллеге, когда наступит время передать код.
И не стоит забывать, что вы можете не пройти испытательный срок… Хороший код можно будет положить в портфолио.
Совет №10. Будьте на связи
Будьте готовы к тому, что первое время вопросы будут возникать не только у вас, но и к вам. Некоторые коллеги (возможно и начальник) работают далеко не с 9 до 18. Это значит, что ответ от вас может потребоваться в нерабочее время. Возможно, задача, над которой вы работали, довольно срочная и выкатывать ее начали в выходной. Не выключайте телефон или будьте онлайн.
Из всех этих советов можно сделать короткий вывод: примите как данность, что вы знаете не все и будьте готовы задавать вопросы.