Category: Истории

19
Окт
2021

📊 Кого (не) берут в IT? Результаты опроса «Библиотеки программиста»

В сентябре мы провели опрос среди тех, кто когда-либо искал первую работу в ИТ-сфере. Каким образом и с какой эффективностью начинающие специалисты (не) справляются с этой задачей?

В опросе приняло участие более 470 человек. Пунктуация и орфография пользовательских отзывов сохранены.

Подробности доступны по ссылке.

Сколько вам лет?


Типичному айтишнику 20-35 лет.

Из какого вы города?


Почти четверть – 23.1% – проживает в Москве, 14.9% из Санкт-Петербурга и 6.6% из Минска.

Ваш коммерческий опыт в IT


  • 25% с опытом от 1 года до 3 лет включительно.
  • 24.4% с опытом до года включительно.
  • 24.4% ищут работу в данный момент впервые.
  • 12.8% с опытом от 3 года до 6 лет включительно.
  • 10.9% с опытом свыше 6 лет.
  • 2.5% еще учатся в вузе.

Как вы учились программировать?


  • 86.3% пользовались во время обучения открытыми источниками (книги, YouTube, StackOverflow).
  • 30.4% хватило профильного образования.
  • 32.9% прошли платное обучение онлайн.
  • 13.7% учились платно оффлайн.
  • 12% ходили на профильные конференции.
  • 9.9% помог ментор.
  • 7% участвовали в хакатонах.
Платные курсы, темболее онлайн малоэффективны. Единственный плюс это ритм и оплата которая заставляет тебя не бросить. Учиться лучше самому, иногда брать уроки у ментора или репетитора. Ходить на соревнования. Сталкиваться с проблемами. И да математику знать надо, и базовый cs . В 2021 году без этого навряд ли что то получиться … Если ты не фронтенд
29 лет, платные курсы, стажировка, Data Science

Как вы искали или ищете первую работу?


  • 79.2% ищут на профильных сервисах (hh, superjob и т. д.)
  • 36.8% – в телеграм-каналах.
  • 27.6% – по знакомству
  • 18.7% берут после стажировки на позицию джуна.
  • 5.3% – помогла карьерная поддержка курсов
  • 0.8% – отправили оффер после хакатона.
Ходил по собеседованиям, делал тестовые задания, в результате взяли в компанию после собеседования, куда меня порекомендовал знакомый.
41 год, учился самостоятельно, Fullstack
Обучался на курсах крупной компании при университете. После окончания курсов прошёл собеседование и попал на позицию джуна. Теперь самому приходится проводить собеседования. Соискателям на позицию джуна не хватает базовых знаний из computer science, в основном их кругозор ограничивается знанием базового API фреймворков.
25 лет, курсы при компании, С#
Лет 7-8 назад решила координально поменять специальность, уйти из строительства. Пошла готовиться туда, что больше на слуху было – разработка web-приложений. За пол года 1 приглашение на собеседование для стажировки и все. Так делать нельзя, когда меняешь специальность. Нужно изучать рынок и смотреть реально, где есть шансы, а не ломиться туда, куда все ломяться. Как итог, пересмотрев, что я действительно знаю уже нормально, что есть ещё на рынке – переделала свое резюме под разработчика баз данных. Как итог – 3 собеседования, 3 предложения на работу. Сейчас я занимаюсь больше аналитикой данных и доросла до тимлида.
33 года, платные онлайн-курсы, аналитик

Участвовали ли вы в стажировках?


  • 24.9% не проходили стажировки и не понимают, как о них узнавать.
  • 23.9% участвовали в стажировке в офисе.
  • 13.5% не имеют стажировки в своем городе.
  • 13.3% участвовали в отборе, но не прошли стажировку.
  • 11.4% стажировались по удаленке.
При поиске первой работы самым сложным оказалось попасть на собеседование. Компании не очень интересует 30+ летний джун без опыта работы и профильного образования. Решил получить работу через стажировку и это был правильный выбор, но понадобилось довольно много времени.
3 года, стажировка, Frontend
Могу поделиться, что если сейчас нет спешки пилить какие-то рокет-сайнс задачи, то я с большей вероятностью возьму стажера из мгу/бауманки, чем мидла из рынка знания у стажеров, после профильных курсов из вуза очень хорошие и они быстро растут.
27 лет, профильное образование, курс от МГУ и IT-компании, Go

Были ли трудности в составлении резюме?


  • 44.6% справились сами.
  • 29.9% взяли шаблон из интернета.
  • 13.5% не поняли, как его составить.
  • 6.7% помогли на курсах.
Важно публиковать свои сертификаты о прохождении курсов, описывать свои проекты, не писать о скиллах, которых не имеешь.
21, платные курсы, Data Science

Сколько прошло собеседований до первого предложения о работе?


  • 61.6% прошли от 1 до 5 собеседований.
  • 18.3% – от 6 до 10 собеседований.
  • 10.3% получили оффер без собеседования.

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

Таблица 1. Количество человек, получивших первый оффер без профильного образования

Получили оффер без собеседования 1-5 6-10 11-20
Платные курсы с ментором, без стажировки 2 (2 из них по знакомству) 1
Платные курсы с ментором, со стажировкой 4 10 (1) 4
Платные курсы без ментора, без стажировки 2 (1) 25 (2) 6 1
Платные курсы без ментора, со стажировкой 1 14 1
Самостоятельное обучение без стажировки 6 (3) 35 (2) 5 2
Самостоятельное обучение со стажировкой 3 (1) 10 (1) 2

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

Таблица 2. Количество человек, получивших первый оффер при наличии профильного образования

Получили оффер без собеседования 1-5 6-10 11-20
Платные курсы с ментором, без стажировки 1 (1 из них по знакомству)
Платные курсы с ментором, со стажировкой 1 (1)
Платные курсы без ментора, без стажировки 1 (1) 2
Платные курсы без ментора, без стажировки 7
Самостоятельное обучение без стажировки 2 (1) 25 (3) 8 1
Самостоятельное обучение со стажировкой 3 (1) 19 5 2

Люди с профильным образование чаще выбирают путь самоучки со стажировкой или без нее.

Итог:

  • Респонденты без профильного образования чаще покупают курсы, чем респонденты с профильным образованием.
  • Большинство учится самостоятельно.
  • Стажировка сокращает срок получения первого оффера.
  • Не имей сто рублей, а имей сто друзей.
В хорошую IT-компанию в возрасте 35+ лет без опыта в IT без знакомств устроиться датасайенттстом практически нереально
38 лет, проходил платные оффлайн-курсы, после 21-40 безрезультатных собеседований работу в DS не нашел
На все мои отклики по вакансиям не последовало никакой реакции. Думаю, сочетание возраста, отсутствия образования и опыта играет свою фатальную роль.
40 лет, проходил платные оффлайн-курсы по аналитике, ни на одно собеседование не пригласили
До сих пор не нашел работу. Думаю причина в отсутствии профильного образования и в возрасте.
45 лет, учится самостоятельно, мобильная разработка
Откликнулся на запрос hr. Пошел на собес. После собеса на следующий день предложили оффер. Я в шоке и не верю этому, и не поверю, пока не начну работать в компании. Естественно сначало испытательный срок.
37 лет, платные онлайн-курсы

С каким проблемами при собеседовании вы столкнулись?


  • 65.8% не знали ответы на некоторые вопросы.
  • 39.5% слишком волновались.
  • 21.9% не решили несколько алгоритмических задач.
  • 17.9% – проблем не было, все прошло гладко.
  • 16.7% не решили логические/математические задачи.
  • 14.3% – возникли сложности с базами данных.
  • 4.2% не смогли ответить ни на один вопрос нормально.
  • 1.6% опоздали на собеседование
Первую работу джуна нашел, когда мне было 32 года. Это было сложно психологически. Но работодатели в целом благосклонно относились.
Платные оффлайн-курсы, Java
В основном соискателям не хватает критического/аналитического мышления. Почти никто не читал Рихтера (если говорить о .NET) на самом базовом уровне, хотя мы и не задаём вопросов про модель памяти и отличия семафоров/мютексов.
29 лет, стажировка, C#
Мне было 20 лет и работа нужна была срочно: я согласилась на первое предложение, полученное через друга. В этой компании я занималась совсем не тем, чем мне хотелось, и, несмотря на то, что я сделала для компании очень много, в ней мне постоянно говорили, что я не найду новую работу и никто такую меня не возьмёт. Мне понадобилось пять лет, чтобы взять себя в руки, преодолеть страх собеседований, и устроиться наконец на работу, которая стала настоящим стартом моей карьеры, как разработчика на C++. С первого собеседования!
28 лет, хватило профильно образования, самоучка
По опыту прохождения и проведения собеседований, могу сказать, что никогда не стоит сильно занижать свою стоимость после пары провальных хитрых вопросов.
26 лет, платные оффлайн-курсы, PHP
Советы:1. Пересмотрите основные вопросы по вашему профилю в интернете, 70% такие же или схожие. Так же на собеседованиях часто просят решить несложную задачу, поэтому желательно также порешать частые задачи из интернета.

2. Прежде чем пойти на собеседование в компанию/команду/проект которые понравились, сходите на пару собеседований в схожие компании, узнаете чего не хватает. Станет гораздо проще после подготовки с собеседований.

3. Просите развёрнутый фидбек. Без него – никуда

24 года, платные оффлайн-курсы, С++

В какой области IT вы хотите найти работу или работаете?


  • 14.2% – разработка на Java.
  • 12.1% – разработка на C#.
  • 11.6% – Frontend-разработка.
  • 9.1% – Data Science.
  • 8.7% – разработка на Python.
  • 7.8% – разработка на PHP.
  • 7.8% – мобильная разработка.
  • 4.4% – тестирование ПО.
  • 4.4% – аналитика.
  • 3% – GameDev.
  • 2.1% – DevOps.

Что повышает шансы на успех?

  • стажировка;
  • профильное образование;
  • платные курсы с ментором;
  • «живой» Гитхаб, близкий к бизнесу проект;
  • знание не только фреймворков, но и математики (Data Science);
  • исследование рынка: учить то, что востребовано.
  • возраст до 35 лет;
  • знакомства.
***

Удачи в поиске работы! Дорогу осилит идущий.

Материалы по теме:

30
Сен
2021

🕸 7 технологий веб-разработки, на изучение которых я зря потратил время

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

Перевод …

27
Сен
2021

🎥 ТОП-10 фильмов и сериалов последних лет про современные технологии

Есть мнение, что после культовых «Хакеров», «Джони Мнемоника» и первой «Матрицы» больше не снимали хороших фильмов на околоайтишную тематику. Так ли это? Попробуем разобраться в обзоре лучших кинокартин о современных технологиях, вышедших з…

21
Сен
2021

📖 ТОП-10 книг об ИТ не только для айтишников

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

31
Авг
2021

🗣 «Свою первую работу по тестированию я нашел случайно»

Порог входа в сфере тестирования ПО довольно низок, но стать высококлассным инженером по Quality Assurance непросто: Вячеслав Зимин рассказал нашему корреспонденту о своем пути в профессию.

Где вы учились и как решились пойти в тестирование?

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


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


Как вы нашли первую работу?

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

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

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

Какие знания умения и навыки вам потребовались на позиции джуниора?

В первую компанию (как оказалось, это был стартап) только с общим представлением о профессии и с невероятным желанием работать в этой сфере. Может быть именно этот факт зацепил моего работодателя. В команде я был единственным тестировщиком, и все знания пришлось добывать самому. Отчасти мне помогла книга “tестирование dot com”. Еще я много общался с программистами, получал от них фидбек и смотрел, как сделать свою работу и процесс лучше и эффективнее. Каждый день читал форумы и статьи, чтобы понять все нюансы работы и выстроить правильный процесс тестирования.

Инструментов тестирования в компании тоже не было, все делали либо в чате, либо в документах Google. Я самостоятельно познакомился с Testlink (инструмент для хранения тест-кейсов), установил и начал в нем работать.

Легко ли вам было с начальной позиции перейти к уровню middle?

В этом стартапе я проработал примерно год. Потом у компании дела пошли хуже. Новых продуктов не было, а старые не приносили должного дохода, поэтому сократили почти всю команду и оставили только несколько сильных программистов. В это время открылась вакансия тестировщика в крупной компании Social Quantum, и я решил попробовать свои силы там. В этот раз предварительного тестового задания не было, и меня пригласили сразу на собеседование. Вернее, их было два. Сначала собеседование с hr, где спрашивали теорию, а потом пригласили в офис на второе собеседование. Тут уже были практические вопросы и задания, т.е. меня попросили оформить баг-репорт и написать тест-кейс.

С тестовыми заданиями я справился успешно, и меня пригласили опять же на позицию джуна. В компании тогда еще не было своего отдела тестирования, но была команда на аутсорсе и все тест-кейсы были уже в инструменте Testlink (с которым я так удачно познакомился на предыдущей работе). Именно в этой компании началось мое карьерное развитие.

Когда мы только развивали тестирование, то не пользовались какими-то сложными техническими инструментами. По мере развития самой команды и тестирования в компании мы постепенно расширяли и техническую экспертизу. Мы тестировали игры, и по сути не было какого-то адекватного API – пришлось выкручиваться и пробовать реализовать end-to-end-тесты. Было перепробовано много инструментов и один из них мне запомнился: я его долго пытался приноровить к специфике тестирования игр – это TestComplete. К сожалению, он нам не подошел, и мы решили остановиться на скрипте по распознаванию изображений Sikuli. Именно тогда мы и стали развивать автоматизацию в компании.

Что касается инструментов ручного тестирования, то в ходу у нас были вполне стандартные Charles и Android SDK. В ручном тестировании каких-то специальных инструментов мы не использовали. Была админка игры и прямые руки тестировщика.

