Python Junior подкаст. Личный опыт джуниора: удачи, фейлы, рецепты

На курсы Learn Python люди приходят с разными целями - кто-то хочет получить дополнительные навыки, которые пригодятся в работе (например, маркетологом), а кто-то хочет начать путь разработчика. Специально для тех, кто ищет свой путь в разработку, мы решили опубликовать расшифровку нашего подкаста, в котором мы поговорили с начинающим разработчиком о том, как он пришёл к идее стать программистом и что из этого получилось.

Выпуск подкаста Learn Python

Валентин Домбровский: Всем привет. В эфире Python Junior подкаст. Подкаст для тех, кто хочет лучше разбираться в Python. Запись нашего подкаста проходит при поддержке курсов Learn Python, ссылочка на курсы в описании. Сегодня с вами в студии Валентин Домбровский, сооснователь MoscowPython и курсов Learn Python. Григорий Петров – евангелист Moscow Python, руководитель программного комитета Moscow Python Conf++. Наш гость – Максим Артемьев, младший аналитик компании Seendex. Наши зрители и слушатели просили о том, чтобы пригласили какого-нибудь настоящего джуна, и мы, выполняя эту просьбу, решили позвать Максима, чтобы он поделился своим опытом того, как он учился разработке и как нашел свою первую работу, связанную с разработкой на Python. Рады тебя видеть. Расскажи, пожалуйста, с самого начала, как вообще пришел к тому, чтобы стать разработчиком, начать свой путь в разработке, что тебя привело к этому.

Максим Артемьев: Всем привет. До разработки я учился на бухгалтера-экономиста, ничего не предвещало, чтобы я стал программистом. Однажды мне попался ресурс Хабр, на котором были умные интересные статьи, которые я не понимал, постепенно из интереса просто его читал. Там были статьи в основном про PHP. То есть он был для меня сложный, непонятный. Но я попросил знакомого (я думал, что он знает) мне подсказать, как это делается. Он скинул мне сборку Apache, и я ничего не понял. На этом закончилась моё знакомство с программированием. Я погрузился в обучение и в 2014-2015 гг. пошел в армию. В армии встретил другого человека. Он оказался разработчиком на Ruby. У него была своя веб-студия. Он служил со мной. Мы слово за слово разговорились, я узнал, что он разработчик, мне стало интересно. Я его допытывал, потому что он знал кучу крутых штук, о которых я даже не слышал: базы данных, функции, классы, паттерны какие-то. Мне нравилось просто даже общаться и принадлежать к этому. Однажды он мне скинул книгу по питону совсем для начинающих, прям для детей. Нужно было по книжке создать игру в консольке, то есть пошагово на if else. В армии времени у меня было много. Я еще был компьютерщиком, и у меня был доступ компьютеру, полчаса-час каждый день я читал книгу. Конечно, какие-то серьёзные штуки я не мог делать всё равно, потому что книга совсем для базового понимания.

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

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

Григорий Петров: Приятно это слышать.

Максим Артемьев: И вот каждую неделю я ходил, постепенно изучал Питон. Но я долго не мог найти работу после курса. В 2017 году я закончил, 3 месяца изучал, сделали финальный проект, но этого оказалось недостаточно, чтобы пройти собеседование. Даже ради интереса я через месяц после обучения просто на HeadHunter создал резюме Программист Питон. Мне даже было нечем его заполнить, потому что у меня не было опыта работы на проектах.

Григорий Петров: Кстати, когда я некоторое время назад нанимал разработчиков на HeadHunter (я вообще люблю нанимать разработчиков на HeadHunter), то видел очень много резюме, где в качестве опыта работы проектов были указаны как раз какие-то обучающие курсы, и некоторые из этих резюме производили очень хорошее впечатление. То есть человек в резюме писал, что он, например, начинающий frontend-разработчик, окончил такие-то курсы, научился такому-то, сделал такой самостоятельный проект, вот ссылочка, можно посмотреть, вот мои контакты. Это OK, потому что большим компаниям, у которых сотни разработчиков, нужны не только топовые разработчики, с которыми, положа руку на сердце, сложно. Им еще нужно много рядового состава, который будут потихонечку вводить в курс дела, обучать и так далее. Как раз для таких компаний резюме с курсов смотрится гораздо лучше, чем пустое резюме из серии “ничего не знаю, но быстро учусь”, потому что показывает, что человеку это настолько интересно, что он начал хоть что-то делать, а не только говорить, что он хочет.

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

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

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

