Читать книгу Веб-разработчик. Легкий вход в профессию - - Страница 7
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 где-то параллельно. И до этого с ним был небольшой опыт.
Какой проект был для тебя самым сложным?
В основном занимаюсь собственными проектами. Часто идеи приходят уже во время создания или даже после. Добавлять в проекты что-то новое бывает довольно сложно. Намного проще, когда есть узкое ТЗ или готовая схема проекта с расписанным необходимым функционалом. Из функций, генерация ЧПУ (и обратное считывание ЧПУ ссылки) совместить с изменением страницы без её перезагрузки – пришлось повозиться.
Были ли разочарования (ожидание и реальность)?
Конечно, когда проекты оказываются не востребованы.
Приходилось ли сталкиваться с прокрастинацией, выгоранием?
Всю жизнь. Связана ли веб-разработка с этим? Скорее, на данный момент больше помогает. Как способ переключиться от одной деятельности к другой.
Где черпал вдохновение?
Насколько мне известно, никто не знает ответа на этот вопрос, сколько бы ни искал. Само приходит: появилась идея, начал думать о ней, что-то фантазировать. Уже не можешь уснуть – и пошел делать.
Что бы ты посоветовал новичкам?
Да я сам новичок. Советую не «забивать» на свои проекты, даже если они сегодня не пользуются спросом. Лучше их развивать, дополнять чем-то иным.
А так, думаю, если нет предрасположенности к сфере «айти»: интереса понять, как что-то работает, желания иметь возможность на это повлиять, то не имеет смысла этим заниматься. Сегодня почти все профессии плюс-минус могут приносить хороший заработок. Лучше делать что-то в сфере, к которой есть максимальный интерес. Для тех, кому это скучно, вероятнее всего это и останется скучным. Мне в математике всегда нравились формулы, поиск решения и результат. И кайф от того, что нашёл (или сделал, если касается программирования) то, что работает.