среда, 30 декабря 2015 г.

Мечты сбываются! И не только под Новый год!


Пару дней назад на мой счет на UpWork было зачислено 10$ — первый заработок за выполнение айтишной работы за последние 13 лет. Таким образом, я, если и не осуществил свою мечту, то вплотную к этому приблизился…

Для тех, кто попал на эту страницу случайно, поясняю, что здесь я рассказываю о становлении программиста, которому «слегка» за тридцать. Начало здесь.

Кто не слышал об UpWork, или слышал, но хочет узнать подробнее почитайте здесь и особенно здесь. Если вкратце, то это ресурс где заказчики работы и исполнители находят друг друга. Сайт этот англоязычный, и соответственно, заказчики в большинстве своем зарубежные. А, следовательно, и гонорары более щедрые, чем на аналогичных русскоязычных ресурсах.

Разумеется, 10 долларов это не та сумма, о которой следовало бы говорить, будь это разовый заработок. Но в моем случае это только начало: ожидают подтверждения и другие, более крупные суммы. Я уже принял участие в двух проектах, и предложения от заказчиков стали более частыми чем раньше. Так что, думаю, теперь только вопрос времени, когда заработок на UpWork превысит доход на основной, оффлайновой работе.

Кстати, путь фрилансера раньше меня не очень привлекал — сказывался негативный опыт фриланса на ниве журналистики, когда мои заработки еле позволяли сводить концы с концами. После этого меня отвернуло от фриланса в качестве основного заработка на несколько лет. Почему же я снова вернулся к этой теме? Довольно сильное влияние на меня оказали приведенные выше посты на Мегамозге, написанные фрилансерами, которые уже состоялись. Понял, что не боги горшки обжигают.

А началось все с того, что на одном из форумов я увидел приглашение в команду разработчиков для начинающих программистов. Требовалось знание PHP, MySQL и движка WordPress. Соискателям предлагалось тестовое задание, в ходе выполнения которого можно было освоить азы WordPress, даже тому, кто с ним раньше не был знаком, но быстро обучаем.
Представители команды обещали дать исчерпывающие ответы на возникающие вопросы, а также оказать всяческую поддержку.

Реальность оказалась не такой красочной. Мои вопросы были попросту проигнорированы, а тестовое задание не принято с комментариями в стиле «ну как можно быть таким тупым» (на самом деле немного не так, но почти).

Это немного охладило мой пыл, но был в этом и плюс. Я познакомился с WordPress, о котором раньше знал только то, что такой движок существует. И мне он понравился. В свободное время я ковырялся в коде, читал форумы и соответствующую литературу, и чем больше я вникал, тем больше мне нравился этот инструмент. Через несколько месяцев я почувствовал, что уже кое-что могу, и это придавало уверенности в себе.

В это же время пришло понимание, что само по себе мое знание PHP не имеет особой ценности, так как в наше время балом правят движки и фреймворки и нужно иметь знания об их устройстве и функционировании. Еще я понял, что узкая специализация — это лучше, чем широкий профиль. К тому же, когда я впервые познакомился с UpWork-ом, то увидел, что вполне реально неплохо зарабатывать только лишь написанием плагинов для WordPress, или только лишь созданием тем для нее. Ну в общем вы поняли — главное найти свою нишу.

Вдохновляла меня и история, случайно прочитанная где-то в интернете. Легенда баскетбола Майкл Джордан, как-то в середине 90-х годов бросил баскетбол и решил осуществить свою давнюю мечту — играть в бейсбол. И… у него ничего не получилось. Нет, он-то конечно играл, но внушительных результатов достичь не смог. И тогда он вернулся в баскетбол, став после этого одним из самых успешных (если не самым успешным) баскетболистов в истории.

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

