Ищите программиста в себе
С детства кодить я любил
Говорят, что родителей не выбирают, но мне очень повезло. Если бы я мог выбирать, то я бы менять ничего не стал. Отец ещё в далёком 1992-ом году понял, что за компьютерами будущее, и купил мне мой первый ПК, аналогичный ZX Spectrum. Именно тогда, в 6 лет, я начал программировать на Basic, поэтому можно сказать, что я программирую сколько себя помню.
Среди моих друзей и знакомых тогда не было программистов и с учителями тоже была серьёзная проблема. Моё самообучение больше напоминало метод научного тыка и проходило "рывками", потому что нормальный интернет появился у меня только в 2009 году. Несмотря на это я всё же перешёл с Basic на Visual Basic и даже смог попасть на областную олимпиаду. Было приятно, ведь сам я из маленького городка, и, насколько мне известно, до меня никто не набирал минимальный проходной бал для участия в областной олимпиаде. К сожалению, показать значимых результатов мне не удалось. Но было интересно и полезно поучаствовать.
В университете я стал изучать языки программирования Pascal и Delphi, в большом количестве решал задачи на заказ. Да, приобретение новых знаний и навыков притормозилось, зато я неплохо набил руку, решая типовые задачи. Учился я не на программиста (не хватило 1 балла), поэтому после ВУЗа трудоустроиться получилось только эникейщиком (ребята, которые приезжают домой и чинят компьютеры). Потом армия, первые попытки заняться предпринимательством и поиск себя в других профессиях. Помню, даже работал над созданием одной известной ММО отечественного производства. Но чем бы я ни занимался я всегда задавал себе вопрос: хочу ли я проявить себя в этой сфере на все 100%? И если понимал, что ответ "нет", продолжал искать что-то новое.
Первые шаги
В процессе поиска я заинтересовался разработкой сайтов. Тогда я понятия не имел, что это такое и с чем веб-мастеров едят. Гуглил много, часто, задавал дурацкие вопросы, создавал темы на форумах. В итоге нашёл замечательный сайт www.codecademy.com. За две недели я изучил основы HTML, CSS, JavaScript и совсем-совсем основы JQuery. Лучше так скажу: совсем-совсем основы всего и почти ничего из JQuery. Тогда я понимал, что любая новая информация имеет свойство забываться, если её не применять на практике, поэтому я зарегистрировался на биржах фриланса. Там я увидел множество нехороших отзывов о таких недоучках, как я, но меня это не смутило. Начались долгие поиски заказов, когда я выбирал самые дешёвые из них и даже предлагал скидку, но всегда честно говорил, что опыта у меня совсем мало. Такой подход позволил мне начать зарабатывать. Да, это были совсем копейки, но сам факт получения денег мотивировал меня. Ко мне приходило понимание, что я могу больше и лучше, а значит и хороший заработок возможен. Также я видел, как делаются другие сайты, мог сравнивать свои методы и смотреть на чужой код, а это полезные дополнительные знания. Мне было неважно, сколько стоит заказ, я старался сделать его максимально хорошо. Я выкладывался на 200% и поэтому получал в основном положительные отзывы, даже когда не успевал по срокам. Кроме отзывов я ценил предложения о дальнейшем сотрудничестве. Всё говорило о том, что я иду в правильном направлении.
Постепенно заказы становились сложнее. Параллельно я стал изучать PHP и MySQL, ознакомился с SEO и директом. Где-то через полгода я понял: абсолютное большинство заказов, для которых требуются знания CMS, мне не нравятся. Большое количество плагинов, написанных разными людьми, и постоянные желания заказчиков устанавливать всего и побольше приводят к тому, что сайты становятся медленными, с кучей багов, и вроде всё работает, но если что-то поменять, то всё полетит к чертям. Я продолжил поиски себя.
Долго ли, коротко ли
Меня заинтересовали фреймворки на языке PHP. С СodeIgniter я поработал немного, остались очень хорошие впечатления, но для серьёзного изучения мне хотелось взять что-то более популярное. И я увидел Laravel. В России он не так популярен, но в мире занимает лидирующие позиции. К тому же по отзывам очень хорошо подходит для маленьких и средних проектов. Как раз то, что мне нужно. Кроме PHP я также стал обращать внимание ещё и на Ruby on Rails, C# с ASP .NET и Java с фреймворком для веб-разработки Spring. Но об этом чуть позже.
Для меня изучать программирование никогда не было образовательным процессом как таковым. Если честно, если не считать обучение в школе и несколько курсов университета я старался не учиться тому, что, в первую очередь, было бы мне не интересно. Сама сфера программирования требует знаний в разных областях. И это меня привлекало всегда. Например, программисты 1С должны знать бухгалтерию не хуже главных бухгалтеров крупных компаний. Программисты тренажёров боевых самолётов должны знать особенности управления самолётом и тактики ведения боя. А программисты сервисов по личным финансам должны знать, как вести домашнюю бухгалтерию. Получается, что программист, даже слушая классическую музыку или Hard Rock, может в итоге вдохновиться и что-то запрограммировать. Совсем недавно читал про один стартап: парни сделали приложение, генерирующее музыку. Так что я считаю, что программист всегда остаётся программистом вне зависимости от того, в какой области он работает.
Просто ищите вдохновение!
Очередной цикл гугления увенчался знакомством с GeekBrains. Когда я увидел материалы, представленные на сайте, мне стало немного обидно, что я не нашёл их раньше, когда начинал учиться. Я прошёл несколько бесплатных онлайн-курсов, и только в одном мне не понравилась подача материала: слишком много было пропущено между уроками, куски кода буквально появлялись из ниоткуда. А остальные были просто замечательные. Также я посмотрел несколько онлайн-вебинаров, и один из них мне запомнился больше всего. В течение вебинара обсуждались вопросы карьеры, первых шагов и пр. Тогда мне помогли выбрать профессию. Для меня это стало, пожалуй, самым важным решением за последний год, а именно столько прошло времени с момента, когда я начал изучать программирование.
"Если вы хотите программировать десктоп, мобилки и веб, то либо Java, либо C# - что больше понравится. Если хотите веб в крупной компании - Java или C#. А если веб на фрилансе, то лучше PHP, потому что на фрилансе большинство заказов на PHP..."
Цитата не дословная, и на тот момент у меня уже была установлена Visual Stidio. Я с огромным интересом набросился на C#. Впереди меня ждал ASP .NET. Я очень хотел сравнить его с PHP и Laravel. Именно эта фраза с того вебинара толкнула меня в правильном направлении. Дело в том, что я люблю работать и не люблю привязываться к месту, а ещё мне всегда комфортно, если я сам распределяю время на интересные мне задачи. Всё это говорит о том, что работа в компании явно не для меня. И благодаря ребятам из GeekBrains я сэкономил несколько месяцев. Что ещё понравилось здесь, так это отзывчивое коммьюнити. Это очень важно, что есть такое место, где у начинающих программистов и даже у опытных разработчиков есть возможность задавать вопросы и получать подробные объяснения. Нет ничего важнее в образовательном процессе, как передача опыта от одного к другому.
По секрету скажу, что у меня есть идея. Я хочу открыть школу программирования для детей в своём маленьком городке. Пока всё на уровне задумки, но мне очень хотелось бы, чтобы талантливые ребята (а все дети очень талантливые) не сталкивались с проблемой изоляции, как было у меня, и не теряли годы своего драгоценного времени. И если вдруг у меня получится реализовать эту идею, то материалом для "внеклассного чтения" точно будут вебинары и уроки с GeekBrains.
Я прошёл 6 бесплатных онлайн-курсов и 4 теста, мне был интересен сам процесс. С удовольствием заплатил бы за курсы по фреймворку Laravel, но на сайте есть пока только Yii. На мой вопрос, будет ли в будущем курс по Lavarel, мне ответили, что всё зависит от спроса. Но пока видимо спрос маленький. И это действительно так. Я как-то работал над одним проектом в команд и project-менеджер, назовём его так, сказал, что следующие заказы будет делать на другом фреймворке, потому что спецов по Lavarel очень мало. Да и сам я стал усиленно вспоминать английский язык, чтобы искать заказы на www.upwork.com и www.freelance.com, потому что на наших фриланс-биржах Lavarel практически нет.
Почему я искал и ищу себя в IT?
Я не считаю, что у меня был выбор. Да, я мог бы заниматься чем угодно, но по-настоящему хорошим специалистом я хотел бы стать только в сфере IT, потому что всю жизнь провёл за компьютером. Мои попытки уходить в другие сферы заканчивались для меня либо полным крахом, либо тихими намеками, что я пошёл не по своей дороге.
Вообще пойти в веб-разработку меня подтолкнуло желание создать собственный стартап. В процессе обучения я всё больше думал о том, что деньги зарабатывать буду фрилансом, а в свободное время буду заниматься стартапом. На данный момент у меня есть идеи нескольких проектов, один из которых некоммерческий. Увидит ли хоть один из них свет, пока неясно. Возьмусь серьёзно, когда почувствую, что есть достаточно сил для этого. А пока занимаюсь фрилансом и выращиваю в своём огороде огурцы с помидорчиками.
Несколько советов
Опыт работы в команде - это очень важная часть становления IT-специалиста. Я его получил ещё до того, как начал заниматься веб-программированием, но после бесплатного курса "Git. Быстрый старт. Инструмент командной разработки" в моей голове многое перевернулось, и я пожалел, что не видел этого курса три года назад. До этого просто имел дело с SVN и в тонкости работы систем контроля версий не вникал.
Мне в геометрии всегда нравилось "доказательство от противного". В первую очередь, я бы посоветовал, чему не стоит уделять внимание в процессе обучения - деньгам. Не считайте, сколько вы можете заработать. Давно известно, что больше всего платят людям, которые либо могут делать то, что больше никто не умеет, либо они что-то делают намного лучше остальных. Возможно, у вас талант продажника или адвоката, или ещё кого-нибудь. Программист - это призвание, и если вам не нравится, то при должном упорстве вы всё равно научитесь программировать и даже, может быть, станете хорошим программистом. Однако в таком случае велика вероятность того, что рано или поздно вы остановитесь развиваться и начнёте просто отрабатывать свои часы.
К сожалению или к счастью,
"в нашем мире нужно бежать со всех ног, чтобы хотя бы оставаться на месте"
(с) Льюис Кэрролл.
Программист, который перестал учиться и остановился в развитии уже через полгода-год начинает заметно сдавать и терять конкурентоспособность.
Я занимаюсь программированием, потому что мне очень интересно, вследствие чего для меня нет такого понятия, как "сложно". На ставший уже классическим вопрос, чем бы ты занимался, если тебе не пришлось бы зарабатывать деньги, я точно знаю ответ. Я бы путешествовал, играл бы в Мафию и программировал. Если программирование - это ваше, то сложностей не будет, будут сплошные интересные открытия, начнутся знакомства с новыми, креативными людьми.
P.S. Я пишу эту историю после 13 часов работы. И да, под конец немного стал распыляться. Но зато я написал так, как думаю на самом деле. Я считаю, что моя история - это пока ещё не "история успеха", слишком ещё рано. Однако я рад, что благодаря программированию у меня есть планы, для осуществления которых я и получаю знания и навыки. И хоть амбиции большие, а результаты пока несущественные - это не так важно для меня. Главное - я чувствую, что на правильном пути. Желаю вам тоже когда-нибудь найти в себе эту уверенность, эти силы, этого программиста, который знает, что всё получится. Просто надо искать вдохновение...