В этой компании я проработал лет 5 или 6. Хотя у нас и не было четкой градации по должностям, но точно могу сказать, что вырос за тот год из джуна в миддл-позицию. Еще через год я прошел курс тест-аналитика и стал уже лидом небольшой команды. Еще через год мы с руководителем отдела решили сделать внутренние курсы по тестированию. У меня было достаточно опыта и педагогическое образование, к тому же я постоянно обучался, так что особых проблем с созданием первого собственного курса не было. Плюс за все эти годы работы тестировщиком мое желание преподавать никуда не делось. И это как раз была отличная возможность соединить два любимых занятия: преподавание и тестирование.

Легко ли со средних позиций перейти к уровню senior QA и что для этого нужно?

Все зависит от самого человека, от его желания, мотивации и стремления. У меня был случай, когда сотрудник за год упорной работы перешел из джуна на позицию синьора, но он выкладывался по полной. И конечно же дело тут не ограничивается только хард-скиллами. Для меня senior QA – это не только сильный технический специалист, но и самостоятельный сотрудник, который может сам решать проблемы, организовывать свое время, расставлять приоритеты в работе и так далее. Тот человек, которому дал сложную задачу, и он ее выполнит в оговоренное время. При этом ты не переживаешь, что что-то может пойти не так.

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

Если инженер по QA уровня middle считает себя готовым к переходу в высшую лигу, как проверить, что он не ошибается?

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

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

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

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

Что потребуется изучить и какие навыки наработать, чтобы выйти на уровень senior?

Для позиции senior QA надо разделять направления и специализации. Если мы говорим про мобильное тестирование, опытный специалист должен знать основную базу того, с чем он работает. Как минимум это особенности тестирования мобильных устройств и операционных систем. У него должен быть уверенный опыт с инструментами тестирования мобильных приложений. Он должен знать и разбираться в таких вещах как Android SDK и XCode. Кроме того, будет плюсом если он знает про работу с эмуляторами и имеет опыт в автоматизации. Хорошо знает тестирование API, его особенности, умеет работать с инструментами тестирования API и разбирается в клиент-серверной архитектуре. Для веб-тестирования сюда же можно включить API и клиент серверную архитектуру, хорошее знание протоколов и запросов, знание HTML, CSS, DevTools.

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

Такой специалист должен идеально знать как составлять тест-кейсы, чек-листы, баг-репорты. Разбираться в терминологии тестирования, знать процессы тестирования и в целом процессы разработки ПО. Знать и уметь работать с основными инструментами (Bug Tracking System, Test Management System) и конечно иметь опыт в тестировании – обычно от 3 лет и выше. Также в некоторых компаниях синьор может выдавать фидбек младшим специалистам и быть для них наставником. В этом случае ему потребуется развивать и софт-скиллы.

Как лучше строить карьеру? Тут нет однозначного ответа. Каждый решает сам для себя. Кому-то комфортно расти в одной компании и никуда не уходить, а другим интересней работать в разных местах. По опыту скажу, что расти все-таки лучше в свободном плавании. В компании не всегда есть место для роста и это задерживает развитие кандидата. Кроме того, разные компании – это более обширный опыт.

Как у вас родилась идея создать собственное сообщество?

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

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

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


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

Что в тестировании самое важное?

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

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

***
Реклама
Если вы только задумались о карьере в Quality Assurance или ручные тесты вам уже не в диковинку, стоит обратить внимание на курс автоматизации тестирования на Python от образовательной онлайн-платформы GeekBrains. Практикующие специалисты помогут вам освоить основы профессии и техники тест-дизайна, а также научат писать автотесты на Python. Успешно завершившие курс студенты получат диплом о профессиональной переподготовке и добавят в портфолио 4 проекта, а площадка поможет им с трудоустройством.

30
Авг
2021

🗣 «Учиться придется интенсивно и постоянно»

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

Что подвигло вас заняться программированием?

Мобильной разработкой я занимаюсь около полутора лет. Раньше работала ассистентом руководителя в IT-компании. К решению стать разработчиком я пришла в 32 года: захотелось освоить востребованную техническую специальность и сменить работу. Меня очень вдохновила история хорошего знакомого, который примерно в этом же возрасте с нуля начал осваивать Android-разработку, а спустя 4 года получил предложение о работе в лондонском офисе компании Google, где и трудится по сей день.

Я стала самостоятельно изучать язык программирования Java по вечерам после работы и в выходные, писала свои небольшие консольные приложения. Позже я начала осваивать язык Kotlin и мобильную разработку; свой код я выкладывала в открытый репозиторий на GitHub. Мне повезло: в моем окружении много программистов, поэтому было к кому обращаться за советом и помощью. Свои пет-проекты я показывала коллегам, просила проверить код и указать на недочеты. Это очень помогло.

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

Почему вы выбрали именно мобильную разработку?

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

Что нужно знать человеку, который решил заняться мобильной разработкой?

Первое и самое важное, что нужно усвоить – учиться придется интенсивно и постоянно. Обучение не заканчивается ни после получения предложения о работе, ни после прохождения испытательного срока. Программист всегда занимается самообразованием. Конкуренция среди начинающих разработчиков очень высока, а технологии активно развиваются. Нужно следить за трендами. Тот, кто перестает изучать новшества IT-сферы, становится менее востребованным на рынке труда. К примеру, еще несколько лет назад во многих занимающихся мобильной разработкой компаниях писали код только на языке Java, а сейчас, если открыть любой сайт по поиску вакансий, можно увидеть, что хорошее знание языка Kotlin – обязательное требование для Android-разработчика.

Второе – нужно изучать английский язык. На англоязычных ресурсах очень много информации по Android-разработке. Пример – сайт developer.android.com, где содержится вся актуальная справочная информация.

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

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

Я пользовалась следующими ресурсами:


Java

  • Книга «Изучаем Java» серии Head First. Авторы: К. Сьерра, Б.Бейтс. Я очень люблю все книги этой серии за доступный игровой стиль изложения. В книге «Изучаем Java» доступно изложены понятия об основных свойствах объектно-ориентированного программирования, синтаксисе языка Java, работе с многопоточностью, дженериках, лямбда-выражениях и пр.
  • Видеокурс «Java. От простого к сложному». Автор: Александр Васько. 106 лекций отменного качества в записи.

Kotlin

  • Книга «Kotlin» серии Head First. Авторы: Дэвид Гриффитс и Дон Гриффитс. Отличное пособие для начинающих изучать язык Kotlin. Как и во всех книгах этой серии, материал изложен увлекательно и доходчиво.

  • Сайт kotlinlang.ru содержит много полезной информации о синтаксисе языка Kotlin, функциях и лямбда-выражениях, корутинах (сопрограммах) и т.д.

Android

  • Книга «Программирование для Android» серии Head First. Авторы: Дэвид Гриффитс и Дон Гриффитс. В этой книге объясняются ключевые концепции: основные компоненты Android-приложения, работа с базой данных, проектирование интерфейсов и другие важные вещи. Есть множество заданий для самопроверки, примеры кода на языке Java.

  • Книга «Android для профессионалов. 4-е издание». Авторы: К. Марсикано, Б. Гарднер, Б. Филлипс, К. Стюарт. Это – новейшее издание книги, вышедшее на русском языке в ноябре 2020 года. Я бы рекомендовала ее всем начинающим разработчикам, желающим писать Android-приложения на языке Kotlin.

Авторами книги поэтапно объясняется создание нескольких разных приложений. Среди прочего, рассказывается о модульном тестировании. Очень доступно объясняются концепции различных архитектурных шаблонов. Освещается актуальный стек технологий: Room и LiveData (для работы с базой данных), ViewModel (для сохранения состояния интерфейса при вращении экрана), WorkManager (для планирования фоновой работы) и т.д. Я бы рекомендовала не просто читать книгу, а внимательно переписать все приложения вслед за автором. Подробнее о книге можно прочитать на Хабре.

Алгоритмы

  • Книга «Грокаем алгоритмы». Автор: А. Бхаргава. Мне очень понравился доступный и легкий стиль, в котором написана эта книга. Простым языком объясняются сложные для меня, гуманитария, вещи: О-нотация, хеш-таблицы, поиск в ширину, жадные алгоритмы, динамическое программирование и т.д.

  • Также полезно будет прочесть книгу «Алгоритмы» под авторством С. Дасгупта, Х. Пападимитриу, У. Вазирани. Сейчас я открыла для себя еще один труд, посвященный алгоритмам: «Структуры данных и алгоритмы в Java». Автор – Р. Лафоре. Насколько я знаю, последняя книга рекомендована для подготовки к собеседованию на стажировку в Яндексе.
  • Курс лекций «Алгоритмы. Теория и практика. Методы». Курс бесплатный и доступен по ссылке: https://stepik.org/course/217/syllabus.
  • Продолжение: «Алгоритмы. Теория и практика. Структуры данных». Курс доступен по ссылке: https://stepik.org/course/1547/syllabus.

Авторы этих курсов рекомендуют сначала посмотреть курс про методы и только потом переходить ко второму – про структуры данных.

Шаблоны проектирования

  • Книга «Паттерны проектирования. Юбилейное издание» серии Head First. Авторы: Э. Фримен, Э. Робсон.

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

Каким было Ваше первое мобильное приложение?
Мое первое опубликованное в Google Play приложение было написано на простом шаблоне-конструкторе AppsGeyser вообще без использования кода и выложено еще до того, как я глубоко погрузилась в изучение мобильной разработки. Это – викторина с вопросами по семи книгам о Гарри Поттере. Мне было интересно разобраться, как зарегистрировать аккаунт разработчика, как работать в консоли и готовить приложение к публикации. Все эти навыки мне потом пригодились. Позже я сделала викторину с теми же вопросами, но уже на языке Kotlin.

Что следует изучать начинающему Android-разработчику?

Несмотря на то, что полтора года назад я начала изучение программирования с языка Java, и на Kotlin перешла через некоторое время, сейчас, в 2021 году, я бы советовала сразу учить Kotlin. В компаниях используются разные стеки технологий, но в целом требования к начинающим разработчикам похожи: важно знать синтаксис языка программирования, коллекции, разбираться в теме многопоточности, уметь работать с запросами в сеть, знать систему контроля версий Git и т.д. Чтобы узнать, какие конкретно технологии необходимо изучать, достаточно зайти на любой сайт по поиску работы, найти актуальные вакансии и посмотреть, что требуют работодатели.

Почему вы советуете начинать изучение программирования сразу с Kotlin, а не с Java?

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

Нужны ли начинающему разработчику знания алгоритмов?

Я считаю, что навыки решения алгоритмов, безусловно, надо развивать и оттачивать каждому разработчику. Чтобы набить руку в решении алгоритмических задач, отлично подходят следующие ресурсы: leetcode.com и www.hackerrank.com. Я стараюсь ежедневно разбирать хотя бы одну задачу, однако на первых порах можно поставить цель: освоить основные актуальные технологии, используемые в мобильной разработке, и найти первую работу, а после – тренировать навыки решения алгоритмов.

Что еще можно посоветовать начинающему Android-разработчику?
Заводить полезные контакты: создать профиль на LinkedIn и подписаться на телеграм-канал @Android Broadcast. Там публикуются интересные новости мобильной разработки и вакансии для Android-разработчиков. Много полезного я почерпнула для себя и на канале «Мобильный разработчик», который ведет Алексей Гладков, руководитель мобильной разработки в компании «Леруа Мерлен».

***

Основная проблема, с которой сталкивается начинающий Android-разработчик – это отсутствие четкого плана обучения и ментора. Если вы только начинаете свой путь в профессии, стоит обратить внимание на курс факультета Android-разработки образовательной онлайн-платформы GeekBrains. Под руководством преподавателей из крупнейших российских технологических компаний вы сможете освоить языки Java и Kotlin, разработаете свое приложение и опубликуете его в Google Play. Вас ждут: практика на реальных кейсах и командная разработка с другими студентами. Первые 6 месяцев обучения – бесплатно!

27
Авг
2021

🔄 Из метрологов в сетевые архитекторы: рассказ сисадмина-самоучки

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

Сегодня я хочу поделиться личным опытом, связанным с сменой сферы деятельности. До недавнего времени я занимался метеорологическими испытаниями, но в какой то момент решил сменить сферу деятельности в корне – с метролога на системного администратора. Мой опыт в IT заключался в переустановке операционной системы Windows, драйверов и прикладных программ. О Linux я тогда ничего не слышал и был очень далек от UNIX-систем в целом. Однако давайте обо всем по порядку…

Моя карьера началась сразу после окончания мной средней школы. Устроился на работу охранником в мебельный магазин. Параллельно поступил на учебу в профессионально-техническое училище по направлению мастер по ремонту и обслуживанию компьютеров. В те далекие 2005-2006 годы нас обучали азам на устаревших еще на тот момент Pentium 1-го и 2-го поколений. Как вы уже успели догадаться, это не дало никакого эффекта. На лекциях была одна лишь история компьютеризации.

Первый компьютер я приобрел на кровно-заработанные деньги в середине 2008-го (на тот момент мне было 19 лет). На тот момент интернет (не смеяться) у нас был DIAL-UP соединением со скоростью передачи данных 5 кбит/с. Да, страна в которой я родился и вырос, далеко не передовая в плане IT-развития, но этого не я выбирал…


