Как я стал программистом

167
Как я стал программистом

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

Аватар автора

Тагир Алмасов

лингвист → программист

Страница автора

Спустя восемь месяцев я уже работал в крупном банке на позиции фронтенд-разработчика. Еще через год переехал в Германию. Теперь работаю в Берлине и получаю около 2600 € в месяц. На обучение я потратил всего 300 ₽.

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

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

Шаг 1

Понять: программирование — это не страшно

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

За час занятий с учениками я брал 500—1000 ₽, на выставках платили всегда по-разному, но обычно 2000—5000 ₽ в день. Вроде бы неплохие цифры, но трудозатраты часто сильно превышали вознаграждение, да и заказы попадались время от времени. Поэтому я решил поискать что-то другое.

Сначала я пошел в «Макдональдс»: хотел понять, смогу ли вообще совмещать постоянную работу и учебу. Потом немного поработал в агентстве, которое занимается продвижением в соцсетях, еще пытался попасть на стажировку в финансовые компании Ernst & Young и KMPG.

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

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

Как и многим российским студентам, трудовую книжку мне открыли в «Макдональдсе»
Как и многим российским студентам, трудовую книжку мне открыли в «Макдональдсе»
Шаг 2

Выбрать специализацию

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

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

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

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

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

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

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

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

Обращение фронтендеров Т⁠—⁠Ж

На сегодняшний день фронтенд — это СОВСЕМ не легче, а иногда даже сложнее того же бэкенда. JavaScript за каких-то 20 лет из милого, невинного пупсика, написанного на коленке ради создания простейшего интерактива, превратился в МОНСТРА, с помощью которого можно реализовывать даже серверную часть сайта.

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

Шаг 3

Разобраться в терминологии

Сначала разберемся, что вообще придется изучать. Я буду сильно все упрощать.

Любой сайт работает благодаря трем элементам: HTML, CSS и JavaScript. Упрощенно их называют кодом сайта или просто кодом. Если вы разобрались в них, то уже сможете собирать и программировать полноценные веб-страницы и даже целые сайты.

HTML, или HyperText Markup Language, — в переводе с английского «язык гипертекстовой разметки». Это еще не полноценный язык программирования, а всего лишь набор команд, или тегов, которые помогают браузеру понять, как именно текст и другие элементы оформления должны располагаться на страницах сайта. Это примерно как схема, где в квартире после ремонта будет стоять диван, а где — холодильник.

CSS, или Cascading Style Sheets, — в переводе «каскадная таблица стилей». Из нее браузер узнает, как сайт должен быть оформлен: какими должны быть размер и тип шрифта, ширина полей, цвет фона и многое другое. Это все равно что выбирать цвет дивана или размер холодильника в вашу новую квартиру.

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

Теги HTML в редакторе кода отмечены розовым. Они помогают браузеру понять, где просто текст (— paragraph), где заголовок (— header), а где важный текст ( )
Теги HTML в редакторе кода отмечены розовым. Они помогают браузеру понять, где просто текст (

— paragraph), где заголовок (

— header), а где важный текст ( )
Код для CSS выглядит так. С помощью него задается размер, толщина и цвет шрифта, а также множество других параметров
Код для CSS выглядит так. С помощью него задается размер, толщина и цвет шрифта, а также множество других параметров
Так выглядят простенькие функции в JavaScript. С помощью этой функции программа понимает, как получить нужную информацию со стороннего сайта
Так выглядят простенькие функции в JavaScript. С помощью этой функции программа понимает, как получить нужную информацию со стороннего сайта
Шаг 4

Найти курсы

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

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

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

Некоторые курсы полностью бесплатные, другие — только до определенного уровня. Стоимость платных курсов зависит от их продолжительности и насыщенности. Например, недельный интенсив с ментором может стоить 14 900 ₽, а полный годовой курс с дипломным проектом в конце — уже 148 500 ₽.

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

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

В итоге я начал с русскоязычного сайта HTML Academy. Выбрал его, потому что курс по основам HTML и CSS там полностью бесплатный. Еще можно пойти, например, в Codecademy или на Яндекс-практикум. Я расскажу, как все устроено в HTML Academy.

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

