Как можно стать программистом с нуля: как гуманитарий выучился на разработчика

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

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

Мотивация бывает денежной либо естественной. Про первый случай можно сказать, что IT-профессии действительно востребованы на рынке труда, и их представители получают достойную заработную плату. А если вы, всю жизнь будучи гуманитарием, вдруг обнаружили в себе непреодолимую тягу писать код, то пугаться не стоит – люди меняются. Лучшая мотивация – совмещенная – “денежно-естественная”.

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

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

Выбор специализации

Под программированием мы понимаем создание приложений, удовлетворяющих определенный пользовательский запрос. Запросов этих существует великое множество, будь то создание сложных нейронных сетей, распознающих лица прохожих, разработка игр для компьютеров или смартфонов, написание прошивки для умной кофемашины, и так далее.
Для участия в таких сложных проектах без должного технического образования и математического склада ума, как правило, не обойтись. Поэтому гуманитарию стоит начать пробовать себя в веб-разработке. Это одна из самых простых для начинания областей программирования, которая может стать трамплином для входа в IT, а в будущем сменить область разработки удастся без особого труда.
Грубо говоря, все, что вы видите, открывая браузер и путешествуя по просторам Интернета, – результат труда веб-разработчиков. Все они отличаются по сложности используемых технологий. И если сайт школы, в которой вы когда-то учились, в одиночку сотворил учитель информатики, коротая длинные осенние вечера, то сайт какой-нибудь социальной сети, например, “ВКонтакте” – результат кропотливой работы множества специалистов. В основном веб-разработчиков разделяют на следующие категории:
Фронтендеры. Они отвечают за внешний вид сайта и за функции, непосредственно доступные пользователю. Можно провести аналогию, представив разработчиков как строителей. В таком случае фронтендер – мастер отделочных работ. Он выбирает, какие поклеить обои, какой формы сделать окна, ширину дверных проемов. Делает все, чтобы людям было удобно и комфортно входить в строение и жить в нем.
Бэкендеры. Эти ребята работают с тем, что происходит “по ту сторону” сайта. Они разрабатывают приложения, непосредственный доступ к которым пользователь не имеет, но которые составляют “начинку” сайта, определяют его внутреннюю работу. Они строят дом из кирпича и других материалов и залатывают места, где что-то сломалось.
Девопс-специалисты следят за качеством продукта. Они обеспечивают бесперебойную работу сайта, оптимизируют нагрузку на сеть, следят, чтобы сайт не отказал при большом наплыве трафика. Продолжая аналогию, можно сказать, что они контролируют, чтобы в дом поступала вода, электричество и газ, чтобы он не треснул из-за просадки грунта.

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

Изучение терминологии

Перед началом обучения логичным шагом будет понять, что конкретно нужно изучать.
Три базовых элемента, которые присутствуют в любом современном сайте, это HTML, CSS и JavaScript. Разобравшись в них, вы уже будете способны создавать полноценные сайты.
HTML (HyperText MarkUp Language) – в дословном переводе означает “язык гипертекстовой разметки”. Это подразумевает под собой еще не полноценный язык программирования, а набор команд, указывающих браузеру, как текст, изображения и другие элементы должны располагаться на веб-странице.
CSS (Cascading Style Sheets) – “каскадная таблица стилей”. Как и HTML это только язык описания внешнего вида страницы. В нем задаются параметры, дающие браузеру понять, как оформить сайт: тип и размер шрифта, расстояния между объектами, цвет фона и многое другое.
JavaScript – полноценный язык программирования. С его помощью можно “оживить” страницу: добавить сложную анимацию, задать действия при нажатии кнопки и полностью обеспечить комфортное взаимодействие пользователя с сайтом. Кроме того, с помощью JavaScript можно писать и бэкенд-программы, работающие на сервере, и даже десктопные приложения.

Найти материал

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

Курсы

Первая приходящая в голову мысль при поиске материала – вбить в поисковик “курсы фронтенд-разработки” и выбрать первый попавшийся. Это имеет смысл, ведь большинство курсов продуманы так, чтобы дать наибольшее количество полезных навыков и информации в кратчайший срок.
В основе все курсов лежит один шаблон: вводная часть об общих принципах работы сайтов, объяснение материала от простого к сложному, параллельное закрепление несложными практическими заданиями.
Изучили работу с текстом – собираете текстовые блоки, работаете со шрифтом и выделением. Узнали о работе с изображениями – задавая нужные параметры, вставляете на страницу картинки. Познакомились со скриптами – пишите веб-калькулятор или простенькую игру.
Курсы бывают полностью бесплатными, частично бесплатными и платными. В платных вам, как правило, предоставляют ментора – профессионала, консультирующего по всем вопросам и помогающего с нахождением и исправлением ошибок. Это может сэкономить много времени и нервов, особенно когда в коде “все правильно, но ничего не работает”.
Если вы обладаете достаточным ресурсом времени и готовы к самостоятельному упорному труду, то лучшим выбором будет не переплачивать. Рассмотрим именно этот бюджетный вариант бесплатных курсов.
HTML Academy предоставляет бесплатный курс по основам HTML и CSS. В нем вы читаете лекции и выполняете задания, которые проверяются автоматически.
Можно купить дополнительную платную подписку и получить доступ к продвинутым главам. В них входит, например, основа адаптивной верстки. Это специальная конфигурация сайта, позволяющая отображать его одинаково хорошо и на компьютере, и на телефоне. Сейчас это стандартное требование, без которого не обходится ни один серьезный сайт.
Кроме того, можно пойти учиться в Codeacademy или на “Яндекс-Практикум”. При знании английского лучше всего выбрать бесплатный сайт Freecodecamp. Он предоставляет обширный курс, охватывающий множество тем. Чтобы изучить все, понадобится около 3 месяцев, а по окончанию вы сможете не только сверстать простенькую веб-страницу, но и, например, обезопасить сайт от хакеров и знать все способы визуализации данных.
Если что-то кажется непонятным, сложным или попросту на данный момент ненужным, не бойтесь пропускать такой материал. Вы всегда сможете вернутся к нему уже с большим пониманием дела и найти в более продвинутых источниках.
Книги
Толстая техническая литература в основном имеет смысл для людей, уже вовлеченных в дело и желающих повысить свои навыки. Среди книг, полезных новичкам, можно выделить:
“JavaScript: сильные стороны” авторства Дугласа Крокфорда. Эта книга глубоко и простым языком поясняет принципы и возможности, принятые в языке. Дуглас Крокфорд принимает активное участие в развитии JavaScript и очень хорошо понимает, как писать понятный код, чем тоже делится в своем пособии.
“Новая большая книга CSS”, Дэвид Макфарланд. Делится на две части, где в первой вас познакомят с основами CSS и HTML, с созданием стилей и их управлением. Во второй части акцент поставлен на подробном разборе практических возможностях CSS.
“HTML5 и CSS3. Разработка сайтов для любых браузеров и устройств”, автор Бен Фрэйн. Эта книга рассказывает о том, как возможностями современных CSS и HTML создавать адаптивный дизайн сайтов. О том, что это такое и почему это важно, говорилось выше.

Закрепление практикой

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

Разработка

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

Выводы

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


11 февраля 2022

Вас может заинтересовать

16 сентября 2023
Все, что вам нужно знать о серверах 10 Гбит/с
В современном цифровом мире скорость решает все. Вот почему пропускная способность является таким ва ...