Псевдоним Макс. Как учительница математики из России стала опасным хакером

image

В Facebook, в группе для директоров и топ-менеджеров фирм 1С:Франчайзи, подчас вспыхивают жаркие дискуссии о том, можно ли научить программиста (в данном случае программиста 1С) общаться с клиентом “напрямую”, да и нужно ли…

Постараемся досконально изучить вопрос…

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

В чём тут парадоксы?

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

  • Менеджер – продаёт программы и несложные услуги программистов и внедренцев
  • Внедренец – внедряет, обычно дело сводится к установкам и несложным доработкам
  • Сервис-инженер – сопровождает, делает типовые обновления
  • Аналитик (вариации: системный аналитик и бизнес-аналитик, отличия никто не знает, но называют эти должности отдельно) – анализирует бизнес-процессы клиента
  • Архитектор (такие же вариации: бизнес-архитектор, системный архитектор) – выстраивает “правильные” бизнес-процессы для клиентов
  • Программист – пишет код по заданию менеджера, внедренца, аналитиков или архитекторов
  • Консультант – только консультирует по типовым решениям

Парадокс #1 Откуда взять всех этих людей, когда средняя фирма-франчайзи состоит из всего 10 человек?

Парадокс #2 Большинства из названных специальностей не существуют. Где брать таких специалистов?

Теперь немного об отличиях платформ.

Если говорить, например, о языках программирования C#, или Python, или JavaScript, то тут ещё с натяжкой можно сказать, что не во всех случаях нужно общаться с клиентом. Ведь это универсальные языки программирования, в отличие от 1С.

1С:Предприятие – это платформа для написания бизнес-приложений, которая автоматизирует такие области учёта, как финансы, бухучёт, склад, торговлю, расчёт зарплаты, и так далее. И это огромное отличие от других платформ.

В чём же оно?

  1. Программисты пишут конфигурации, которые используют непосредственные пользователи. Как правило, в 1С:Франчайзи отсутствуют дизайнеры интерфейсов, которые переводят доступный только для понимания программиста код в понятную пользователю визуализацию. Значит программисту полезно видеть, как работают пользователи.
  2. Если не разбираться в бизнес-процессах клиента, программист 1С будет подобен слепому кроту, который слепо что-то программирует, не понимая, как этим будут пользоваться. Понимание бизнес-процессов – необходимое качество программиста 1С. А лучше бы это видеть “вживую”: лучше один раз увидеть, чем 100 раз услышать.
  3. Чаще всего задача программиста 1С – решать проблемы заказчиков по доработке и внедрению каких-то дополнительных функций. Если не общаться с конечными пользователями, то приходится выслушивать их через посредников типа бизнес-аналитиков. Информация искажается и процесс затягивается.

Парадокс #3 Что делает программист 1С, не понимающий клиента? Что он программирует?

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

А вот как… Всё просто…

Парадокс #5 Большинство директоров 1С:Франчайзи – “универсальные бойцы“, сочетающие несколько указанных должностей, но при этом они отрицают существование таковых… Как так-то?

Как говорится: “Занавес…”

А точнее – антракт. Продолжим…

Что делают фирмы 1С:Франчайзи? Можно сказать одним словом: внедряют. Внедряют бизнес-приложения на платформе 1С. Поэтому назовём нашего “универсального бойца” “Внедренец 1С“. Эта должность шире, чем описана выше. и вмещает в себя практически все перечисленные выше должности. Это тот самый “универсальный боец”, о котором мечтают все 1С:Франчайзи, но почему-то не могут найти.

Сперва разберемся, кто он и что умеет, а главное – какой внедренец самый эффективный…

Только ли знание программирования важно?

К сожалению, программирование настолько быстро меняется, что знание определенного языка программирования сложно назвать фундаментальным. Когда-то программировали на Ассемблере и Фортране. Где сейчас эти языки? Программирование с каждым годом претерпевает настолько стремительные изменения, что неровён час – когда-нибудь это будут делать роботы.

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

К чему это я? Программирование знать не нужно? Конечно это не так… Еще как нужно… Но, помимо этого, нужно знать и уметь ещё очень многое…

“Внедренец – это и руководитель проекта, и архитектор, и бизнес-аналитик, и консультант, и сисадмин и программист. О таком семиглавом драконе мечтают и заказчики, и директора франчайзи. Он всем нужен, в легендах он существует, но в живую его никто не видел. ” Рустэм Валеев, директор “Софт-портал”

