Перейти к содержанию

Веб-разработчик. Легкий вход в профессию

Автор:

4,3 10+ оценок читателей Рунета
Категория
Программирование
Год издания
Издательство
Автор
ISBN
978-5-532-90331-9
Возрастное ограничение
12+
Обновлено
25.09.2026

Аннотация

НЕЗАКОННОЕ ПОТРЕБЛЕНИЕ НАРКОТИЧЕСКИХ СРЕДСТВ, ПСИХОТРОПНЫХ ВЕЩЕСТВ, ИХ АНАЛОГОВ ПРИЧИНЯЕТ ВРЕД ЗДОРОВЬЮ, ИХ НЕЗАКОННЫЙ ОБОРОТ ЗАПРЕЩЕН И ВЛЕЧЕТ УСТАНОВЛЕННУЮ ЗАКОНОДАТЕЛЬСТВОМ ОТВЕТСТВЕННОСТЬ Книга, которая позволит быстро вникнуть в суть профессии веб-разработчика, познакомиться с основами, узнать о возможных путях заработка, включая фриланс и собственные проекты, а также освоить технологии на практике, реализовав свой первый проект с последующим оформлением его в виде готового конечного продукта.Книга написана простым языком, каждая глава раскрывает определенную тему. Также присутствуют истории из личной практики и интервью с профессионалами из мира «айти».Обложка книги нарисована самостоятельно, исключительное право на изображение обложки и все ее элементы принадлежат автору книги.

Читать «Веб-разработчик. Легкий вход в профессию» — Роман Чернышов онлайн

Страница 2 из 3

Профиль на Kwork. За прошедший год я выполнил на нем больше сотни заказов и даже получил отрицательный отзыв (да, и такое бывает, это нормально): https://s.rche.ru/kw.

Готовое решение для торгового бизнеса. Это CMS/CRM система (два в одном) для сайта «Совместных покупок», дата релиза 2010 год, на его базе построено несколько сотен сайтов, проект актуален по сей день https://sp.rche.ru/.

Готовое решение для страхового бизнеса. Это также CMS/CRM-система для сайта по страхованию, со встроенными калькуляторами стоимости страховки, личным кабинетом агента и многим другим, проект окупил себя, но не более https://s.rche.ru/icms.

4. Войти в «айти» после двадцати

Когда мне исполнилось 23 года, у меня уже было больше миллиона долларов, в 24 года – больше 10 миллионов, а в 25 лет – больше 100 миллионов. И всё это не имеет никакого значения, потому что я никогда ничего не делал просто ради денег.

Стив Джобс

Часто можно услышать рассуждение на тему, что в «айти» нужно входить как можно раньше, чуть ли не с детства, и, мол, после двадцати, когда вы уже окончили обучение в институте по другой специальности, в программисты идти поздно, или же непомерно сложно. Кто-то скажет, что уже и мозг не тот, – к двадцати пяти уже нет былой гибкости, – и прочее. Мое же твердое убеждение: в «айти» можно входить в любом возрасте, и если у вас есть желание, то не только можно, но и нужно! Конечно, в пятнадцать лет подрастающий ум схватывает всё куда быстрее, чем в двадцать пять или сорок лет. Главное правильно выбрать свой темп, скорость и объем обучения, а дальше дело, как говорится, «техники».

Я выделяю три основных способа войти в профессию.

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

Второй вариант – обучающие специализированные курсы. Этот способ несколько проще чем институт, и если повезет – почему бы и нет. Всё, что нужно, – подобрать желаемую программу обучения, приступить к занятиям, и по итогу будете квалифицированным специалистом, после чего вас сразу же расхватают работодатели, наперебой предлагая зарплату по верху рынка… Друзья, это сарказм, конечно, не все так просто. Сразу возникает вопрос: как подобрать желаемую программу обучения, ничего не смысля в «айти»? Кроме как поверить обещаниям организаторов таких курсов, всесторонне доверившись им, получается, и вариантов-то больше нет. Хорошо, если с «курсом» повезет, в противном случае, вы рискуете потерять время, деньги (порой немалые) и, самое страшное, полностью разочароваться в выбранном вами пути «айтишника».

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

