Category: Трудоустройство

14
Окт
2020

Преодолеть выставленные отделом HR на пути соискателей препоны едва ли не труднее, чем освоить профессию iOS-разработчика. Разбираем распространенные вопросы и даем примеры практических заданий из реальных собеседований при трудоустройстве.

Если вы прошли этап переписки и смогли добраться до собеседования, начинается самая интересная часть квеста по получению работы мечты. Внимательно изучите эту статью: чтобы пройти все ловушки, нужно уверенно ответить на каждый затронутый в ней вопрос. Не имеющий многолетнего опыта iOS-разработчик является для компании своеобразным котом в мешке – чтобы провести отсев, отдел HR работает с многими кандидатами в общем потоке. Если к найму мидлов и сеньоров российские работодатели подходят индивидуально, джуниоров собеседуют по стандартным скриптам.

Телефонный звонок рекрутера

По телефону будут спрашивать, почему вы выбрали профессию разработчика. «Как вы попали в эту область? В каких проектах участвовали?» – HR задает наводящие вопросы, исходя из резюме. Его цель – узнать вас получше. Вопросов будет меньше, если резюме грамотно оформлено и демонстрирует компетентность соискателя.

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

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

Очное собеседование с рекрутером

До беседы с техническим специалистом с вами может опросить рекрутер по списку поверхностных вопросов на знание технологий: «Что такое Swift?», «Что такое ООП?» и т.д. Он может дать вам мини-тест, в котором нужно будет набрать энную сумму баллов, чтобы пройти на собеседование с техническим специалистом. Задача HR – отсеивать заведомо негодных соискателей.

Собеседование с техническим специалистом

Теоретические вопросы

Общение с техническим специалистом начинается с проверки ваших теоретических познаний. На рядовых собеседованиях задают типовые вопросы – всего их около десятка.

Несмотря на кажущуюся простоту вопросов, даже разработчик уровня senior может ответить на них невнятно и произвести впечатление посредственного специалиста. Дело здесь не в отсутствии знаний, а скорее в неумении объяснять простые вещи на словах в стрессовых условиях собеседования. К тому же разработчики не учат информацию, которую легко в сети.

К собеседованию обязательно нужно подготовиться. Для этого у нас уже есть отличная статья. Не пытаясь ее дублировать, мы рассмотрим другие вопросы:

1. Что такое свойство lazy?

Значение ленивого свойства не вычисляется до первого использования.

2. Что такое mutating, и где он используется? Приведите примеры.

По умолчанию свойство структуры не может быть изменено внутри функции. При попытке изменить var name внутри func makeAnonymous вы получите ошибку. Мы можем это осуществить, если поставим ключевое слово mutating перед func.

        struct Person {
    var name: String
    
    mutating func makeAnonymous() {
        name = "Anonymous"
    }
}
    

3. Что делают map, filter и reduce? Приведите примеры.

Метод map позволяет применить переданное в него замыкание для каждого элемента коллекции.

        let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

let result = numbers.map { $0 * 10 }

print(numbers) //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(result) //[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
    

Метод filter используется, когда требуется отфильтровать элементы коллекции по определенному правилу.

        let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let filted = numbers.filter{$0 % 2 == 0}
filted
//[2, 4, 6, 8, 10]
    

Метод reduce позволяет объединить все элементы коллекции в одно значение в соответствие с переданным замыканием.

        let cash = [10,50,100,500]
let total = cash.reduce(210, +) //870
    

4. В чем разница между NSArray и NSSet?

NSArray – это упорядоченная коллекция, а NSSet – неупорядоченная. NSSet используется для создания уникальных объектов, а NSArray может иметь повторяющиеся.

5. Какие архитектуры вы использовали? Какая из них у вас любимая и почему?

Стоит потренироваться в использованию архитектуры MVVM, поскольку она наиболее распространена.

6. Что такое main queue?

Main queue – очередь, в которой происходят все операции с пользовательским интерфейсом (UI). Затратные по времени блоки кода, вроде загрузки данных из сети, мы уводим с main queue. Когда мы получаем данные через другую очередь, main queue — свободна и обслуживает события UI. Затем мы вновь возвращаемся на main queue, чтобы обновить элементы интерфейса.