“Внедренец – это бизнес-аналитик, который знает продукт. Он может собрать информацию по процессам предприятия, проконсультировать по оптимизации этих процессов (не всегда и не обязательно), переложить эти процессы на продукт (мое мнение – не важно 1С это будет или любой другой) и расписать план и стратегию запуска.” Артём Боровлёв, директор “Быстрые решения”

“Внедренец – это программист, который хорошо знает методологическую часть того раздела, который он автоматизирует. Он самоорганизован, но это не РП.” Станислав Дубинский, директор УльтраЮнион

Мой опыт. В “1С-Архитекторе бизнеса” у меня был большой отдел. Около 50 человек. Я всех называл внедренцами. Конечно, это не означало, что все умели всё. Один специализировался на зарплате, второй – на типовых 1С:Бухгалтериях, третий – программист, преимущественно по оперативному учёту, четвертый превосходно знает отрасль “Страхование”. Разделение по компетенциям, конечно, было. Но изначально я всех учил примерно одинаково. И все они общались с клиентами. Все! Многие из них сейчас занимают очень серьезные должности, многие открыли свои 1С:Франчайзи, а некоторые “старички”ещё работают в 1АБ внедренцами. И знаете, кто больше всех приносил пользы компании, а следовательно и себе? Не те, кто хорошо программировал. Самыми эффективными были те, кто умел понять клиента.

Что должен уметь внедренец?

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

Я бы поделил все навыки на “Жёсткие” и “мягкие” – Hard Skills и Soft Skills.

Программист, обладающий этими навыками, становится внедренцем.

image

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

Hard-skills вредренца 1С:

  • Конфигурирование и программирование 1С:Предприятие. На эту тему много различных курсов, даже в рамках учебных программ вузов и колледжей IT специальностей (правда не во всех учебных заведениях).
  • Основы бухучёта. Тоже много курсов, и даже есть в учебных программах, однако уже для других специальностей – для бухгалтеров и аудиторов.
  • Работа в 1С:Бухгалтерии 8. Аналогично предыдущему пункту. Курсы есть, в рамках учебных заведений учат, но далеко не везде и не всегда с надлежащим качеством.
  • Знание учёта разных видов в разных отраслях. Самостоятельное изучение и информация из разных источников в интернете. Помощь наставников.
  • Знание возможностей типовых решений 1С. Самостоятельное изучение и информация из разных источников в интернете. Помощь наставников.
  • Умение переносить данные, обмены данных. Самостоятельное изучение и информация из разных источников в интернете. Помощь наставников.
  • Умение устанавливать, обновлять, апгрейдить ПО 1С. Самостоятельное изучение и информация из разных источников в интернете. Помощь наставников.
  • Знание процесса типового внедрения и сопровождения ПО 1С. Обычно помощь наставников.

Soft-skills вредренца 1С:

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

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

Так допускать ли программиста к клиенту?

Какой стереотип программиста сложился у большинства…

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

Такие стереотипы возникли потому, что программист мыслит системно, алгоритмами (никто не задумывался, что алгоритмы в 1С – и есть бизнес-процессы?). Многие его просто не понимают: “слишком умный”. Поэтому программист и не считает нужным тратить время на пустой трёп и выходить “из своей норки” в брэндовой одежде. Ну а если он такой умный, то почему считается, что он не может разобраться во многом?

Не кажется ли вам, что ему можно и нужно прививать нужные нам навыки?

Кто-то пробовал это делать?

Я – пробовал. В “1С:Архитекотре бизнеса” учил сам и вырабатывал систему. В “Первом БИТе” система уже была запущена и работает поныне. Все “новички” проходят “поточный курс” внедренца.

Когда я написал курс для “1С-Раруса” под названием “Повышение эффективности отделов внедрения“, я рассказывал об этом и давал примерный план обучения на 1-й месяц.

Обучайте своих специалистов, и смело пускайте из “в бой”, к своим любимым клиентам!

(С) Илья Отькало

Допускать ли программиста к клиенту?

Фото Getty Images
Как национальный характер и запрет на калькуляторы делают русских лучшими кадрами в IT-индустрии

Российская IT-индустрия очень качественная: мы производим собственные продукты, а не только выполняем заказы глобальных корпораций. В отличие от множества других стран у нас есть своя поисковая система и собственная социальная сеть. Наши программисты создают уникальные сервисы и продукты для мирового рынка: ABBYY Давида Яна, Revolut Николая Сторонского, Veeam Software Ратмира Тимашева (трое предпринимателей — выпускники МФТИ), JetBrains, «Лаборатория Касперского» и другие.