Поделюсь одной историей про моего приятеля, который в возрасте около сорока лет решил изменить жизнь и пойти в программисты (это однозначно похвально). Ранее он проделал гигантский путь специалиста, попробовал себя и в различных профессиях, и в предпринимательстве. С «компьютерами» тоже дело имел и кое-что смыслил в них. В общем, «парень» достаточно толковый. Он выбрал направление обучения на «Джуниора» (начинающего разработчика): «JavaScript-разработчик с нуля, для новичков», стоимость курса – около четырех тысяч долларов, сроком в два с половиной месяца, с прибытием в город организатора курса (то есть это еще дополнительные расходы). Вместе с курсом было много обещаний, различных бонусов и «фишек», а также гарантия трудоустройства по окончанию, с хорошей зарплатой (конечно же, если сдадите все экзамены «на отлично»).

И как-то раз он мне звонит и говорит, что уже длительное время не может разобраться с «прототипическим наследованием в JavaScript». Из-за этого тормозится обучение, прогресса не видно, и он рискует «сойти с дистанции». Спустя еще какое-то время он действительно приостановил (по факту, бросил) обучение, окончательно застряв на чем-то типа «Инварианты ловушек прокси и Reflect». Что, «б$#»? – скажете вы, и будете совершенно правы! Я хоть и не первый год в профессии, но сходу даже не могу припомнить, когда работал с «Proxy и Reflect». Инструмент однозначно полезный, но зачем он новичку? Если даже не все опытные программисты его используют.

Однако программа курса с лихвой отрабатывает запрошенные за неё деньги. Надо учить, как говорится, «от души», чтобы на выходе получился «достойный специалист». В этом и кроется главный недостаток подобных курсов – слишком быстро (в сжатые сроки) слишком много и слишком дорого. Если вы гений и схватываете все быстро – пробуйте. А я расскажу еще про один вариант.

Третий способ – входим в «айти» малыми шагами, постепенно, двигаясь медленно, без экстремальных нагрузок и «высоких чеков». Потреплем за бороду дедушку Вильфредо, того самого пресловутого Парето, уже оскомину набившего, который придумал правило «восемьдесят на двадцать»: 20% усилий дают 80% результата. Теория широко зарекомендовала себя в экономике, но точно также, практически безотказно, работает и по части программирования. 20% знаний в программировании позволят вам закрыть 80% всех поступающих задач (если вы не разработчик компилятора Malbolge, конечно). И я убежден: новичку этого вполне достаточно, чтобы трудоустроиться на позицию «джуна», выйти на фриланс или «написать» первый коммерческий продукт. Именно так я и начинал свой путь!

Однако это не значит, что можно изучить 20% какой-то технологии и остановиться. Как раз напротив, получив базовые знания в одной технологии, вы двигаетесь дальше, к следующей, затем к следующей. Таким образом развиваетесь не вглубь, а вширь. И при этом затрачиваете минимум усилий, получая максимум результата (в соотношении применимости получаемых знаний, можно сказать – КПД). Такой подход снижает риск, что вы «споткнетесь» на чем-то сложном, что возможно в обозримом будущем вам бы даже и не пригодилось (было бы обидно, да?).

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

Как учиться? Выберите первую технологию, которую хотели бы освоить, например HTML, затем купите самоучитель (подойдет и бесплатный вариант) – «Основы для начинающих» (можно в электронном виде), сразу же потихоньку практикуйте, постоянно пользуйтесь поиском в интернете. Можно пройти какой-то базовый курс, желательно бесплатный. Все, что вам кажется сложным или непонятным, можете отложить на потом – наверстать всегда успеете. Ищите примеры готовых решений, в «сети» их множество, смотрите, как делали другие, изучайте, вникайте. Придумайте свой первый небольшой (чем меньше, тем лучше) проект и начните его реализовывать (не исключено, что даже он в будущем принесет вам прибыль, даже если будет совсем «простеньким», а идея не уникальной). Далее таким же способом осваивайте следующую технологию… Итеративный подход.

Интервью с веб-разработчиком Алексеем

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

Почему ты решил заняться веб-разработкой?

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

С чего ты начал: с чтения книг или с написания кода?

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

Какой у тебя был «бэкграунд» в сфере «айти» до этого?