Григорий Петров: Да.

Максим Артемьев: Это только для крупных компаний?

Валентин Домбровский: Это хороший вопрос. Для небольших компаний, мне кажется, ситуация обратная. Они не могут себе зачастую позволить супер топовых разработчиков. Я знаю некоторые стартапы со штатом 5-10 разработчиков, которые говорят: “Мы увидели для себя преимущество в том, что мы научились тем процессам, которые происходят в крупных компаниях. Мы научились нанимать людей начального уровня и вводить их в разработку". Я надеюсь, что когда-нибудь мы пообщаемся с кем-то, кто действует по подобному принципу, в том числе, в небольшой компании. Остальных призываю следовать по этому пути, потому что многие говорят, что джуны не нужны. Мы с этим, естественно, не согласны.

Григорий Петров: Мой опыт работы в небольших компаниях, хотя бы Voximplant у нас было 70-80 человек, показывает, что начинающие разработчики нужны всем и всегда, потому что есть бесконечное количество каких-то задач начального уровня, на которых чудовищ кидать бессмысленно. Условно, есть выбор, что сильнейший frontend, будет делать новую админку, которая принесет компании кучу денег, или будет делать какие-то простенькие скрипты клиентам для автоматизации. Сделайте выбор.

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

Григорий Петров: Я уже несколько раз рассказывал этот вопрос с разных точек зрения. Но тут как раз очень удобно, у нас мозг работает ситуационно. Когда ты, начинающий разработчик, сейчас меня об этом спрашиваешь, вполне возможно, мне удастся на этот вопрос ответить еще с другой точки зрения, с которой я ещё не рассказывал. Разные компании действительно подходят к этому по-разному, но не потому, что это такой процесс, который требует разного подхода, а потому что никто не знает, как нанимать программистов. У нас бесконечно молодая отрасль и нет понимания, как вообще правильно разрабатывать софт, нет каких-то учебных заведений (школа, институт, аспирантура), которые бы на выходе давали готового программиста, который уже может решать бизнес-задачи. Архитекторов мы умеем так делать, врачей умеем, программистов не умеем. Поэтому нет какого-то опросника, где можно было бы проверить знания человека вот этой правильной программой: и да, готов, вот наши драконы, вот меч-кладенец, вперёд. Нет ещё такого.

Поэтому, когда нанимают разработчиков начального уровня, что интересует меня как работодателя? Меня интересуют всего две вещи. Первая вещь: будет ли человек делать работу? К примеру, если человек идет разработчиком, потому что его заставила мама, ну, о'кей, мама-то, конечно, возможно, и хочет, чтобы он делал работу. Вопрос в том, хочет ли он этого сам. Тут как раз огромное значение имеет то, чем человек до этого занимался, какие у него хобби. Например, он говорит: “Я играю на гитаре, мне нравится играть на гитаре. Пять лет назад начал учиться и выучил. Я взял гитару, сейчас вам покажу”. Ты видишь, что человек умеет инвестировать время в какие-то сложные навыки. Или человек пошел на курсы, окончил и сделал дипломный проект. Смотришь – человек умеет не только говорить слова через рот, а умеет что-то делать руками, значит, вполне возможно, и работу он будет делать. Это первое.