Интерфейс курса по изучению HTML и CSS. Сначала читаешь теорию
Интерфейс курса по изучению HTML и CSS. Сначала читаешь теорию
Потом сразу выполняешь практическое задание, чтобы понять, как это работает
Потом сразу выполняешь практическое задание, чтобы понять, как это работает
Так выглядит структура курса на сайте HTML Academy. Уроки отличаются между собой и по объему, и по сложности. Бывает, что за час успеваешь пройти 2⁠—⁠3 урока, а иногда над одним приходится сидеть целый день
Так выглядит структура курса на сайте HTML Academy. Уроки отличаются между собой и по объему, и по сложности. Бывает, что за час успеваешь пройти 2⁠—⁠3 урока, а иногда над одним приходится сидеть целый день

Освоив бесплатный курс, я решил купить дополнительную подписку на месяц за 300 ₽. Сейчас, спустя 3 года, она стоит 590 ₽ на месяц или 4590 ₽ на год. Платная подписка дает доступ к продвинутым главам курса. Например, про то, как делать сложную анимацию без скриптов, только силами CSS.

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

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

Если есть время, лучше не спешить

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

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

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

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

Курс по веб-разработке там очень обширный и охватывает много тем. Чтобы изучить их все, потребуется около 1800 часов, или 75 дней. Зато, окончив этот курс, вы будете обладать всеми необходимыми знаниями для начала карьеры — от верстки простой веб-страницы до визуализации данных и способов обезопасить сайт от хакерских атак.

75 дней
понадобится, чтобы пройти курс по веб-разработке на Freecodecamp

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

И я ее встретил, когда дошел до JavaScript.

Освоить JavaScript оказалось гораздо сложнее, чем разобраться с тегами в HTML и CSS. Это уже полноценный язык программирования, и, чтобы в него вникнуть, придется понять довольно сложные концепции. Например, хойстинг (не путать с хостингом), замыкания, каррирование, контекст вызова функции, параметры и аргументы функции, синглтон-паттерн, инстанс объекта, интерфейс объекта и т. д.

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

Так выглядит урок на сайте Freecodecamp. Это стандартный интерфейс любого курса по основам программирования: слева — блок с теорией, по центру — терминал, где пишется код, а справа — окно, в котором выводится результат исполнения вашего кода
Так выглядит урок на сайте Freecodecamp. Это стандартный интерфейс любого курса по основам программирования: слева — блок с теорией, по центру — терминал, где пишется код, а справа — окно, в котором выводится результат исполнения вашего кода
А это проекты, которые нужно выполнить в ходе обучения. Например, написать собственный калькулятор. У меня большинство проектов так и остались не сделанными: я решил, что гораздо полезнее будет поскорее начать работать над реальными, а не учебными задачами
А это проекты, которые нужно выполнить в ходе обучения. Например, написать собственный калькулятор. У меня большинство проектов так и остались не сделанными: я решил, что гораздо полезнее будет поскорее начать работать над реальными, а не учебными задачами
Шаг 5

Перейти к практике

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

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

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

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

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

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

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

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

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

Один из моих первых проектов: я собрал страничку, которая загружает случайную цитату про дизайн
Один из моих первых проектов: я собрал страничку, которая загружает случайную цитату про дизайн
А это уже проект посложнее — калькулятор, который я сам запрограммировал. Тут потребовались углубленные знания JavaScript
А это уже проект посложнее — калькулятор, который я сам запрограммировал. Тут потребовались углубленные знания JavaScript
Шаг 6

Найти работу

Где-то через три месяца после начала изучения первого курса по программированию я решил, что пора искать работу в качестве веб-разработчика. Подумал, что главное — попасть в тусовку, а там разберусь.

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

Еще я регулярно проверял сайты известных ИТ-компаний вроде Яндекса, «Мейл-ру» и «Авито». Читал статьи на сайтах «Типичный программист» и «Хабр» — это тематические ресурсы для всех, кто связан с разработкой и ИТ-сферой. По моим ощущениям «Типичный программист» больше для новичков, а вот на «Хабре» в основном сидят опытные разработчики.