По данным HackerRank, платформы с полуторамиллионной аудиторией, на которой программисты соревнуются в решении задач, по итогам 2017 года Россия заняла второе место после Китая в рейтинге сильнейших программистов и удерживает абсолютное лидерство в области разработки алгоритмов. Но самые впечатляющие результаты показывают российские студенты, которые разбивают всех в пух и прах на международных олимпиадах и чемпионатах. С 2000 года Россия получила 32 золотые медали на Международном студенческом чемпионате по спортивному программированию ICPC, оставив далеко позади Китай с 13 медалями и США — с шестью. Что же делает российских IT-специалистов востребованными и успешными?

Преемственность

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

Умники из школы

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

К тому же наши школьники довольно рано начинают оперировать абстрактными понятиями. Например, многочлены у нас проходят уже в средней школе. Числа — это понятие вообразимое, а вот (a+b)2 осознать гораздо сложнее. Здесь требуется навык абстрактного мышления.

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

Всем, кто увлекается спортивным программированием, хорошо известно имя Геннадия Короткевича. Он является самым титулованным олимпиадным программистом в мире и занимает первую строчку в рейтинге кодеров на платформе Codeforces. Сначала Короткевич был самым юным абсолютным победителем международной олимпиады школьников по информатике IOI от Белоруссии, а позже поступил в российский вуз и в 2013 и 2015 годах на студенческом чемпионате мира по программированию ICPC в составе команды Университета ИТМО выиграл абсолютное золото. Короткевич также многократно выигрывал «Яндекс.Алгоритм», VK Cup, Google Code Cup и многие другие соревнования.

Университеты

Большой вклад в подготовку сильнейших IT-кадров в России делают университеты: МФТИ, СПбГУ, Университет ИТМО, МГУ им. Ломоносова, Саратовский государственный университет, Уральский федеральный университет. Вузы проводят соревнования по программированию. В Москве Центр развития ИТ-образования МФТИ проводит Международный фестиваль MosCode Festival. Ежегодно проводится чемпионат Урала по спортивному программированию, регулярные соревнования проходят в Санкт-Петербурге, а также в маленьких городах вроде Коврова.

В России и странах бывшего СССР с начала 2000-х проводятся регулярные тренировочные соревнования: учебные сборы в Петрозаводске, Открытый кубок имени Е. В. Панкратьева по программированию. А с 2012 года сначала на кампусе МФТИ, а сейчас во Владивостоке, Гродно, Барселоне и Колламе (Индия) начали проходить сборы Moscow Workshops ICPC, куда со всего мира съезжаются студенческие команды для подготовки к Олимпийским играм по программированию ICPC. На сегодняшний день в них уже приняли участие 167 вузов из 50 стран. Результаты тренировок на буткэмпах впечатляют — 10 из 13 победителей финального чемпионата ICPC 2018 проходили подготовку в Moscow Workshops ICPC. Локальная история российских буткэмпов переросла в глобальную сеть и не имеет похожих по масштабу аналогов в других странах.

Базовые программы у нас и за рубежом в целом похожи, но важен еще и уровень студентов. У нас во многих университетах настолько строгий отбор, что там собираются уникальные по уровню группы. Например, в МФТИ проходной балл по ЕГЭ уже много лет — 94, что наравне с МГИМО делает его самым сложным вузом для поступления в России. Прошедшие отбор ребята получают углубленное образование и много работают в командах. Умение работать в коллективе, хорошо закрепленное физтехами, — это важный навык в бизнесе. Сейчас ведущие вузы России, среди которых, например, НИУ ВШЭ и университет ИТМО, активно развивают предпринимательские компетенции студентов. МФТИ движется в сторону технологического предпринимательства, и многие ребята продолжают после учебы работать в сложившихся во время учебы командах. Это важно, потому что на этапе поиска инвесторов одни из ключевых вопросов — это «кто ваша команда» и «как в ней происходит взаимодействие».

Яркий пример — компания Looksery Inc, основанная Виктором Шабуровым, команда которой разработала популярное приложение, добавляющее маски на лица людей в режиме видео. Ядром компании были участники одной команды по олимпиадному программированию. Спустя всего три года с момента создания, в 2015 году, они продали ее Snapchat за $150 млн. Шабуров сейчас активно поддерживает программы обучения для школьников и студентов. Недавно он организовал фонд Botan Investments и открыл грантовую программу для преподавателей в области машинного обучения.