Второе: сможет ли он сделать эту работу? Тут как раз джунам очень удобно. Когда ты нанимаешь чудовище высокоранговое, ты хочешь, например, чтобы к тебе пришел человек, который сделал тебе всю автоматизацию маркетинга и программатик рекламу. Ты с ним общаешься за социальные сети, за айпишечки, за статистику, пытаешься понять твоих семиголовых драконов, которые ядовиты, у него есть правильные масштабные, огненные заклинания, чтобы именно твоих драконов завалить или он не сможет, очень тяжело. Когда ты общаешься с джуном, всё, что тебе надо понять, это нет ли у него какой-то идиосинкразии к программированию. Простите меня за слово, я сам не очень хорошо понимаю, что оно значит, мне просто очень нравится, как оно звучит. То есть вообще, может ли он писать код. Для этого курсы тоже очень хороши, потому что смотришь дипломный проект: да, он выжил, написал – значит, он может писать код. Дальше испытательный срок 3 месяца. Он либо выживет в Stack Overflow, либо либо… В общем, будет ли человек делать работу и сможет ли человек делать работу – две вещи.

Валентин Домбровский: Да. Я, кстати, уверен на 100%, что нас смотрят не только молодые разработчики, но и те, кто нанимает разработчиков, в том числе, молодых разработчиков. Я надеюсь, что эти люди также прислушаются к тому, что говорит Григорий. Мне кажется, что это очень здравый подход. Давайте от здравых подходов вернемся к реальности, в которой хотелось бы видеть больше здравых подходов. Максим, расскажи, что показал тебе твой опыт. Ты остановился на том, что ты смотрел HeadHunter и долго не мог найти работу. Расскажи, как у тебя получилось.

Максим Артемьев: Моего друга, который изучал Ruby, я начал спрашивать, что мне делать, я изучил курс. Я даже в Slack писал Михаилу Корнееву. Все дружно советовали фриланс: “Найди что-нибудь, начни с чего-нибудь, хотя бы с чего-нибудь”. На фрилансе я до этого никогда не работал. Я смотрел, но не было практического опыта. Я взял совершенно рандомный проект на Питоне, парсер какой-то сделать, HeadHunter, апишечку. Сделал, получил копеечку. Понял, что получил то удовольствие, которое не получал раньше. Читал статьи, как сделать полноценный проект, то есть создать Git-репозиторий, написать хотя бы какой-то план работы, написать код, проверить его (я тесты не писал). Проверить, чтобы он работал, показать заказчику, получить деньги. То есть такой процесс прошел, и я получил море удовольствия и заряд энтузиазма. Я понял, что хочу делать больше. Открыл HeadHunter. Тот же разработчик советовал: “Смотри вакансии, которые тебе нравятся, компании, уровень оплаты и возьми интересные оттуда технологии, которые там написаны, просто изучай их. Сделай какой-нибудь pet-project по ним”. Но с Redis у меня не получилось. Я собрал требования и просто сел изучать дальше. Как раз в то время я написал вам первое письмо, есть ли у вас продвинутый курс. Я хотел с ним прийти и получить больше, чем в первые три месяца. Месяц я учил, потом постепенно шёл до такой точки, то есть я просто по списку для себя шёл. Дошёл до точки и попробовал ещё раз поискать работу, какие-то отклики. Люди заходили, смотрели, не откликались на мое резюме. Я немножко отчаялся. Потом, наверное, воля случая, я попал в маленький стартап. Мне предложили просто писать парсеры – “бери оттуда, клади туда”, такая простая работа. Я согласился, потому что у меня никаких других вариантов не было.

Максим Артемьев
Максим Артемьев

Григорий Петров: Интерлюдия, пока я не забыл. У меня, к сожалению, память золотой рыбки, поэтому я иногда перебиваю, иначе просто мысль уйдёт. Коллеги, кто нас смотрит, вот пользуясь HeadHunter, никогда не бросайте резюме в воду, оно не выплывет. HeadHunter работает не так. Только огромнейшие компании со штатом эйчаров смотрят HeadHunter вхолодную, то есть просматривают все резюме, которые там опубликованы. Я, конечно, могу ошибаться, но это мой опыт использования HeadHunter последние лет 10. Подавляющее большинство компаний смотрят только отклики на свои вакансии. Поэтому просто разместить резюме на HeadHunter, если вы не топовый разработчик, не даст вам примерно ничего. Если я размещу резюме на HeadHunter, то, скорее всего, вот те эйчары крупных компаний будут меня находить по ключевым словам и что-то мне предлагать. Но если начинающий разработчик разместит резюме, им не заинтересуется никто.