Переключение затратных заданий с main queue на другой поток всегда async. Метод sync на main queue не применяют, потому что это приведет приложение к deadlock.

7. Что такое Grand Central Dispatch? Что такое Dispatch Queues?

Grand Central Dispatch (GCD) – технология Apple API, реализующая параллелизм (выполнение нескольких потоков одновременно) в многоядерном процессоре. GCD управляет общим пулом потоков и решает, когда именно выпустить поток на ядро в зависимости от доступных системных ресурсов. На каждое ядро приходится по одному потоку.

GCD оптимизирует приложение и обеспечивает вызов потока безопасно и автоматически.

Платформа GCD объявляет несколько типов данных и функций (Dispatch Queues, Dispatch Sources, Dispatch Groups, Dispatch Semaphores).

Dispatch Queues – очередь, в которую вы отправляете единицы работы (блоки кода). Затем GCD решает, в каком потоке их выполнять и сколько параллелизма требуется.

8. Что такое UIStackView?

UIStackView– контейнер для UIView. В него мы помещаем выстраивающиеся в виде стека горизонтально или вертикально UIView. Выкладываться они будут автоматически в соответствии с доступным пространством, которое определяется через настройки: alignment, distribution, spacing.

9. Какие существуют логические операторы, что такое оператор объединения с nil?

  1. !a – НЕ;
  2. a && b – И;
  3. a | | b – ИЛИ;
  4. ?? – оператор объединения с nil.

?? возвращает либо значение опционала, либо значение по умолчанию (второе).

        var optionalInt: Int? = 90
var result = optionalInt ?? 30 // 90
    

Если optionalInt не nil, оно возвращается, в противном случае возвращается строка по умолчанию.

10. Объясните иерархию классов UIButton. Суперкласс UIViewController?

NSObject → UIResponder → UIView → UIControl → UIButton

UIResponder → UIViewController

***

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

Практические вопросы

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

Если нужно написать приложение, это попытка проверить, чем вы руководствуетесь, как делаете переходы и какую архитектуру используете. Лучше всего показать умение применять MVVM и подчеркнуть, что выбор обоснован легкостью трансформации в VIPER.

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

Расскажите, как бы вы проектировали такое приложение:

  1. Бесконечная лента картинок. Каждый элемент ленты – картинка + мета-информация к ней. При нажатии на картинку та открывается в полном размере. Источник картинок – публичный API. Необходимо реализовать оффлайн-режим, т.е. приложение должно функционировать без сети в максимально возможной степени.
  2. Спроектировать чат. Пример: Telegram. Функциональность: список диалогов, в диалогах – сообщения. Можно отправлять текст, фото, видео, аудио. Из диалога можно посмотреть профиль пользователя.
  3. Есть два источника: А и В. Необходимо отобразить на экране список получаемых из них элементов.

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

Не стесняйтесь спрашивать сами

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

О чем можно спросить:

  1. Какие задачи придется выполнять в первое время?
  2. Будет ли ментор?
  3. Какой стек технологий использует компания?
  4. Как компания относится к code review?
***

Самообразование необходимо каждому ИТ-специалисту, но если вы нацелены на карьеру программиста всерьез, стоит обратить внимание на факультет iOS-разработки GeekBrains. Занятия ведут опытные преподаватели, а успешно прошедшим курсы студентам онлайн-университет не только выдает дипломы, но и помогает с трудоустройством.

28
Сен
2020

Считается, будто в IT легче всего прийти через тестирование, но о переквалификации тестировщиков никто не рассказывает. Мы рассмотрим карьерные перспективы специалистов по QA.

После 7-10 лет работы в профессии каждый день становится копией предыдущего: опять приходятся писать тест-кейсы или автотесты. Проекты не отличаются друг от друга, и даже все баги, кажется, известны заранее. Во время кризиса жанра душа просит чего-то нового. В статье, подготовленной при поддержке Факультета Тестирования ПО онлайн-университета GeekBrains, мы рассмотрим возможные пути эволюции тестировщика.

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

Фото с сайта pixabay.com
Фото с сайта pixabay.com

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

