Как стать автором
Обновить

Фриланс и компания или «В бой идут одни старики!»

Здравствуйте, дорогие хабровчане. Данный пост не будет чем-то вроде нравоучения или же методички из категории «Как стать ПРАВИЛЬНЫМ программистом».
Я просто хочу предостеречь миллионы студентов ИТ-специальностей и тех, кто немногим позже понял то, что он хочет забить свою голову языками, алгоритмами или чем-то сродным этому.

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

Как лично я попал в суровый мир интернета и устного ТЗ по скайпу

Все начиналось с того, что я понял — «Я буду идеальным программистом!» (такое мнение у 75-80% студентов-абитуриентов).
Открыв для себя мир веб-сайтов «с другой стороны монитора», я углубился во все тяжкие. И вот, мой багаж. HTML, CSS, немного понятий из JavaScript, и ковыряние Adobe Photoshop (не имеет отношения к веб).
Проведя некоторые опросы среди знакомых разработчиков, выяснилось, что это и есть тот самый пакет «Стандарт» среди 65% процентов из них. А именно то, что привлекло их внимание изначально. Все из этих 65% процентов именно видели свое будущее в этих технологиях (и плевать, что половина из них это мобильные разработчики сейчас).

И так, что же делать дальше? По совету мудреных бородатых веб-девелоперов я пошел в родной Google. Началось ковыряние строки поиска запросами «фриланс», «фриланс украина», «верстальщик удаленно» и т.п.

Сказать, что меня порадовало изобилие вакансий и просьб о помощи (читай «мольба меня (гуру веба) решить злополучные проблемы»), это значило не сказать ничего. Самыми забавными были вроде «логотип для сайта сервера Counter-Strike — 400грн (50$)», «установка CMS со стандартным шаблоном на хостинг 1000грн(~130$)». И таких была масса. Я был вне себя от восторга, хотя сейчас и понимаю всю глупость этого.

Я приступил к своему блестящему подъему по лестнице программиста и стремился к мечтам стать «вторым Линусом».

Я гордо начал величать себя Фрилансером (именно с такой буквы «ф»).

Миллион или как получить беспечное время

Получив первый заказ я выполнил его, хоть и с огромным трудом. Часть ЗП была отдана на покупку ПРО-аккаунта сайта.
Я уже предвкушал, как буду не выходя из своей комнаты с голубыми обоями получать СМС-уведомления от банков о том, что на мой счет капнуло n-ое количество миллионов долларов.
Но все было не так уж и радужно как я думал. Все было намного сложнее, сроки меньше, и заказчики злее. С каждым днем это становилось все хуже.
Иногда я радовался заказчикам словами которых было «Мне нужен сайт. Мне не важно как ты это сделаешь, просто сделай мне сайт. Я заплачу тебе 500$, но если я не буду этим заниматься.» Это было здорово. Я просто просил друга дизайнера накидать мне макет сайта за ночь и отдавал ему около 100$. А дальше, после утверждения макета я со спокойной душой писал и ждал дедлайна. Наступал этот черный день календаря, я отправлял работающий сайт и текстовый файл со всеми логинами и паролями. В ответ молча приходило то СМС с чувством, что у меня будет какая-то новая вещь. Это идеальный заказчик. И да, он существует.

Самопознание или как я пытался утонуть</h5
Прошла пара лет и я уже ставил свои шаблоны на популярные CMS и писал модули для них. Зарплата существенно не изменилась, но работа стала интереснее.
Я захотел большего. Я захотел работать в компании и понять, что же такое эта таинственная корпоративная разработка.
Я открыл любимый Google. Закидал снова запросами. Итог, разосланное резюме с примерами работ в 8 разных компаний (в том числе где требовался удаленный разработчик).

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

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

Прошла стажировка.
Дали нормальный проект. Я гордо ставил себе звание HTML-coder. Так называлась моя вакансия.

И тут случилось страшное.
Все это описано картинкой ниже.


Появилась проблема. Я узнал страшную вещь. Мой код — это говнокод.

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


Это было сказано в шуточной форме, но задело. Не его слова, а сам факт.

И тут я понял многие вещи. Первой из них было то, что я никогда не уделял внимания чистоте кода. У меня были отступы, правильная вложенность элементов и табуляция, и слава процессору, все это было не в одну строку, как любят делать многие при генерации HTML-кода с помощью PHP.
У меня были знания более глубокими, чем у некоторых разработчиков из моего отдела с 1+ годом разработки. Но у меня была кривизна, и должны были быть сломаны пальцы.

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

Если кому интересно, я сейчас Android Developer.