Первый сайт я сделал в далёкие лет 14–15 (начало нулевых). Старший брат и его одноклассники тогда увлекались всем этим – сделать свой сайт. Меня же больше тянуло к играми, хотя и зацепило, решил, что тоже хочу сделать сайт. Он был для игрового «клана» в StarCraft. Что-то почитал, скопировал html-коды готовых сайтов и с этих копий делал что-то своё. Самое, наверное, сложное было – разобраться с таблицами. Тогда зачастую «фишкой» проектов являлись изменяющиеся кнопки при наведении курсора. Скопировал такой JS-код с сайта одноклассника брата. В программировании тогда не понимал абсолютно ничего, и потому гостевую книгу попросил сделать соседа. Он уже тогда в программировании буквально «варился» чуть ли не с детства. А чтобы разместить сайт понадобилось пойти в «Ростелеком» (раньше он назывался иначе и был единственным поставщиком интернета) и написать заявление. Через некоторое время выдали поддомен в региональной игровой зоне. Ну и так на протяжении нескольких лет: сайты, где из «программной» части только форма обратной связи (разумеется, скопирована из какой-то нагугленной статьи).

Что было сложнее всего на начальном этапе?

Заинтересованность в линуксе меня подтолкнула к решительному шагу изучения php. Более или менее понять, как с ним взаимодействовать, было непросто. Установить на линукс IDE с сервером было нелегко и разобраться, как это всё работает, плюс настроить. Это, наверное, самый демотивационный момент. Но где-то прочёл, что это входит в условия «быть программистом» и является частью программирования на сколько-то там процентов (10–20%, не помню) – чуть отпустило. К тому же в привычной Windows, вероятно, всё проще.

Сейчас уже и не вспомнить всего. Обычно мой метод – «научного тыка». Скопировал готовый код, изменил, посмотрел, что произошло. Не понимаю, как можно это понять только через теорию. Вероятно, нужно обладать сильным абстрактным мышлением. Мне же надо видеть глазами: как именно влияют те или иные параметры, если я их изменю. Сложно по мере разрастания проекта помнить, где что расположено и что за что отвечает. И если приходило понимание, что где-то код оказался «мудреным» – переделывать его (а это могут быть и цепочки кода). Также было сложно после создания проекта оптимизировать его под поисковые системы.

Тяжело ли было совмещать программирование с основными своими делами (работой)?

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

Какой стек-технологий ты охватил в первый месяц?

С html и css я уже был знаком довольно хорошо, с js – частично. Получается php, затем mysql, bash где-то параллельно. И до этого с ним был небольшой опыт.

Какой проект был для тебя самым сложным?

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

Были ли разочарования (ожидание и реальность)?

Конечно, когда проекты оказываются не востребованы.

Приходилось ли сталкиваться с прокрастинацией, выгоранием?

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

Где черпал вдохновение?

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

Что бы ты посоветовал новичкам?

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

А так, думаю, если нет предрасположенности к сфере «айти»: интереса понять, как что-то работает, желания иметь возможность на это повлиять, то не имеет смысла этим заниматься. Сегодня почти все профессии плюс-минус могут приносить хороший заработок. Лучше делать что-то в сфере, к которой есть максимальный интерес. Для тех, кому это скучно, вероятнее всего это и останется скучным. Мне в математике всегда нравились формулы, поиск решения и результат. И кайф от того, что нашёл (или сделал, если касается программирования) то, что работает.

5. Умный просто умеет «гуглить»

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

Билл Гейтс

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

Возможно при решении каких-то задач (при написании драйверов устройств под операционную систему или разработки «физики» в RPG-игре) действительно всё вышеописанное нужно знать и всем перечисленным пользоваться. Но на практике для старта в профессии всё это совершенно не обязательно. А секрет в том, что просто нужно уметь пользоваться поиском в интернете, то есть «гуглить» – принцип «обучение во время работы» – по мере поступления задач.

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

Например, можете задать поисковый запрос: «php как округлить число» и тут же получить ответ, с примерами: «для округления чисел в php, есть функция round». Или задать такой поисковый запрос: «css как сделать подчеркивание у текста», и сразу выяснить ответ с примерами: «задайте свойство для элемента text-decoration: underline». Можно сформулировать и поискать решение по более сложному вопросу.

Удивительно, но среди желающих начать свой путь в «айти» много тех, кого останавливает страх перед большим объемом информации, который якобы необходимо знать наизусть. Это конечно неплохо, однако практически невозможно (особенно для новичка). Нет, друзья, гуглят все и постоянно. Я пишу код, и при этом история моего поиска в браузере пополняется десятками запросов, каждый день! Хотя с кодом я работаю большую часть жизни.

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