Поэтому правильное использование HeadHunter – вы крафтите хорошее резюме, обязательно инвестируете один-два-три часа, читаете, как сделать хорошее резюме. Кстати, может, в одном из будущих подкастов мы заманим эйчара и пообсуждаем с ним, как правильно крафтить резюме для разработчиков. Так вот, крафтим правильное резюме, после чего начинаем отвечать на интересные вакансии, делая каждому персонализированный отклик – сопроводительное письмо, почему я, разработчик, принесу компании пользу. Из серии: “Привет. Я окончил курс. Посмотрел, чем вы занимаетесь, и считаю, что смогу принести вам пользу, потому что в рамках курса решал подобную задачу, область мне интересна, код уже писал. Денег хочу немного, вкалывать буду по 8 часов. Давайте дружить”. Такое использование HeadHunter вам сильно-сильно лучше. Прости, что перебил. Остановились на том, что ты начал делать парсеры для небольшого стартапа.

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

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

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

Григорий Петров: Чужой код – это отдельная история. Мне всегда кажется, что это такой отдельно живущий скилл. Я, например, за 20 лет так и не смог у себя его развить. Мне как раньше было тяжело читать чужой код, так и сейчас тяжело. Каждый раз, когда я читаю, это пытка. Я не понимаю, что там происходит. А про тесты ты очень круто заметил, действительно, никто не пишет. Но мне кажется, что это не то, чтобы от неопытности, это на начальном уровне всегда так. Лет через 10-15 человек оценивает багаж знаний, все те проблемы, которые к нему приходили, тысячи часов, которые он пролюбил, потому что не писал тесты. Он начинает уже писать тесты просто автоматически, потому что примерно представляет, что вот тут сложность разрослась, и если сейчас по краям тесты не поставить, то оно лопнет, и дальше придётся тратить кучу времени, а хороший программист – ленивый программист. Мы не хотим тратить кучу времени.

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

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

Григорий Петров: В принципе, да. Так во всех компаниях. У нас, к сожалению, в мозгах есть баги и про планирование есть даже именованный баг, так и называется “Когнитивные искажения, ошибки планирования” (Planning fallacy). Он говорит о том, что опытный разработчик, который даже 10 раз решал одну и ту же задачу, каждый раз пролюбливая сроки в 3 раза, планируя сроки в одиннадцатый раз, помня прекрасно о том, что у него до этого 10 раз не получилось, он всё равно скажет маленькие оптимистичные сроки, потому что мозг (25:51). Мы очень хотим быть хорошими, надеемся на лучшее развитие событий. Вот, позитивные, когнитивные искажения и так далее. С планированием своей работы связано множество богов и там всё очень сложно. Я как раз недавно на Teamlead Conf читал лекцию, которая называлась: “Как параноику планировать свою работу”. Поэтому я ещё помню какие-то обрывки. Так что с планированием не парься, это примерно у всех так. Чтобы хорошо планировать работу, надо использовать просто какие-то костыли для мозга. То есть даже с 20-летним опытом ты не сможешь просто так сесть и назвать правильный срок. Твой мозг будет сопротивляться. Чтобы это сделать, реально нужно брать листочек бумаги и делать какие-то ритуалы: считать циферки так, чтобы ты их сразу, в общем, обманывать себя с целью не дать мозгу обмануть себя.

Валентин Домбровский, Максим Артемьев, Григорий Петров
Валентин Домбровский, Максим Артемьев, Григорий Петров

Валентин Домбровский: Ну да, как говорят, планирует один человек, а выполняет другой, даже если это как бы один и тот же человек.

Григорий Петров: Вау, клёвая формулировка, респект.

Валентин Домбровский: Спасибо. Что-то ещё для себя открыл?

Максим Артемьев: То, что удаленная работа – это отдельный тоже навык. Самоконтроль по времени пребывания у компьютера – это сложно не отвлекаться на какие-то внешние факторы. Когда есть мотивация к работе, тогда нет проблем. В конце недели устаёшь, теряется концентрация, и начинаешь уже отвлекаться на поесть, погулять. Был день, когда я просто не вышел онлайн. Я виню себя, конечно. Но это не причина увольнения, я договорился, что я сегодня не работаю. Плюс онлайна, что можно, например, какой-то день взять и сказать “не могу сегодня”. Они говорят: “OK, будешь, значит, в субботу”.