Выводы

  • я получил опыт и знания самостоятельно, это несомненно плюс
  • имел, не совсем стабильный, но все же доход
  • осваивал способ монетизации своего хобби
  • получил представление о разработке в полноценной компании
  • набил ОГРОМНУЮ шишку, но осознал свои ошибки


Для дальнейшего представления и сравнения, мой средний доход от фриланса составлял ~400-700 долларов в месяц. Что для меня было очень не плохо.

Обратная сторона кода

Здесь уже немного другая история другого человека, на которую можно взглянуть как на обратную сторону моей «луны».

Он старше меня. И пусть мы назовем его Иван. Если вдруг узнает себя, то привет ему.

Иван, заканчиваю школу, даже не подозревал, что станет программистом. Он пошел учиться в своем небольшом городе (Иван мой земляк и мы из одного города) на специальность «Машиностроение», однако перевелся на 3 курсе на ИСПР (Интеллектуальные Системы Принятия Решений). ИСПР слабо давал знания по вещам, заложенным в его названии, но давал базу по программированию. Иван был средним студентом. Не хватал звезд, но и не жил от сессии до сессии. Окончание академии было во времена появления .Net от Майкрософтв и в частности не задолго после появления ASP.Net. Иван начал активно осваивать эту технологию, и так вышло, что стал неплохим специалистом в ней. Время шло, но благодаря одному хорошему преподавателю, имя которого я опущу, он писал неплохой код. И даже когда я сам начал писать софт, глядя на его проекты, я осознавал, что код очень не плох. Он нашел работу, и его взяли туда в основном за «прямые руки», и дальше обучали.
Он проработал там без малого 8 лет и добился неплохих успехов. Однако сложилось так, что ему и еще нескольким людям, пришлось уйти из этой компании, а компаний подходящих под его опыт работы в городе больше не было. И тут он попробовал себя в нише фриланса.
Он писал небольшие проекты в течении полугода, и получал стабильно около 1200$ в месяц. Это было не так уж и плохо.
Дальше он попал на интересный форум, где, если я правильно понял, руководитель одной из дочерних компаний крупного мирового авто-концерна, искал человека для огромного хайлоад-проекта. Она написал в описании, что ищет именно фрилансера, потому что не хочет работать с кучей волокиты и бумажных препятствий в западных компаниях.

Иван был заинтересован. Проект длился полгода, но и вознаграждение покрывало его годовой заработок.
Он решил попробовать и написал ответ Чарльзу (именно так звали богатого человека с запада).
Спустя 2 недели, Чарльз прислал письмо, что он выбирает между ним и еще одним парнем из Австралии. Но для выбора оба должны прибыть в Берлин, и билеты уже куплены.

Мысли о поездке, волнение, страх, надежды — это то, чем Иван жил еще около 5-6 дней.
И вот он присылает мне письмо (цитата).
«Через час поезд. Жди звонка. Если все будет как планирую, то уже смогу позволить себе тратиться на часовые звонки из-за границы! Спасибо за поддержку.»


Прошло 4 дня, телефон зазвонил и вот, Иван является руководителем проекта. Я был за него искренне рад.
Когда я спросил, почему выбрали именно тебя, он мне ответил:
«Чарльз сказал нам написать код в блокноте, и чтобы после можно было с первого раза его скомпилировать. У меня это вышло со 2 раза, у австралийца с первого. Но он не делал табуляцию.»


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

Я не раз общался и советовался с Иваном насчет красоты кода. Он мне говорил множество хороших вещей, и вот спустя 2 года у меня чистый и аккуратный код, которым я доволен. Хотя и мнение субъективно.

Теперь выводы из этого рассказа, сравниваемые с предыдущим.
  • изначально правильное и аккуратное написание кода облегчает жизнь
  • для меня были потеряны 1.5 года, хоть я приобрел знания, но правильно не смог их применить
  • ИМХО, фриланс будет более правильным и прибыльным, если разработчик имеет коммерческий опыт и пару сломанных тимлидом пальцев
  • не важно писать много, важно писать правильно


Выдача мысли в продакшн

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

Мой совет всем начинающим разработчкиам. Не рвите звезды, для всего свое время. Я не жалею, что потратил около 2х месяцев на изучение Android и выработки нужных скиллов, при этом не имея работы. Я не пытался сделав интерфейс и Hello World нести свое резюме по всем компаниям мира с криком, что без меня они не будут делать хорошие программы. Нужно просто вложить в себя усилия и потом получить отдачу.

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

PPS. Буду рад увидеть мнения людей в комментариях. Только прошу не устраивать очередных холиваров на тему чем фриланс лучше или хуже компании. Это статья для сравнения путей становления программистами, а не обсуждение того, чем домашний кофе лучше или хуже кофе из кофе-машины в буфете.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.