В московской компании — разработчике алгоритмов трейдинга AIM Tech, которую основал Илья Седошкин, тоже работают медалисты World Finals ICPC из МФТИ: Ренат Гимадеев, Александр Останин, Константин Семенов и другие. Это область, где ценится скорость проведения сделок. А скорость и алгоритмы — это то, что особенно хорошо нарабатывается в спортивном программировании.

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

IT-корпорации и их подопечные

Скоординированная работа вузов и поддержка со стороны IT-компаний сформировали культуру программирования в нашей стране. Бизнес совместно с вузами организует учебные программы, тем самым привносит новые компетенции и модели бизнес-процессов, которые университеты внедряют в образовательную деятельность. Среди компаний, поддерживающих IT-образование в стране: «Яндекс», JetBrains, Mail.Ru Group, «1C», Тинькофф Банк, Сбербанк и другие.

Например, компания JetBrains развивает совместно с компанией Acronis магистратуру в МФТИ и с 2018 года выступает главным спонсором чемпионата ICPC. Mail.Ru Group организовал пять образовательных программ по web- и мобильной разработке, искусственному интеллекту и высоконагруженным проектам: «Технопарк» с МГТУ им. Н. Э. Баумана, «Техносфера» с факультетом вычислительной математики и кибернетики МГУ им. Ломоносова, «Технотрек» с МФТИ, «Технополис» с СПбПУ и «Техноатом» с МИФИ.

У «Яндекса» создано много образовательных программ, например, «Школа анализа данных» для старшекурсников и выпускников технических специальностей. «Яндекс» также учредил стипендию для олимпиадников, которые учатся на первом курсе факультета компьютерных наук НИУ ВШЭ.

Компании черпают кадры из студенческой среды. Разработка «ВКонтакте» очень близка к олимпиадному подходу в решении задач, потому что его создатели со школы были в этой системе. Например, программной разработкой социальной сети «ВКонтакте» занимался Николай Дуров, двукратный победитель чемпионата мира по программированию ICPC от СПбГУ, и его соратник по команде Андрей Лопатин, тренер Moscow Workshops ICPC, который тренировал победоносные команды СПбГУ. И сейчас во «ВКонтакте» работают чемпионы ICPC Дмитрий Егоров, Павел Кунявский и Борис Минаев.

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

Трудоспособность русских

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

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

Свобода

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

Преподаватели

В сфере IT в России и мире большая нехватка кадров. Поэтому, какую страну или регион ни возьми, средняя зарплата IT-специалиста будет выше, чем в других отраслях. По данным HeadHunter, средняя зарплата в сфере IT в России — 88 246 рублей при средней по России 45 640 рублей. В США, по данным Glassdoor, средняя зарплата IT-специалиста в пересчете на рубли — примерно 330 000 в месяц. В Великобритании зарплата программиста составляет 31 901 фунт стерлингов в год (около 220 000 рублей в месяц). В Швейцарии, по данным SwissInfo, программисты получают в среднем 4608 швейцарских франков (около 230 000 рублей в месяц). Но при работе со статистикой надо понимать, что уровень цен в других странах тоже значительно разнится, на сумму влияет курс рубля по отношению к другим валютам. Также во многих зарубежных странах уровень налогов сильно снижает реальную зарплату, которой фактически оперирует работник.

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

Казалось бы, надо просто готовить больше выпускников, но это кто-то должен делать? А зарплаты в образовании ниже, чем в компаниях. Именно в IT-отрасли большой разрыв, что вызывает отток качественных преподавателей. Выходит, следующее поколение некому готовить. Поэтому большую роль в том, чтобы люди вовлекались и оставались в профессии, играет опять же культура программирования. В Европе и США она не так развита, а нам удалось вовлечь достаточное количество людей в эту систему. Чтобы успехи в сфере IT продолжались и дальше, надо повышать престиж IT-образования, популяризировать этот род деятельности.

Подпишитесь на рассылку Forbes Все сразу Лучшее за день Лучшее за неделю Идеи для бизнеса

Всем привет! Я уже два месяца работаю в компании ООО «Интегрикс» в своём родном Волгограде. «Чистыми», за вычетом подготовок к сессиям и переездов, учился на Хекслете интенсивно где-то 5 месяцев, за спиной два проекта и готовность к третьему.

Вроде бы всё логично и просто, но начиналось иначе.

Изучить программирование за три недели: миссия (не)выполнима?