После приобретения первого компьютера (не помню уже точной комплектации, но процессор там был двухъядерным от AMD, 2 ГБ RAM, 521 ГБ HDD и VGA 512 МБ при 128-битной шине) увлекся игровой инфраструктурой. Сутками зависал перед монитором. Насытившись играми, увлекся прошивкой телефонов, а именно модели Sony Ericsson C902, которой на тот момент владел. Начал устанавливать кастомные прошивки, доступные на просторах интернета (и это с интернетом всего лишь на 5 кбит/с). После начал писать свою прошивку, пользуясь всего лишь Блокнот из Windows XP. Нас в школе на уроках информатики учили Pascal, как передовому на тот момент языку программирования.

Часть вторая

После карьера отдалила меня от новинок в мире IT-индустрии. Работал в ненормированном режиме в геологической экспедиции. В разъездах проводил 70% каждого месяца. Дальше работал в типографии дизайнером, после устроился метрологом в государственном надзорном органе. Тут и началась моя история в мире IT. Поскольку я немного разбирался в компьютерах, меня загрузили сразу серверным и сетевым оборудованием допотопной IT-инфраструктуры организации.

Я не стал бы делать неоплачиваемую работу, но тяга к IT взяла верх (на тот момент мне уже было 29 лет). Я начал как губка впитывать всю доступную на просторах интернета информацию, благо на тот момент у нас была уже приличная скорость интернет-соединения по выделенному каналу. Зависал на работе до полуночи, изучая новое для себя направление.

Часть третья

Изучив и пощупав администрирование серверов на Windows с технологиями виртуализации, я продолжил изучение кластеризации и отказоустойчивости. Благо в наше время на просторах интернета очень много информации по любому вопросу в сфере IT. Построил кластер на базе Vmware, организовал отказоустойчивость fault tolerance, организовал систему хранения на жестких дисках серверов кластера, используя технологии Vmware vSAN.


Освоившись с серверами на Windows, я начал изучать Linux и настроил корпоративную электронную почту на основе решений с открытым исходным кодом. Также построил систему мониторинга zabbix и сбор логов с последующим их анализом на базе ELK (Elasticsearch, Logstash и Kibana).

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

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

В планах заняться программированием. Достичь уровня full stack developer, после чего будет можно утвердиться в профессии инженера DevOps.

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

***

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

Реклама
Стать квалифицированным сетевым инженером достаточно сложно. Работодатели все чаще ищут профессионалов с универсальными навыками, а крупные компании обычно требуют высшее образование в области компьютерных наук, информационных систем или компьютерной инженерии. Если у вас нет ученых степеней в этой области – не страшно! Теперь можно изучить все необходимое при помощи практикующих наставников-профессионалов факультета «Сетевой инженер» образовательной онлайн-платформы GeekBrains. Здесь вы освоите сетевые технологии с нуля, получите диплом о профессиональной подготовке и сможете начать карьеру на уровне настоящего боевого джуна. Получите необходимые знания по администрированию сетей, закрепите их на практике, а также пополните портфолио двумя самостоятельными проектами.

16
Авг
2021

🐧 Терминал для тестировщика: консольные команды Unix/Linux, которые нужно знать наизусть

С тобой сложно, но без тебя невозможно. Посвящается текстовой консоли, работе в командной строке и причинам, по которым эту премудрость стоит освоить начинающему инженеру по Quality Assurance.

Первые шаги: 40 основных команд

Мое знакомство с терминалом началось немного раньше чем путь в тестирование. Скорее всего с установки системы на спор, а потом как-то прижился Linux, и сейчас винда вызывает некоторое подвисание.

Толчок в развитии дала статья «40 основных команд» и книга Скотта Гараннемана «Linux/ Необходимый код и команды. Карманный справочник» (в магазинах доступно ее 2-е издание).


Нагугилшь команду, а перейти в нужную папку забудешь. Или перепутаешь направление dd (команда поблочного переноса данных) и все, здравствуй вечер переустановки системы и потеря данных. Справочники – это хорошо, но основы работы в командной строке Unix/Linux нужно знать наизусть.

У меня получился примерно такой список необходимых внутренних команд оболочки Bourne shell (командные процессоры sh, bash и т.д.) и внешних утилит. Вызываются они одинаково:

  • Навигация по каталогам и файлам: cd, ls, pwd.
  • Работа с файлами и каталогами: rm, mv, cp, mkdir, cat, more, grep, sort, touch, tail, head, less, find.
  • Повышение привилегий: su, sudo.
  • Управление правами: chmod, chown, chgrp.
  • Текстовые редакторы: vi, vim, nano.
  • Архивация и разархивирование: tar, unzip, zip.
  • Установка программ: apt, yum.
  • Информация о командах: man, опция -h (–help).
  • История ранее выполняемых команд: history.
  • Работа с сетью: curl, ping, nslookup, netstat, wget, telnet, ifconfig, ip, ss.
  • Информация о системе и процессах: top, du, df, ps.
  • Управление процессами: kill.

Конечно команд больше, но эти мне пригодились мне в самом начале пути. Расскажу подробнее о самых необходимых.

Совершенствуем чтение логов

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

Начать можно с простого. Команда tail показывает окончание файла (аналогично команда head читает данные с начала), а если добавить ключ -n, то можно увидеть заданное количество строк:

        tail -n 300 console.log
    

С ключом -f команда будет показывать дозапись в файл в реальном времени:

        tail -f console.log
    

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

        grep -i ‘error’ console.log
# где i - регистронезависимый поиск

    

В данном случае будут найдены все строки в которых есть строка ‘error’ без зависимости от регистра. У команды гораздо больше возможностей, чем я показала. Про grep можно писать отдельную статью. Вот вариант поиска классов, логи которых включены на уровне DEBUG и сортировка их с помощью утилиты sort (один из примеров, который понадобился в реальной работе):

        grep DEBUG console-main.log | grep -oP '[a-z\.]+\.[A-Z][a-zA-Z0-9]*' | sort | uniq -c
    

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

        less console.log # откроет файл на просмотр.

# Для навигации можно и нужно пользоваться клавишами:
#	Shift+g - для перемещения в конец файла
#	Shift+f - для перехода в режим чтения дозаписи файла
#	/ + “text” - для поиска значения вниз от курсора
#	? + “text” - для поиска значений вверх от курсора
#	Q - выход

    

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

Спасаем показ: подключаемся к базе данных

Рано или поздно в жизни тестировщика наступает сдача проекта. Бессонные ночи, правки на прод за час до релиза, написание ПМИ и постоянный перетест. И вот уже почти конец, остался показ.

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

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

        psql -h localhost -U <user>
#	где psql - утилита для работы с бд постгрес
#	     h - хост подключения к бд
#	     U - пользователь для подключения к бд

    

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

Ошибка не на нашей стороне: связанность, курлы и интеграции

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

Прежде чем перейти к собственно тестированию, я провожу проверку связности.

Начнем с проверки сетевой доступности сервиса, с которым вы интегрируетесь (действия производятся с машины, на которой поднят интегрирующийся сервис):

        ping <host>
    

Пинг проходит, значит на той стороне как минимум поднят стенд (противоположный результат ни о чем не говорит, поскольку пакеты ICMP может резать сетевой экран – прим. ред.). Теперь нужно проверить, открыты ли нужные порты:

        telnet <ip> <port>
# Например:
telnet checkip.dyndns.org 80

    

Если соединение открыто, остается последний шаг перед началом тестирования интеграции. С помощью утилиты curl проверить возможность представленного в спецификации запроса:

        
curl <host>| jq # jq для структурированного просмотра ответа, если используется формат json

    

Например:

        curl 'https://proglib.io/api/paging/live'| jq
    

Ответ 200, значит можно приступать к тестированию. Минимальные условия для проверки выполнены.

Перезагрузка приложений и изменение настроек

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

В проектах настройки лежат в файлах application.properties (конфигурация приложения может описываться в самых разных файлах и даже с использованием языков разметки – прим.ред.). Чтобы найти их и открыть файл, воспользоваться командой locate:

        locate application.properties
    
Команда locate проводит поиск в специальной базе данных (не стоит путать ее с сервером SQL), которая периодически обновляется через планировщик. Для немедленного обновления нужно запустить команду updatedb с администраторскими полномочиями (su, sudo).

После нахождения пути, по которому лежат настройки, их можно открыть в vim или в другом текстовом редакторе:

        vim <path>/application.properties

    

После изменения и сохранения :wq настроек, нужно перезагрузить приложение. Рестарт приложения в Linux обычно выполняется командой (если в нем реализована вся необходимая обвязка, иначе придется убивать процессы с помощью kill и запускать программу заново – прим. ред.):

        sudo systemctl restart <serviceName>.service
    

После рестарта лучше смотреть логи, поскольку изменение настроек может так критично повлиять на приложение, что оно не запустится. Также нужно посмотреть статус приложения спустя несколько минут после рестарта:

        sudo systemctl stаtus <serviceName>.service
    
Прим. ред.
Этот метод сработает, если в приложении реализована вся скриптовая обвязка, в противном случае воспользуйтесь командой ps.


Приложение должно быть запущено, иначе лучше вернуть старые настройки и заново его рестартовать.

Нужно ли это тестировщику?

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

Удачи в обучении!

05
Авг
2021

🎮 Путь в профессию: младший игровой программист дает советы новичкам

Артём Драпун – младший программист в белорусской IT-компании, занимающейся аутсорсингом в сфере игрового ПО. Он попал в профессию сравнительно недавно, что делает его опыт современным, а значит и повторимым.

01
Авг
2021

👨‍💼 Путь в профессию: интервью с тимлидом

Сегодня на вопросы proglib отвечает Алена Новикова – руководитель группы разработки. Алена работает в ИТ уже 17 лет, преимущественно занимается интеграцией и бекендом.

Как вы пришли в программирование?

Я впервые увидела компьютер в 10 классе у одноклассника. Тогда это была редкость, не каждый мог себе позволить купить комп. Мы играли в “Need for Speed”, и я помню, как пиксельные листья разлетались по обочине. Это было круто! Это вам не “Змейка” на бейсике в школе. В общем, пришлось обмануть маму, что на экономиста я не прошла по входным баллам, чтобы учиться на “Вычислительных машинах”. Тогда никто не верил, что айтишники будут всем нужны. Училась программировать я все равно сама, институтская программа была слабая.

С третьего курса стала подрабатывать в КБ. Писала систему управления матценностями для завода.

Потом поработала в ИТ-отделе на металлургическом предприятии пару лет и переехала в Москву. Нашла работу в интеграторе. Стала погружаться в дивный новый мир корпоративных систем. Веду проекты на Java для микросервисов и серверного кода, а также на SQL и python для обработки данных.

Когда случился переломный момент (переход от программирования к управлению)?

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

Ваш первый опыт. Было страшно управлять командой?

Безумству храбрых поем мы песню. Было непонятно, что надо делать. Никто не объяснял. Постепенно разобралась, как происходит разработка, стала много общаться как посредник между заказчиком и командой. У меня был классный архитектор, и я училась у него управлению процессом. А управлению людьми училась просто “на живом материале”, других вариантов не было.

Как изменились ваша заработная плата и рабочий график?


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

Я фанат своей работы. Я стала работать до часу ночи, а в семь подъем и опять работать или учиться. Потому что не сразу пришло понимание, что все эти митинги, которые заняли мой день – и есть теперь моя работа. А не программирование. Я пыталась быть полноценным участником разработки, так что жестко перерабатывала. Со временем научилась правильно планировать нагрузку.

Вы переключилась на управление полностью или еще и программируете?

Я стала архитектором через пару лет работы тимлидом. Я учила отдельно TOGAF, проектировала системы. Потом перешла в другую компанию тоже на позицию лида, параллельно работаю на фриланс и для стартапов. Это хобби. В стартапах есть элемент неожиданности и драйв. Ну и команды каждый раз новые, разноуровневые. Мой лид неоднократно намекал мне на полный переход в менеджмент, но я не могу перестать кодить. Как следствие, я работаю и учусь 70-80 часов в неделю, развиваюсь технически. Сейчас я имею хороший уровень SQL, средний Java и Python. Конечно, детали забываю, но ежегодно устраиваю себе марафон: беру какой-нибудь курс и повторяю на нем язык.

Реально ли вернуться из тимлидов в программисты (скажем в сеньоры)? Обязательно быть сеньором, или тимлидом может стать и средний разработчик?

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

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

Я пробовала дауншифтить и переходила на работу программистом, но меня все равно вынесло в управление. Потому что мне больше всех надо, и мне нравится организовывать процесс.

Как вам удается выстраивать отношения в команде? Как поддерживать авторитет, если ты не самый лучший специалист?


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

Вы теряли свои позиции? Хотелось все бросить? Как справляетесь с профессиональным выгоранием?

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

Что самое лучшее в работе тимлида?

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

Драйвит управление процессом разработки сложных решений. Я вижу каждую систему от момента, как подписан контракт, до выхода в продакшен. Это дает ощущение силы, чувствуешь мощность своей команды. Каждый выход в прод, когда все постпрод-проблемы уже отгромыхали – это победа.

Что самое сложное в работе тимлида?

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

Люди идут к лиду, потому что это точка опоры. У меня иногда не хватает энергии.

Я исключала ребят из команды дважды за 10 лет. Причина была одинаковая оба раза: невыполнение поставленных задач и обман со сроками. Оба раза сеньорные люди не хотели делать рутинные задачи, а креативных задач не было. Человек может просто сказать: “Извини, мне не интересно, я ухожу”. Это принимается, это хороший вариант. А может тянуть неделями и кормить завтраками. Каждый раз это было тяжело, потому что команда – это единый организм: плохо одному, трясет всех.

Какие навыки нужно развивать будущему тимлиду?

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

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

Чему вы учитесь сейчас? Есть какие-то планы развития?

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

Параллельно продолжаю учить python, много пишу сейчас на нем, но это не основное занятие. Платят мне не за программирование. Тимлиду платят за ответственность.