Automation Test Architect

Должность в России довольно редкая и встречается преимущественно в филиалах иностранных корпораций, где счет идет на десятки тысяч автотестов.

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

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

SDET – Software Development Engineer in Test

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

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

Test Architect

Если вы не любите писать код, но можете часами анализировать ТЗ на сотни страниц, стоит подумать о должности Test Architect. Как и архитектор автотестов, архитектор тестирования нужен в крупных проектах и больших компаниях, например, в банках.

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

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

Test manager

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

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

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

Фото с сайта pixabay.com
Фото с сайта pixabay.com

С развитием в тестировании ситуация более-менее ясна, но как быть в случае, если вы не хотите оставаться в профессии? Не расстраиваться. Есть целый ряд специальностей в которых вчерашний QA может успешно себя реализовать.

Разработка

Чаще всего, тестировщики переходят в разработку. После несколько лет в автотестах специалист может не только писать приличный код, но и находить ошибки в чужом. Вчерашний QA уже написал несколько фреймворков с нуля и реализовал ряд приложений под собственные нужды. Таких, например, как генераторы тестовых данных. С солидным багажом знаний переход в разработчики не составит труда. Ко всем прочему тестировщик будет искать баги в своем коде прежде, чем передать его в тестирование. Это, конечно, плюс.

DevOps

Помимо разработки существует еще направление DevOps. В эту профессию переходят тестировщики, которые самостоятельно встраивали автотесты в процессы CI/CD. Им доводилось поднимать всю инфраструктуру автоматизации с нуля, создавать собственные системы мониторинга, а также разворачивать и поддерживать тестовые стенды, работать с Docker и писать bash-скрипты. Устроиться в DevOps будет чуть сложнее, чем получить должность программиста. Обычно, на эту позицию ищут специалистов уровня Senior, но можно попробовать найти работу в стартапе, где требования к кандидату будут ниже.

Фото с сайта pixabay.com
Фото с сайта pixabay.com

В сфере IT существует не только код. Есть целый ряд профессий, которые не требуют наличия технических навыков и при этом востребованы на рынке ничуть не меньше программирования. Если вы считаете, что кодить – это не ваше, обратите внимание на следующие специальности.

Product manager

Кто, как не QA знает все о продукте, над которым работает команда? Тестировщик непосредственно участвует в его развитии, знаком с фидбеком от пользователей и видит, что нравится клиентам, а что вызывает у них раздражение. Он понимает, сколько времени требует доработка и может спрогнозировать сроки реализации новой функциональности, а также знает сильные и слабые стороны продукта по сравнению с конкурирующими. В работе тестировщики опираются в том числе на аналитику и формальные метрики: для начала им стоит попробовать себя в качестве помощника PM на текущем проекте. Если не получится, можно предложить услуги конкурентам.

Project manager

Часто на эту должность тестировщика наталкивает обратная связь от пользователей. Когда видишь, чего не хватает клиенту и понимаешь, как это можно реализовать, рождается проект. Нередки случаи, когда руководство разрешает посвятить ему несколько рабочих часов. Если финансовые показатели подтверждают успех идеи, несколько часов превращаются в полноценную выделенную команду, а ее идейный вдохновитель превращается в PM.

Заключение

Тестирование – хороший старт для карьеры в IT. Перед тестировщиками открывается множество путей дальнейшего развития, если текущая деятельность перестала приносить им удовлетворение. При желании QA всегда может найти работу по душе.

***

Освоить новую специальность вам поможет Факультет Тестирования ПО от Geekbrains. Преподаватели курса – настоящие профессионалы с многолетним опытом работы в тестировании. Прохождение курса позволит быстро войти в профессию тестировщика и найти работу, которая принесет достойный заработок и массу удовольствия.

24
Сен
2020

Лучшие студенты школы «ProgTips» смогут пройти стажировку на базе НПП «МЕРА»

Потенциальных слушателей наших курсов по программированию волнует вопрос: «Смогу ли я устроиться на работу после обучения или хотя бы пройти стажировку на реальном предприятии?» Мы постоянно работаем над тем, чтобы наши выпускники оставались востребова…

01
Сен
2020