Когда я узнал о Хекслете, обучался на первом курсе направления «Прикладная информатика в экономике» в своём городе. Ситуация была, откровенно говоря, так себе: еле сводил концы с концами в освоении Pascal, половина лабораторных была куплена у одногруппников, а экзамен был сдан только благодаря ловкости рук и небольшому везению. С математикой ситуация обстояла ещё хуже, что к окончанию первого курса летом 2019 года приводило меня к явному выводу: программирование — не моё.

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

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

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

Знакомство с Хекслетом

В скором времени на каком-то туманном форуме из глубин интернета мне добрый товарищ подкинул ссылку на Хекслет.

После вузовской программы меня очень сильно зацепила одна особенность Хекслета — невероятное внимание к деталям. Начиная от самих курсов и упражнений к ним, заканчивая структурой самой площадки в целом. Это было видно ещё при беглом взгляде на оформление. Ведь, в отличие от многих других онлайн-курсов, здесь не возникало ощущение, что тебе очень сильно хотят что-то впарить. Практически никаких речей в стиле «отучись x месяцев и будешь сразу получать y рублей в месяц». Также подкупает полная прозрачность учебного материала.

Для себя решил выбрать JavaScript по простой причине — самый низкий порог входа в профессию и обилие вакансий в столице.

Читайте также

Стоит ли учить JavaScript: перспективы, ситуация на рынке труда, мнения экспертов

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

И вот, спустя три недели, наступил мой вымышленный дедлайн. Всё, что у меня было — пройденный курс по базовым функциям в JavaScript и пара-тройка упражнений из него в своём репозитории на GitHub. Я закинул резюме на HH.ru, красиво оформил его (не без помощи прекрасной Вероники — catwomenko.ru), написал сопроводительные во все места, куда откликался (50+ мест) и стал ждать чуда. Дождался.

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

Неудачные собеседования

Первым было собеседование от банка «Киви». В первой части был тест из нескольких разделов, в каждом из которых давались разные простые задачки. Здесь мне очень помог подход, который вбивался преподавателями из Хекслета с самых первых упражнений, а именно — представить пошагово, что делает моя функция, а потом её уже реализовывать. Тем не менее крайне скромная база всё же сказывалась, и очень много где я просто не понимал написанного и ориентировался по каким-то отрывкам контекста, который улавливал.

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

К сожалению, у меня были небольшие пробелы в знаниях, и не помог даже энтузиазм. Грустные глаза очень милой HR явно говорили, что она была расстроена, но ничего поделать не могла.

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

По иронии судьбы днём ранее прекратилось общение с девушкой, к которой я так стремился переехать. Грубо говоря, урок я выучил тот же, что и от собеседования: упорство — это прекрасно, но слишком сильно спешить — вредно.

Следующие два собеседования прошли по похожему сценарию — у меня спрашивали самые базовые знания по любому из языков. На одном из них ещё попросили сделать простой запрос Select в базу данных. Снова досадный пробел в знаниях, снова грустная HR.

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

Как я потерял запал, но кризис помог мне его вернуть

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

Читайте также

Зачем изучать React: особенности и перспективы библиотеки, ситуация на рынке труда

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

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

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

Если бы ещё немного приложил усилий и начал учить асинхронный код и DOM-деревья, которые на тот момент активно требовались на удалённых вакансиях — получил бы работу и остался в Москве. Усвоил ещё один важный урок — надо доводить дела до конца.

Как я нашёл работу в родном городе

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

Отклик, собеседование, трудоустройство. Собеседование проходило в дистанционном формате. Мне давали тестовое задание, которое выглядело так: создайте аналог школьного расписания, используя PostgreSQL. Таблицы и связи были на моё усмотрение. На задание ушло примерно 3-4 дня. Потом было собеседование с техническим директором и одним из разработчиков, где меня расспрашивали на знания баз данных, а также на предмет опыта работы с информационными системами.

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

Про саму работу написать особо нечего, потому что встречаю всё то, через что проходил при обучении. Разрабатываю информационные системы для разных государственных структур, например МФЦ или РЖД. У нас есть платформа под названием RDEV, и на её основе создаются другие ИС. Вся бизнес-логика описывается на чистом JavaScript с небольшим количеством готовых системных функций для взаимодействия с базой данных и отправкой HTTP-запросов.

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

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

Юник Степанян08 сентября 2020

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

image
С чего началось твое знакомство с этой профессией?