Однако есть важный нюанс! Когда речь идет о поиске решения, не подразумевается, что это решение должно быть готовым, что называется, «под ключ». Совершенно нет! Программу вы пишете условно с нуля и каждую строку кода внимательно обдумываете, а к «всемирной паутине» обращаетесь именно за информацией по части команд или примеров готовых блоков кода. Они лишь могут являться частью проекта. Еще раз – «только команды и блоки кода». Разумеется, глупо было бы говорить о программисте, который вместо разработки проекта и написания кода постоянно ищет аналогичное решение уже кем-то реализованное. Нет, ни в коем случае!

«Поисковая строка» – это быстрый доступ к справочникам и всемирной базе знаний, а не панацея от всех бед. Логика работы программы должна быть всегда в вашей голове!

Вот пример списка поисковых запросов, которые могут быть актуальны при разработке, например, «формы обратной связи» на сайте, функционал которой следующий: «пользователь может указать в форме: тему, текст сообщения и e-mail для связи с ним, затем, нажав кнопку “отправить”, данные отправлялись бы администратору сайта в админпанель и на его e-mail».

Пример списка поисковых запросов:

● Пример HTML-формы для отправки запроса на сервер.

● HTML тег INPUT и его параметры.

● Что такое POST-запрос.

● PHP обработка POST-запроса.

● PHP подключение к базе данных MySQL.

● PHP подготовка данных для вставки в БД.

● PHP пример вставки строки в таблицу MySQL.

● PHP отправка сообщения на E-Mail.

● PHP параметры функции mail ().

● CSS для оформления блока «спасибо за сообщение».

Вы спросите: «Откуда же мне знать заранее, еще до написания программы и вообще не имея опыта, что искать в сети? Вот откуда на начальном этапе мне знать про какую-то там команду mail (), чтобы искать про нее информацию?».

На самом деле все просто. Вам не нужно формулировать сразу весь список вопросов для поиска. Надо лишь сформулировать первый. Просто подумайте, с чего начинается ваша программа? С HTML-формы, куда пользователь будет вводить сообщение. Вот и поищите информацию о ней. Изучая найденный HTML-код, вы увидите в нём теги INPUT, изучите их, также найдя про них информацию. Затем подумайте, что должна делать форма? Верно, отправлять данные на сервер. Поищите информацию, как это сделать, отправить и принять данные. Вы встретите упоминания о POST-запросе – отлично, «погуглите» про него. И так дальше, шаг за шагом, по мере продвижения вашей работы.

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

6. Полный стек

Большинство программ на сегодняшний день подобны египетским пирамидам из миллиона кирпичиков друг на друге и без конструктивной целостности – они просто построены грубой силой и тысячами рабов.

Алан Кёртис Кэй

В мире «айти» есть разные профессии, одних только типов программистов насчитывается несколько десятков, и все в определенной степени являются специалистами – просто разными. Одни разрабатывают приложения для мобильных устройств, другие пишут программы для операционных систем семейства Linux, третьи работают с веб-технологиями. Для работы в каждом направлении, требуется уникальный перечень технологий, который программист должен знать. Это называется «стек» (т.е. список) технологий».

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

Программист, владеющий всем перечнем технологий в своей нише, называется «Разработчик Full-stack» (от англ. Full stack – полный стек, список). Его преимущества очевидны: возможность решать максимум поставленных перед ним задач самому, реализовывать проекты, требующие всего перечня технологий. А к недостаткам можно отнести то, что как правило «разработчик Full-stack» в первые годы практики владеет познаниями технологий не настолько глубоко, как узкий специалист. Разумеется с годами он догонит, однако в силу более широкого перечня технологий развитие «в глубину» у Full-stack программиста идет медленнее.

У каждого программиста, занятого в своем направлении, стек технологий свой. Я являюсь веб-разработчиком, и мой стек технологий выглядит следующим образом: HTML, CSS, JavaScript, PHP, MySQL, основы администрирования веб-серверов на базе Linux (далее мы будем разбирать именно этот список). У разработчика мобильных приложений под iOS стек будет таким: Objective-C, Swift, JavaScript, Flutter. А вот для Android уже другой стек: Java, Kotlin, Jetpack Compose. У разработчика программ для операционной системы Windows: C#, WinForms, WPF, MS SQL.

Стек технологий может дополняться знаниями специализированных библиотек (расширяющих базовый язык программирования, например jQuery для JavaScript) и фреймворков (готовых наборов инструментов, например Laravel для PHP).