***
Реклама
Чтобы научиться управлять разработкой, создавать команду и планировать нагрузку стоит пройти новый курс для middle- и senior-разработчиков, планирующих стать руководителями команд образовательной онлайн-платформы GeekBrains. Учебная программа подготовлена совместно с компанией AGIMA, а преподаватели курса – действующие тимлиды и их руководители. Они управляют проектами, запускают их в продакшен, управляют командами и разработкой. За 6 месяцев вы научитесь выстраивать отношения с командой и вести полный цикл разработки. Успешно завершившие обучение выпускники получат диплом о профессиональной переподготовке и будут приглашены на собеседование в компанию AGIMA.

31
Июл
2021

👨‍💼 Путь в профессию: интервью с разработчиком 1С

Кто такой разработчик 1С? Какие еще профессии есть в мире 1С? Как стать программистом 1С? Каковы достоинства и недостатки этой профессии? На эти и другие вопросы корреспонденту «Библиотеки программиста» ответил Александр Андреев.

Кто такой разработчик 1С?

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

Иногда программистов 1С называют “недопрограммистами”, потому что когда мы общаемся напрямую с заказчиком, то получаем пожелания и абстрактные идеи. Уже затем программист составляет задание и выполняет его. Иными словами, программист 1С – это такой материализатор желаний заказчика. Отсюда следует, что разработчику 1С обязательно нужно хорошо разбираться в предметной области. Например, если он ведёт разработку бухгалтерии, то нужно иметь бухгалтерское образование или хотя-бы закончить курсы бухгалтеров.

Если это производство, нужно знать его технологию и этапы, иметь представление о методах оптимизации. Также очень часто программисту 1С приходится решать задачи бизнеса. Формулировка задачи может звучать так: навести порядок на складе, привести к минимуму задержку ввода документов, увеличить производительность цеха и т.п. Сама среда программирования 1С довольно проста, да и код пишется на русском языке. Лично мое мнение таково: разработчик 1С – это НАДпрограммист.

Какие еще профессии есть в мире 1С?

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

Теперь рассмотрим, что делает каждый из них:

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

Почему в 1С код пишется на русском языке?

На момент создания программы 1С в первой половине 90-х годов существовало две точки зрения относительно дальнейшего развития софта. Первая: все программы, в том числе и пользовательский интерфейс, нужно создавать на английском языке. Вторая: все программы нужно создавать на русском языке. Время показало, что пользовательский интерфейс должен быть на русском, а сам код – на английском языке.

Кстати, код в 1С можно писать на двух языках – русском и английском.

В чем секрет популярности 1С?

Это вопрос на миллиард, ведь простого ответа на него не существует. Лично я думаю так: многие предприятия, фирмы и крупные компании используют именно программу 1С, потому что она максимально адаптирована под российские реалии, и на текущий момент продукты фирмы 1С – это большие возможности по развитию бизнеса и гибкая адаптация за счет большого количества разработчиков.

Как стать разработчиком?

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

Каковы достоинства и недостатки профессии?


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

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

С чего начался ваш путь в программисты?

Лет в семь я для себя решил, что моя жизнь будет связана с техникой. В моём детстве все читали книги, и я в том числе. Выбор определила “Энциклопедия профессора Фортрана” – качественно, доступно и интересно написанная книга для детей. Затем, лет в тринадцать – кружок информатики в школе и в доме школьника. Хочу поблагодарить учителей и передать им привет – Пронину Виктору Петровичу и Языковой Любови – здоровья им крепкого на долгие годы!

Как вы стали 1С-разработчиком?

В 2003 году я рассматривал для себя два варианта: 1С и сайты в соотношении 80/20. Честно признаюсь, создание сайтов мне не очень нравилось. К тому же мне было понятно, что именно нужно сделать, чтобы пойти работать программистом 1С. Я закончил курсы бухгалтеров, курсы по программированию 1С, и проштудировав объявления о вакансиях в местной газете, устроился работать в городское управление ЖКХ. Зарплата там, конечно, была минимальная.

Сколько нужно отработать, чтобы стать хорошим специалистом?


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

Как постоянно поддерживать уровень?

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

Как остаться хорошим специалистом после 10 лет в отрасли?

Чтобы быть постоянно в теме, необходимо каждый день начинать изучать все с нуля. За 10 лет отрасль IT изменится очень сильно, и если вы перестанете ежедневно развиваться, смотреть информацию про новинки и тренды, ваши знания устареют и станут никому не нужны. Если только вы не писали мировую платежную систему, и стоимость ее внедрения не превышает нескольких десятков миллиардов долларов. Я, например, начинал с 1С 7.7, затем начинал заново с 1С 8.0 и 8.1. Сейчас работаю с 8.3, а когда выйдет 8.4 или 8.5, все начнется сначала.

Многие говорят: «Вот как это ужасно, в IT все устаревает, а врачам ничего не нужно учить заново!»

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

Что самое интересное в вашей работе?

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

Сколько вы зарабатываете?

Такой нескромный, но всем очень интересный вопрос. Моя зарплата – это шестизначное число. В целом зарплата по отрасли составляет от 100 000 до 300 000 руб. 200 обычно получает ведущий программист или начальник отдела. Конечно на рынке есть как крупные фирмы, где зарплата больше 300, так и различные муниципальные организации, где порой платят меньше 20 000. Выбирает каждый для себя.

Вы давно работаете удалённо?

В целом три года. Я работал на удаленке с 2016 по 2018 год и снова вернулся в 2020-м. Только второй заход я уже планировал основательно: купил дом в пригороде и переехал из города в деревню. Завел собаку, котов. Даже пробовал кур держать, но с ними у меня как-то не заладилось. Зато с удаленной очень всё прекрасно!

Как стать разработчиком 1С с нуля?
Всё гениальное просто: новичкам я рекомендую закончить курсы по программированию, получить сертификат 1С, идти работать в фирму франчайзи.

Что вы посоветуете тем, кто уже отработал 3 – 5 лет?

А тут ещё проще: если на одном месте, то я рекомендую сменить работу или пойти на руководящую должность, попробовать начать обучать. У каждого свои амбиции: кому-то и двадцать лет в одной поре – норм, а кто-то через год уже устал, заскучал и хочет чего-нибудь остренького.

Что стоит изучать будущему разработчику 1С?

Дерзайте! Для начала необходимо закончить курсы по программированию, затем получить сертификат 1С:Специалист по платформе и по какой-либо конфигурации. Обычно начинают с Бухгалтерии или УНФ, также востребованы специалисты по 1С:ERP. На этапе, когда уже получил сертификат по платформе, стоит начинать искать работу. Лучше идти работать в фирму франчайзи – это очень хорошая прокачка уровня программиста. В среднем зарплата начинающего программиста – около 50 000 руб. В регионах чуть ниже, в столице чуть выше, но тенденция последних 5 лет показывает, что зарплаты в регионах и столице почти сравнялись.

Реклама
Если вы только собираетесь всерьёз осваивать профессию, обратите внимание на курс факультета 1С-разработки образовательной онлайн-платформы GeekBrains. Он подойдет не только новичкам, но и пользователям системы, а также начинающим программистам. За 8 месяцев практикующие профессионалы подготовят вас к экзаменам «1С: Профессионал» и «1С: Специалист», а опытные HR-менеджеры помогут вам составить резюме и найти первую работу. Успешно завершившие курс студенты добавят в портфолио несколько кейсов и получат диплом о профессиональной переподготовке.

31
Июл
2021

👨‍💼 Путь в профессию: интервью с разработчиком 1С

Кто такой разработчик 1С? Какие еще профессии есть в мире 1С? Как стать программистом 1С? Каковы достоинства и недостатки этой профессии? На эти и другие вопросы корреспонденту «Библиотеки программиста» ответил Александр Андреев.

Кто такой разработчик 1С?

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

Иногда программистов 1С называют “недопрограммистами”, потому что когда мы общаемся напрямую с заказчиком, то получаем пожелания и абстрактные идеи. Уже затем программист составляет задание и выполняет его. Иными словами, программист 1С – это такой материализатор желаний заказчика. Отсюда следует, что разработчику 1С обязательно нужно хорошо разбираться в предметной области. Например, если он ведёт разработку бухгалтерии, то нужно иметь бухгалтерское образование или хотя-бы закончить курсы бухгалтеров.

Если это производство, нужно знать его технологию и этапы, иметь представление о методах оптимизации. Также очень часто программисту 1С приходится решать задачи бизнеса. Формулировка задачи может звучать так: навести порядок на складе, привести к минимуму задержку ввода документов, увеличить производительность цеха и т.п. Сама среда программирования 1С довольно проста, да и код пишется на русском языке. Лично мое мнение таково: разработчик 1С – это НАДпрограммист.

Какие еще профессии есть в мире 1С?

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

Теперь рассмотрим, что делает каждый из них:

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

Почему в 1С код пишется на русском языке?

На момент создания программы 1С в первой половине 90-х годов существовало две точки зрения относительно дальнейшего развития софта. Первая: все программы, в том числе и пользовательский интерфейс, нужно создавать на английском языке. Вторая: все программы нужно создавать на русском языке. Время показало, что пользовательский интерфейс должен быть на русском, а сам код – на английском языке.

Кстати, код в 1С можно писать на двух языках – русском и английском.

В чем секрет популярности 1С?

Это вопрос на миллиард, ведь простого ответа на него не существует. Лично я думаю так: многие предприятия, фирмы и крупные компании используют именно программу 1С, потому что она максимально адаптирована под российские реалии, и на текущий момент продукты фирмы 1С – это большие возможности по развитию бизнеса и гибкая адаптация за счет большого количества разработчиков.

Как стать разработчиком?

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

Каковы достоинства и недостатки профессии?


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

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

С чего начался ваш путь в программисты?

Лет в семь я для себя решил, что моя жизнь будет связана с техникой. В моём детстве все читали книги, и я в том числе. Выбор определила “Энциклопедия профессора Фортрана” – качественно, доступно и интересно написанная книга для детей. Затем, лет в тринадцать – кружок информатики в школе и в доме школьника. Хочу поблагодарить учителей и передать им привет – Пронину Виктору Петровичу и Языковой Любови – здоровья им крепкого на долгие годы!

Как вы стали 1С-разработчиком?

В 2003 году я рассматривал для себя два варианта: 1С и сайты в соотношении 80/20. Честно признаюсь, создание сайтов мне не очень нравилось. К тому же мне было понятно, что именно нужно сделать, чтобы пойти работать программистом 1С. Я закончил курсы бухгалтеров, курсы по программированию 1С, и проштудировав объявления о вакансиях в местной газете, устроился работать в городское управление ЖКХ. Зарплата там, конечно, была минимальная.

Сколько нужно отработать, чтобы стать хорошим специалистом?


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

Как постоянно поддерживать уровень?

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

Как остаться хорошим специалистом после 10 лет в отрасли?

Чтобы быть постоянно в теме, необходимо каждый день начинать изучать все с нуля. За 10 лет отрасль IT изменится очень сильно, и если вы перестанете ежедневно развиваться, смотреть информацию про новинки и тренды, ваши знания устареют и станут никому не нужны. Если только вы не писали мировую платежную систему, и стоимость ее внедрения не превышает нескольких десятков миллиардов долларов. Я, например, начинал с 1С 7.7, затем начинал заново с 1С 8.0 и 8.1. Сейчас работаю с 8.3, а когда выйдет 8.4 или 8.5, все начнется сначала.

Многие говорят: «Вот как это ужасно, в IT все устаревает, а врачам ничего не нужно учить заново!»

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

Что самое интересное в вашей работе?

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

Сколько вы зарабатываете?

Такой нескромный, но всем очень интересный вопрос. Моя зарплата – это шестизначное число. В целом зарплата по отрасли составляет от 100 000 до 300 000 руб. 200 обычно получает ведущий программист или начальник отдела. Конечно на рынке есть как крупные фирмы, где зарплата больше 300, так и различные муниципальные организации, где порой платят меньше 20 000. Выбирает каждый для себя.

Вы давно работаете удалённо?

В целом три года. Я работал на удаленке с 2016 по 2018 год и снова вернулся в 2020-м. Только второй заход я уже планировал основательно: купил дом в пригороде и переехал из города в деревню. Завел собаку, котов. Даже пробовал кур держать, но с ними у меня как-то не заладилось. Зато с удаленной очень всё прекрасно!

Как стать разработчиком 1С с нуля?
Всё гениальное просто: новичкам я рекомендую закончить курсы по программированию, получить сертификат 1С, идти работать в фирму франчайзи.

Что вы посоветуете тем, кто уже отработал 3 – 5 лет?

А тут ещё проще: если на одном месте, то я рекомендую сменить работу или пойти на руководящую должность, попробовать начать обучать. У каждого свои амбиции: кому-то и двадцать лет в одной поре – норм, а кто-то через год уже устал, заскучал и хочет чего-нибудь остренького.

Что стоит изучать будущему разработчику 1С?

Дерзайте! Для начала необходимо закончить курсы по программированию, затем получить сертификат 1С:Специалист по платформе и по какой-либо конфигурации. Обычно начинают с Бухгалтерии или УНФ, также востребованы специалисты по 1С:ERP. На этапе, когда уже получил сертификат по платформе, стоит начинать искать работу. Лучше идти работать в фирму франчайзи – это очень хорошая прокачка уровня программиста. В среднем зарплата начинающего программиста – около 50 000 руб. В регионах чуть ниже, в столице чуть выше, но тенденция последних 5 лет показывает, что зарплаты в регионах и столице почти сравнялись.

