Search
Write a publication
Pull to refresh

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

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

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

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

Все начиналось с того, что я понял — «Я буду идеальным программистом!» (такое мнение у 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. Буду рад увидеть мнения людей в комментариях. Только прошу не устраивать очередных холиваров на тему чем фриланс лучше или хуже компании. Это статья для сравнения путей становления программистами, а не обсуждение того, чем домашний кофе лучше или хуже кофе из кофе-машины в буфете.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.