Как вы понимаете, программисты не взаимозаменяемы, и попросить веб-разработчика просто дописать какой-то функционал для программы, работающей на компьютере под управлением Windows, не получится. Безусловно, у всех программистов есть общая база знаний, основы устройства и работы вычислительной техники, компьютерных сетей и ряда прочих навыков, позволяющих им быстро ориентироваться в «рабочем окружении» того устройства, с которым они имеют дело. Тенденции последних лет сводятся к тому, что потребность в узкоспециализированном специалисте уступает место специалистам с более широким охватом технологий. Уровень такой специализации получил название DevOps (от англ. development & operations) – инженер, который владеет навыками и методологиями полного цикла разработки, настройки и развертывания программного обеспечения. Иными словами, работодатель (или заказчик), хочет получить за свои деньги больше опцией в одном лице нанимаемого им специалиста.

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

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

Какой именно путь выбрать – решать вам, я бы рекомендовал на начальной стадии освоить полный стек технологий выбранного направления (тех, что описываются в этой книге, стек веб-разработчика), затем углубиться в одну или две технологии, достигнув там мастерства профессионала, а затем постепенно, не торопясь, «подтягивать» остальные. Идеальный вариант – через несколько лет стать узкоспециализированным программистом по каждой технологии из всего стека. Таким образом вы будете профессионалом высшей категории в области веб-разработки (или иного, выбранного вами направления), «разработчиком full-stack», а затем, возможно, DevOps.

Интервью с Андреем из Siniby

Представляю вашему вниманию интервью с моим братом Андреем Яровиковым, который является, что называется, «прирожденным айтишником». Он познакомился с миром электроники, микроэлектроники и программированием еще в дошкольные годы (более тридцати лет назад). Профессионал своего дела, «full-stack» разработчик фирмы Sinoby.

В каком направлении ты работаешь?

Разработчик веб-сайтов и различного рода внутренних сервисов компании.

Какое самое большое преимущество веб-разработчика full-stack?

Если ты «backend» или «frontend», зачастую свою работу ты делаешь лучше, чем «full-stack». Ты являешься хорошим винтиком в хорошо отлаженном механизме разработки. Если ты «full-stack», у тебя более широкий кругозор при программировании проектов. Желательно знание других языков программирования для понимания подходов и технологий. Из «full-stack» есть возможность вырасти в руководителя проектов. Есть понимание, как устроены реально работающие проекты и сайты.

Разработка на full-stack – есть ли в этом азарт? Правда, что работа с большим набором технологий не дает скучать?

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

Что самое сложное в full-stack?

Пожалуй, это опыт. Нужно много знать и стараться поспевать за трендами. Обычно это приводит к тому, что код, написанный, например «frontend», красивее и лучше, так как человек целыми днями только этим занимается и оттачивает мастерство, однако заказчику нужен реально работающий проект. Особенно если это «startup». И ему главное готовый продукт.

Правда, что узкая специализация ценится больше?

Скажем так. Ценится хороший разработчик. Специализацию всегда можно поменять. Это не проблема, начиная от определенного уровня навыков и технологий. Если ты «full-stack», ты можешь стать хорошим «backend» или «frontend». Количество вакансий обычно больше на «frontend» или «backend», так как руководители проектов набирают команду в уже создаваемый проект. Им нужен тот, кто будет создавать какую-то конкретную часть проекта.

Какой путь развития лучше: сразу в full-stack или что-то одно, но глубоко?

По моему мнению изначально желательно вкладываться в своё развитие. Изучать технологии. Попробовать то, что нравится. После того как определился, можно выбирать направление. Лучше всего начинать путь в разработке с углубленного изучения чего-то одного. Если станешь хорошим «backend» или «frontend» разработчиком, посмотришь, как у других работают проекты под капотом, сможешь пройти собеседование (отдельная тема), тебя возьмут в нормальную команду и подтянут твой «skill».

Как постоянно поддерживать уровень знаний, ведь технологий много?

Это самое сложное. Как я уже писал выше – никто не хочет платить за твоё обучение, поскольку тебе на работе платят зарплату, и ты должен её отбивать. Все заинтересованы в получении прибыли. Главный критерий – максимально быстро сдать проект и приступать к следующему. Приходится изучать технологии в свободное от работы время. Читать книжки в метро или в поезде после работы. Тебе должна нравится профессия, иначе встанешь на своём уровне и годами будешь делать одно и то же. Стагнация.

Правда, что full-stack разработчик в одиночку может построить большой проект уровня «управления всеми процессами компании»?

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