Вакансии для разработчиков я искал на сайте «Хабр-карьера». Он специализируется на ИТ-сфере, у него приятный интерфейс, а вакансии часто обновляются. Среди потенциальных работодателей там есть как стартапы, так и крупные технологичные корпорации вроде Т⁠-⁠Банк, Сбербанка или Яндекса.

В вакансиях на «Хабр⁠-⁠карьере» сразу указаны основные навыки, которые потребуются в работе. Это очень упрощает процесс поиска
В вакансиях на «Хабр⁠-⁠карьере» сразу указаны основные навыки, которые потребуются в работе. Это очень упрощает процесс поиска

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

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

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

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

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

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

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

Еще я не всегда понимал, что вообще от меня нужно, какую проблему должен решать мой код, как запустить проект, как проверить, что все работает правильно. В итоге я ушел из компании через три недели. За отработанное время мне заплатили около 13 000 ₽.

13 000 ₽
я получил за свою первую работу программистом
Шаг 7

Найти работу получше

После увольнения из Travelab мне на глаза попалась вакансия фронтенд-разработчика в крупном российском банке. В описании вакансии тоже значилось «Опыт работы — от 2 лет», что я благополучно проигнорировал. Мое письмо прочитали и — о чудо! — взяли меня на работу.

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

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

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

Сейчас я живу в Берлине и работаю в небольшой компании Justwatch. Занимаюсь разработкой приложения для смарт-телевизоров, которое рекомендует фильмы и сериалы на основе предпочтений пользователей и одновременно показывает, на каком стриминговом сервисе их можно посмотреть. После уплаты налогов у меня остается около 2600 €⁣ (176 800 ₽) в месяц. Это не предел, и можно зарабатывать больше. Например, мои более опытные коллеги получают 3500 €⁣ (238 000 ₽).

Шаг 8

Не переставать учиться

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

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

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

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

Хеппи-энд

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

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

И напоследок

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

Можно ли стать хорошим программистом без технической вышки?