Но как найти эту свою нишу? Вопрос не простой. Если говорить вообще о том занятии, которым хочешь заниматься по жизни, то я давно открыл такой простой способ: если, занимаясь чем-то, теряешь контроль над временем (не осознаешь сколько времени прошло с момента начала работы), то стоит присмотреться к этому занятию повнимательнее. Так было у меня с программированием. Но вот какое конкретно направление в программировании выбрать — понять не так просто.

Решение мне подсказала сама жизнь. Спустя месяц с небольшим после того как я зарегистрировался на UpWork и стал усердно откликаться на предложения о работе, которые соответствовали моим навыкам, мне неожиданно поступило предложение от одного американского заказчика, который предлагал починить его сайт, неработающий после вирусной атаки. Выбирать особо не приходилось, и я согласился. Удивительно, но у меня все получилось. Я сделал все, что хотел от меня заказчик. Потом он предложил заняться SEO его сайта, но я вежливо отказался. Сайт англоязычный и мой уровень английского пока не позволяет сделать эту работу качественно. В итоге заказчик остался доволен и обещал обращаться в дальнейшем.

А ведь помогать людям решать проблемы с компьютерами мне всегда нравилось. И у меня всегда это хорошо получалось! Почему бы не продолжить в том же духе на UpWork-е? В общем, вторая моя работа была примерно из той же оперы. И у меня снова все получилось.
Возможно это не самая прибыльная и перспективная ниша, но пока что я буду работать в ней и развиваться дальше. Нужно еще очень многое изучить в сфере WordPress и продолжать совершенствовать свой английский.

Итак, с момента моего первого знакомства с WordPress до получения первой работы, с ним связанной, прошло около 8 месяцев. Можно ли было пройти этот путь быстрее? Наверное, да. Что бы я сейчас сделал окажись снова там, в начале этого пути, но имея сегодняшний опыт? Не знаю. Наверное, действовал бы примерно так же. Только более уверенно и быстро.

Тут вспоминается один мой приятель (привет, Эдуард), который меня иногда критикует (совершенно справедливо) за мою неторопливость. Но такой уж я есть. Если бы я прошел путь превращения из журналиста в программисты мгновенно, то было бы ведь не так интересно. Важна ведь не только конечная цель, но и сам процесс, не так ли?

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

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

И удачи вам на вашем пути!

И да, с наступающим 2016-м годом всех! Пускай сбудутся и ваши мечты!

четверг, 14 мая 2015 г.

Учиться, учиться и еще раз учиться!


Как известно, чтобы стать хорошим специалистом в любом деле необходимо учиться. Много учиться. А потом еще приобретать практический опыт. И оттачивать его. Годами.

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

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

Далее в университетах меня тоже учили компьютерным наукам, но ситуация опять же складывалась так, что я знал больше преподавателей. Я ничуть не хочу упрекнуть этих уважаемых людей. Их уровня знаний было достаточно для того, чтобы научить среднего студента НЕПРОГРАММИСТА работе с компьютером. Но ведь я хотел большего.

Вот и получается, что настоящие преподаватели меня никогда программированию не учили. И в результате так сложились мои жизненные установки, что я считал (и считаю) правильным осваивать эту науку самостоятельно.

Но после публикации моей статьи на сайте Habrahabr.ru у меня завязалось знакомство с моим коллегой по несчастью, человеком, который тоже мечтает стать программистом в неюношеском возрасте (ему уже за 40). Он как и я журналист. Зовут его Эдуард Трошин. Так вот благодаря ему я на какое-то время задумался о том, что может и неплохо было бы послушать преподавателей по программированию, да поучиться у них уму-разуму.

В общем, вытащил меня Эдуард на програмистские курсы. Точнее это позиционировалось как клуб начинающих программистов, где его члены занимаются изучением языка Си. Не буду долго рассказывать подробности, но и там у меня как-то не сложилось...
Я на програмистских курсах (в заднем ряду крайний слева)

Преподавание велось очень медленными темпами. Поэтому я сам за пару недель проштудировал учебник по Си и на клуб мне ходить стало неинтересно.

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