В 11 классе мои друзья позвали меня на курсы программирования от Samsung. Там я научился основам этого ремесла. Меня это, действительно, увлекло, и затем я поступил в Сибирский государственный университет науки и технологий имени академика М.Ф. Решетнева в Красноярске. Там я учился на специальности «Информатика и вычислительная техника». Параллельно с этим, занимался дома самостоятельно. Когда прошел курсы, я знал уже гораздо больше, чем нам преподавали в университете, и учеба стала скучной. Поэтому я делал больший упор на самообразование. Пытался делать игры и приложение для просмотра фильмов. Однажды мне предложили работу в стартапе. Я решил согласиться, ведь от практики ты получаешь гораздо больше знаний, чем изучая теорию. Так, на третьем курсе я бросил институт и теперь продолжаю развиваться сам. Вся моя жизнь изменилась в мгновение. Я устроился на работу и съехал от родителей в один день. Этот день я не забуду никогда.

Какие навыки для программиста самые важные?

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

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

Говорят, что программист 60% рабочего времени проводит в Гугле, почему так?

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

image
4 апреля – международный день интернета. Если написать сегодняшнюю дату числами, получится 4.04 Дата праздника выбрана не случайно, число очень напоминает «ошибку 404». Как программисту, вам известно, что такое ошибка 404 и почему именно 404?

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

Многие компании на своих сайтах делают эти страницы «красивыми». Авторские страницы 404 – это правило хорошего тона веб-разработки. Они есть и у Гугла, и у Яндекса, и у Вконтакте и у Фейсбука. Некоторые компании прячут в них свои «пасхальные яйца».

Почему программисты не любят Explorer?

Это распространенный стереотип. На самом деле Explorer не так уж и плох, просто раньше он был намного медленнее других браузеров. А еще старая версия не поддерживает многие современные разработки. Однако есть и новый Explorer, он называется Microsoft Edge. Да-да, это по сути тот же самый браузер, только он быстрее и лучше. Хотя я все равно предпочитаю Яндекс или Google.

Я знаю, что ты сейчас работаешь в компании «Купибилет» и занимаешься разработкой мобильного приложения. Сколько еще человек вместе с тобой работает над приложением?

У нас две команды. Одна работает над приложением на IOS – это смартфоны компании Apple, другая – над приложением на Android-устройствах. Я отношусь ко второй команде. Мы работаем вчетвером, но занимаемся только написанием кода. Еще есть много других специалистов, по-разному важных для поддержания приложения.

Какая позиция в команде самая важная?

У нас есть лидер, который работает здесь дольше нас и намного опытнее в написании кода. Он проверяет все, что мы делаем, указывает на ошибки и распределяет новые задачи. Руководит, так сказать. И одновременно с этим берет на себя самую сложную работу. Такую роль может взять на себя только ответственный и уверенный в себе человек. На нем держится весь рабочий процесс. (Не хотел бы я брать на себя столько ответственности. Мне больше по душе отвечать только за свою часть работы).

Ты так хорошо отзываешься о своей работе. Неужели все так идеально… Должны же быть и какие-то минусы. Что больше всего бесит тебя в профессии?

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

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

Есть еще одна вещь, но это не совсем бесит, скорее просто не очень нравится. У каждого программиста, в том числе и у меня, есть свой особый “почерк”. Как я уже говорил ранее, все со временем приобретают свою манеру написания кода. Но приходится забыть о своем стиле и приспособиться к правилам компании, и писать так, как принято здесь. Даже если мне это не удобно. Такие вот нюансы работы в крупной компании. Раньше я об этом и не думал. Надеюсь это знание пригодится тем, кто только собирается выбрать профессию программиста.

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

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

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

Существует так много языков программирования. Они кажутся такими страшными и сложными. Расскажи, с каким языком лучше начать знакомство новичкам? Как вообще в них разобраться?

Я знаю всего два языка: java и kotlin. Мне для работы этого вполне хватает. Начал я программировать с Java. Он довольно старый и в андроид разработке сейчас не используется. Котлин – официальный и главный язык для андроида. Он более емкий, лаконичный, для восприятия он понятнее и так сказать «красивее». Языки программирования очень похожи, если знаешь один, то остальные будет изучить легко. Главное – понять принцип их работы. Однако новичкам советую все же начать с Java script. Это фундаментальный язык. На нем сейчас в основном пишут сайты. Он же самый распространенный в мире, так что где-нибудь вы с ним точно столкнетесь.

Если я стану программистом, как понять, что я уже хороший специалист?

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

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий