Елена Булыгина предлагает Вам запомнить сайт «Ленусик»
Вы хотите запомнить сайт «Ленусик»?
Да Нет
×
Прогноз погоды

Основная статья: Веб разработка

Как опытный IT-специалист изучал Python в GB

Константин Ложкин — Magento-разработчик, т.е. специалист, который пишет интернет-магазины на PHP-движке Magento. Уже три года как Константин живет и работает в Германии. Совсем недавно он поделился историей своего переезда и трудоустройства, а главное — подробными рекомендациями для тех, кто хотел бы работать в ЕС. 

Сегодня мы решили расспросить Константина о его тринадцати годах в IT, об учебе в GeekBrains и о преимуществах написания бэкенда на PHP и Python. Также немного поговорим о том, зачем веб-разработчику разбираться в информационной   безопасности.

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

— Впервые коммерческую программу я написал в 2006 году, когда учился на первом курсе университета. Это было решение для автоматизации производства пенопласта. Программу внедрили и использовали на промышленном предприятии минимум пару лет. Были за время учебы и другие подработки: создание небольших сайтов, верстка. В 2010 году я окончил университет и остался работать в сфере образования. В этот период написал на PHP систему для дистанционного тестирования студентов. Ее в университете использовали до 2015 года. В этот период я также работал по совместительству в технической поддержке Яндекса.

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

Хочу порекомендовать новичкам: когда у вас уже есть базовые знания для позиции программиста, переходите к работе в команде. Это ускорит ваше обучение. Два года командной разработки дали мне в разы больше, чем все предыдущие годы кодинга в одиночку. Например, я изучил на практике Docker и Vagrant, узнал про автоматическое тестирование с помощью PHPUnit-тестов и с их помощью нашел вагон багов в чужом коде. Это технологии, которые используются только в больших проектах, — на маленьких, над которыми работаешь один, это бессмысленно. 

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

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

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

— До 2014 года я работал в Яндексе, в технической поддержке сервиса «Почта для домена». Там я узнал, что почти все проекты Яндекса написаны на Python и что этот язык хорошо заточен под работу со строками, поэтому идеален для крупной поисковой системы. 

Больше я тогда ничего не знал о Python, и, конечно же, заинтересовался им. Хотел переквалифицироваться из сотрудника техподдержки в Python-программиста

Обстоятельства распорядились иначе, и я погрузился в более знакомую мне сферу PHP, а затем переехал на работу в Германию. Но от идеи изучить Python не отказался, потому что понял, насколько он перспективен.

— Вы окончили вуз по специальности «системное программирование» — это хорошая теоретическая база. Дальше получили опыт PHP-разработки. Почему вы решили изучать Python на курсах, а не самостоятельно, по книгам и документации?

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

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

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

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

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

— Почему вы остановили выбор на курсах GeekBrains? Насколько оправдались ожидания от учебы?

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

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

Еще один аргумент в пользу онлайн-обучения — его легче совмещать с полной занятостью на работе.

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

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

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

— В курсе по профессии «Программист Python» обучение языку разделено по уровням. На одном из них мы разрабатывали собственный мессенджер. Позже этот проект студенты продолжили доводить до ума на стажировке. А я попал в команду, которая делала другой проект, и разрабатывал backend-часть для программного HR-бота. Нужно было написать API, который отвечал бы за сохранение данных и взаимодействие всех частей бота между собой. Таких частей две: frontend-клиент и «паук», который собирает данные в интернете и передает API для обработки.

Backend я построил на основе Flask. Сейчас мы с командой вносим финальные правки, и совсем скоро проект будет внедрен реальным заказчиком. Ждать осталось совсем чуть-чуть :)

— Вы теперь можете сравнить написание backend’а на PHP и Python. В чем, на ваш взгляд, плюсы и минусы? Что бы вы предпочли делать с помощью PHP, а что — на Python? 

— Почему-то у PHP много хейтеров. На мой взгляд, он хорош для небольших сайтов или случаев, когда нужно минимизировать сложность разработки интернет-магазина средней величины. Под PHP есть ряд популярных CMS, на которых легко запустить сайт с нужными функциями: тот же блог на Wordpress. 

В немецкой компании, где я сейчас работаю, используют Magento CMS — большой и местами неповоротливый движок для интернет-магазина. Под Python нет готовых инструментов такого масштаба. Python — это скорее конструктор. С ним вы собираете что-то свое из множества небольших модулей. А у движков на PHP много лишнего «в нагрузку».

PHP старше, и иногда это играет с ним злую шутку, но все же он развивается: например, PHP 7 гораздо быстрее прошлых версий. Думаю, этот язык еще долго продержится в пятерке самых популярных.

Python незаменим для крупных веб-проектов, где важно быстродействие. А еще это универсальный язык, на котором можно писать что угодно, в том числе desktop-приложения. Его используют для сложных научных вычислений, построения нейросетей и даже для программирования умного дома на базе Raspberry Pi. Думаю, PHP никогда не сможет предложить так много вариантов применения.

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

— Помимо Python вы изучали в GeekBrains информационную безопасность. На каком этапе сейчас обучение? Вы собираетесь применять эти знания в разработке? Или вам интересна возможность перейти с позиции разработчика к работе программиста-безопасника?

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

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

Пройти обучение

15 авг 19, 14:52
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Из автосервиса — в веб-разработку 

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

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

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

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

— Куда можно пойти работать с дипломом историка?

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

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

— Как вы стали автомехаником и где учились?

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

Выучился на автомеханика на курсах ДОСААФ: там работают хорошие преподаватели и есть гараж, где дают покопаться во внутренностях автомобиля. Когда пошел на стажировку, у меня были и теоретическая база, и опыт. В итоге остался работать там, где стажировался, — в Bosch-service.

Почему так мало проработали автомехаником — всего год?

— Эта работа мне очень нравилась. Я бы не отказался и дальше этим заниматься, если бы там можно зарабатывать по-человечески. Сервисов в Кемерово много, а загрузки мало, и 40 % дня сидишь без работы.

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

Есть объективный потолок заплаты, и очень невысокий. При идеальном раскладе, если целыми днями, без перерывов и обеда, работать на какой-нибудь замене колодок, которая делается почти вдвое быстрее нормо-часа, то за месяц можно заработать 64 800 рублей. Это предел и идеальная модель, которая в жизни никогда не осуществится. А так автомеханик зарабатывает от 20 до 40 тысяч рублей, и 40 — это очень круто.

Справедливости ради, стоит заметить, что у автомехаников (если в сервисах нет отдельно шиномонтажников) два раза в год случается праздник — зарплата достигает 80 тысяч. Это сезон «переобувания». Примерно неделю автомеханики работают по 18 часов в день без перерывов. Это адски тяжелый труд. Причем половину заработка можно легко потерять, в спешке испортив дорогой диск. 

— Как вы пришли к идее заняться разработкой?

— Все началось с компьютерных игр. Раньше я довольно активно в них играл, например в RPG Lineage — эта игра привлекала социальной составляющей. И постоянно перед глазами были примеры, как люди зарабатывают на игровых серверах. 

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

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

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

Нашел интерактивные курсы HTML Academy, затем CSS освоил. Потом понял, что этого недостаточно, — чтобы сделать свой сайт, нужно еще выучить PHP. Прошел и этот курс. Попутно изучал дополнительные технологии, пытался знакомиться с JavaScript, улучшал навыки в верстке.

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

— Помогли новые знания?

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

Первая моя работа была связана с СRM — меня взяли в стартап, у которого не было ни лида, ни наставника, ни четкого бизнес-плана. Дали доступ к серверу, ТЗ и сказали «Дерзай!». Это была настоящая школа выживания — перед тобой ставят задачу, с которой ты совершенно не знаком, и приходится искать решение с помощью Google. Тем не менее я продержался полгода, несмотря на то, что зарплату они стабильно задерживали, а придраться пытались к каждой мелочи. При этом все равно я получал больше среднего дохода по области.

Благодаря этому опыту вскоре я устроился на более высокооплачиваемую работу — в веб-студию из Санкт-Петербурга, которая занимается поддержкой CRM, созданных на базе vTiger. С ними я удаленно сотрудничаю уже полтора года. Одновременно работаю в штате одной местной компании — разрабатываю узкоспециализированную рекламную веб-площадку для привлечения клиентов.

— Почему выбрали GeekBrains и рассматривали ли другие образовательные курсы?

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

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

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

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

С JavaScript эту ошибку я решил не повторять и проходил курсы планомерно, шаг за шагом, — так оказалось эффективнее и удобнее. Я, собственно, еще учусь. Продвинутый курс по JavaScript у нас закончился в начале июня, потом начался по React. Еще мне предстоит пройти бонусный курс, который мне подарили на Новый год, — Node.js. Так что буду учиться до конца лета.

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

А лайфхаков, как сочетать учебу и работу, у меня просто нет: я порой ложусь спать в 6 утра. Из-за разницы во времени с Москвой занятия в GeekBrains для меня начинаются в 12 часов ночи. И для программиста на удаленке работать ночью — обычное дело. 

— Не страдает ли семейная жизнь при таком насыщенном графике?

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

— Довольны ли вы сейчас своими доходами?

— Да, вполне. Правда, еще не догнал свои показатели из продаж в брендовом магазине, но максималку для автослесаря уже преодолел.

— Как планируете развиваться?

— Одна из перспективных идей — попробовать себя в разработке игр. Я уже посмотрел, где можно этому учиться, к примеру: на GeekBrains есть курс по С++ с интересным содержанием, на другом ресурсе — хороший курс по Unreal Engine. На работу в зарубежных компаниях пока не рассчитываю, для этого мне нужно подтянуть английский.

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

Пройти обучение

8 авг 19, 14:59
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Говорят, выучить Python и стать программистом легко. Правда?

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

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

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

Для чего учить Python

Артем Сухаренко учился в СибГИУ на кафедре автоматики и информатики. Его специальность была инженерной, но не связанной с программированием. После выпуска Артем устроился работать на завод ЗСМК — один из самых крупных металлургических комбинатов в России

«Я обалдел, насколько там все ужасно», — говорит он, — «Полуразвалившийся советский электропривод, никакой модернизации, специалисты особо не нужны». Долго на заводе он не задержался, но продолжил работать с электрикой дальше. Вырос до ведущего инженера в Сибирьтелекоме, затем переехал из Сибири в Москву и устроился в коммерческий ЦОД, где отвечал за инфраструктуру.

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

«Может быть, я не туда совался, но развития для себя не нашел. Пять лет вуза — просто чтобы крутить провода. Это было так обидно».

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

В 36 лет Артем пошел на курсы Python-разработчика.

 

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

«Зная Пайтон можно делать много всего — от простейших скриптов до анализа данных и построения нейронных сетей. Но конкретно разработка на Пайтон — это бэкенд для веб-серверов, разработка скрытой части интернета — той, которую не видят обычные пользователи. Сервер, его логику, взаимодействие с базами данных», говорит Алексей Петренко, декан факультета Python в Geekbrains.

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

 

«Хоть Python и пропагандируется как язык для всего, по факту у него только две сферы применения: всякие data science, ML и прочая математика — и веб-разработка. В этом он меня немного разочаровал», — говорит Данила Лобанов, бывший сисадмин, который недавно стал Python-разработчиком.

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

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

«Я попытался изучать С, PHP, Java еще какие-то языки, но не заходило — начинал и бросал. Не мог писать даже простейшие скрипты. Когда я ходил на курсы по С, у меня получалось читать код, но не получалось его писать. Мне давали задачу, я смотрел на нее и не представлял, как делать. Преподаватель садился рядом, писал построчно, объяснял, и я понимал, что именно так и надо было делать. Но мне давали аналогичную задачу, и я снова был в ступоре».

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

 

«Новичку лучше первым делом разобраться в синтаксисе», — считает Алексей Петренко, — «Только потом стоит думать, куда хочется идти дальше. Чем больше ты учишься, тем больше уходишь от синтаксиса к библиотекам, паттернам проектирования, отдельным шаблонам».

Данила все-таки выбрал Python потому, что язык считался легким. «Синтаксис реально оказался простым», — говорит он, — «Как писать текст на английском языке. Сначала я изучал его самостоятельно по видеоматериалам на Ютубе, по статьям, решал задачи на pythontutor.ru. Но потом понял, что ресурсы в интернете — это только основы и азы. Они доступны всем и везде, и не помогут научиться программированию основательно. Я понял, что надо искать курсы, которые дадут все то же самое, только систематизировано, а потом поведут меня дальше».

Что надо знать перед началом обучения

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

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

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

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

Артем продолжал работать электриком днем, а вечерами начал учиться на курсах, несмотря на усталость. «Как и у всех наивных людей, у меня было ожидание магии от курсов. Я пришел не совсем нулевым. В багаже было несколько книг и даже простых сайтиков, в том числе на PHP (грешен, признаю). Я ждал, что на курсах надмозги меня выдрессируют, и я стану волшебником.  Реалии оказались другими — там такие же люди, которые просто знают чуть больше».

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

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

«Все признавали, в том числе сотрудники Geekbrains, что уровни 2 и 3 в программе по Python были одними из самых сложных курсов в университете. Очень много информации в слишком сжатые сроки, очень большие домашние задания. Многие усваивали только часть материала. Я лично два раза переводился в следующий поток. Мы просили облегчить программу, нас спрашивали как, и я предлагал разбить два курса на три. Что-то из этого приняли во внимание и сейчас реализовали».

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

«Преподавать программирование тоже очень сложно. Всем кажется, что раз человек может писать программы, значит может и научить. Это не так. Когда мышление перестроено, и знаешь много всего — уже не можешь вспомнить, каково это — не понимать».

Алексей предупреждает, что Python легкий только в начале. А после легкой базы придется приложить усилия, чтобы освоить более серьезные аспекты — библиотеки и фреймворки. «Если сравнить язык программирования с водоемом, то, например, язык С — это океан. Ты ныряешь с обрыва на огромную глубину, и либо плывешь, либо тонешь. Язык Пайтон — это пляж с чистым песком, где ты можешь далеко зайти, спокойно поплавать, и если понял, что хочешь двигаться дальше — то за красивым пляжем есть огромная впадина, по глубине сопоставимая с С и Java».

 