Обретенная уверенность в своих силах сподвигла меня обнаглеть и разослать свое резюме на должность PHP-программиста потенциальным работодателям. Правда, ничего из этого не вышло. То ли резюме было слишком необычным (без опыта работы и хочет зарплату от 1000 у.е.), то ли мои знания и умения никого не впечатлили, но никто из потенциальных работодателей даже не намекнул на то, что такой кандидат им хоть как-то интересен.

Энтузиазм постепенно улетучился и очередная попытка устроиться программистом по найму оказалась неудачной.

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

Продолжение следует.

вторник, 2 декабря 2014 г.

Тяжкие будни программиста-одиночки


Да, да, да! Знаю-знаю. Не сдерживать слово очень нехорошо. Я в очередной раз нарушил обещание не тянуть с продолжением. Каяться в этой ситуации бессмысленно, все равно мне гореть в аду. И после очередных упреков со стороны старого приятеля по поводу отсутствия контента в блоге, я взялся за продолжение рассказа о том как стать программистом после 30-ти. Сильно после 30-ти.

Примерно год назад, взвесив всё, я взялся за проект, который показался мне интересным и соответствующим всем моим хотелкам, про которые я говорил в предыдущем посте. В то время (конец 2013 года) у всех на слуху был Биткойн и другие криптовалюты. Bitcoin день за днем устанавливал рекорды биржевой стоимости будоража умы желающих легко и быстро заработать. Про криптовалюты много писали как IT-ресурсы, так и издания для широкой публики. Меня не особо интересовала тема торговли криптовалютами, т.к. в своё время я уже наигрался с Форексом и к биржевым спекуляциям не тяготел.

Меня больше привлекала идея майнинга новых электронных денег. Для тех кто не в теме и ленится идти по ссылке а потом вникать в технические подробности поясняю, что, говоря простым языком, майнинг это добыча электронных монет. Для этого задействуются ресурсы компьютера. Чем ресурсов больше тем больше можно заработать.

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

Так вот, продолжая логическую цепочку размышлений о том где взять много компьютеров (а точнее много вычислительных мощностей) я пришел к мысли, что ведь в мире без толку простаивает множество компьютеров. Многие наверняка знают, что среднестатистический компьютер 95% времени ничего не делает. В этом легко убедиться, запустив Диспетчер задач (см. рисунок)
Кроме того, что во время работы компьютера процессор не особо-то нагружен, есть еще периоды, когда пользователь и вовсе оставляет компьютер без дела, а сам занимается другими вещами. Получается что очень много процессорного времени пропадает впустую. Вот если бы заставить эти бесполезно простаивающие процессоры добывать криптовалюту. Ну и, разумеется, складывать ее в мой кошелек.

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

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

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

И да, чуть не забыл. В скринсейвере была возможность настроить майнинг монет для себя. Это достаточно удобно: чтобы не запускать майнинг вский раз вручную, пользователь мог поручить эту работу скринсейверу. Но, как уже говорилось, на одном компе много не намайнишь. И расчет был на то, что большинство пользователей все же не будут вникать в эти тонкости, а просто поделятся со мной процессорным временем.

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

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

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

На этом остановлюсь пока. Продолжение будет. Когда - не скажу, т.к. сам не знаю. Скажу только что продолжение у этой истории есть. И оптимизм у меня еще не иссяк. И новый проект вырисовывается. Так что писать есть о чем.

понедельник, 14 июля 2014 г.

Есть ли у вас план?


Хоть это и не принято, но начну с извинений. Прошу прощения у читателя за долгое молчание. Ибо пусть немногочисленные, но все-таки просьбы о продолжении повествования звучали в комментах.

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

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

  • наемный работник;
  • фрилансер;
  • предприниматель (владелец бизнеса).