Реклама
Если вы только собираетесь всерьёз осваивать профессию, обратите внимание на курс факультета 1С-разработки образовательной онлайн-платформы GeekBrains. Он подойдет не только новичкам, но и пользователям системы, а также начинающим программистам. За 8 месяцев практикующие профессионалы подготовят вас к экзаменам «1С: Профессионал» и «1С: Специалист», а опытные HR-менеджеры помогут вам составить резюме и найти первую работу. Успешно завершившие курс студенты добавят в портфолио несколько кейсов и получат диплом о профессиональной переподготовке.

30
Июл
2021

💻 «Тыжпрограммист, почини мне кофеварку!» – 13 мифов о программистах и программировании

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

27
Июл
2021

💐 Как я провел комплексную автоматизацию тепличного хозяйства: предметная область для IT-менеджеров

Мой опыт внедрения IoT в отечественном аграрном секторе. Роутеры, контроллеры, рассада и теплицы с вайфаем в чистом поле на юге России. Много красивых фоток.

У нас было 2…

18
Июл
2021

🗣 «Я программист от макушки до кончиков пальцев», – интервью с Seniour Software Engineer C#

Покупали в интернете пиццу или суши? Скорее всего ресторан получил ваш заказ через WebOrders. Корреспондент «Библиотеки программиста» поговорил о применимости и перспективах C# с Владимиром Каратаевым, разработчиком сервиса.

Герой интервью пишет программное обеспечение для доставки продуктов из ресторанов и кафе под брендом r_keeper Delivery. Сервис WebOrders – одно из его детищ – предоставляет API для доступа к кассовым серверам и CRM ресторанов. С его помощью разработчики интернет-магазинов и мобильных приложений подключаются к множеству заведений по всей стране и получают доступ к экосистеме r_keeper.


Расскажите о своей работе? Много ли вам приходится кодить?

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

Я работаю в команде программистов бэкенда, и кодирование – это существенная часть моей работы.

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

В итоге само кодирование занимает 60 – 70% времени.

Остальное время уходит на:

  • краткое письменное описание и формализацию задачи,
  • разбиение на подзадачи и формирование тикетов,
  • планирование спринта,
  • утрясание с коллегами рабочих моментов по программным контрактам, функциям API,
  • сопровождение тестирования (подготовка плана тестирования, помощь тестировщику в настройке, разъяснении непонятных моментов, доработки),
  • демонстрацию завершенной и протестированной работы руководителям,
  • техническую поддержку (если три линии поддержки не смогли помочь клиенту, то задача попадает к разработчику),
  • работу со службой безопасности, если она выявила в работе сервиса уязвимости.

Почему вы выбрали именно это направление?

Я «заболел» программированием в 6-7 классе школы. После уроков я с такими же «страдальцами» бегал в класс информатики и просил учителя хотя бы посидеть за компьютером. Программировать нас тогда ещё только учили.

Именно поэтому у меня за плечами такой большой бэкграунд из вороха различных технологий я преподавал в университете информатику, программировал ERP на крупнейшем складе в России: в ваших авто наверняка есть детали с этого склада; разрабатывал САПР для электроэнергетики: почти все диспетчерские в России работают на этом ПО, так что свет в ваших домах это и мой труд тоже; сейчас разрабатываю микросервисы в сфере HoReCa ПО для ресторанов.

Я не выбирал этот путь осознанно, по каким-то критериям – он (путь) сам меня нашёл, целиком захватил и увлёк.

Долго ли пришлось идти к нынешнему уровню? Это было трудно?

В целом на уровень ведущего разработчика можно выйти за 3 – 5 лет работы программистом. При наличии соответствующих личных качеств можно стать тимлидом. И это трудно.

Например, строитель или токарь отработал свои 8 часов и далее занимается личной жизнью, о работе не думает. А тут порой решение задачи спать не дает: полночи мозг остыть не может, продолжая искать решения. И нередко добровольно, без всякой дополнительной оплаты, остаёшься поработать ещё, чтобы доделать задачу, пока мысль не ушла. Кроме того, отрасль так динамично меняется, что надо всегда дополнительно заниматься самообразованием. За свой счёт, в свободное от работы время.

Например, я прошёл такой путь: Assembler, программирование микроконтроллеров, Turbo pascal, Delphi, СУБД (Interbase, Firebird, MS SQLServer, Postgresql, Clickhouse, SQLite), Java, и, наконец, C#, Python.

И «бег» продолжается: сейчас присматриваюсь к Golang, Kotlin, Rust. Изучаю обработку больших данных, машинное обучение… много чего ещё. И всё для того, чтобы оставаться на современном уровне, поддерживая актуальность и ценность своих знаний и опыта на рынке труда.

Сложно ли учить С# с нуля новичку в программировании или программисту на другом языке?

Я изучал и использовал много различных языков программирования, так что могу сравнивать. У C# невысокий порог вхождения. Очень важный момент: у C# прекрасный инструментарий для разработки. Достаточно зайти на сайт, скачать и установить Visual Studio, и вы сразу всё получаете «из коробки», в готовом к работе виде.

Нажав пункт меню «новый проект» вы получите рабочую заготовку из простейшей программы “Hello word”. Запускайте, смотрите, как работает, модифицируйте и обучайтесь!

Ссылки на обучение приведены на приветственной странице в Visual Studio.

На первое время можно не задумываться про парадигмы программирования и обучаться, используя процедурный подход. Для сравнения, Python требует установить кроме самого языка отдельно среду разработки и настроить переменные окружения, а заготовки “Hello world” вам никто не предоставит.

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

С чего бы вы посоветовали начинать изучение C# новичку?

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

Эта подготовка даётся в ВУЗах. Раньше она была и в школе, но сейчас фактически убили предмет. Надежда только на ВУЗовскую подготовку.

Если вы прошли этот этап, то язык освоите быстро: через полгода уже можно идти в джуны на минимальные деньги. Но даже эта оплата будет больше, чем у продавца в магазине. До джуна можно быть практикантом. Их берут на минималку работать на несвязанную с программированием должность: подготовить отчет, собрать статистику, принести кофе (шутка).

Сколько занимает путь от практиканта до полноценного боевого джуна в вашей команде? А от джуна до мидла и сеньора?

Я не советую идти работать практикантом. Надо работать 8 часов, а когда ещё учится программированию? Лучше полгода подучиться и пойти работать джуном. Далее 2-3 года надо не просто работать джуном, а продолжать обучение, чтобы выйти на уровень мидла.

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

Итого, выход на верхнюю планку ценного специалиста у вас займет около 5 лет, не считая ВУЗовской подготовки.

Что самое важное и сложное в изучении С#?

Сам язык прост. Не тратьте много сил на изучении его языковых конструкций. Существенно сложнее освоить фреймворки, например, asp.net для разработки бэкендов интернет-сервисов. Тут уже надо знать интернет-технологии: что такое аутентификация, и чем она отличается от авторизации, http-протокол, почти всегда требуется работа с СУБД.

Это титанический объём информации, но без этих знаний сложно понять, почему asp.net устроен именно так и научиться эффективно его использовать.

Используйте последние версии фреймворков, библиотек и сред разработки и развертывания. Пока вы будете их изучать, они войдут в мэйнстрим. Обратите внимание, надо обязательно участвовать в проектах open source на GitHub. Это полезно во всех отношениях:

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

Что еще нужно знать джуну?

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

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

Также необходимо знать аппаратуру («железо»). Как устроен компьютер, какие блоки есть в CPU, что такое кэш, мат.сопроцессор, GPU, разрядность процессора и т.п. Вы же пишите программы для «железа», а не для некоей абстракции. Поэтому надо знать аппаратуру. Не детально, но иметь общее представление.

Знание фреймворков, библиотек и прочего от джунов не требуется: на месте изучат, освоят. Главное, чтобы была вышеперечисленная начальная подготовка.

В части структур данных надо уметь работать с массивами, знать что такое списки и словари, их плюсы и минусы, древовидные структуры данных. Понимать, в каком случае что надо использовать. Из алгоритмов нужно знать: виды сортировки, поиск по массивам данных, работу с древовидными структурами данных (поиск, обход).

Как вы думаете, программисту нужно профильное высшее образование?

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

Куда податься свежеиспеченному джуну? В каких компаниях нужны С# разработчики?

Без опыта работы рассчитывать на приличные деньги не стоит. Надо браться за любую работу. C# любят на заводах и промышленных предприятиях за то, что на нём можно быстро делать пользовательские интерфейсы для ОС Windows. В игровой индустрии царит Unity, использующий C#. Виден явный тренд на более широкое использование C# в бэкендах интернет-сервисов, в банковском ПО. Хотя, конечно же, Java тут абсолютный лидер.

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

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

Каковы ваши планы на будущее?

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

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

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

Сейчас я вижу, что актуальной остаётся работа с огромными объёмами данных (big data). Это связано с текущим трендом на IoT. IoT сейчас бурно, взрывообразно развивается. Посмотрите – все крупные экосистемы (Мэйл, Сбер, Яндекс, МТС, Google, Amazon, Xiaomi, Apple) имеют в своем составе технологии для работы с умными домами и датчиками. Есть голосовые помощники, которые позволяют управлять устройствами с помощью голоса.

Эти системы состоят из отдельных программных модулей: кирпичиков, которые удобно и быстро можно интегрировать с помощью Python. Он же используется в машинном обучении. Учите Python, как вспомогательный язык, служащий для высокоуровневой интеграции разнородных систем. Для написания облачных микросервисов я рекомендую изучать Java, C#; для пользовательских интерфейсов – HTML и Javascript. Такой стек инструментария разработчика сейчас актуален, и пока не видно тенденций на изменение такого расклада.

***
Реклама
Если вы только начинаете путь в профессии, обратите внимание на курс «Разработка на C#» образовательной онлайн-платформы GeekBrains. Он охватывает все необходимые новичку темы от основ программирования и алгоритмов до публикации готового программного обеспечения. Изучается также работа с базами данных, бэкенд и фронтэнд, протоколы взаимодействия и даже основы архитектуры. Имеющие некоторый опыт программисты смогут попробовать новые фреймворки и современные технологии, а также расширить портфолио, познакомившись с основами разработки корпоративных приложений.

06
Июл
2021

👨‍💼 Тимлид из народа: как жить дальше?

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

До тех пор пока у тебя есть план, и ты его придерживаешься – все будет хорошо. Главное убедить всех вокруг, что этот план сработает.
Василий Семенов, руководитель направления разработки ЦК SAP.

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


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

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

В работе проекта тимлид может подсказать, дать оценку по срокам, а потом смотреть, чтобы разработчики все успели и сделали качественно. При этом хороший разработчик – это удача во многом, даже если проводишь сам собеседование, сложно угадать, какой именно разработчик сидит перед тобой.
Антон Хрипунов, руководитель abap-разработки.

Стать тимлидом – это всегда открытие новой главы карьеры, когда личный успех заменяется успехом команды.

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

Обязанности и навыки тимлида


Деловая коммуникация и межличностное общение

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

Если нужных навыков делового общения у вас нет, на помощь придут книги:

  • Максим Батырев, «45 татуировок менеджера». Основанная на личном опыте книга российского руководителя. Название каждой главы – «татуировка», которая осталась с ним навсегда, и обязательно рассказано – почему.
  • Максим Батырев, «Сложные подчиненные. Практика российских руководителей». Еще одна книга того же автора, основана на выводах из реальных кейсов бизнеса. Каждая глава рассказывает про свой тип сотрудников.
  • Деннис Шервуд, «Системное мышление для руководителей: Практика решения бизнес-проблем». Книга о работе бизнеса в целом и о связях между всеми элементами этой цепочки. О системном мышлении и системном подходе к совершенствованию бизнес-моделей.
  • Бен Хоровиц, «Мы – то, что мы делаем». Рассказы о корпоративной культуре на ярких примерах.
  • Фонс Тромпенаарс и Пит Хэйн Кеберг, «100 ключевых моделей и концепций управления».
С самого начала моей карьеры, каждый раз после прочтения книг/курсов я старался сделать выжимку из материала и поделиться новым с людьми, которые меня окружали. Я понимал, что получаю многократный профит: растут мои технические знания, растет уровень окружающей меня команды, растут навыки общения, растет авторитет у других сотрудников.
Василий Семенов, руководитель направления разработки ЦК SAP.

Ресурсное планирование и экспертиза вместо написания кода

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

Еще одна важная проблема – ресурсное управление. Вы всегда должны понимать, кто и чем занят, когда освободится и на что способен тот или иной специалист. Эта проблема часто решается не за один год: упорядочить потоки задач, выработать унифицированный список требований, объяснить постановщикам важность ТЗ, настроить работоспособное планирование – все требует времени и неоднократного повторения.

Контроль эмоционального состояния коллектива

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

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

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

Управление общими процессами и формирование единого вектора развития

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

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

Борьба с профессиональным выгоранием


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

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

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

Будь открытым и честным перед собой и своими сотрудниками. И тогда они тебя выручат в трудный момент.
Василий Семенов, руководитель направления разработки ЦК SAP.

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

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

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


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

***

Образовательная платформа Skillbox проводит набор на курс «Профессия TeamLead». За 6 месяцев действующие тимлиды российских технологических компаний дадут слушателям необходимые для успешной карьеры теоретические знания и практические навыки. Вы поймете, чем команда разработки отличается от других команд, как ее развивать и оценивать, а также какие soft skills нужны современному тимлиду и как быстро их развить.

02
Июл
2021

🍏 Путь в профессию: интервью с iOS-разработчиком Кевином Ренскерсом

Создание приложений для iOS – одно из самых перспективных направлений в IT. Наш корреспондент пообщался с программистом-фрилансером из Голландии, который трудится в этой сфере уже 11 лет. Он рассказал о своем пути в iOS, Swift и SwiftUI, а также о будущем iOS-разработки.

