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

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

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

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

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

По иронии, подобная «движуха», падая тяжелым грузом на ваши плечи, и есть тот самый максимальный «кайф», который можно получить, двигаясь путем собственных проектов. Это и есть то самое «признание»… За которым многие охотятся. И я уверен: если пойдете этой дорогой, у вас все непременно получится!

Ссылки

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

Профиль на fl.ru, с чего я начинал путь во фрилансе. Хоть я там и не появлялся лет десять, в целом, данная фриланс-биржа классная: https://s.rche.ru/fl.

Профиль на 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-запросе – отлично, «погуглите» про него. И так дальше, шаг за шагом, по мере продвижения вашей работы.

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

1  2  3  4  5  6  7  8  9  10  11  12  13  14  15 
Рейтинг@Mail.ru