Содержание
Глубже в технологии
Тем временем я понял, что мне также интересна it сфера и я начал думать, как бы мне продолжить её осваивать и что выучить в первую очередь. Уже не помню почему, но выбор пал на курсеровский курс “ HTML, CSS and JavaScript” Гонконгского университета. Так я впервые познакомился с языком гипертекстовой разметки, каскадными таблицами стилей и языком программирования javaScript. Мне показалось интересным манипулировать различными объектами на web странице, менять стили, расположение элементов и добавлять разную интерактивность. Затем было много разных других курсов с курсеры, edx, степика, главным курсом первого времени был наверное знамений курс Гарвардского университета cs50 на котором я впервые познакомился с алгоритмами и структурами данных и языком си. Это был очень непростой, но интересный курс по основам computer science.
Алгоритм решения задачи
Обычно алгоритм решения задачи выглядит так:
- Получение задачи
- Уточнение задачи (задаешь вопросы куратору, если что-то непонятно).
- Поиск информации (предоставленные мануалы, гугл и прочие источники).
- Выполнение.
- Если все получилось, переход к п. 10. Если не получилось, к п. 6.
- Повторный поиск информации в Сети.
- Получилось? Если да, пункт 10, если нет, пункт 8.
- Задай вопрос наставнику.
- Получилось? Если да, пункт 10, если нет, пункт 6.
- Радуйся 🙂
После каждой неудачной попытки не нужно бежать к наставнику, попытайся найти дополнительную инфу в Сети и попытаться еще несколько раз. Как видишь, наш алгоритм не подразумевает неудачи. Выполнить задание нужно в любом случае, иначе твоя стажировка окончится.
Подводные камни буквы закона
Нужно понимать разницу между стажировкой и испытательным сроком. В законе нет такого понятия, как стажировка. Есть понятие испытательного срока. Стажировкой часто называют работу без оформления трудовых отношений с сотрудником. Мол, ты работай, мы посмотрим, а затем оформим тебя.
Так вот, нужно понять, о каком виде отношений идет речь — это испытательный срок или все-таки стажировка без какого-либо оформления. Ты должен понимать, что термин «стажировка» не подразумевает практически никаких обязательств со стороны компании. Если компания честная и она действительно заинтересована в получении качественных специалистов, по окончанию стажировки, ты получишь заветную должность, оформленную по букве закона. Но есть и нечестные работодатели, нанимающие сотрудников-стажеров, а затем без всяких обоснований «увольняющих» их. Мол, «вы нам не подходите».
В разных компаниях стажировка проходит по-разному, сроки также разные. Но можно выделить некоторые моменты.
Если облака для вас
не просто теория
Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям
Конфигурация VPS и бесплатный тест уже через 2 минуты
Сконфигурировать VPS
Организация вашей IT-инфраструктуры на основе мультиклауд-решения
Запросить КП
Хочу в крутую компанию!
Теперь перейду уже к стажировке. Я понимал, что в 25+ устроиться без опыта работы в крутую it компанию будет довольно непросто и уже пытался до этого попасть в школу программистов Хэдхантера и курсы от Тинькофф банка, после которых можно было попасть в штат, но там были очень сложные алгоритмические задачи, с которыми я не мог справиться полностью, обычно решая половину задач или меньше. В мэйл дорога была заказана сразу, потому что на свои стажировки они берут только выпускников своих образовательных программ. Про Яндекс я почему-то всё это время даже не думал, потому что считал, что там всё будет ещё гораздо страшнее. Но месяц назад в телеграм канале одного хорошего ютубера (S0ER) я наткнулся на пост о стажировке в Яндекс и подумал ну а почему бы и не попробовать, я вообще ни на что не расcчитывал и заполнил анкету указав честно все свои скромные достижения в виде одной курсовой, пачки сертификатов и резюме с указанием технологий, которые я освоил на тот момент.
Оплата стажировки
Будет ли оплачиваться твоя стажировка или нет, нужно уточнить в самом начале. Сейчас на рынке труда есть много предложений оплачиваемой стажировки, при этом стажеры решают конкретные задачи, а не повторяют курс информатики.
Однако ты должен понимать, что оплата стажировки будет в несколько раз меньше реальной зарплаты. И это вполне нормально. Компания относится к таким затратам, как к инвестициям в получение квалифицированных сотрудников. Подумай сам: специалисты с опытом стоят дорого, поэтому многие компании принимают на стажировку студентов и ищут самых талантливых. В результате они могут получить неплохих специалистов, но с зарплатой в несколько раз ниже.
Ты тоже должен относиться к стажировке, как к инвестиции, но в себя. Ты получишь опыт (а он вообще бесценен) и какую-то небольшую денежную компенсацию.
Ищи золотую середину
Независимо от типа стажировки, старайся соблюдать баланс между самостоятельными попытками решения задачи и вопросами к куратору (преподавателю). Сам понимаешь, если от тебя будет исходить слишком много вопросов, твоя стажировка закончится быстрее, чем ты можешь себе представить. Никто не будет делать за тебя твою работу. С другой стоны, если ты все делаешь сам, то могут подумать, что ты избегаешь командной работы. Ладно, если ты еще справишься с заданием. Гении они такие, любят тишину и одиночество. Но вот если ты потратишь кучу времени на самостоятельное решение и оно окажется неправильным, то возникнут вопросы относительно твоей квалификации и адекватности.
Когда будешь задавать вопросы, старайся делать это максимально конкретно (а не «я там что-то нажал, а оно развалилось»). Задавая вопрос по существу, есть вероятность и получения такого же ответа.
Письмо счастья
В ответ мне пришла ссылка на контест. Я не буду говорить о том какие там были задания, но я был приятно удивлён тому, что на алгоритмы там была ровно одна задача из четырёх и именно её я завалил, моё решение прошло только половину тестов, из остальных там было задание на вёрстку, оно было довольно жёстким, нужно было pixel perfect сверстать определённый рисунок, состоящий из геометрических фигур без использования svg и готовых картинок, только html и css. Две оставшиеся задачи проверяли базовые вещи для javaScript разработчика: асинхронность, контекст вызова, прототипы, замыкания. Надо отметить, что каким-то образом я умудрился все три этих задания сдать с первой попытки в контесте. На всё это было дано 6 часов.
На следующий день со мной связался рекрутёр Яндекса с предложением пройти 2 интервью в зуме, одно из них на общие навыки программирования и javaScript, другое на алгоритмы.
На первом интервью меня попросили рассказать о том, как пришёл в разработку, спросили про навыки из резюме (правда ли я знаю вебпак и тайпскрипт, показал на гитхабе игру крестики нолики, которую я как раз недавно сделал, написанную на тайпскрипте. Спросили про опыт разработки и мои проекты. Дальше началось само интервью. Сначала мне были предложены куски кода с предложением найти ошибки и объяснить, что в них работает не правильно и почему. Затем были задания на написание кода. Работа со стандартными методами массивов, объектов, в общем на знание языка и понимание его особенностей. В конце была ещё алгоритмическая задачка (задачи на алгоритмы должны были быть на следующем собеседовании) потому что как оказалось, я решил основную часть раньше установленного срока. После предыдущих задач я немного расслабился и сначала встал в ступор, но после небольшой наводки от собеседующего смог решить и её.
На втором собеседовании проверялось понимание сложности алгоритмов, основных структур данных и умение с нуля построить рабочее решение. Я смог решить две задачи. Никаких красно чёрных деревьев там не было (даже обычных деревьев не было), всё обошлось словарём, массивами и пониманием того, как работают стек и очередь. Багов я не избежал, но смог их отловить.
После этого мне на следующий день позвонил рекрутёр и предложил пройти финальные собеседования с командами.
Это были команды картинок, лавки и маркета.
По итогу я выбрал маркет поскольку меня интересует сфера электронной коммерции. Стажировка начнётся в конце июня. Если кому-то будет интересно, то я могу дальше писать о том, как она проходит по итогам каждого месяца из трёх. Это будет своего рода дневник для меня и возможность для людей узнать, как оно проходит изнутри, потому что материалов на эту тему я нашёл совсем немного.
Массовый набор стажеров
Стажировка может быть, как индивидуальной, когда в качестве стажера на занимаемую должность, приглашают только одного человека, а может быть массовой, когда набирают несколько человек. В этом случае, как правило, стажеров направляют на обучение, после которого будет тестирование. По результатам тестирования лучшие стажеры будут превращены в сотрудников компании.
На протяжении обучения преподаватели будут давать задания для самостоятельной подготовки. Не советуем игнорировать данные задания. Наоборот, если что-то непонятно или не получается, не стесняйся спрашивать у преподавателя. Обычно это кто-то из сотрудников компании. Установи хорошие отношения и твои шансы возрастут. Вот только не нужно думать, что если ты подружишься с преподавателем, то тебя возьмут на работу вне зависимости от твоих результатов. Результаты тестирования тоже должны быть на уровне. Покажи, что ты можешь эффективно работать в команде, признаешь субординацию — командная работа очень высоко ценится в IT.
Смена профессии
После этого я начал задумываться о том, что нужно сменить таки профессию и стать полноценным разработчиком, специализироваться я решил на javaScript по причине его гибкости и возможности программировать во всех возможных парадигмах, а также его присутствию, как на клиенте, так и на сервере. Нужно было освоить какой-нибудь фреймворк, научиться тестировать код, верстать адаптивно, кроссбраузерно, валидно и семантично, освоить препроцессор для css, node js, typescript, webpack. Если до этого моё изучение программирования было в большей степени академичным, то теперь я решил взяться за дело всерьёз. Выбор пал на react за счёт того, что это javaScript first библиотека с минимумом магии и функциональным подход в построении интерфейсов – ui, как чистая функция от состояния и свойств, переданных компоненту. На данный момент я также знаю на базовом уровне vue js, который меня восхитил своей магией и скоростью разработки, но опечалил отладкой и поиском ошибок, когда что-то ломается в шаблоне.
Собеседование
Третьим этапом пути к стажировке в Google станут два собеседования по 45 минут, на которых с вами поговорят о ваших планах, предпочтениях, успеваемости в учебе, а также расскажут о самой компании, предстоящей работе, бонусах и так далее. Помимо этого, проверят ваши теоретические знания и предложат выполнить несколько тестовых заданий. Начнут, конечно же, с легкого, после чего перейдут к задачам сложнее.
Как правило, приглашая на собеседование, HR Google напишет или расскажет по телефону, чего примерно ждать на интервью. Обычно интересуются осведомленностью об основных концептах Computer Science, потом предлагают решить пару десятков задач, к примеру, на level-order traversal of a binary tree для разных языков программирования или implement a hash table.
Чтобы удачно пройти все этапы, необходимо хорошо подготовиться:
- потренироваться – решить пару сотен задач на специальных сайтах (например, на LeetCode), благо их огромное количество;
- почитать профильную литературу (те, кому повезло попасть на практику в Google, советуют готовиться по книге Cracking the Coding Interview – если вы сумеете справиться с любой задачей, включенной в нее или выложенной на сайте LeetCode, то шанс пройти собеседование почти стопроцентный);
- обязательно подтянуть английский язык. Желательно понимать разные акценты, так как именно на этом часто и ломаются студенты.
Сильно переживать не стоит: часто рекрутеры приходят на помощь, наводя на правильный ответ, так как понимают, что кандидат испытывает немалый стресс.
После успешного собеседования студентов включают в резерв стажеров. Со «скамейки запасных» кандидатов забирают кураторы определенных групп, проектов или направлений – хосты. Некоторым претендентам на прохождение практики в Google везет: их хотят получить в свои команды сразу несколько руководителей. Но бывает и так, что потенциальным стажерам так и не перезванивают, но это случается редко.
Руководитель проекта выбирает из резерва заинтересовавших его молодых специалистов и связывается с ними самостоятельно, рассказывая о работе и задавая интересующие его вопросы. Если после разговора обе стороны поняли, что испытывают взаимную профессиональную симпатию, то студент может начинать паковать вещи, чтобы переехать в город, в который его пригласят.