– Как вы пришли к разработке приложений для iOS?

В 2009 году я начал работать в местной компании в качестве программиста на Python. Мы создавали веб-сайты для крупных компаний, используя Plone и Django. В 2010 году некоторые клиенты начали просить приложения для iPhone, и это стало началом моей карьеры разработчика iOS: мне платили за то, чтобы научиться создавать эти приложения.

К тому времени у меня уже был десятилетний опыт работы в программировании. Я начал в 2000 году создавать веб-сайты с помощью HTML и Flash, в 2001 году занялся PHP и JavaScript, а в 2009 году перешел на Python.


– Вы занялись разработкой для iOS в 2010 году. Что изменилось сейчас?

Почти все. Когда я начинал, мы не только все еще использовали Objective-C (который мне действительно очень нравился), но даже ARC еще не существовало. Xcode еще не был интегрированным инструментом, Interface Builder был отдельным приложением, поэтому вы могли открывать обе программы одновременно. Это было очень мило.


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

– 11 лет – большой срок. Чему вам пришлось научиться за это время?

Очевидно, мне сначала нужно было изучить Objective-C, UIKit, Foundation и другие фреймворки. Позже мне пришлось изучить Swift, функциональное программирование, реактивное программирование, а также все новые фреймворки и API, которые Apple представила за эти годы. MVC, MVVM, координаторы, составная архитектура – обучение никогда не прекращается!

Однако написание приложений для iOS сильно отличается от написания веб-приложения, поэтому освоение правильных шаблонов, таких как делегаты и способы работы с (фоновыми) потоками, было своего рода кривой обучения.

– В 2010 году Apple была не такой огромной корпорацией. Почему вы выбрали разработку под iOS?

Я бы не сказал, что они не были крупной компанией в 2010 году. Конечно, сейчас они огромны, но iPhone стал хитом с самого первого выпуска. В любом случае меня не волновал размер, я просто знал с первых же слухов о телефоне Apple, что он будет отличным. Когда Джобс представил iPhone, я был влюблен и знал, что мне нужен именно такой. Требовалось, чтобы iPhone 3GS был доступен в Нидерландах.

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


Что вы думаете о Swift и SwiftUI? Хотите что-то в них изменить?

Обожаю Свифт! Я дождался Swift 3, пока не начал его использовать. Я работал над большими сложными приложениями Objective-C, мне очень нравился Objective-C, поэтому я дождался подходящего момента для перехода. Этот момент наступил в декабре 2016 года: я только начал работать фрилансером и начал новый проект с нуля, поэтому в тот момент Swift казался очевидным выбором.

SwiftUI, с другой стороны… Мне нравится его концепция, я бы хотел иметь возможность использовать его, но он еще не готов. Я создал побочный проект средней сложности с использованием SwiftUI 1, когда он был только что выпущен, и хотя мне понравилось первоначальное повышение производительности, это быстро превратилось в раздражение, так как я потратил слишком много времени, работая над ошибками и сбоями в самом SwiftUI. Легкие вещи стали действительно легкими, а сложные – невозможными. Я отказался от этого побочного проекта.

Я действительно надеюсь, что SwiftUI стал лучше с iOS 15, но если вы не пишете приложение только для iOS 15+, это не имеет значения. На самом деле я не думаю, что буду использовать SwiftUI для производства в ближайшие 2 или 3 года.

Я бы хотел изменить то, чтобы изменения Swift и SwiftUI можно было использовать со старыми версиями iOS. Например, новая поддержка async/await в Swift действительно потрясающая. Но… только для iOS 15+. Я бы хотел, чтобы Apple нашла способ удалить такие зависимости из самой базовой ОС, чтобы отдельные фреймворки могли обновляться без полного обновления ОС. То же самое и с такими приложениями, как Mail, Weather, Notes и т. д. Почему они являются частью самой iOS? Если бы они были в App Store, как и любое другое приложение, их можно было бы обновлять чаще и с меньшими проблемами.

– Какие ресурсы вы используете для работы и обучения?

– Были у вас ошибки, и что бы вы посоветовали ребятам из России, которые только начинают осваивать профессию?

На самом деле это не ошибка, но мне бы хотелось, чтобы я вскочил на подножку FRP немного раньше. Мне никогда не нравился RxSwift (или ReactiveCocoa во времена Obj-C), он никогда не работал до тех пор, пока я не начал использовать ReactiveKit и Bond еще в 2019 году. Теперь я использую Combine во всех своих приложениях с 2020 года, и не могу представить, что вернусь к старому способу создания приложений.

Если вы только начинаете разработку iOS, совет номер один – не перегружаться всеми вариантами архитектуры и не пытаться делать все идеально с самого начала. Просто используйте MVC, не волнуйтесь, получите ли вы в итоге массивные контроллеры представления или нет. Используйте раскадровку с переходами, если они вам нравятся, даже не думайте пока о координаторах. Забудьте о комбинированном и реактивном функциональном программировании.

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

– Какое будущее у iOS-разработки?

SwiftUI и async/await. Жаль, что будущее реальных приложений, где вы должны поддерживать старые версии iOS – это буквально несколько лет.

– Чем вы занимаетесь сейчас и какие у вас планы?

Я занимаюсь проектом для клиента, в котором также работаю над приложением iOS и серверным кодом. Планирую продолжать получать удовольствие как разработчик-фрилансер, принимая проекты, которые меня интересуют.

Мне почти 40 лет, и я не знаю, как долго захочу оставаться разработчиком или фрилансером. Так что со временем я, возможно, захочу больше сосредоточиться на том, чтобы быть наставником, чем мне действительно нравится заниматься сейчас несколько часов в неделю. Посмотрим 🙂
***

Если вы хотите получить необходимые знания в структурированном виде и без лишней воды, стоит обратить внимание на курс Факультета iOS-разработки образовательной онлайн-платформы GeekBrains. За 12 месяцев вы освоите два языка программирования и современные технологии создания приложений, научитесь писать чистый код и реализуете несколько проектов для портфолио. Обучение будут курировать эксперты-практики, а после защиты финального проекта студентам выдадут электронные сертификаты и дипломы о профессиональной переподготовке. HR-специалисты GeekBrains помогут выпускникам с трудоустройством.

23
Июн
2021

🗣️ Путь в профессию: интервью с бизнес-аналитиками

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

Кирилл Рябков, руководитель отдела аналитики ПАО «Северсталь»

О рабочем бэкграунде

Основное образование я получил по специальности «Менеджмент качества» в Московском Государственном Институте Электронной Техники (ТУ).

Первый рабочий опыт был связан с основной специальностью. Занимался внедрением и поддержанием системы менеджмента качества (ISO 9000) в организации, осуществляющей услуги лингвистического перевода.

Работа состояла в оптимизации бизнес-процессов. Там же я увлекся и автоматизацией бизнес-процессов (внедрением информационных систем). Это увлечение определило мою дальнейшую судьбу в бизнес-анализе.

Профессии бизнес-аналитика и системного аналитика: в чем отличия?

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

Основная задача бизнес-аналитика – проработка бизнес-требований на предмет их влияния на сам бизнес.

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

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

Обязанности и основные задачи бизнес-аналитика

Из обязанностей и основных рабочих задач бизнес-аналитика могу выделить следующие:

  • выявление, сбор, систематизация требований;
  • анализ проблем заказчиков, их потребностей и их связь с предлагаемым решением;
  • анализ и моделирование бизнес-процессов;
  • выявление влияния изменения на смежные подразделения (участников процессов);
  • определение объема изменений и организация оценки их стоимости;
  • поддержка внедрения изменений.

Основные требования, которые предъявляют к специалистам работодатели

Основные требования к соискателям на позицию бизнес-аналитика выглядят примерно так:

  • опыт работы в роли бизнес-аналитика;
  • опыт расчетов бизнес-кейсов;
  • высокие коммуникативные навыки;
  • опыт проведения презентаций перед заказчиками;
  • владение инструментарием бизнес-анализа;
  • знание современных технологий построения информационных систем;
  • высшее образование (техническое, экономическое, менеджмент).

Типичный рабочий день бизнес-аналитика

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

  • встречи с заказчиками (сбор требований);
  • встречи с владельцами/участниками процессов (описание бизнес-процессов);
  • проведение встречи по согласованию бизнес-процессов;
  • отправка, получение и обработка запросов на экспертизу влияния от ответственных за функции лиц;
  • формирование презентации для защиты инициативы;
  • уточнение информации у ответственных лиц (телефон/мессенджеры);
  • отрисовка бизнес-процесса;
  • написание регламента.

Стек технологий


Стек технологий, необходимый для работы бизнес-аналитика, минимален:

На мой взгляд, технологии в бизнес-анализе имеют меньшее значение, чем умение коммуницировать с людьми и системное мышление. Кроме указанных выше технологий, могу выделить системы Process Mining (глубинный анализ процессов).

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

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

Как и где лучше получить знания?

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

Рекомендую:

  1. Изучать стандарт BABOK – это свод знаний по бизнес-аналитике от Международного института бизнес-анализа IIBA (хотя без практики и минимальных знаний будет сложно, но это уже достаточно важный первый шаг к развитию в профессии).
  2. Курсы по процессному подходу (это основа для любого бизнес-аналитика).
  3. Авторский курс Андрея Коптелова по управлению бизнес-процессами.
  4. Книга «Процессный подход к управлению», В. Репин, В. Елиферов.

Диана Саввова, IT бизнес-аналитик компании DataArt

О рабочем бэкграунде

Я училась в Одесском Национальном экономическом Университете по специальности «Экономическая кибернетика».

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

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

Профессии бизнес-аналитика и системного аналитика: в чем отличия?

Системному аналитику важно углубиться в реализацию (особенно актуально для проектов по системной интеграции), а бизнес-аналитик остается на уровне взаимодействия с бизнесом, смыслом и пользой программного продукта. Бизнес-аналитику необходимо разобраться в потребностях бизнеса и перевести их в требования к программному обеспечению.

Разделение этих двух профессий скорее зависит от проекта, и того, насколько бизнес-аналитик готов погружаться в технические детали.

Обязанности, навыки и основные задачи бизнес-аналитика

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

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

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

Если рассматривать классическое деление навыков специалистов на hard skills и soft skills, то в качестве soft skills важно: знание иностранного языка, умение кратко формулировать мысли и аналитическое мышление.

В качестве hard skills: знание методологии управления требованиями к программному обеспечению, прототипирование, умение работать с диаграммами, иногда использовать SQL.

Типичный рабочий день бизнес-аналитика

Условно мой рабочий день выглядит так (чаще всего это все-таки мультизадачная работа):

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

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

Стек технологий

Чаще всего я использую в работе такие инструменты: Confluence, Jira, Figma, Gliffy, Microsoft Teams. Для бизнес-аналитика не так принципиально использовать различные технологии, иногда достаточно Microsoft Word и телефона.

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

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

Начинающие специалисты должны быть готовы к работе в команде, работе с возражениями и конфликтами, развивать свои коммуникативные навыки и уметь докапываться до сути проблемы, вместо «делать только то, что говорят».

Как и где лучше получить знания?

Советую начать свое развитие в бизнес-анализе с чтения литературы, такой как «Разработка требований к программному обеспечению» Вигерса К. и Битти Дж. и BABOK (Guide to the Business Analysis Body of Knowledge).


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

Выводы

Если вас заинтересовала профессия, можно получить знания самостоятельно с помощью упомянутых героями статьи материалов. Другой способ – пройти курс «Профессия Бизнес-аналитик» образовательной онлайн-платформы Skillbox.

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

***

Под руководством экспертов-практиков вы изучите системный и бизнес-анализ, чтобы помогать компаниям принимать стратегические решения и увеличивать прибыль, став связующим звеном между заказчиком и командой разработки. Успешно завершившие курс студенты получат диплом и смогут добавить в портфолио три выполненных проекта. Специалисты Skillbox из «Центра карьеры» помогут выпускникам получить первую стажировку и оффер от одной из компаний-партнеров.

16
Июн
2021

∞ Путь в профессию: интервью с инженером DevOps

Библиотека программиста продолжает серию интервью с представителями IT-индустрии. Наш корреспондент побеседовала с Алексеем Шараповым, Head of DevOps компании «ЦРПТ». Он рассказал о своем пути в отрасли, какие требования к кандидатам предъявляют работодатели и стоит ли считать DevOps профессией или только ролью.

Библиотека программиста: Добрый день, Алексей! Расскажите, пожалуйста, для начала о своем бэкграунде. Где учились, работали, прежде чем стать инженером DevOps?

Алексей Шарапов: Учился в Ярославском Государственном Техническом Университете по специальности «Органическая химия», но вскоре понял, что больше люблю разработку и все, что с ней связано.

Еще в университете я, читая разные статьи, наткнулся на самые первые упоминания DevOps. Это был примерно 2013 год, статья Барух Садогурского, которая меня невероятно впечатлила. Тогда было абсолютно непонятно что такое DevOps, кроме того, что этим занимаются парни, которые погружены в администрирование и разработку с одинаковой интенсивностью. Мне понравилось, загорелся идеей и решил для себя, что буду заниматься именно DevOps.

После окончания университета работал сначала на «Почте России», позже в небольшой компании фармацевтического завода, а разработкой занимался на фрилансе, искал клиентов на бирже Upwork. Со временем попал в «СберТех» в первую волну DevOps и закрутилось.

Б.П.: С чего начался ваш путь в профессию, почему решили уйти именно в DevOps?