Григорий Петров: В офлайн тоже так иногда можно, если компания хорошая.

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

Максим Артемьев: Те задачи, которые мне давали, я завершил. Мой начальник сказал, что для меня больше нет задач, и мы попрощались. После стартапа было сложно найти какую-то работу чуть повыше. Мне хотелось сложнее, потому что просто писать парсер это неинтересно, не так прибыльно и дома сидеть всё-таки скучновато. Я поставил себе планку найти офлайн работу в офисе с бОльшим окладом. Для себя хотел больше технологий, не только просто библиотеки, которые я использую, мне хотелось ещё что-то новое для себя. Я начал искать по направлениям Django, Flask и ничего не нашел. Ходил по разным собеседованиям. Я уехал к себе в город, я не из Москвы. Ещё месяц сидел, по Django просто туториал и шел, по Flask туториал и шел. Когда приехал в Москву проходить собеседование, я понял что туториалов мне точно не хватает, чтобы меня приняли. Были разные собеседования, вплоть до того, что меня на середине собеседования обрывали и говорили: “Зачем вы сюда пришли? Давайте закончим”. Я не могу сказать, что мне прямо повезло, но вот попал в компанию Seendex. Это просто было одно из собеседований, на котором меня просто подряд завалили вопросами. В отличие от других компаний, как я потом выяснил, они довольно много нанимают джунов. То есть у них такая практика, что есть старшие разработчики, средние – мидлы, и джуны. Я шёл на должность джун-разработчика, но меня сделали аналитиком. Но я всё равно занимаюсь разработкой.

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

Максим Артемьев: Если считать периоды между тем, как я закончил предыдущую работу и начал следующую, – примерно 2 недели. За две недели я прошел 11 собеседований.

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

Максим Артемьев: После того, как поработал в небольшом стартапе, пописал парсеры, у тебя уже появилась строчка в резюме “опыт работы в продакшн”, и уже тебя начали, как минимум, приглашать. Пусть они потом сами не понимали, зачем тебя пригласили, но это их проблемы, я считаю.

Григорий Петров: Надо правильно крафтить резюме.

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

Максим Артемьев: Я ошибался в каждом собеседовании. В каждом собеседовании я узнавал что-то новое в плане тестовых задач. То есть мне каждый раз что-то задавали новое, и то, что мне действительно запоминалось, я просто записывал, читал, изучал. Например, пришёл в компанию. Меня спрашивают: “Что вы знаете об SQL?” Я сказал: “Знаю селекты, чуть-чуть знаю джойны”. Говорят: “Что такое having?” – Я не знаю. Я не могу придумать на ходу, я записывал. И так, после каждого собеседования, как снежный ком, у меня по чуть-чуть накапливались знания. К моменту, когда уже попал в Seendex, у меня уже был небольшой background, маленькие собеседования, где я ничего не смог ответить, и уже пришёл более подготовленным, потому что я заранее читал, перед каждым последующим собеседованием готовился.

Валентин Домбровский: Мне кажется, кстати, что неплохой подход в этом смысле к собеседованию, как именно действительно к какому-то учебному упражнению. Тогда ты и меньше волнуешься, приходишь спокойно. Я знаю даже, что некоторые опытные разработчики ходят по собеседованиям просто так, чтобы потестировать, поговорить про разработку, какие-то, может быть, в себе обнаружить проблемы, которые видят другие. Тоже вариант. Да, ты действительно получаешь какие-то знания о том, какие проблемы у тебя существуют, и потихонечку это накапливаешь. Поэтому самое главное – не надо бояться собеседований, даже если знаете, что в какие-то моменты вы попадёте туда, где вам скажут “А что ты здесь делаешь?” Ничего страшного. Вы забудете скоро об этом, и в той компании тоже забудут про это. Это не позор на весь мир, грубо говоря. Ничего в этом страшного нет, это нормальная, обычная ситуация. Григорий, что-то добавишь насчёт собеседований?

