Привет Войтишник! Сегодня в нашем эфире руководство по началу карьеры веб-программиста. Как ты наверное понимаешь, веб-программист это такой человек, который занимается веб-разработкой (спасибо капитан очевидность). И если упрощать сказанное ещё сильнее - то веб программист создаёт сайты, веб-проекты, API для взаимодействия сайта с мобильными приложениями, и вот это вот всё. Веб-разработка это ни что иное, как одна из основ современного информационного общества. И не побоюсь сказать большее - это одна из основ современного мира в привычном нам понимании.
Наивно полагать, что профессия веб-разработчика это "слишком банально". И тем более не стоит считать, что это тривиальная профессия, или профессия которая уже кем-то занята. Посмотри на диаграмму ниже. Это количество существующих в мире интернет-сайтов. На сегодня их насчитывается порядка 1.2 миллиарда штук. То есть, на каждые 7 живущих в мире людей (включая детей и пожилых) приходится 1 интернет-сайт.
Прикинь сам - является ли веб-разработка востребованной, если на каждые 7 человек существует целый сайт, который нужно поддерживать и обслуживать. Это как если бы на каждые две квартиры в многоэтажке приходился один высокотехнологичный чудо-автомобиль, за которым нужно присматривать специальным образом.
На мой взгляд, в этой сфере профессиональной реализации (как кстати и во многих других специалитетах) есть явный недостаток в хороших кадрах. И если быть более точным - то в веб-разработке есть явный недостаток в любых кадрах, хоть в высококвалифицированных, хоть нет. Почему так происходит - для меня загадка, особенно при всём обилии современных возможностей освоить эту профессию. И открою тебе небольшой секрет - веб-разработка, с точки зрения обучения программированию, является более лёгкой профессией чем например программирование на C++ / C# или других языках, ориентированных на системное высокоуровневое программирование.
Чтобы сделать карьеру веб-разработчика, необходимо освоить HTML, CSS и JavaScript. Эти языки являются основами для создания интернет-сайтов. Также желательно знание CSS / JS фреймворков - ну и при использовании в комбинации с PHP, фреймворков вроде Laravel / Yii. Большим жирным плюсом будет умение работать с СУБД (системы для хранения данных). Приобретение этих основных навыков веб-разработки даст тебе необходимую основу и логическое мышление для создания практически любых веб-проектов. Так что, вот тебе короткий план для начального погружения.
- ⚙️ Изучи основы веб-разработки
- 🔵 Изучи ключевые языки программирования и технологии для веб-разработки
- 👨💻 Выбери специализацию разработки
- 🔌 Постоянно работай над реальными проектами, чтобы развить свои навыки веб-разработчика
- 📖 Создай портфолио веб-разработок
Изучи основы веб программирования ⚙️
Чтобы начать свой путь веб-разработчика, крайне важно получить базовые знания о профессии - в нашем случае это языки HTML, CSS и JavaScript. Именно эти технологии используются для прикладной веб-разработки. Зачастую, начинающие специалисты стоят перед выбором подходящей для себя методики обучения - определяясь в своём решении между книгами, онлайн-курсами, видосиками на YouTube и другими источниками информации.
С моей точки зрения, простой и достаточно последовательный способ погружения в профессию - это классическое (академическое, книжное) образование. Образование через чтение, иными словами. Этот путь подразумевает последовательное чтение книг вроде "обучение веб-разработке с нуля" или "веб-разработка для чайников". Онлайн-материалы можно так же включить в эту категорию. Жирным плюсом этой методики является последовательное погружение в профессию, от азов к более сложным материям. Сюда же относится банальное чтение обучающих материалов на профильных сайтах.
Например, супер-простой и бомбически эффективный способ изучения азов веб-разработки "методом чтения" - это чтение портала MDN. На этом ресурсе сообщество разработчиков Mozilla (браузер Firefox) простыми словами объясняет как устроена веб-разработка и что нужно знать. Лови ссылку, и добавляй её в избранное. Это бесплатно, просто, и супер-эффективно - первоисточник от людей, которые делают веб-браузеры.
Второй вариант - онлайн / оффлайн курсы в некотором коллективе живых людей, тоже изучающих программирование. Курсы обучения программированию приобрели популярность благодаря своей сосредоточенности на практических результатах и часто - благодаря перспективам трудоустройства. Курсы хорошо развивают необходимые навыки для прикладной работы - приучая тебя работать в команде. Это делает их интересной инвестицией для начинающих веб-разработчиков. По данным Indeed, четыре из пяти международных компаний нанимают выпускников курсов программирования. Здесь я могу рекомендовать Skillbox - вот по этой ссылке ты сможешь найти больше информации.
Третий вариант - изучение веб-программирования методом "научного тыка" (популярная методология на просторах пост-советского пространства). Ты берёшь какой-то простой проект или идею из головы, и начинаешь фигачить. Твоя задача - запуск проекта в работающем виде, и плюс-минус адекватный внешний вид (а так же предсказуемое поведение). На каждое твоё спотыкание ты заходишь в Google, и ищешь там ответы на возникшие проблемы. Таким вот нехитрым образом, ты с одной стороны осваиваешь веб-программирование, а с другой стороны учишься искать техническую информацию. Кстати вот тут есть наша статья из прошлого, с большим количеством подробностей на эту тему и щедрым обилием философских рассуждений.
Важно подчеркнуть, что веб-разработчики, в большей степени, чем профессионалы в других областях, должны продолжать непрерывное обучение. Независимо от выбранной методологии или личного желания это делать. Это нужно, чтобы идти в ногу с развивающейся средой веб-разработки, языков программирования, инструментов и платформ. Следовательно, переподготовка в середине карьеры становится необходимой, независимо от первоначальной области знаний. Короче, привыкай к обучению - в IT-сфере без этого никуда.
Изучи языки для веб программирования 🔵
Независимо от выбора методологии обучения или целевого стека разработки, важно приобрести базовые навыки программирования, а так же ознакомиться с различными языками для веб-разработки и дизайна. Хорошей новостью является то, что веб-разработка является более простым стартом в карьере программиста, чем скажем разработка на C++ или Java. Так что, выбирая этот путь ты залетаешь в IT с "черного хода", идя наиболее мягким и простым путём.
Три технологических семейства служат основными инструментами практически для всех аспектов веб-разработки. Это языки HTML, CSS и JavaScript. Гармоничным и последовательным образом их дополняет СУБД MySQL, которая формально не является языком, хотя и использует язык SQL для общения с внешним миром. Итак, чуть более подробно об этом:
- CSS (каскадные таблицы стилей). Благодаря языку CSS, происходит стилизация страниц. Именно с помощью этой технологии страницы разных сайтов выглядят красиво и эстетично. Подробнее про CSS так же можно почитать на MDN - ссылка.
- JavaScript. Вся интерактивная составляющая веб-сайтов создана благодаря языку JavaScript. Всевозможные всплывающие окна, формы ввода сложной информации, интерактивные карты и бесконечные ленты с котами и фитнес-моделями. Всё это сделано на JavaScript. Вот тебе полезная ссылка на обучающие материалы о языке JavaScript на платформе MDN.
- MySQL. Ну какая же веб-разработка без СУБД? Практически все веб-сайты используют базы данных для хранения информации. MySQL является вечной классикой в веб-разработке - это бесплатная и простая СУБД для широкого применения. Предлагаю тебе изучить цикл наших статей про СУБД - и начать стоит вот с этой или этой.
Естественно, этот список из четырёх пунктов не является исчерпывающим; он просто служит отправной точкой. Веб-разработка включает в себя широкий спектр задач, сопровождаемых широким набором языков программирования и разметки. Перечислить их все здесь просто невозможно, да это и не нужно на начальных этапах. Однако, как профессионал, ты можешь изучить и расставить приоритеты среди тех языков, которые на первый взгляд подходят тебе лучше всего. И главное - не бойся допускать ошибок! Даже если ты выберешь "не тот язык" или "не ту технологию", через пару недель ты обнаружишь эту ошибку, но получишь ценный опыт на практике.
Выбери специализацию разработки 👨💻
По мере твоего прогресса в совершенствовании навыков веб-разработчика, в какой-то момент всё-таки придется выбрать конкретную специализацию. Хотя в этой статье мы больше говорим про начальную веб-разработку, но! - освоив некоторое количество базовых вещей, ты сможешь перепрыгнуть в смежные профессии (которые тоже относятся к веб-разработке определенным образом).
Существует три основных типа веб-разработчиков (да и в общем, универсальных разработчиков в общем смысле этого слова). В зависимости от выбранного типа, будет отличаться прикладной инструментарий и путь обучения.
- Frontend-разработчик. Этот человек занимается «клиентской стороной» разработки. Она включает в себя части веб-сайта или приложения, с которыми взаимодействуют живые пользователи. Сюда входят такие части, как создание интерфейса сайтов, дизайн и вёрстка. Все то что в конечном итоге пользователь увидит внутри своего веб-браузера, относится именно к этой специализации.
- Back-end разработчик. Такие разработчики работают на «серверной стороне», уделяя внимание внутренней функциональности веб-сайта. Сюда входят базы данных, серверы, сети, хостинг и другие связанные моменты. Всё то, что в конечном итоге хранится на сервере в дата-центре, относится к ведению backend-разработчика. Это как внутренности двигателя автомобиля - красивый автомобиль куда-то едет, в то время как внутри него работают сотни никому не видимых механизмов.
- Full-Stack разработчик. Разработчик полного стека хорошо разбирается как во внешней, так и в внутренней разработке и работает с обеих сторон веб-сайта. Это универсальный специалист, который создаёт проекты "с нуля", и отлично разбирается во всех аспектах программирования. Подобно тому, как бойцов элитного спецназа забрасывают вертолётами в самые горячие точки, так и Full-Stack программистов телепортируют в подгорающие проекты, которые надо спасать "вчера". Хочешь быть элитой в мире IT - развивай широкий стек программирования.
- Программист баз данных. Хотя чистых специалистов по СУБД не так уж и много, стоит всё-таки выделить это как отдельную специализацию. При желании, ты можешь развить себя именно как специалиста по обработке и хранению данных. Это тоже очень востребованная, и достаточно прибыльная профессия - особенно на мировом рынке. Вот здесь и здесь мы писали об этом более подробно.
С нашей личной точки зрения, перспективным решением является или принципиальный выбор между Frontend / Back-end разработкой (минимальный пакет), или выбор в пользу Full-Stack разработки (максимальный пакет). В случае выбора первого направления, обучение займет около 2-х лет. В случае выбора второго направления, более-менее знающий специалист получается спустя 4-7 лет. Независимо от выбора направления, какие-то первые заработки начнутся уже через год после старта погружения в профессию.
Создавай проекты для развития своих навыков web программиста 🔌
Как только ты поймешь фундаментальное основы HTML, CSS, JavaScript и базовых концепций программирования, ты должен сразу начать свой практический, оплачиваемый путь в качестве веб-разработчика. По мере продвижения ты приобретёшь широкий спектр навыков, необходимых для этой области. И в какой-то момент потребуется сделать шаг из теоретических проектов, в практически-оплачиваемые проекты.
Помимо базовых навыков программирования, есть кое-что чуть более сложное. К таким навыкам можно отнести программирование на SQL или Python, использование библиотеки jQuery для вёрстки, использование фреймворков или использование инструментов контроля версий, таких как Git. Самый эффективный подход к совершенствованию этих навыков веб-разработки – активно практиковать и изучать их, поскольку чем больше ты ими занимаешься, тем более опытным ты становишься.
И ещё раз подчеркнуть - чтобы научиться программировать, надо программировать. Не получится только читать теорию и делать учебные примеры. Чтобы окунуться в мир настоящей веб-разработки и стать полноценным специалистом, потребуется практический опыт создания реальных веб-проектов. Таким образом, чем больше настоящих проектов ты будешь создавать, тем большее развитие как веб-программист ты будешь получать.
Создай портфолио веб-разработок 📖
При подаче заявления на работу веб-разработчиком, твоими самыми большими активами будут резюме и портфолио уже созданных работ, демонстрирующее твои умения. Это необязательно должно быть что-то сложное или замысловатое. Но это должен быть файл или документ, в котором последовательно будет изложен твой практический технический опыт - а так же информация об инструментах, которыми ты хорошо владеешь. Чтобы создать хорошее портфолио, учти три ключевых фактора.
Во-первых, включи в свое портфолио разнообразные проекты веб-разработки - из разных сфер или отраслей. Избегай использования прямо-таки каждого проекта, над которым ты работал; Тем более не включай туда простейшие учебные примеры. Вместо этого, сосредоточься на демонстрации своих лучших работ, подчёркивая при этом свою универсальность. Будь избирательным в своем выборе. Следя за тем, чтобы документ отражал всестороннее понимание и глубину твоих навыков. Прежде чем подавать заявку, изучи интересующую тебя компанию и должность, и усовершенствуй свое портфолио, удалив несвязанные примеры и выделив наиболее подходящие работы. Покажи компании, что ты подходишь ей лучше всего.
Во-вторых, подумай над аспектами, которые отличают тебя и твою работу от других людей. Подчеркни свои исключительные навыки веб-разработки не только с помощью проектов, представленных в твоём портфолио, но и посредством презентации самого себя. Например, если ты ищешь должности, связанные с дизайном, веб-сайт твоего портфолио должен иметь красивый интерфейс. Точно так же, если ты подаёшь заявку на должность веб-разработчика, убедись, что твое портфолио представлено на удобном веб-сайте (например личный сайт-визитка). Постарайся представить себя как личность, одинаково развитую как с технической, так и с житейской стороны.
В-третьих, продемонстрируй свою уникальную методологию. Работодатели часто оценивают как уровень твоей работы, так и твой подход к решению проблем. Не стесняйся представить каждый пример как целое тематическое исследование, описывающее твой мыслительный процесс и проблему, которую ты стремился решить с помощью проекта. Обсуждение создания твоих проектов позволяет рекрутерам и менеджерам по найму более глубоко понять твою работу, выходя за рамки отдельных частей. Кроме того, это поможет в выгодном ключе показать отличную базу твоих коммуникативных навыков.
На какую зарплату можно претендовать в веб программировании? 💰
Сектор веб-разработки сейчас процветает. Количество сайтов в общем и целом увеличивается, а количество хороших специалистов уменьшается. Забавная тенденция! По моим данным, средняя зарплата начинающих веб-разработчиков в России составляет около 100 тыс. рублей в месяц, а в США порядка $40.000 в год, Старшие веб-разработчики (Middle, Senior) зарабатывают от 200 тыс. рублей в России или около $100 тыс. в год в США. Вот здесь у нас есть более подробная статья с исследованием зарплат в IT-сфере за прошлый 2022 год.
С точки зрения редакции, веб-разработка пожалуй считается одной из самых прибыльных профессий, не требующих высшего образования. Зачастую, заказчики смотрят не на фактическое наличие диплома или сертификата, а на твои реальные знания. И если ты достаточно адекватен, и при этом можешь быстро создавать интернет-сайты, найти хорошую работу не составит большого труда.
Ещё один лайфхак на тему зарплаты - конечный уровень твоего дохода будет определять не рынок, а конкретное место работы. Если ты найдешь, как наиболее эффективным образом применить свои навыки - то сможешь рассчитывать на хорошее место как в найме, так и в предпринимательской вселенной. Хороший веб-разработчик может зарабатывать и 100 тысяч в месяц, и 500 тысяч в месяц - все зависит от конкретного случая.
Полезные навыки для начинающего web программиста 🧐
Поскольку веб-разработчикам приходится работать с разными командами и в разных условиях, существует условный ряд «мягких навыков», которые важно развивать. Здесь речь идет в целом о житейском опыте, который может быть полезны не только в мире информационных технологий, но и в повседневных делах. Вот некоторые из наиболее важных умений, о которых стоит упомянуть.
Конструктивное общение. Веб-разработчики всегда взаимодействуют с различными отделами для создания продуктов. Сильные коммуникативные и межличностные навыки имеют большое значение для эффективной работы над проектами. В частности, веб-разработчики-фрилансеры во многом полагаются на навыки письменного общения. Умение слушать людей и грамотно излагать свои мысли - очень важно как в информационных технологиях в целом, так и в веб-разработке в частности. Если у тебя проблемы с общением - скорее исправляй ситуацию, здесь общения будет много, и оно будет происходить достаточно часто.
Умение самостоятельно решать проблемы. Практические навыки самостоятельного решения задач очень нужны веб-разработчикам, поскольку разработчики тратят значительную часть своего времени на отладку и поддержку проектов. Умение быстро найти и решить проблему, прибегая к минимальной помощи от коллег - ценится во всех компаниях и коллективах. Внутри мира IT никто не любит попрошаек - если тебе постоянно нужна чья-то помощь или ты любишь перекладывать ответственность на других - скорей взрослей, здесь ответственность и самостоятельность очень нужна.
Тайм-менеджмент. В веб-разработке специалисты реализуют различные как краткосрочные, так и долгосрочные проекты. Очень важно расставлять приоритеты задач и точно оценивать время выполнения, демонстрируя сильные навыки тайм-менеджмента. Эти возможности также облегчают сотрудничество с более крупными командами и руководством, обеспечивая своевременную реализацию задач. Никто не любит, когда срывают сроки или промахиваются в оценке объема работы. Пару промахов - и придётся искать новую работу.
Аналитические навыки. Ценной чертой опытных веб-разработчиков является их способность быстро и эффективно решать проблемы, что включает в себя внимательный анализ проектов, внимательное чтение документации. Если логика это твоя сильная сторона, и ты умеешь быстро разбираться в сути вещей - здесь тебе это точно пригодится.
Хороший программист, простыми словами - это самостоятельный, адекватный и спокойный человек, который хочет решать и умеет решать практические проблемы. Задача программиста состоит в том, чтобы упрощать людям жизнь. Веб-программисты решают эту задачу посредством создания и доработки интернет-сайтов. Системные программисты делают приложения для прикладных программных сред, и так далее. Как показывает жизненная практика, быть хорошим программистом - это быть конструктивным и целеустремленным человеком, который умеет слушать, наблюдать и быстро применять эффективно работающие инструменты.
Основы профессии веб программиста 🧩
Привыкай писать работающий, понятный и предсказуемый программный код
Компьютеры – это достаточно предсказуемые устройства, требующие ясности и логичности для стабильной работы приложений. Основная цель программирования и разработки программного обеспечения – создать код, который компьютер сможет эффективно обрабатывать для получения желаемого результата. По сути, компетентный веб-разработчик должен создавать предсказуемый и простой программный код.
Если твой код понятен только тебе - это очень плохо. Если твой программный код непредсказуем, или работает через раз - это ничуть не лучше. Задача программиста в том, чтобы упрощать и упорядочивать. Чем проще, ясней и логичней будет то что ты создаёшь - тем лучше это будет для твоей карьеры веб-программиста.
Умей соблюдать сроки и следовать обещаниям
Компьютеры в частности, и информационные технологии в целом, олицетворяют собой комбинацию эффективности и простоты. Веб-разработчики работают, чтобы воплотить чьи-то конкретные идеи в веб-оболочку. И чем более быстро они могут это делать - тем лучше для всех участников процесса.
Оценка времени выполнения проектов это сложная задача, поскольку при создании сложного программного обеспечения возникает множество неизвестных и неожиданных проблем. Всегда существует соблазн недооценить и упустить из виду истинные детали, необходимые для выполнения задач. Однако недооценка времени реализации опасна, поскольку приводит к стрессу и выгоранию - с одной стороны, и к праведному гневу руководителя / заказчика - с другой стороны.
Важно определить все возможные детали проекта, иметь реалистичное представление об объеме работы, которую можно выполнить, и разумно переоценивать сроки, чтобы учесть неизвестное и неожиданное. Коммуникация является ключевым моментом, когда сроки начинают смещаться, и если заранее убедиться в том, что все знают о трудностях, это поможет справиться и избежать проблем
Хороший разработчик устанавливает разумные ожидания, открыто сообщает о неожиданных препятствиях и поддерживает доверие своей команды и других заинтересованных сторон.
Постоянно учись новому, все время совершенствуй свои технические навыки
Некоторые принципы информатики остаются неизменными в течение многих лет. Область разработки программного обеспечения - наоборот, постоянно развивается. Ожидается, что специалисты по веб-разработке будут постоянно повышать свою квалификацию и оставаться в курсе меняющихся тенденций.
Универсальный совет который можно дать на эту тему - не переставай учиться. Даже пара лет вне мира информационных технологий приводят тебя в яму технологического непонимания. Ты возвращаешься к казалось бы привычным проектам, и обнаруживаешь что они уже совсем другие - здесь и новые библиотеки, и обновленные версии любимого языка программирования. Не забывай о том, что мир постоянно развивается - старайся успевать за этими стремительными изменениями.
Не пытайся казаться веб-разработчиком - просто будь им! 🚀
Профессия веб-разработчика - это отличный выбор для начинающих IT-специалистов. С точки зрения нашей редакции, это простой и достаточно быстрый способ зайти в мир информационных технологий. Веб-разработка гораздо проще системного программирования - здесь не так сильно бьют за совершенные ошибки, да и совершить фатальные ошибки здесь гораздо сложнее.
Существует огромное количество бесплатных обучающих материалов, которые помогут тебе освоить эту профессию. Например, мы снова порекомендуем ссылку на MDN - там можно найти очень хорошие материалы для начала своей карьеры.
В среднем, при наличии должной мотивации и умении учиться, какие-то первые коммерческие проекты ты сможешь брать уже через год. А это значит, что тебя отделяет от твоих мечт каких-то 12 месяцев чтения технической литературы. Звучит не так уж сложно, правда?
🔥 Понравилось? Подпишись! Победим восстание роботов вместе! 🔥
🚀 P.S. Ты можешь круто поддержать меня и проект "Войти в IT" на boosty! Я публикую там более эксклюзивный и профессиональный, иногда немного личный контент. Хочешь посмотреть как я выгляжу в реальной жизни? Тогда жми: Ссылка 🚀
P.S.2 У меня ещё есть Telegram-канал. Там посты чуть попроще, и чуть повеселей. Ссылка