Тагир АлмасовХотели бы попробовать себя в веб-разработке?
  • Антон КрутовУже попробовал себя в профессии 1С программиста(10 лет почти), почти все как рассказал автор, только в Германию никогда не позовут8
  • Антон КрутовИгорь, 1С ники на 95% вещь внутриСНГшная, с маленькими островками внедрений за границей, да и в РФ прилично зарабатывать кроме Москвы/Питера/других СНГ-столиц/вахты достаточно тяжело13
  • Антон КрутовTim, Tim, 2600 евро после налогов это примерно 40000 - 45000 в год до налогов, что более менее средние цифры по Берлину для middle разработчика. Мюнхен (где зарплатный максимум) это не вся Германия8
  • Илья КоноваловКонцовка скомканная какая-то. Почему Германия? Откуда знание языка? По сути я так понимаю уровень программирования не высокий, стоило ли уезжать, а не в Москве стараться его поднять?9
  • Максим Шкарбалюк2600 в Германии это конечно еле концы с концами сводить, но все же если человек один и молодой, не обременый иждивенцами в виде детей или родителей пенсионеров, то нормально. Зато есть много нематериальных плюсов: - опыт - язык - возможность взглянуть на свою жизнь с другой стороны - международный рынок труда - визы и тп разрешения на работу, дальше можно уехать в другие страны при желании По поводу фронтенда, я вот как фронтендер с 6 годами опыта скажу, что "просто" нигде не бывает, в любой работе есть свои тонкости/сложности, и своя рутина которую приходится выполнять. На счет финансов, у меня дети, родители, так что мне 2600, да и 3500 недостаточно будет в Германии, поэтому я выбрал удаленку и получаю сопоставимые деньги, но живя в России, тут намного меньше требуется ежемесячных трат для обеспечения семьи всем необходимым.32
  • Тагир АлмасовTim, Уже в процессе :) Из-за того, что у меня немного лет опыта разработки, работодатели не очень торопились меня релоцировать. Пришлось идти на компромисс, и просить достаточно низкую зп. На самом деле, даже такой суммы вполне хватает на жизнь.14
  • Eva ShreiberМаксим, 2600 нетто это очень хорошо для Германии, какие концы сводить? За квартиру и счета: ну 1200, зависит от квартиры, скорее всего меньше, еда в Берлине дешевая, на одного 250- ни в чем не отказывать, еще 250 допустим доп. страховки и остается почти 1000 евро (а то и больше) на что хочешь23
  • Максим ШкарбалюкТак я так и написал, что нормально если один.4
  • Тагир АлмасовИлья, уж больно большой получался материал. Может когда-нибудь появится "режиссерская версия" :D Германию выбрал потому что мне тут предложили работать и согласились оплатить переезд. Я хотел пожить зарубежом и узнать, насколько это отличается от Москвы. Переезжать всегда сложно, поэтому лучше это сделать раньше, чем позже. Если вы о немецком языке, то я его не знаю. А английский выучил в универе. В Берлине вполне можно жить не зная немецкого. Уровень можно и нужно поднимать всегда. И не обязательно для этого быть в Москве.40
  • Тагир АлмасовИлья, хотел бы я, чтобы это была нативочка, но нет :(8
  • Тагир АлмасовМаксим, отлично сказано 👍1
  • Eva ShreiberМаксим, да и с двумя детьми тоже норм, если оба родителя примерно столько получают2
  • QABerlin BerМаксим, а если семья, то как бы оба работают)7
  • Boris Köln2
  • тьфунатебя ¯\_(ツ)_/¯QABerlin, а если еще детей заставить работать, детский труд и всё такое!36
  • Тагир АлмасовАнастасия, у меня как раз Голубая карта, хотя в посольстве говорили, что будет рабочая виза. В релокационной фирме мне объяснили, что так тоже бывает и решение о выдаче карты отдается на усмотрение местных органов. Я не вникал в подробности, просто порадовался, что выдали карту. ¯\_(ツ)_/¯ Визу в посольстве оформили за пару дней. Немного придирались к документам, но я приложил выписку о том, что мое образование соответствует бакалавриату в Германии. Больше ничего подтверждать было не нужно, хватило документов от работодателя.13
  • Тагир АлмасовБорис, это я понял немного позже :) Тем не менее, мне сняли на месяц квартиру, сделали регистрацию и благодаря этому было гораздо проще оформить необходимые бумаги, вроде банковского счёта. Квартиру в Берлине найти и правда сложно. Первое снятое жилье было дорогим для своего расположения, с неудачной планировкой и в старом доме, плохо обслуживаемом доме (привет насекомые и влажный подвал). Когда я освоился в городе, у меня получилось найти отличное жилье, в 7 минутах пешком от работы. Но это уже другая история.20
  • Евгений МирошниченкоПочему никто не пишет, что программисту и айтишнику нужна усидчивая жопа и здоровая спина?21
  • Василий Анисимов> Я подписал договор о неразглашении информации, поэтому не могу назвать свою зарплату в банке. Но ведь ЗП не является коммерческой тайной. Даже статья тут была на эту тему: https://journal.tinkoff.ru/ask/molchite-o-zarplate/28
  • Andrey BeliyОчень забавно, что ФРОНТЕНДЕРЫ Т-Ж кинули обидульку, но аргументируют почему-то тем что на JS можно писать бэкенд =) Он же не сказал что экосистема JS это легко, а то что для фронта порог вхождения сильно ниже18
  • Андрей СазоновAndrey, вообще фронт для старта самое то, собственно как и тестирование. Можно устроиться через 1-2 месяца джуном с нуля, при должной усидчивости.19
  • Иван КрюковТагир, ты молодчина! Мильон пирогов тебе в руки!:)20
  • Tim SchneiderМаксим, аналогичный случай у меня в колхозе: схожая зарплата, но в России, со своим жильём и тратами в рублях. Хватает на бутерброд с маслом и икрой, а в Германии будет маловато даже мне одному (что поделать, привык уже). С учётом необходимости покупать квартиру не за рубли и начинать всё по сути хорошо если со своей студии... тяжело. Зато помогать родителям проще с той зарплаты, недооценённость рубля на руку играет. Нематериальные плюсы, увы, уравновешиваются нематериальными минусами, потому даже на бóльшую зарплату особо не рвусь, хоть и радуюсь за тех, у кого получается найти себя в совершенно другой экосистеме: это не лучше, это не хуже, это просто по-другому и не для всех.3
  • Тагир АлмасовArtem, совершенно не горю желанием обесценивать ваш опыт и знания. Существуют задачи и проекты, где очень важно глубинное понимание программирования и информатики. К тому же, именно благодаря таким людям есть модные фреймворки, которые сильно упрощают работу современного разработчика. И существуют они именно для того, чтобы облегчить рутинные задачи. Другое дело, что зачастую цели бизнеса решаются гораздо проще. Вряд ли кому-то было бы приятно годами учить строение компьютера, разбираться в том, как работает обращение в память, только что для того, чтобы "писать формочки" на HTML. Или делать так, чтобы сайт красиво и "бесшовно" переключал страницы. И нельзя отрицать что, современные JS приложения содержат немало логики, и от умений фронта зависит насколько быстро работает и грузится сайт. Красота современной разработки в том, что можно в "пару кликов" поднять базу данных, соорудить бэкенд на облачных функциях, написать фронт на фреймворке, и вот у вас уже есть готовое приложение, которое решает какую-то конкретную задачу. Благодаря этому сейчас существует огромное количество сайтов и приложений на любой вкус и цвет. Побочный эффект - качество среднего приложения страдает, но это пройдет со временем.28
  • Тагир АлмасовСавелий, переизбытка как раз не наблюдается. Напротив, приходится долго искать хорошего специалиста. Годы опыта и желание получать много никак не отражаются на умениях. К нам приходили ребята с тех.образованием, 5 годами опыта и желанием получать > 70k в год, но совершенно не знающие основ JS. Процесс найма разработчиков фронтенда такой же долгий, как разработчиков бэкенда, специалистов по машинному обучению и т.д. Гораздо быстрее находятся люди в продажи, маркетинг и т.д. Кстати, из Индии приезжает много дата-саентистов. И все-таки присмотритесь к "профессиональным кругам", где такое предвзятое отношение к отрасли — может они не такие уж профессиональные.20
  • Sol InvictusМаксим, « 2600 в Германии это конечно еле концы с концами сводить» Ахахахаха. 2600 на руки в Германии — вполне достойная зарплата.0
  • Дмитрий Шевелевочень забавно - на момент, когда у нас совпал универ, я подумал - ого, прикольно. в конце статьи, несколько раз перечитав имя, понял, что мы учились на одной кафедре с разницей в 2 курса :D так что привет тебе из персидского прошлого8
  • Поликарп ПоликарповичЭдуард, лингвисты-переводчики гуманитариями в строгом смысле не являются, так как учить другой язык ничуть не легче, чем изучать математику. Я наоборот не удивлен, что автор, имея данное образование, стал проггером. Умение скрупулезно работать и знание английского довольно сильно помогают на данном поприще.13
  • ТёмаА у меня не бомбит от программистов, не понимающих что они делают. Во-первых, при отсутствии опыта любая высококвалифицированная работа выглядит так. Во-вторых, они делают труд опытных разработчиков ценнее.12
  • Михаил НабокаТагир, спасибо за статью. Вы даже не представляете насколько мотивирующим может быть подобного рода материал для людей, которые сомневаются в успехе данного мероприятия. И речь здесь не всегда о смене профессии, я например хочу научится программировать для того что бы решать прикладные задачи типа расчетов, которые сейчас выполняются ,например, в excel.22
  • ДаблГусьArtem, если автор забесплатно обесценил 10 лет Вашего стажа - Ваши знания ничего не стоят14
  • EvgeniyТагир, не удержался от написания комментариев. Ты молодец. Прям завидую такому упорству. И по комментарию выше. Как же меня радует нытье "просветленных/образованных", которые сидят на жопе и занимаются ерундой. А потом поднимают голову и видят, что "неучи" зарабатывают деньги и участвуют в проектах, которые, по-честному, хотелось бы делать самому. И тут просыпается ложное знание о том, что он минимум 6 лет учился постигать дзен, а бездари подрезали ему крылья. Можешь? Делай!16
  • Simon saysС обидки к бекендерам посмеялся, спасибо)) Фронтендера, как говорится, каждый обидеть может)12
  • AyaElena, так освой data scince. А про мозги это всё стереотипы. Знаю кучу примеров, кто смог, особенно из девушек. У многих нет технического образования, зато было желание и мотивация.6
  • QABerlin Berтьфунатебя, в смысле заставить работать? Это семья отца-одиночки с детьми?? скорее всего у эмигрировавшего программиста есть жена, у которой есть мозги и руки и очень вероятно что какое-то законченное образование) А значит работать ей ничего не мешает) И значит семья где есть 2 взрослых спокойно могут зарабатывать 5+ тыс евро на руки)3
  • anjr anjrК сожалению, в России сейчас цветёт своеобразный "культ диплома". Можно быть прекрасным специалистом, но получить работу без бумажки ВУЗа практически нереально. Случай автора - исключение. Называю диплом "бумажкой" потому что неоднократно приходилось на рабочем месте обучать дипломированных специалистов азам профессиии (теплоэнергетика) и цену дипломам российских ВУЗов знаю не понаслышке. Зачастую выпускники не знают элементарных вещей из школьного курса физики.7
  • Evgeny YakovlevArtem, у меня похожая с автором история, в том смысле что я без ВО или СПО. Правда я системный программист, работаю с ядром ОС. Сейчас у меня 12 лет опыта, но я учился сам, в т.ч. математике и архитектуре компьютера. По книжкам, по интернету, затем на первой работе. Сейчас я тимлид в топ3 технологической компании в России. Автор совершенно правильно делает, что вламывается на вакансию игнорируя требования. Экономика нашего рынка труда такая, что такие люди с таким опытом востребованы, и ничего с этим не сделаешь. Если кто-то выбрал более прямой путь к мечте, то его за это можно только похвалить и сделать для себя reality check. Знания != ВО или СПО. Знания нужно получать постоянно, а не отсидеть 4 года в универе и расслабится. Если автор забудет об этом, то в его стремительно меняющейся среде он станет неактуальным достаточно быстро. А система отечественного ВО бесполезна для 90% людей, работающих в ИТ. Поэтому игнорировать требования ВО в вакансиях совершенно разумно. Я это говорю не только как человек, который получил работу без ВО, но и как человек, который в 30 лет поступил таки в универ в Москве и заканчивает его в этом году предположительно с красным дипломом (правда уже не понимаю зачем, скорее по инерции). Самая бесполезная трата времени в моей жизни.12
  • Александр ПлесовскихАндрей, спасибо за код ревю!7
  • Sol InvictusMikhail, во-первых, блаукарту для IT с такой зарплатой получить. 2600 на руки — это почти 4240 брутто в месяц и 50880 брутто в год соответственно. Для браукарты нужно всего 43.056 брутто, если речь идёт о работе в IT. Во-вторых, средняя зарплата в стране в районе 2.860 евро ДО вычета налогов. Потому рассуждения в стиле «боже мой, как вы живете на 2600 ПОСЛЕ вычета налогов» просто смехотворны.20
  • Iuliia NozdrinaВ чате коллег-переводчиков вечно ходит шутка "какой язык выучить? - *подставить любой язык программирования*". Вы эту шутку решили воплотить в жизнь :D Спасибо за статью, было увлекательно читать. Меня хватило только на htmlAcademy, а потом я вернулась к переводу с английского) Зато крупицы html помогли увереннее перейти к переводу видеоигр.17
  • Екатеринаanjr, к разработчикам это не относится. У меня на трех местах работы не спрашивали диплом при готовности его показать, гораздо важнее - релевантные навыки. А вот качество образования в вузе оставляет желать лучшего, да11
  • Иван АндреевНикогда не оставляю комментарии, но тут не могу устоять. Цитирую подпись к одной из иллюстраций: "Теги HTML в редакторе кода отмечены розовым. Они помогают браузеру понять, где просто текст (<p> </p> — paragraph), где заголовок (<h2> </h2> — header), а где нужно выделить жирным (<strong> </strong>)". Цитирую сайт MDN, любимый сайт автора с документацией: "The HTML <h1>–<h6> elements represent six levels of section headings". Еще одна цитата: "The HTML <header> element represents introductory content, typically a group of introductory or navigational aids". Тег <h2></h2> — это heading, а не header. Далее по поводу тега <strong></strong>, якобы он выделяет жирным. Снова обращаемся к MDN: "The HTML Strong Importance Element (<strong>) indicates that its contents have strong importance, seriousness, or urgency. Browsers typically render the contents in bold type". Да, контент внутри этого тега отображается жирным, но это далеко не основное его назначение. Многие скажут мне: "Ну и чего ты докопался, это же мелочь, статья написана простыми словами для тех, кто ничего не понимает в веб-разработке". А я отвечу, что мне странно то, что автор — фронэнд-разработчик — делает такие ошибки, а также то, что этого не заметили фронтэнд-разработчики из Т-Ж, которые "словили лёгкую обиду за фронтенд". Надеюсь только на то, что это редакторская ошибка.6
  • Тагир АлмасовЕвгений, в основном, чтобы понять стоит ли оно того. Основное различие для меня не в зарплатах, а во множестве деталей жизни. Например, в Москве сложно найти хорошую квартиру в 7-10 минутах от работы. Я чувствую себя спокойнее в вопросах здоровья - на больничном не снижают зп, поэтому я не чувствую нужды больным идти на работу. Если уволят, то можно получать пособие. От местных я слышал, что суммы вполне хватает на жизнь. Есть и минусы - в Москве гораздо лучше услуги и сервис. Местные банки могут делать карту 3 недели и хвастаться, что это быстро. Такси дорогое, интервалы на транспорте длиннее, взаимодествие с государством медленное и онлайн развит слабее, и т.д. Мне кажется, что нужно лично попробовать, чтобы понять подходит оно вам или нет.9
  • Alyona KoverkinaТагир, ты ведешь какую-нибудь соцсеть? Интересно следить за тобой после переезда:)1
  • Мария ПетроваQABerlin, как жена (с руками, ногами, мозгами, англ. языком) программиста, работающего в Чехии, скажу, что работу найти очень не просто, особенно в первый год-два (если жена не программист, и не готова идти на фабрику). Но когда зарплата одного, как зарплата двух, это не проблема 😉 тем не менее, учусь на аналитика-данных. Пока все в голову вмещается )4
  • НиколайЕвгений, обе проблемы решаются очень простой гимнастикой для тежелоатлетов у которых обычно адовые проблемы со спиной, три подхода в день по 5-10 минут вопервых оторвут от рутины, во вторых даже самую запущеную спину, где врачи бессильны, приведет в безболезненный порядок за две недели. Из ревизита только покрывало и два квадратных метра пола нужны.1
  • Noler UnityEva, 2600 и в Москве не проблема фпонт разработчику делать. В Германии ИТ вообще не очень ценится, да и сама инфраструктура в стране поунылее чем в США. В США он будет иметь 10000 долларов в месяц. Но в любом случае деньги не стоят того чтобы переезжать, ехать стоит только если культура ближе, а про родную забывать навсегда.0
  • Екатерина ИвановаНиколай, а можете рассказать поподробнее про данную гимнастику, может что-то конкретное сможете посоветовать?0
  • НиколайЕкатерина, вот, пожалуста в видео с 10 минуты примерно, рассказывается и показывается https://youtu.be/T-N7H_mPxr0?t=6251
  • Ты мне нравишься, но...Николай, запомню, чтобы потом посмотреть0