«Асинхронное программирование в Python — это мозгодробительная штука», вспоминает Артем. «Мы проходили это как-то поверхностно, и потом даже на собеседованиях, когда по нему спрашивали, я чувствовал, что плыл.

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

Данила же вспоминает модуль select как самое трудное: «Все три потока помнят мою боль с селектами. Есть такой модуль, и он мне прямо очень не давался в свое время. Сейчас-то он для меня простой — я теперь не понимаю, как его можно не понять».

 

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

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

Чтобы в будущем работать в команде и показывать код кому-то еще, надо знать общепринятые стандарты стиля. В Python они называются «Пепы» (Peps). Я бы советовал читать Pep8 параллельно с изучением синтаксиса. Это соглашение программистов, которые пишут на Пайтоне. Оно рекомендует как правильно писать, а как неправильно.

Несколько лет назад в Python произошло разделение. Был Python 2.7, а потом вышла версия 3. Вторая версия все еще используется, но только в старых фирмах для поддержания легаси-кода. Если устроиться в такую фирму, то изучать Python 2 придется, но я бы рекомендовал учить третью версию. Все современные проекты и сторонние библиотеки пишутся под нее».

 

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

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

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

 

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

«Под новый год я написал в компанию, которая просто находилась рядом с моим домом. Зашел к ним на сайт, увидел вакансию бэкенд-разработчика и написал им письмо. Говорю, хотел бы у вас поработать, хоть и учился, но знаю немного. Очень интересуюсь и буду развиваться. И меня позвали на собеседование».

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


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

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

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

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

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

«Я считаю, не спрашивать технические вещи — это правильный подход», говорит Данила. «Очень известный в Python-сообществе Григорий Петров тоже говорит, что скилы по программированию (хард скилы) подтянуть всегда можно. Главное сойтись во взглядах на жизнь, чтобы было комфортно вместе работать. Я с ним согласен.

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

 

«Собеседование, которое проходил я, расплавило мне мозг еще как», вспоминает Артем. «Когда я вышел, состояние было, как будто иду на автопилоте — так сильно продолжали жужжать мысли».

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

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

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

Честно, даже не ожидал, что мне перезвонят. Тем не менее — получил оффер. Через несколько дней будет первый рабочий день».

На какие деньги стоит рассчитывать

Люди идут в ИТ не только по зову души. Это индустрия с одними из самых быстро растущих зарплат в России. И иногда кажется, что зарплаты программистов по сравнению со среднестатистическими профессиями отличаются как зарплаты в Москве и в регионах. Тем не менее, ни Артем, ни Данила не шли в эту профессию за богатством. Больше того — они его пока так и не нашли.

«Даже в Москве на начальных позициях программистам предлагают 40-50 тысяч, может даже меньше. В регионах 20 тысяч для джуниора тоже не редкость. Это не такая уж высокооплачиваемая работа, как все утверждают. Да, когда достигаешь уровня синьора, зарплаты могут переваливать за 200-300 тысяч. Но где таких зарплат нет? Недавно одна такси-компания показала доходы таксистов, которые больше всех заработали. Там 230, 240 тысяч.


На диаграмме зарплат python-разработчиков с разбивкой по квалификациям видно, что медиана для джуна составляет почти 60 000 рублей, тогда как мидл получает уже в среднем чуть больше 100 000 рублей. Зато разница между показателями медиан для сеньора и лида совсем небольшая — 151 000 рублей и 167 000 рублей соответственно.
При построении диаграммы были использованы данные зарплатного калькулятора «Моего круга».

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

«Зарплаты зависят от региона», говорит Алексей, «Кто-то устроится за 40 тысяч как начинающий, кто-то может и сразу на 100 тысяч. Смотря как себя проявить. Если покажешь, что можешь писать не только код, но и разбираешься в архитектуре, можешь набросать схему проекта целиком, всех модулей, сервисов, связей между ними».

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

 

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

«До уровня мидла можно прокачаться в течение года обучения. Например, в Geekbrains есть обязательные курсы и дополнительное. Все их надо пройти полностью чтобы честно сказать — я прокачался до уровня мидла. То есть, получается год основной программы и ещё полгода параллельных курсов», — считает Алексей, — «А синьор — это человек, у которого есть богатый опыт. Это тот, кто разбирается в разных фреймворках, способен масштабировать задачи, понимать каких ресурсов они требуют. Человек, который не изобретает велосипеды. Кто на собственном опыте разобрался во всех аспектах и нюансах работы.

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

Пройти обучение

3 июн 19, 17:17
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Показаны все темы: 3

Последние комментарии

нет комментариев
Читать

Поиск по блогу

Люди

7 пользователям нравится сайт lena2018.mirtesen.ru