Для типичного айтишника главный мотив работы – ежемесячная оплата труда. Владимир Мельник рассматривает финансовую составляющую мотивации в ИТ и объясняет, почему, по его мнению, вся эта махина движется «не туда».

20
Авг
2020

Хотите узнать, зачем в современном IT нужны DevOps-инженеры и почему такой должности не было раньше? Объясняем максимально просто.

Что такое DevOps и кто такой DevOps-инженер

DevOps – это в первую очередь философия, которая с годами превратилась в должность. А DevOps-инженер – человек, который модернизирует бизнес в соответствии с этим подходом. За счёт применяемой этим специалистом методологии процессы внутри команды становятся быстрее, а труд разработчиков приносит больше пользы.

Данную статью мы подготовили при поддержке нашего партнера – онлайн-университета GeekBrains. На факультете DevOps саму профессию, необходимые практики и инструменты можно освоить с нуля.

А поподробнее?

Представим, вас уже взяли на должность, связанную с DevOps в компании, создающей сайты на заказ. В компанию обращается клиент ООО «Большая Корпорация». Разработчик Василий и дизайнер Анна читают требования, резво принимаются за дело и вот уже готов первый прототип. Тестировщик Ольга проверяет его и передаёт клиенту.

Вроде бы пока всё идёт нормально, но есть одно «но»… «Большая Корпорация» не была бы самой собой, если бы не вносила правки по одной. Уже на пятой правке после смены цвета всех кнопок с бирюзового на аквамарин, Василий, Анна и Ольга начинают рвать на себе волосы – после каждого изменения необходимо переделывать, тестировать и размещать на сервере клиента весь сайт.

Тут на сцену и вступаете вы – DevOps-инженер. Вы быстро разворачиваете pipeline (букв. англ. «система труб»). Только вместо жидкости по этим трубам «течёт» код, а созданная вами система непрерывной интеграции и тестирования собирает и проверяет всё вместе, значительно ускоряя рабочий процесс.

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

Осталось разобраться, почему же эта практика называется DevOps. Всё просто: Dev (Development) – разработка, а Ops (Operations) – эксплуатация. Вот и вся расшифровка этого страшного термина.

Инструменты и навыки DevOps-инженера

Опытный DevOps-инженер должен понимать, как создать быструю и долговременную систему. Поэтому огромным плюсом будет умение строить в своём сознании «карты» инфраструктуры, описывающие, какой элемент за что отвечает.

Естественно, свою задачу вы будете выполнять не вручную, а с помощью специальных программ, технологий и средств автоматизации:

Если вы хотите стать DevOps, придётся хорошо изучить эти и множество других инструментов. Для работы надо разбираться и в Linux, понимать внутреннее устройство операционной системы.

Материалы для чтения, изучения и просмотра

Если вы твердо решили идти в DevOps, помогут следующие ресурсы:

Есть информация и на русском:

Карьера в DevOps

Если вы только пришли в IT-индустрию, требования к DevOps-инженерам могут показаться сложными или даже страшными, но бояться нечего. Чтобы устроиться на первую должность по этой вакансии, имеет смысл несколько раз поучаствовать в этой роли в хакатоне или проекте в группе разработчиков, дизайнеров и других специалистов, заинтересованных в профессиональном развитии. Такой подход принесёт не только опыт, но и контакты в индустрии.

В первую очередь в DevOps стоит идти системным администраторам и всем, кому интересны и знакомы Linux-системы. Полезны будет и другие знания по системному администрированию, но именно эта ОС используется в сфере DevOps чаще всего.

DevOps также является логичным продолжением карьеры для людей, профессионально связанных с настройкой IT-инфраструктуры и строительством сетей.

Финансовые перспективы

Конечно, DevOps – дело само по себе интересное, но вас ведь не заставят работать без зарплаты. Давайте посмотрим и сравним, сколько платят DevOps-инженерам разных уровней за рубежом и в России.

Чтобы узнать, как дела обстоят в США, воспользуемся инструментом StackOverflow Salary Calculator.

<span>Результаты анализа DevOps-работ с помощью Salary Calculator</span>
Результаты анализа DevOps-работ с помощью Salary Calculator