А.Ш.: Мой путь в профессии начался с двух направлений параллельно. На основной работе я занимался администрированием парка серверов и в это же время разрабатывал сайты на фрилансе. После этого более глубоко погрузился в администрирование, Linux сервера. При этом разработку не бросал никогда, делал простые задачи, изучал Java и даже брался за задачи по разработке наравне с коллегами. Также проходил курсы по разработке на Java для более глубокого погружения, курсы по PHP и JavaScript, так как хотелось больше узнать о программировании изнутри.

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

Б.П.: Дайте свое определение DevOps.

А.Ш.: DevOps – это практики, направленные на взаимодействие между отделом разработки и отделом Ops, которые помогают быстрее поставлять продукт с меньшим количеством ошибок и проблем.

Б.П.: По вашему мнению, DevOps – это профессия или часть обязанностей?

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

Б.П.: Опишите основные требования, которые предъявляют к специалистам разных уровней работодатели.

А.Ш.: Требования к специалистам с одной стороны растут, даже к джуниорам. С другой стороны – нехватка хороших инженеров DevOps позволяет на некоторые вещи закрыть глаза.

На данный момент я определяю требования к специалистам разных уровней следующим образом:

  1. Junior – это базовые знания Linux-администрирования, базовые знания одного-двух языков программирования, для старта этого бывает достаточно;
  2. Middle – к требованиями выше добавляются знания базовых инструментов контейнеризации, оркестрации, систем сборок, понимания принципов построения CI/CD процессов;
  3. Senior – ко всему прочему добавляется широкий бэкграунд в разных технологиях, а также умение правильно построить процесс и дать грамотную оценку задачи. Немаловажным является умение наладить контакт с коллегами. У специалиста, который будет в роли прокси-сервера между отделами, так называемые софт скиллз должны быть на высоте.

Б.П.: Опишите ваш типичный рабочий день.

А.Ш.: Типичный день обозначить очень сложно, так как каждый приносит что-то новое и интересное.

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

Б.П.: Какой стек технологий вы используете в работе?


А.Ш.: Стек технологий, который я использую в работе, достаточно широк. Это и K8S для запуска сервисов, GitLab CI для процессов CI (непрерывной интеграции), Ansible в связке с Python – для автоматизации всего.

Вокруг этих инструментов сосредоточен еще очень большой набор технологий. Например, Helmfile для накаток на разные среды, Argo CD в других проектах, иногда приходится писать на Go (например для экспортеров), где-то копаться в Java.

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

А.Ш.: Я бы выделил K8S, сейчас без него никуда. А также весь около K8S стек технологий. Это и Helm и GitOps-инструменты. Ну и облачные платформы – AWS и GCD идут впереди планеты всей и позволяют делать невероятные вещи.

Б.П.: К каким трудностям в профессии специалист DevOps должен быть готовым?

А.Ш.: Первое, что я выделил бы – понимание того, что коммуникации будут составлять достаточно большую часть вашей работы. Второе – вы должны всегда успевать за стеком разработчиков, за их изменениями и нововведениями. Ну и третье – отслеживать, что нового в индустрии, а новостей всегда много: K8S без Docker, Ansible без модулей и все в этом духе. Высокий темп в этой области превосходит многие другие.

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

Б.П.: Сколько лет вам понадобилось, чтоб вырасти до уровня senior? Что больше всего повлияло на ваш рост, как специалиста?

А.Ш.: До senior я морально вырос спустя семь лет с начала работы. Сейчас я лид направления DevOps в компании, руковожу лидами DevOps в группах разработки, но не бросаю и работу руками. Работаю с командами разработки, эксплуатации. Стараюсь уделять внимание и той и другой стороне.

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

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

А.Ш.: В первую очередь, важен реальный опыт. Будь я на месте новичка в сфере – общался и советовался бы с опытными коллегами и не гнушался бы любой работы, которая будет развивать меня как специалиста.

Самая моя любимая книга для новичков – «Unix и Linux: руководство системного администратора», Немет Эви, Снайдер Гарт.


Полезно смотреть видеозаписи крупных российских и зарубежных конференций, таких как DevOpsConf, KubeCon, DockerCon.

Из ресурсов я читаю в основном блоги на официальных сайтах Docker, K8S, Red Hat, ну и Хабр, он до сих пор несет много полезной информации.

Выводы

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


***

Если вы находитесь только в начале пути, стоит обратить внимание на курс Факультета DevOps образовательной онлайн-платформы GeekBrains. Эксперты-практики из ведущих российских технологических компаний научат вас использовать методологии Agile и Scrum, оптимизировать CI/CD и работать с облачными технологиями. Курс подойдет как новичкам в IT, так и опытным специалистам, которые хотят сменить направление.

За 18 месяцев обучения вы освоите актуальную программу по DevOps, решите шесть проектных задач и создадите итоговую работу с сокурсниками, а также изучите основы Python и облачных технологий, работу с сервисами Linux и Kubernetes.

Успешно окончившим курс студентам HR-специалисты GeekBrains помогут создать резюме и предложат вакансии. Гарантия трудоустройства закреплена в договоре.

14
Июн
2021

🗣️ Путь в профессию: интервью с бизнес-аналитиками

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

Кирилл Рябков, руководитель отдела аналитики ПАО «Северсталь»

О рабочем бэкграунде

Основное образование я получил по специальности «Менеджмент качества» в Московском Государственном Институте Электронной Техники (ТУ).

Первый рабочий опыт был связан с основной специальностью. Занимался внедрением и поддержанием системы менеджмента качества (ISO 9000) в организации, осуществляющей услуги лингвистического перевода.

Работа состояла в оптимизации бизнес-процессов. Там же я увлекся и автоматизацией бизнес-процессов (внедрением информационных систем). Это увлечение определило мою дальнейшую судьбу в бизнес-анализе.

Профессии бизнес-аналитика и системного аналитика: в чем отличия?

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

Основная задача бизнес-аналитика – проработка бизнес-требований на предмет их влияния на сам бизнес.

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

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

Обязанности и основные задачи бизнес-аналитика

Из обязанностей и основных рабочих задач бизнес-аналитика могу выделить следующие:

  • выявление, сбор, систематизация требований;
  • анализ проблем заказчиков, их потребностей и их связь с предлагаемым решением;
  • анализ и моделирование бизнес-процессов;
  • выявление влияния изменения на смежные подразделения (участников процессов);
  • определение объема изменений и организация оценки их стоимости;
  • поддержка внедрения изменений.

Основные требования, которые предъявляют к специалистам работодатели

Основные требования к соискателям на позицию бизнес-аналитика выглядят примерно так:

  • опыт работы в роли бизнес-аналитика;
  • опыт расчетов бизнес-кейсов;
  • высокие коммуникативные навыки;
  • опыт проведения презентаций перед заказчиками;
  • владение инструментарием бизнес-анализа;
  • знание современных технологий построения информационных систем;
  • высшее образование (техническое, экономическое, менеджмент).

Типичный рабочий день бизнес-аналитика

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

  • встречи с заказчиками (сбор требований);
  • встречи с владельцами/участниками процессов (описание бизнес-процессов);
  • проведение встречи по согласованию бизнес-процессов;
  • отправка, получение и обработка запросов на экспертизу влияния от ответственных за функции лиц;
  • формирование презентации для защиты инициативы;
  • уточнение информации у ответственных лиц (телефон/мессенджеры);
  • отрисовка бизнес-процесса;
  • написание регламента.

Стек технологий


Стек технологий, необходимый для работы бизнес-аналитика, минимален:

На мой взгляд, технологии в бизнес-анализе имеют меньшее значение, чем умение коммуницировать с людьми и системное мышление. Кроме указанных выше технологий, могу выделить системы Process Mining (глубинный анализ процессов).

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

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

Как и где лучше получить знания?

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

Рекомендую:

  1. Изучать стандарт BABOK – это свод знаний по бизнес-аналитике от Международного института бизнес-анализа IIBA (хотя без практики и минимальных знаний будет сложно, но это уже достаточно важный первый шаг к развитию в профессии).
  2. Курсы по процессному подходу (это основа для любого бизнес-аналитика).
  3. Авторский курс Андрея Коптелова по управлению бизнес-процессами.
  4. Книга «Процессный подход к управлению», В. Репин, В. Елиферов.

Диана Саввова, IT бизнес-аналитик компании DataArt

О рабочем бэкграунде

Я училась в Одесском Национальном экономическом Университете по специальности «Экономическая кибернетика».

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

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

Профессии бизнес-аналитика и системного аналитика: в чем отличия?

Системному аналитику важно углубиться в реализацию (особенно актуально для проектов по системной интеграции), а бизнес-аналитик остается на уровне взаимодействия с бизнесом, смыслом и пользой программного продукта. Бизнес-аналитику необходимо разобраться в потребностях бизнеса и перевести их в требования к программному обеспечению.

Разделение этих двух профессий скорее зависит от проекта, и того, насколько бизнес-аналитик готов погружаться в технические детали.

Обязанности, навыки и основные задачи бизнес-аналитика

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

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

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

Если рассматривать классическое деление навыков специалистов на hard skills и soft skills, то в качестве soft skills важно: знание иностранного языка, умение кратко формулировать мысли и аналитическое мышление.

В качестве hard skills: знание методологии управления требованиями к программному обеспечению, прототипирование, умение работать с диаграммами, иногда использовать SQL.

Типичный рабочий день бизнес-аналитика

Условно мой рабочий день выглядит так (чаще всего это все-таки мультизадачная работа):

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

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

Стек технологий

Чаще всего я использую в работе такие инструменты: Confluence, Jira, Figma, Gliffy, Microsoft Teams. Для бизнес-аналитика не так принципиально использовать различные технологии, иногда достаточно Microsoft Word и телефона.

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

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

Начинающие специалисты должны быть готовы к работе в команде, работе с возражениями и конфликтами, развивать свои коммуникативные навыки и уметь докапываться до сути проблемы, вместо «делать только то, что говорят».

Как и где лучше получить знания?

Советую начать свое развитие в бизнес-анализе с чтения литературы, такой как «Разработка требований к программному обеспечению» Вигерса К. и Битти Дж. и BABOK (Guide to the Business Analysis Body of Knowledge).


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

Выводы

Если вас заинтересовала профессия, можно получить знания самостоятельно с помощью упомянутых героями статьи материалов. Другой способ – пройти курс Факультета системной и бизнес-аналитики образовательной онлайн-платформы GeekBrains.

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

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

***

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

11
Июн
2021

🗣 «Я даже не видел себя разработчиком, это было просто хобби»

Александр – разработчик на Ruby c семилетним стажем. Он рассказал нашему корреспонденту, какие сложности встречаются в карьере программиста, можно ли стать профессионалом без высшего образования и какие мифы о Ruby – просто мифы.

  • Здравствуйте, Александр! Расскажите о себе.
  • Мне 28 лет. Закончил 11 классов и 1 курс физфака СПБГУ, потом бросил. Живу в Петербурге. Программирование изучал самостоятельно: в школе участвовал в олимпиадах по С++, а потом уже на работе учил.

  • С университетом история довольно простая, выбрал физический факультет, потому что в школе был хороший учитель физики. Выяснил в начале обучения, что физика мне не настолько интересна, насколько я думал, и я стал прогуливать пары.
  • Почему не перевелись на программирование?
  • Как ни странно, программирование тоже не особо интересно, если учится этому в вузе. Один из больших минусов вуза – программа для всех одна. В итоге первый курс для меня разделился на то, что я уже знаю, и то, что мне скучно. В любом случае, когда я начал получать какие то деньги, даже мысли продолжать учебу уже не было.
  • Как получилось, что вы стали Ruby-программистом?
  • Если говорить о выборе, я изначально изучал очень много языков, от Lisp до C++. Все это было последовательно. Когда я изучал Ruby и прогуливал универ, мы как то сидели с другом в кафе, пили чай и наш общий знакомый пришел с историей. Он написал биржевого бота для торговой площадки steam и начал зарабатывать на нем какие-то деньги. Я предложил бесплатно переписать его проект на Ruby, потому что это была интересная практика. История закончилась тем, что у меня был практический опыт разработки около года. Наш «стартап» закончился, когда владельцы Steam закрыли удобные пути вывода средств с биржи, и я пошел искать работу. На резюме с практическим опытом в Ruby отреагировали моментально.
Тогда я особо не задумывался, стоит изучать язык или нет, я изучал языки в очень бодром темпе и так совпало, что история с Ruby закончилась трудоустройством. Хотя я даже не видел себя разработчиком, это было просто хобби.

  • У вас не было проблем при трудоустройстве? Никто из-за корочки не отказывал?
  • У меня есть резюме, где написано, что диплома нет. Если у работодателя в требованиях ВО, то тоже первым не пишу. Даже не знаю, много ли потерял. В высшее образование для прикладного айти я в принципе не особо верю: это в основном нужно теоретикам. Если мне предложат на выбор человека с ВО без стажа и человека без ВО, но со стажем 1 год, я выберу второго.
  • При этом понятно, что опытные программисты математику все равно так или иначе знают, просто теоретикам надо из теории графов знать кучу всего, а практикам определение и какие алгоритмы для работы существуют.
  • Многие пишут, что Ruby не очень популярен в России, разве что для стартапов и релокаций. Это правда?
  • По поводу популярности языка в России – это немного миф, на рынке очень сильный дефицит кадров, в основном джунов и сеньоров. При том что самих вакансий немного, найти работу достаточно легко.
  • Можете сказать, какие скиллы нужны для разработчика на Ruby для джуна, мидла и сеньора?
  • Я бы предпочел сослаться на общепринятые определения. У Ruby нет особой специфики. Джун делает задачи под руководством, мидл может работать самостоятельно, сеньор руководит.
  • Сеньор обычно ставит задачи, но и мидлы могут заниматься постановкой задач. Руководство со стороны сеньора состоит в том, что он определяет, как именно будут сделаны задачи, что они должны затрагивать помимо бизнес скоупа и когда пора заниматься бэклогом. При совмещении с бизнес-процессом сеньор должен выступать скорее экспертом, который помогает тимлиду.
  • Разумеется, в реальности все совершенно не так, и даже джуны являются экспертами в каких то узких областях, а сеньору не стыдно попросить у кого-то помощи в его экспертной области – это просто общая схема. Есть еще стажеры/ньюби/новички. Джуны могут решать задачи любой сложности без руководства, но не очень хорошо. Стажеры все еще учатся этому.
