Из филолога в Python-разработчики: как переучиться и чего ждать от новой профессии

    Стать разработчиком, если ты не технарь и у тебя нет профильного диплома, вполне реально — много подобных примеров можно найти в сети. Считается, что Python — один из самых простых способов войти в эту профессию, но есть масса нюансов, которые могут повлиять на обучение. О том, как его построить, чтобы не обжечься на первом языке программирования, рассказывает преподаватель Python в GeekBrains и главный инженер Сбера по разработке в Data Analytics Вероника Голубева.

    Вероника Голубева, преподаватель Python в GeekBrains и главный инженер Сбера по разработке в Data Analytics
    Вероника Голубева, преподаватель Python в GeekBrains и главный инженер Сбера по разработке в Data Analytics

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

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

    Достаточно легко язык программирования Python дается гуманитариям — лингвистам, филологам. По сути, он как иностранный язык, только легче: так же нужно изучать синтаксис, но больше логики, строже правила и нет исключений. Перейти на Python с другого языка программирования очень легко, но, если вы новичок и выбираете, с какого языка начать, начните с Python. На нём будет гораздо легче, чем на условном Java, обучиться базе — циклам и объектно ориентированному программированию.

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

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

    Как и где учиться

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

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

    Чтобы сохранить мотивацию, можно смотреть видео о профессии: на YouTube есть классные ролики о том, что можно научиться делать, они цепляют.

    Программирование на Python — это сложно. Не понимать что-то — нормально.

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

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

    Что-то не понимать — нормально. Нужно просто двигаться дальше: писать, учить. Это ужасный момент разочарования, но, если продолжать биться, потом поймёшь, что на самом деле это было очень просто. 

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

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

    Можно учиться самостоятельно, но это сложно: нет программы, структуры и понимания, как это делать. В интернете бездна информации, ты пытаешься её изучать, систематизировать, но тонешь и не понимаешь, как её применить. Так можно упустить важное и заморочиться на мелочах. Одна моя одногруппница так же училась Python-разработке: решала сугубо теоретические задачи. В результате у неё нет понимания, как применять полученные знания в работе.

    И некоторые учебники не предполагают самостоятельного изучения Python, например Марка Лутца немногие смогут дочитать до конца. Такие книги хороши для закрепления знаний. Как вариант, можно попробовать занятия на Coursera или подобных ресурсах. Есть сайты и даже игры с базовыми задачками по программированию. Но в большинстве своём они далеки от того, что придётся делать на работе. Обучение Python на курсах дополнительно экономит время: вам не нужно искать ответы самостоятельно. Вы можете задавать их преподавателю, чтобы лучше разобраться в теме. Но читать учебники нужно. Они дают возможность глубже вникнуть.

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

    Лучший учебник для новичков, по моему мнению, «Изучаем Python. Программирование игр, визуализация данных, веб-приложения» Эрика Мэтиза. Ещё можно послушать онлайн-лекции на YouTube, например такие.

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

    Как устроиться на работу джуном

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

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

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

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

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

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

    По сути, джуниоры отличаются от мидлов только опытом работы: у первых есть только знания, которые они учатся применять, а мидлы уже понимают, на чём они специализируются и как эффективно решать рабочие задачи. Мидлам нужно хорошо знать библиотеки и понимать, какие алгоритмы они используют и почему. Алгоритмы — это база: их спрашивают даже на собеседованиях в Google и Amazon. Без знаний алгоритмов невозможно заставить код работать хорошо и быстро. Если вы пытаетесь прокачаться до мидла, попробуйте прочитать книгу «Python Cookbook» Дэвида Бизли.

    Как проходить собеседования

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

    Учитесь на ошибках. Джунам на собеседованиях задают практически одни и те же вопросы. Если вы не смогли ответить на них, запомните их и найдите ответы. На Хабре была яркая история про разработчика, который в Кремниевой долине ходил по собеседованиям на мидла, а потом дома разбирал сложные вопросы. Походив полгода, он устроился сеньором — на гораздо более высокую зарплату, чем планировал изначально. 

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

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

    Список самых частых вопросов

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

    • изменяемые и неизменяемые типы данных — это спрашивают практически на любом собеседовании;

    • итератор, генератор, декоратор;

    • разница между листом и генератором — об этом обязательно спросят;

    • магические функции;

    • реализация алгоритма сортировки слиянием Python; 

    • multithreading vs. multiprocessing.

    Вот здесь можно посмотреть подробнее про типовые вопросы.

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

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

    GeekBrains
    ОБРАЗОВАТЕЛЬНАЯ ПЛАТФОРМА

    Комментарии 10

      0
      И один важный совет: не бойтесь показать, что вы чего-то не знаете. Рассуждайте, пытайтесь прийти к какому-то выводу, делайте логические выводы из того, что знаете. Если вы чего-то не знаете, это будет сразу понятно, но если вы начнете рассуждать и говорить, то это даст вам большой плюс, чем просто сухой ответ «не знаю, давайте дальше» (конечно, не стоит зарывать себя, нужно просто размышлять).
        +6

        А потом после курсов ГикБрейнс на вопрос какие типы данных Python вы знаете люди уверенно говорят: JSON. И за это хотят от 90 тыс.

          +2
          пример смешной, но жизненный
          иногда бывает наоборот
          человек не знает, что и как ответить, но, начиная размышлять, приходит к ответу
          это больше касается джунов, так как они могут знать какие-то вещи, но в голове нет четкой структуры, как эти вещи взаимосвязаны друг с другом, и им надо просто больше стараться говорить
          +2
          Так и не понял из статьи, зачем филологу становится разработчиком?
          Ради денег? Только вот чтобы хорошо зарабатывать в ИТ, нужно изучить гораздо больше чем приводится в статье, да и учиться придется всю жизнь, на протяжении всей трудовой деятельности. Можно ведь пойти в другие хорошо оплачиваем области.

          Потому что модно? Ну не знаю, мода приходит и уходит, я вот когда пришел в ИТ в середине 2000-х, было модно и прибыльно работать менеджером по продажам/экономистом/юристом. Не получится ли так, что ИТ перестанет быть модным и человек сбежит в другую область?

          Потому что интересно? Раз было интересно, что мешало сразу идти в ИТ? Зачем полжизни заниматься не тем, что нравится, ни тем что интересно?

          Теперь по пунктам:

          На дипломы о высшем образовании сейчас никто не смотрит

          Да на дипломы конечно никто не будет смотреть, если ты middle/senior с большим опытом, а вот если выбирать между джунами без опыта работы, то предпочтение отдадут тому у кого есть профильное образование, ибо у этого человека есть техническая база.

          Для работы нужно знать треть от требуемого в вакансии

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

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

          Вы серьезно? Работу найти сейчас не просто, ибо на вакансию джуна огромная конкуренция, начиная от выпускников курсов до выпускников университетов по ИТ специальностям. Опять же дефицит кадров только на вакансии middle/senior, но никак не junior. Если в компании «ужасная» текучка, то значит с компанией, что то не так и работать там не стоит!

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

            0
            Таких случаев куча. Причём среди известных личностей. Когда человек вначале был географом, стал физиком, при этом параллельно будучи музыкантом. Когда в сорок лет человек становился математиком.
              +1
              Случаев возможно куча, но сравнение вы привели не корректное, что-то я не видел, чтобы курсы физики или математики из каждого утюга рекламировали. Опять же никто не расписывает как легко найти хорошо оплачиваемую работу физиком или математиком. Никто не говорит что для того, чтобы стать физиком или математиком достаточно закончить курсы. Я что то не вижу статьи по типу «моя история успеха из музыканта в физики».
              Я не против конечно пусть если хотят становятся разработчиками, только путь этот тернистый и как я уже говорил тут придется всю жизнь учиться и осваивать новые технологии, опять же в статье лукавят, насчёт дефицита специалистов уровня junior, у них ужасная конкуренция, я первом комментарии к этой статье об этом писал.

              Если интересно можете почитать мою историю становления разработчиком, там не так все радостно и безоблачно, только вот я всю жизнь работаю в ИТ, я осознано связал свою жизнь с компьютерами, даже не смотря на то, что долгое время у меня зарплата была на уровне 100-200$.
              Я не против новых людей в ИТ, я лишь хочу, чтобы этим людям ИТ было по настоящему интересно, чтобы это не было притворством ради денег.
              Представьте врача, летчика, полицейского, которым абсолютно не интересно, чем они занимаются, они пришли на работу исключительно ради денег, каково будет качество их работы? То же самое в ИТ, будет появляться больше людей, которые влезли в ИТ ради денег, им наплевать на проект, на качество их работы и проекта, да и продукта в целом.
              Это очень печально.
              0
              Можно ведь пойти в другие хорошо оплачиваем области.
              А много ли таких у нас в стране? Чтобы в комфортных условиях в уютном офисе или даже у себя дома, не имея профильного образования и всяких там сертификатов, без блата и связей получать стабильно зарплату в 2-3 раза больше средней по региону?
                0
                А много ли таких у нас в стране?

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

                Чтобы в комфортных условиях в уютном офисе или даже у себя дома, не имея профильного образования и всяких там сертификатов

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

                без блата и связей получать стабильно зарплату в 2-3 раза больше средней по региону?

                А вы уверены, что ИТ виновато в том, что там зарплаты сильно выше средних зарплат по региону и то что на «теплое» место не берут без блата? Может дело в правительстве?

                  0
                  например, профессиональные электрики, сантехники, строители
                  Это всё-таки во-первых не в уютном комфортном офисе и не из дома, во-вторых хорошие деньги там обычно идут в случае с сдельной оплаты, в третьих, далеко не все любят работать руками и заниматься физическим трудом (а некоторые так вообще рукожопы). Так что увы, мимо.
                  Ну и для женщин не очень подходит — мало что-то видел женщин-электриков, женщин-сантехников и женщин-водопроводчиков. Женщин-программистов на порядки больше.
                  рекрутеры, HR менеджеры
                  Получают всё-таки ощутимо меньше разработчиков. Бывают случаи, когда хедхантеры получают солидные бонусы в случае найма кандидата, но там все очень нестабильно и непредсказуемо. Инфа от старой знакомой рекрутерши. Плюс востребованность гораздо ниже, чем у программистов: в любой средне-большой компании разработчиков обычно нужно в десятки, а то и в сотни раз больше, чем эйчаров.
                  организовала группу покупок одежды из Турции, вроде неплохо зарабатывает.
                  Организовывать людей, много и успешно коммуницировать с людьми — далеко не всем по душе (иногда прям до отвращения не по душе) и не у всех вообще получается. Опять же, это не работа 5 дней в неделю по 8 часов со стабильной зарплатой.
                  А вы уверены, что ИТ виновато в том, что там зарплаты сильно выше средних зарплат по региону и то что на «теплое» место не берут без блата? Может дело в правительстве?
                  То что в других отраслях все плохо — да, вполне возможно что именно государство
                  но в контексте обсуждения это не играет роли. Суть в том, что в ИТ огромный спрос на людей, способных делать хоть что-то, плюс многие компании работают на международный рынок с долларовой выручкой, удалёнка размывает границы между регионами, а государство в ИТ сферу до недавнего время глубоко не лезло и палки в колеса не вставляло (сейчас уже начинает, но пока не критично, что будет дальше — предсказать трудно). Все вышеперечисленные факторы и обеспечивают в ИТ зарплаты сильно выше средних, возможность устроиться и расти без блата и остальные плюшки.
                +1
                Ради денег? Только вот чтобы хорошо зарабатывать в ИТ, нужно изучить гораздо больше чем приводится в статье, да и учиться придется всю жизнь, на протяжении всей трудовой деятельности.

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

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

              Самое читаемое