Медианная зарплата DevOps-инженера в Нью-Йорке составляет 131 тыс. долл. в год (10.8 тыс. долл./мес.), что даже по американским меркам довольно неплохо.

Российские зарплаты рассмотрены в исследовании Яндекса. Как указано в их материале, имея всего год опыта, вы сможете рассчитывать на 115-125 тыс. руб./мес.

Собеседование
Чтобы подготовиться к собеседованию, изучите наш материал 10 вопросов и ответов на DevOps собеседовании.

Конечно, в каждой компании квалификация определяется по-разному, но общепринятым является разделение DevOps-инженеров на те же группы, что и разработчиков: Junior, Middle и Senior. Зарплата DevOps-специалиста стремительно увеличивается с ростом его опыта. Junior и Middle могут рассчитывать на 100-150 тыс. в месяц, а закоренелые DevOps-«волки» получают от 200 тыс. руб.

Заключение

Не терпится начать обучение? Мы предлагаем взглянуть на курс DevOps онлайн-университета Geekbrains, где вам расскажут, как пользоваться такими неотъемлемыми инструментами DevOps, как Docker, Ansible и Kubernetes (полная программа приведена по ссылке).

Стоит заметить, что это один из редких систематизированных материалов на русском языке – рыскать по сети в поисках туториалов и гайдов уже не придётся. Если что-то останется непонятным, вы всегда можете задать вопрос преподавателям напрямую. Кроме того, по результатам успешного прохождения курса платформа помогает с трудоустройством.

19
Авг
2020

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

Кто из вас знает комик-группу Монти Пайтон? Названный в честь их телешоу, язык Python такой же интересный, веселый и не грузящий. Разработчики Dropbox использовали Python, когда создавали серверную часть и десктопное приложение, а теперь этим инструментом пользуются более 500 млн людей. На Python пишут в Google, Facebook, Netflix, Quora, Reddit и других крупных компаниях.

Примеры известных компаний, активно использующих Python
Примеры известных компаний, активно использующих Python

В этом материале, подготовленном нами при поддержке факультета Python-разработки GeekBrains, мы разберемся, с чем связана такая популярность языка и как выучить Python.

Где применяется Python

У Python последовательный ясный синтаксис и простой подход к модульной архитектуре. Язык является высокоуровневым – многие задачи Python «берет на себя». То, что в других языках занимает 10 строчек кода, в Python часто уже реализовано в виде готового решения – одной из эффективных функций стандартной библиотеки.

Это одна из множества причин, почему Python повсюду: в веб-разработке и анализе данных, серверных и десктопных приложениях, бизнес-инструментах и научных исследованиях. Язык портируется почти на все существующие платформы – от мобильных гаджетов до крупных вычислительных узлов.

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

Тест
Хотите проверить свои знания в области последних новостей искусственного интеллекта? Пройдите наш тест «Правда или ложь: что умеют нейросети».

На Python пишут скрипты для автоматизации рутинных процессов сбора данных с веб-страниц и вычленения паттернов в больших корпусах текстов. Набор Python-скриптов может автоматизировать рутинные задачи SEO-специалиста или собрать координаты геолокаций.

Python применяется даже в разработке игр: в Sims 4 для внутриигрового моддинга, а в Civilization IVдля создания собственных модификаций игры.

Что нужно знать и уметь

18
Авг
2020

Хотите работать в крутой, молодой и известной компании? Тогда вам в Netflix! Рассказываем, что нужно знать и к чему быть готовым.

Netflix – медиа-компания со штаб-квартирой в Лос-Г…

04
Июл
2020

Рассмотрели 12 международных и российских площадок для поиска удалённой работы: ссылки, различия в механике поиска, плюсы и минусы.

Полный / неполный рабочий день

28
Июн
2020

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

03
Апр
2020

Эффективная удалёнка: как продуктивно использовать дистанционную работу

Рассказ о компании, которая повысила производительность, переведя сотрудников на «пижамный» режим, и об обратной стороне долгосрочной удалённой работы.

Статистика утверждает: дис…

24
Мар
2020

«Ни в одном месте не проучился дольше года». Интервью с Java-разработчиком

Взяли интервью у парня, ставшего Senior Java Developer в 21 год (!), узнали его поучительную историю. В комментариях под постом вы можете задать ему вопрос лично.

Никто не охарак…

24
Мар
2020

«Ни в одном месте не проучился дольше года». Интервью с Java-разработчиком

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

Никто не охарактеризует университет или другую образовательную площадку лучше обучавшихся выпускников. Библиотека программиста следит за тем, чтобы рекомендуемые курсы приносили читателям отдачу. Мы поговорили с Сергеем Алексеевым (страница вк) – выпускником курса Java Mentor.

Б.П.: Привет! Расскажи для начала, чем сейчас занимаешься, где работаешь?

С.А.: Работаю в компании Люксофт. Месяц назад меня дополнительно наняли вне штата в Сбербанк заниматься контролем качества торговой системы, которую пишут другие разработчики. Программа для операций с валютой и ценными бумагами.

Б.П.: Какой у тебя был опыт в программировании до начала курса?

С.А.: В «воспоминаниях» вконтакте недавно всплыл пост, написанный мной год назад: «Не понимаю, как работают абстрактные классы и что это такое – помогите». Стыдно, но не удалил, чтобы другие видели: при старании и с хорошими наставниками можно добиться успеха.

Первую официальную работу я получил в 2016 году в непритязательной веб-студии. Закончилась карьера фронтендера так же быстро, как началась – успехов я не достиг, и через полгода уволился. Пошёл в системное администрирование, но любовь к программированию оказалась выше, чем к копанию в конфигурациях и железках – уже через год я устроился джавистом. Брал маленькие заказы, писал маловразумительные конструкции и зарабатывал в удачный месяц 20 тысяч рублей.

Поступил в один колледж и два вуза, но попытки получить высшее образование кончились крахом – ни в одном месте не проучился дольше года. Две причины: 1) больше внимания и часов уделялось нетехническим предметам, чем программированию, 2) нельзя использовать функции, которых нет в методичках 1988 года.

Б.П.: Почему выбрал курс Java Mentor и сколько месяцев он занял?

С.А.: В течение года видел рекламу Java Mentor в интернете, переходил на сайт, но после непродолжительного времени закрывал.

Написание дешевых программок перестало приносить удовольствия – решил устроиться стажером в Райффайзенбанк. Но там в работе отказали, потому что… «Я не знаю, что такое абстрактный класс». Понял, что если не найду того, кто научит, всю жизнь прострадаю ерундой. Зашёл на сайт JM, оставил заявку на обратную связь. Оказалось, что учиться можно сколько нужно, хоть год, а оплатить, когда уже устроюсь. Схема удивила – неделю искал подвох. Не нашёл – сообщил, что хочу учиться. Скинули тестовое задание, которое еле-еле выполнил. Три дня подряд писал код, но справился.

Обучение началось 10 августа, а 22 ноября я прошел собеседование на работу.

Б.П.: В чем для тебя преимущество формата?

С.А.: Заинтересованность в качестве твоих знаний. Если ментор видит, что ты не понял, дальше пройти не получится. Прогоняй материал, пока не разберешься – никакой халтуры. «Грызть гранит» придётся тебе самому, но если уперся лбом в стену, менторы помогут выйти из тупика, не терять много времени на одном вопросе.

Б.П.: Сколько часов в неделю уходило? Были жесткие дедлайны?

С.А.: Жестких дедлайнов не было. Но я свел до минимума подработки и взялся за учебу с фанатизмом, уделял по 10–12 часов в день, и сам создал сложности – игнорировал ментора, когда «зависал». Не люблю просить помощи.

В результате перегорел, забросил учебу и две недели не мог ничего делать, смотрел в ковёр на стене. Узнав о моем состоянии, Герман (основатель проекта Java Mentor Герман Севостьянов – прим. редактора) позвонил, нашел слова поддержки и помог заново разжечь интерес. Я благодарен ему за это.

Б.П.: Как ты оцениваешь уровень преподавания? Какие основные плюсы и минусы?

С.А.: JM – лучшее, с чем я сталкивался, но не лучшее, на что они способны. Ребята работают над собой, поэтому те, кто будут учиться после меня, попадут в лучшие условия. Компания хорошо принимает критику и предложения.

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