Собственно, тут первое заблуждение с пониманием всего этого. Обычно стажер думает, что стал джуном, когда у него начинает получаться решать свои задачи самостоятельно, но ему пока не ставят очень сложных задач. Джун думает, что становится мидлом, когда ему начинают ставить сложные задачи, и он с ними справляется. Мидл думает, что стал сеньором, когда сеньоры перестают его обильно критиковать. Ну и обычно люди думают, что если они проводят ревью, то они уже сеньоры, хотя я считаю что даже джуны должны принимать участие.

  • У меня есть один знакомый, тоже рубист, кстати, он из стажера перепрыгнул сразу в CTO. Вера в себя есть, нормального понимания того, что нужно от CTO, у работодателя нет, в итоге получаем историю успеха. И в целом он справился. Как говорится, не можешь – научим.
  • Сеньор это должность. Ты можешь быть готов ее занимать, думать что готов ее занимать или ее занимать. Причем то, что ты ее занимаешь, не означает, что ты в принципе готов, но может быть и приятный сюрприз.
  • Сейчас вы на Ruby работаете? Говорят, будто там довольно высокий порог входа. Это правда?
  • В данный момент я уволился с работы (в январе), но продолжаю консультировать бывшую команду и прямо сейчас делаю довольно объемную задачу. Это сложно назвать увольнением даже. Планирую в ближайшее время начать что-то искать, но пока не обновлял резюме.
  • Про высокий порог входа это какой то миф. Я занимаюсь сейчас подготовкой кадров. На знакомство с языком для человека с определенным бэкграундом я отвожу две недели, дальше идет уже знакомство с какими то удобными инструментами и обучение общепринятым практикам. Если брать стажеров с базовым знанием языка, то до уровня джуна они поднимаются за 2 – 4 месяца работы.
  • Фактически вы сейчас занимаетесь обучением?
  • Скорее консалтингом. Обучение занимает у меня несколько часов в неделю. Правильнее даже не консалтинг, а расслабленный фриланс с единственным контрагентом.
  • Чему учите новеньких? Вы учите тех, кто уже что-то знает, или вообще нулевичков?
  • У меня было пока две группы: первая с неоконченным высшим, вторая – просто случайные люди. Совсем с нуля тяжело, плохо понимаю в чем у людей могут быть проблемы. Я познакомился с программированием лет в 8, у меня совершенно другой бэкграунд. Если мы про пару недель на изучение, то это про людей с каким то околоайтишным бэкграундом типа хороших оценок в школе на информатике.
  • Как вы пришли к тому, что стали учить?
  • Учить я начал, потому что мне просто нравится учить людей. Можно учить кого то в интернете жизни, а можно учеников руби. Можно просто помогать с домашкой одноклассникам, тоже обучение. Наверное, примерно в таком порядке и было: сначала чуть чуть помочь подруге с информатикой в школе, потом в универе. Случайно оказавшись в репетиторской тусовке, тоже взял учеников, которые учатся в той же школе и у того же преподавателя, а дальше все как то затихло. Два года назад начал учить сестру с подругами, одна из подруг в итоге работает вместе со мной.
Учить кого то в интернете жизни, кстати, до сих пор нравится больше, хоть и менее продуктивно 🙂

  • Над какими проектами вы работали? Какой из них был самым сложным и интересным?
  • Я работал над gettransfer.com, gettransport.com, wfolio.ru и еще некоторыми проектами. Это не мои проекты, в геттрансфере/транспорте я в принципе был линейным сотрудником. В wfolio.ru – уже сеньором.
Сложными обычно бывают задачи, а не проекты. Самая сложное – это, наверное, промо-акции, которые реагировали на события у пользователей и по каким то настраиваемым правилам выдавали вознаграждение. Но по субъективному ощущению, именно на этой задаче я рос из джуна в мидла.

  • На самом деле это была не одна задача, а много связанных, и не все из них делал я, но я занимался общим рефакторингом архитектуры и потом запиливал большую часть фич, так как кроме меня там мало кто мог разобраться. В целом я воспринимаю это скорее как провал, но я вынес из него много опыта на тему того, как не нужно делать. И было интересно.
  • Из того, с чем сейчас сталкиваюсь, самое сложное – это быстро вникнув в проблему другого человека, объяснить ему решение так, чтобы он мог самостоятельно найти в этом решении несостыковки. Очень мешает авторитет, особенно когда взаимодействуешь с джунами. Тут еще, вероятно, не очень хорошие процессы сказываются: я где-то год хочу попробовать design-review.
Если человек тратит на задачу несколько недель, а ты – пару часов, разумеется, ты не можешь придумать оптимальное решение какой то проблемы. Какой бы у тебя не был опыт, все равно он не переносится дословно.

  • Почему вы решили уйти?
  • Хочется роста, в идеале хочу найти работу, где меня будут учить управлению командой. В принципе, после того как я лучше познакомился с процессом руководства, меня это начало привлекать гораздо больше разработки. Ну и как минимум – разнообразие. Я почти 7 лет пишу код, от этого можно устать.
  • Почему на прежнем месте вы не стали делать карьеру тимлида? Не было возможности?
  • Во-первых, у нас небольшая команда и вряд ли там нужен будет второй тимлид в ближайшем будущем. Во-вторых, это в принципе не так удобно, как расти в большой команде, где тебя могут и научить и подстраховать более опытные лиды.
Говорить о росте сеньора до тимлида в принципе не очень корректно, так как это уже разные направления развития – тут скорее перепрофилирование. Конечно, у сеньора есть набор soft skills, который применим и при работе тимлидом, но на мой взгляд это довольно разные вещи. Сеньор – это эксперт, а тимлид занимается принятием решений. Это разные области.

***

Не все готовы изучать новое сами и покорять вершины так быстро, к тому же опытным специалистам тоже иногда требуется помощь. Идти по пути наименьшего сопротивления и учиться у лучших можно на факультете «Ruby on Rails» образовательной онлайн-платформы GeekBrains. Выпускники курсов получают диплом о профессиональной переподготовке, электронный сертификат и гарантию трудоустройства.

01
Июн
2021

🗣 Путь в Java, или Зачем нужен ментор: интервью

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

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

А.М.: Привет! Я сейчас занимаюсь разработкой middleware-сервисов одного крупного коммерческого банка России. В моих руках изменение всяких важных пользовательских данных вроде паспорта, номера телефона и кодового слова.

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

Б.П.: Не поделишься, о чем этот хобби-проект?

А.М.: Мы с женой хотим открыть зоогостиницу, в которой можно будет дистанционно следить и ухаживать за своим питомцем. Сам проект — полноценная CRM для управления бизнес-процессами в зоогостинице плюс интеграция с IoT-устройствами.

Б.П.: Какое у тебя образование? Как ты пришел в профессию?

А.М.: У меня высшее образование по специальности “Программная инженерия”, я получил диплом уже после того, как начал работать. В универе я лепил всякие поделки на С++ и Go, искал себя в разработке инди игр на UE и Unity.

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

Преподавал на курсах по С++ для школьников и студентов при универе, потому что единственное, что я умел это много разговаривать и чуть-чуть писать на плюсах. Но преподавание позволяло получать хоть какие-то деньги.

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

Б.П.: Почему ты выбрал Java? Как человек, который преподавал C++, не мог бы ты сравнить для новичков два этих языка?


А.М.: С++ суров, в нем не место мальчикам, только суровые бородатые мужчины. Java открыта всем и каждому, приятно улыбается каждому встречному и прощает отсутствие базы по Computer Science. Можно учиться многим вещам на практике, а потом уже узнавать о том, как же оно на самом деле работает внутри.

Я выбрал Java, потому что раньше у меня не было бороды 🙂 А если серьезно, то я не понимал как развиваться дальше и найти хорошую работу, пришлось прибегнуть к помощи хороших людей, но они обучали только Java.

Б.П.: Нас с тобой свели Java Mentor, так что если ты не против, давай немного поговорим о них. Ты учился на курсе по системе оплаты после трудоустройства. Не было ли каких-то опасений на этот счет, когда поступал?

А.М.: Конечно были опасения, формат оплаты после трудоустройства не то, что не пробовал никто из знакомых о нем даже никто не слышал пару лет назад. У JM еще не было так много отзывов, да и по сути я был в числе тех, на ком этот формат тестировали. Мои опасения развеял Герман, он чертовски убедительно умеет доносить свои мысли. Да и договор мне показался не самым страшным.

Б.П.: Сколько длились курсы и что ты на них изучал? Почему выбрал именно их?

А.М.: Призываю сюда сотрудника JM, который бы с праведным гневом бросился объяснять, что это не курсы. Это персональный менторинг. Я учился быть универсальным солдатом энтерпрайза: Java, Spring, SQL, Git, Agile. Достаточно глубоко, чтобы свободно плавать в теме и учиться самому при необходимости в будущем, но без копаний в недрах технологий и фреймворков, чтобы уложиться плюс-минус за полгода.

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

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

А.М.: В неделю учебе уделял точно больше 20 часов, даже ближе к 30, наверное. У меня нет проблем с мотивацией, даже наоборот. И самым сложным было успевать (и не забывать) справляться с ежедневными делами: работа, учеба, быт.

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

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

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

Б.П.: Чем закончилось обучение? Ты получил какой-то профит от курсов, кроме самих знаний? Может быть, с кем-то познакомился или приобрел какие-то другие навыки?

А.М.: Обучение закончилось логично — трудоустройством. Кроме технических знаний, я приобрел много знаний о рынке IT-вакансий, научился в нем ориентироваться и понимать, чего можно ждать от разных проектов, предметных областей и технологий.

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

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

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

Б.П.: Какие самые каверзные вопросы были на собеседованиях?

А.М.: С некоторых пор самые каверзные вопросы я сам задаю собеседующим. По большей части они касаются нюансов моей потенциальной работы на проекте. Что-то в духе: «Есть ли в команде свой саппорт, или мне придется самому с утра до ночи в логах с прода разбираться?»

Б.П.: Кстати, а если серьезно — на что стоит чаще обращать внимание Java-джуониром для подготовки к собеседованиям?

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

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


А.М.: Юридически договор не сложный, на мой взгляд. Условия такие же простые, как о них изначально заявляют: процент от зарплаты при работе в IT в течение двух лет после обучения и успешного трудоустройства. Я, честно, не представляю как доказать в рамках договора, что ты прошел n собеседований и тебя никуда не взяли, не знаю случалось ли такое с кем-то, но это единственный момент, который меня в нем на самом деле смущал.

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

Б.П.: Поговорим о языке. Java всё ещё топ? Что думаешь о Kotlin и других современных альтернативах?

А.М.: Последнее время люблю писать на Kotlin, но если честно признаться: я далек от Kotlin-евангелистов и не использую его мощь на полную. Для меня это просто немногословная, удобная обертка на Java с кучей простых и понятных фич, которые хотелось бы видеть в Java (но их нет ): ). Очень жду, когда в Java завезут nullable-типы, extension’ы и аргументы по умолчанию.

Б.П.: Что посоветуешь почитать начинающему Java-разработчику?

А.М.: Для совсем начинающих я бы порекомендовал Шилдта, в его книгах грамотно структурирована информация. Мне когда-то отдельные главы помогли разобраться с исключениями, коллекциями и многопоточностью. В частности ответить на вопрос «Зачем?», потому что «Как?» я уже знал.

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

Раджпут Динеш. Spring. Все паттерны проектирования
Раджпут Динеш. Spring. Все паттерны проектирования

Б.П.: Если бы ты начинал учиться программированию сейчас, какой бы язык выбрал?

А.М.: Я бы стал джаваскриптизером. Иногда душа просит что-то красивое сделать на фронте, но как только я начинаю писать, то компилятор в голове, обученный на С и Java, с отвращением сигнализирует об отсутствии типов и здравого смысла. На этом мои потуги обычно заканчиваются 😀

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

А.М.: В работе использую то, что приходится. Большие дяди, которые делают бизнес, не очень любят новаторские идеи. От проекта к проекту технологии, конечно, разные, но в основном все около стека Spring, Webflux, Postgre, Mongo, Kafka, Redis.Я поклонник АОП, но мне не дают внедрять его где попало (и правильно, хе-хе), поэтому развлекаюсь исключительно для себя. Надеюсь, скоро явлю миру удобный АОП-стартер для интеграционного тестирования.

Б.П.: Посоветуй что-нибудь новичкам в разработке. То, что поможет в обучении или просто чем хочется поделиться.

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

Б.П.: Напоследок, какие у тебя дальнейшие планы?

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

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

А.М.: И вам спасибо за внимание. Конечно не против, жду ваших вопросов.

02
Апр
2021

🗣 45 русскоязычных подкастов для программистов

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

16
Мар
2021

👨‍🔧️ «Диплом ради диплома или галочки никому не нужен»

Считается, будто профессию тестировщика освоить относительно несложно. На самом деле стать высококлассным инженером по Quality Assurance нелегко: Любовь Попова рассказала нашему корреспонденту, почему из программирования она решила уйти в Q…