Григорий Петров: Свою позицию я уже много раз обрисовывал. Я считаю, что мы такое видим, потому что процесс найма разработчиков у нас пока не очень хороший. Спрашивают не то, проверяют не то. То, что можно так походить по собеседованиям, узнать ответы на какие-то ключевые вопросы и потом в какой-то момент пройти, – это как раз для меня и показатель того, что спрашивают совершенно не те вещи, которые надо бы спрашивать. Но тут ещё вполне возможно идет именно непопадание резюме. Более правильное скрафченное резюме будет попадать на лучшие вакансии, где будут спрашивать именно соответствующие у джуна вопросы. Зачем джуна спрашивать, что такое having? Синтаксис SQL изучается за день. То есть обучить его делать те 5 нужных компаний, select, insert и loin, – это совсем не “rocket science”.

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

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

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

Максим Артемьев: Кстати, когда устраивался в Seendex, я не только проходил собеседования с непосредственным руководителем, где буду работать, но я проходил еще тестирование, на интеллект в том числе. То есть там задавали вопросы, как я себя поведу в такой-то ситуации.

Валентин Домбровский: Я посмотрел немножко про компанию. Насколько понял, там, в принципе, такая серьёзная какая-то Big Data аналитика завязана. Видимо, у них примерно такой же подход к отбору кандидатов.

Максим Артемьев: Когда уже устроился, я спросил у психолога компании, который составляет эти вопросы: “Почему я подошел вам?” Там есть такое задание, где нужно проходить лабиринт. Там неправильное управление и нужно в процессе прохождения разобраться, что это за управление такое и пройти до конца. Они по какому-то количеству ошибок определяют, что этот человек достаточно быстро обучается, чтобы делать их работу какую-то. То есть у них более такой научный подход к найму.

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

Максим Артемьев: Мне, может быть, не повезло. Я для себя считаю, что мне не повезло. Но в компании, где я работаю, используется Торнадо фреймворк, и для джуна это головная боль. То есть когда Flask более очевидно работает, проще, то в Торнадо эта асинхронность какая-то не такая, которую я пытался понять. В общем, не получилось у меня. То, что делается долго, я просто вынес в Celery и Redis. Сейчас я делаю просто маленькие микросервисы, которые делались предыдущими разработчиками, и мне уже стало чуть-чуть легче читать код. Даже у вас был подкаст, где говорили о том, как читать код, и там очень важный пункт был, что нужно на ключевые функции писать тесты. В компании не то, что составляют, требуют написание тестов на всех сервисах, которые разрабатываются. Мне дали сервис, который я не знаю и нет тестов. Соответственно, я сделал как бы двух зайцев: я изучал сервис, который мне дали и плюс писал потихонечку тесты. Тестов написал немного, но зато я понял, как работает основная часть, основной функционал и он не ломается.

Валентин Домбровский: Какие планы? Ты устроился туда недавно, получается.

Максим Артемьев: С начала февраля устроился.

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

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

Максим Артемьев: Можно немножко лести? Я немножко похвалю курсы. Можно?

Валентин Домбровский: Нет, не смей! Ну, ладно, давай, хорошо.

Максим Артемьев: Мне понравились курсы тем, что в отличие от других здесь фактически есть коллектив сразу. То есть приходят разные новые люди. В компанию я пришел сразу к новым людям и когда уже начал работать, у меня постоянно были флешбеки, что здесь новый коллектив и нужно вливаться. И на курсах то же самое было. Когда есть умный человек во главе стола, который всеми рулит, ему можно задать любой вопрос, то же самое в компаниях. Не знаю как во всех, но конкретно в Seendex у нас есть наставник, к которому тебя прикрепляют на испытательный срок, и ты ему задаешь абсолютно все вопросы. То же самое было на курсах. У нас был тоже наставник, который в любой день, ночью даже мог ответить, если что-то не получается.

Валентин Домбровский: Кстати, твой наставник Игорь тоже выпускник наших курсов.