Несмотря на очевидные плюса варианта "наемный работник", есть в нем и большие минусы. Частично они перечислены в моем посте на Хабре. (Этот пост, кстати, стал началом моего пути в программисты. Мы к этому вопросу еще вернемся.) Самый большой минус для наемного работника заключается в том, что очень сложно в моральном плане пойти работать джуниором в неюношеском возрасте. А кроме того, не имея должного образования и квалификации даже место джуниора получить не так просто. Нужен опыт, который можно приобрести, например, во фрилансе. Но и этот вид деятельности имеет свои недостатки. Как показала практика, здесь нужна железная самодисциплина и все тот же, хоть минимальный, но опыт. Начинающему фрилансеру-программисту непросто приходится выдерживать конкуренцию со стороны более опытных коллег. Кроме того есть вероятность "кидания" со стороны заказчика.

Наконец, третий вариант - собственный ИТ-бизнес - видится мне наиболее привлекательным. Здесь как и во фрилансе нужна самодисциплина, возможно даже более жесткая. Кроме того, есть вероятность, что твой проект не "выстрелит" и тогда месяцы труда не окупятся. Но есть и плюсы:если все получится, то ты станешь обеспеченным человеком. К тому же независимым от работодателя и заказчиков. И в любом случае приобретешь опыт, с которым можно двигаться дальше.

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

  • Он не должен отнимать слишком много времени (по крайней мере на начальном этапе). Ведь я продолжаю оставаться наемным работником, а свободного нерабочего времени у меня не так много.
  • Он не должен быть сложным для реализации. Ведь практика показывает, что когда я брался за очень сложные проекты в программировании (да и вообще в жизни), увязал в них и не доводил до конца. Либо на свет появлялась некая пародия на то, что планировалось изначально. В общем, у меня должно хватать ресурсов для того, чтобы поддерживать проект на достойном уровне.
  • Он должен с самого начала приносить доход. На начальных этапах можно небольшой, но с возможностью дальнейшего роста.
  • Работа над этим проектом должна приносить удовольствие (а как же иначе).
Итак, простой и приятный в реализации, при этом приносящий доход сразу же. Скажете невозможно? А вот и нет. Такой проект я нашел и даже начал его реализовывать. Доход составляет пока десятки центов в день. Это как минимум раз в 100 меньше чем "проектная мощность". Но ведь это только начало. Еще есть куда расти...

Впрочем, на этом пока остановимся. Обещаю не тянуть с продолжением.

понедельник, 9 декабря 2013 г.

Так все-таки, почему?


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

Учеба на заочке как бы намекает нам, что пора бы устроиться и на работу. Я вернулся в родную школу, но теперь уже в качестве учителя (разумеется... нет, не экономики... а информатики). В свободное от сеяния_разумного_доброго_вечного время изучал Паскаль. Написал функцию, которая печатает число прописью. Она потом, в несколько модернизированном виде, использовалась в разных мои разработках не один год.

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

Это был мой золотой век. Теперь в свободное от бухгалтерских обязанностей время, коего было достаточно, продолжал идти по намеченной дороге. Только вместо Паскаля осваивал толстенный учебник "Delphi 5". Золотым это время я назвал потому, что за два с небольшим года работы на этой должности я успел понаписать кое-чего полезного. Это были программы, облегчающие те бухгалтерские рутинные процессы, которыми я занимался. И все бы наверняка и дальше шло хорошо, если бы мне настоятельно не предложили повышение...
Эту собственную программу для печати платежек я сам использовал до недавнего времени
Отказываться было нельзя. Из вежливости и еще из некоторых соображений.

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

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

И я его благополучно растранжирил.

На тот момент хотелось экзотики. И самым экзотичным, но в то же время достаточно рациональным мне представлялся вариант поступления на журфак. Сразу скажу, что чаяния мои оправдались: учиться здесь оказалось действительно легко, и девушек здесь оказалось 90% от всего факультета. Как я и предполагал.

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