Б.П.: На сайте говорится про неограниченное общение с ментором 6 дней в неделю. Было ли комфортно общаться с наставником?

С.А.: Иногда два человека не сходятся темпераментами. Так произошло с первым ментором. Когда стало понятно, что я способен на лучшие результаты с другим наставником, Герман сменил ментора.

Б.П.: Чему был посвящён командный проект?

С.А.: Музыкальный портал. На этом этапе было уже несложно работать с кодом, но еще сложно с людьми. На мой взгляд, получилось не хуже музыки ВКонтакте.


Б.П.: Как организована работа в команде?

С.А.: Общались в Slack. Несколько человек плюс ментор в роли заказчика. Задачи ставили сами, наставник мониторил прогресс и направлял.

Б.П.: Что с гарантиями по трудоустройству? Оправдались ли ожидания?

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

Б.П.: Сколько собеседований пришлось пройти до устройства на работу после обучения?

С.А.: Первое собеседование – первое приглашение на работу.

Б.П.: Какой вопрос с собеседования больше всего запомнился?

С.А.: Сказал, что хочу зарплату в x рублей. «Тебе всего 20 лет. Куда ты будешь тратить такие деньги? Возьмем, но будем платить х/2». Теперь получаю больше, чем запросил на собеседовании.


Б.П.: Насколько знания курса соответствуют работе? Сколько заняло дополнительное обучение?

С.А.: В каждой работе есть своя специфика. Например, первый месяц текущей работы я посвятил лекциям по экономике.

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

Что касается дополнительного образования – это непрекращающийся процесс. Каждый день знакомлюсь с чем-то новым. На работе использовать «левые» технологии не выходит, поэтому параллельно веду два проекта just for fun.

Б.П.: Какие планы?

С.А.: Учу фронтовые языки и технологии. Хочу стать фулстек программистом. Наша компания предоставляет сотрудникам рабочую визу. Наберусь опыта, отточу навыки, в том числе английский, и поеду за границу.

Б.П.: Спасибо за интервью! Могут ли читатели Библиотеки программиста сами задать вопросы? Не против ответить в комментариях?

С.А.: Да, конечно! Пишите – буду рад ответить. Интересно пообщаться с людьми, которые хотят в IT, но не знают с чего начать или боятся. Вы убедитесь, что я живой человек, а это не рекламная кампания.

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

28
Дек
2019

Как себя вести с хэдхантером? Несколько трюков для разработчиков

Тебе позвонил хэдхантер? Это могут быть происки твоего руководства, либо ты действительно заинтересовал конкурентов. Объясняем, как себя не завалить.

Если ты
не задавался целью стать “жертвой” этих ребят (н…

02
Дек
2019

Как пройти собеседование на английском? Мнение экспертов школы «Инглекс»

Собеседование — вещь серьезная. А собеседование на английском — зачастую еще и пугающая. Какие есть лайфхаки для успешного прохождения этого испытания? Разберемся в статье.

Ведь нужно за довольно короткое в…

25
Июл
2019

Спасательный круг для собеседования на Python-разработчика

Шпаргалка в форме вопрос-ответ с примерами и ссылками на источники в помощь для собеседования на Python. Составлена по реальным интервью.

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

17
Июл
2019

Сколько зарабатывает системный администратор, и как им стать

Системный администратор – кто он: бедный работяга или бездельник-богач? Рассказываем, сколько зарабатывает админ, и что он должен уметь.

Зарплата

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

01
Ноя
2017

5 собеседований в топовых компаниях и 5 предложений о работе

работе5 дней я проходил собеседования в LinkedIn, Salesforce Einstein, Google, Airbnb, и Facebook и получил 5 предложений о работе. Это был невероятный опыт, и я очень счастлив, что мои труды оправдали себя. Поэтому я решил написать что-то об этом. Я расскажу, как я готовился, а также поделюсь впечатлениями о собеседованиях и самих компаниях. Как всё началось […]

Запись 5 собеседований в топовых компаниях и 5 предложений о работе впервые появилась Библиотека программиста.