Максим Артемьев: Да, он крут. Я не знаю, как на остальных, я нигде не был, кроме Learn Python, но я изучал предварительно Курсеру и других. На ваших курсах будет хорошим плюсом, что ты постоянно посещаешь курсы и по несколько часов упорно погружаешься в разработку. То есть ты не делаешь какие-то сложные задачи, но возникает постоянная привычка, что ты постоянно целенаправленно развиваешься. Когда ты привыкаешь развиваться, в будущем тебе становится легче. Соответственно, вопрос по курсам: Когда будет новый и круче?

Валентин Домбровский: Мы постоянно становимся круче, стараемся эволюционировать. Тебе можно приходить и прокачивать какие-то вещи дополнительно. Поскольку сейчас мы разделили на три потока, у нас веб-разработка, чат-боты, искусственный интеллект, возможно, появится что-то ещё, разные потоки. Можно смотреть видеоматериалы и в каких-то специальных направлениях прокачиваться. Но это ещё не всё. Может быть, сейчас наши конкуренты тоже смотрят наши видео и тоже какие-то моменты берут себе на заметку. А нам нормально, на самом деле. Нам главное, чтобы сообщество Python росло, мы об этом говорим всё время. Да, мы сейчас ведем работу над продвинутым курсом. Сейчас у нас будет пока что курс по Django. Это такой тестовый запрос. Я надеюсь, скоро мы выпустим эту историю и в таком же режиме постараемся давать более продвинутые вещи.

Кстати, вот этот момент касательно наших занятий в офлайн. Когда люди приходят и погружаются в разработку, не все и не всегда понимают такой формат. Кажется, ну, а что, вот я пришел, я пришел на занятия. Что такое занятия? Опять же, школа, университет. Передо мной преподаватель. Он мне что-то рассказывает, может быть, что-то спрашивает. Но в любом случае, так или иначе, преподаватель ведет занятия. У нас такого нет. Люди ведут себя сами. Не потому, что мы такие ленивые, хотя вот Григорий отметил, что программист – человек ленивый. Но мы нашли оптимальный, как нам кажется сейчас, метод. Это именно то, что ты сказал – люди приходят, их ничто не отвлекает, они в своём коллективе занимаются какими-то задачами по разработке. Это самое главное, эти навыки нужно приобретать. В конце концов, наш курс был создан практиками, и эти практики внедряют в сам курс. Да, это была небольшая рекламная пауза.

Большое спасибо, Максим. Очень интересно. Желаем тебе удачи в твоем дальнейшем развитии.

Григорий Петров: Поздравляю тебя с почином – первая запись на камеру.

Валентин Домбровский: Да, поздравляем с почином. С вами был Python Junior подкаст, Валентин Домбровский – сооснователь Moscow Python, Григорий Петров – евангелист Moscow Python, руководитель программного комитета Moscow Python Conf++, Максим Артемьев – младший аналитик компании Seendex. Python Junior подкаст записан при поддержке курсов Learn Python, ссылочка в описании. Пишите комментарии, ставьте лайки. Подписывайтесь на наш канал, здесь говорят про Python.

1515
104 комментария

Кто минусит? Хорошее же дело делают ребята.

5
Ответить

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

И правда, зачем мы минусуем эту кашу из топора? Люди делают отличный бизнес, запаривая лохам что после таких курсов они смогут найти работу программистами

3
Ответить

Haters gonna hate. :)
Спасибо!

Может, как-нибудь надо будет принести на VC историю сообщества разработчиков как бизнеса. :)

2
Ответить

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

1
Ответить

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

1
Ответить

Это как раз не рассказываем — поиск был довольно сложный.
Курсы не мутные — созданы московским Python-сообществом, существуют 3 гола и людям помогают и это не единственный пример, выпускника, нашедшего работу после них.
Вот, например, история врача ставшего поограммистом. Нанашем Ютуб-канале MoscowPython также можно посмотреть примеры проектов, которые делают наши выпускники в течение курсов.

1
Ответить

Личный опыт джуниораКому нужен опыт джуна вообще? Открываете PyCharm и вот вам опыт

Ответить