Привет Хабр! В этой статье я хочу рассказать о своем пути в области IT. На данный момент он занял у меня уже 6 лет, и еще отнюдь не завершен. Я начинал как QA инженер еще будучи студентом, а сейчас я работаю удаленно через Upwork на довольно крупную американскую компанию. Нет смысла указывать конкретные компании, в которых я работал, поэтому все названия будут в стиле “вот эта вот” и “другая”.

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

Этап 1: QA Engineer


Я начал работать QA инженером (пишу именно это умное слово, а не “тестировщик”, поскольку в трудовой стоит именно эта запись) летом 2010 года, тогда я перешел на 4й курс университета. Университет весьма уважаемый, впрочем, это не имеет значения.

Я твердо решил стать разработчиком, когда мне было лет 12. Тогда у меня еще не было компьютера, но была замечательная приставка СЮБОР, позволяющая писать простейшие программы. Но спустя 8 лет я стал тестировщиком… то есть, простите, QA инженером. Дело в том, что мне поначалу довольно тяжело давалось программирование, и я не мог схватить как следует идею ООП, да и с функциональным программированием у меня было тоже довольно посредственно.

Итак, я устроился по профилю, довольно близкому к разработке, и это меня утешало. К тому же, мануальным тестированием я занимался крайне мало, потому что мой лид практически сразу решил меня бросить на авто-тестирование. Спасибо ему большое за это! Я писал авто-тесты на Selenium WebDriver, используя Java. В процессе написания скриптов я познакомился с такими штуками, как JUnit и Eclipse. А параллельно почитывал книжку по Java – довольно хреновую, но определенные знания я все же почерпнул из нее.

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

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

Еще полгода я занимался саморазвитием. Я вышел на разговор еще раз, а параллельно сходил на собеседование в другую компанию. И – мои труды были вознаграждены! Ребята с проекта сказали, что я сильно вырос, и что, вероятно, смогу перевестись в разработчики через месяц. А еще через неделю мне позвонили из другой компании и поздравили – ведь они готовы взять меня на позицию Junior iOS Developer! До сих пор для меня загадка, почему именно iOS, ведь я собеседовался на Java и отвечал на соответствующие вопросы. Но знаете, что я сделал? Я отказался, ведь меня должны были перевести в разработчики уже через 3 недели!

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

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

Этап 2: Java Developer


Да, меня взяли разработчиком летом 2012. Поначалу это была практически эйфория – ведь я теперь буду разрабатывать, и совсем-совсем не буду заниматься неинтересным мне тестированием! Мне нравилось это время.

Сразу по приходу в компанию я попал на бенч, потому что компания не смогла сразу же определить меня на проект. На бенче я сидел около двух недель – в это время я занимался простеньким учебным проектом, где я мельком познакомился со Struts2 и Mercurial. Затем мне написал мой Resource Manager с радостной новостью, что меня готовы рассмотреть на настоящий, боевой проект! Там уже работал ведущий разработчик, и ему требовался смышленый товарищ, но желательно уровнем повыше, чем junior. И еще здесь была ужасная деталь – мне необходимо было пройти собеседование по скайпу с человеком из Москвы! Наверное, как и большинство неопытных новичков, я паниковал от одной только мысли о собеседовании (это сейчас мы рассматриваем это как приятное времяпровождение, где можно выявить пробелы в знаниях, верно?). Буду краток – собеседование я прошел неплохо, и даже написал Ping Pong на двух потоках в качестве тестового задания. Параллельно со мной собеседовали еще одного разработчика с бенча, но в итоге предпочтение отдали мне. Скрывать не стану – мне было очень приятно, особенно на фоне новости, что хотели брать хоть сколько-нибудь опытного человека.

Поначалу для меня было все в новинку – ant, SVN, JDBC, ну и конечно же Java Core. Всего было так много, что я решил даже не заниматься дополнительно, ведь итак много всего изучал каждый божий рабочий день. В итоге я более-менее научился пользоваться некоторыми инструментами, но не имел четкого понимания, как именно они работают. Вследствие этого довольно часто я изобретал велосипед и усложнял вещи.

Совет: всегда досконально изучайте то, с чем имеете дело. Знание деталей поможет вам писать более эффективный и лаконичный код. Многие скажут, что для того, чтобы водить машину, необязательно знать устройство двигателя. Скажу лишь то, что это довольно бредовая аналогия, и что для меня разработчик – это не водитель, а механик. А вот ему уже все-таки надо знать хоть чуть-чуть, верно? Задача плохого разработчика – сделать, чтобы работало. Задача хорошего разработчика – чтобы работало эффективно. (Задача совсем хорошего разработчика – чтобы еще и код было приятно читать).

Около года я проработал на этом проекте. Я помню, что офис находился далеко от дома, и я решил ездить на работу к 7:30 утра по следующим причинам:

  • Не попасть в пробки
  • Успеть занять место на парковке
  • Мой лид приходил часам к 11. Следовательно, до 11 я мог читать книги по джаве – такой был мой план.

В это время я прочитал книгу Брюса Эккеля “Философия Java” и первый том книги по Java Кея Хорстмана и Гари Корнелла. Честно говоря, чтение давалось с трудом. Думаю, это из-за того, что я не до конца представлял, что произойдет после того, как я их дочитаю. Я не особо представлял себе свое будущее, были лишь размытые цели типа “стать хорошим разработчиком”.

Совет: всегда ставьте цель при прочтении книги. Прямо так и спросите себя: “А зачем я читаю эту книгу? Что я хочу узнать после ее прочтения? Как мне это поможет?”. Простое чтение быстро становится рутиной, которой заниматься хочется все меньше со временем.

По различным причинам проект свернулся, и где-то летом 2013 я попал на другой проект. Пожалуй, худший проект за всю жизнь. Я ничего не имею против SAP, но этот проект был на SAP. Я не помню очень много – наверное, мой мозг нарочно оградил этот участок памяти, чтобы защитить меня, поэтому опишу лишь вкратце, что там было:

  • Мы туда попали вдвоем с другом, с которым вместе ходили на курсы. Это плюс. Единственный.
  • Сами мы занимались правками JSP страничек и Struts классов. А на стороне ABAP сидел лодырь, правки от которого мы могли ждать часами. Простейшие правки.
  • JSP странички содержали практически всю логику приложения.
  • Отвратительное подобие менеджера проекта, который раз в неделю появлялся в скайпе и спрашивал: “Ну как, все хорошо?”. Следовательно, все проблемы с заказчиком мы решали сами.
  • Невозможно было сразу увидеть результаты своих правок. А деплой мог тоже длиться часами, к тому же деплои нужно было согласовывать.

Проект длился всего 2 месяца, но мы успели почерпнуть массу эмоций.

И вот, где-то в 2013 году, я попал на уже настоящий Enterprise. Там я познакомился с Maven и рядом продуктов IBM: WebSphere, RAD, DB2. Что мне особенно понравилось, так это то, что я плотнее познакомился с JavaScript и jQuery (тогда его еще вроде как использовали). А еще там был очень суровый самописный аналог Hibernate. Это объяснялось тем, что Hibernate “тормоз”, а нам нужен был реактивный механизм ORM, который мгновенно положит записи в базу и заберет их оттуда. Не сказать бы, что я с этим согласен, но на тот момент это вполне могло иметь смысл – система имела миллионы запросов ежедневно, поэтому дело осталось за JDBC (если вы не из мира Java, то JDBC – это Java DataBase Connectivity, просто механизм взаимодействия с базой без каких-либо преобразований записей БД в объекты).

Где-то спустя полгода я начал понимать, что застаиваюсь, поэтому попросил перевести меня на другой проект. Я так и мотивировал эту просьбу: мне проект надоел, он довольно древний, а мне хочется чего-то нового. Руководство отнеслось нормально, и спустя месяц я попал на еще более древний проект. Тогда я решил что пора принимать более решительные меры. В целом цель была достигнута – я стал разработчиком, но надо ставить новую цель – стать хорошим разработчиком и работать с современным стеком, двигаться дальше. А еще я тогда решил, что нужно заниматься своими проектами, потому что на одной теории далеко не уедешь. В это время я и перешел в новый этап.

Этап 3: Смена работы и свои проекты


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

Пропуская мелочи – я устроился в ужасную компанию, но на более высокий оклад и другие технологии. Хочу выписать основные минусы:

  • Собеседование. Меня собеседовали не в переговорке, а в обычном кабинете, где сидели и работали люди. Думаю, это напрягало не только меня.
  • Переработки. Я пришел как раз в период аврала, и спустя 3 рабочих недели мне пришлось целый месяц выходить по выходным. За это я получил компенсацию за полтора рабочих дня по ставке один к одному с формулировкой: “Ну ты же ничего полезного особо не сделал, проект не знаешь еще”
  • Процессы. Точнее их отсутствие. У нас была Jira, но ей никто не пользовался. Активности отмечались в гуглодоке, а задачи ставились либо по скайпу, либо менеджером по телефону. Само собой, все всегда забывалось, и что-то не делалось или делалось не так.
  • Отвратительный офис с маленькой кухней, сделанной из комнаты, и общим на этаж туалетом.
  • Требование появляться в офисе в 10 утра. Жутко неудобно, так как по утрам я люблю заниматься спортом. Конечно, можно вставать пораньше, но это уже я не люблю.
  • Все мои предложения по улучшению процессов не возымели эффекта.
  • Учиться было особо не у кого – не было действительно сильных разработчиков.

Чем дольше я работал, тем отчетливее понимал, что этот этап будет недолгим. На этом проекте я познакомился с GWT, Spring и более плотно поработал с Hibernate. Собственно, GWT мне очень не понравился, я посчитал его абсолютно недееспособным на фоне современных инструментов. Ну, и дополнительно изучать GWT я тоже не стал. Оговорю сразу, что это лишь мое впечатление от столкновения с ним.

Зато в это время у меня появился общий с друзьями небольшой проект. Проект был довольно простенький, но все же было интересно его проектировать и реализовывать. Я ближе познакомился с JavaScript, Spring, Hibernate и JUnit.

В этот период я начал читать книги не столько технические, сколько по написанию кода в целом. Во многом я проникся книгой “Чистый Код” дядюшки Боба.

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

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

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

P.S.: без фанатизма. Я не пропагандирую идею прыгать с места на место в попытках поднять свою позицию и оклад. Прежде всего, нужно постоянно чему-то учиться и применять знания во благо компании. Но если вы ощущаете, что застаиваетесь, что ваши знания не востребованы или что на вас ездят – тогда перечитайте совет выше.

Этап 4: Возвращение на родину


Итак, я вернулся в ту компанию, которая дала мне старт как разработчику. Мне попался довольно крупный проект с Big Data, и мы использовали вполне современный стек: Spring, Hadoop (и его экосистема: HBase, Oozie etc), Maven, TestNG. Вероятно, многие посчитают Hadoop уже не таким современным, но это не умаляет современности самого направления. А еще именно тогда я познакомился со Slack и очень оценил этот инструмент.

Наш проект состоял из менеджера и двух Java-разработчиков в нашем офисе, а также менеджера и Java-разработчика в США. Вернувшись, я сразу почувствовал всю разницу между хорошими процессами и их отсутствием:

  • Мы использовали Jira и работали по Agile.
  • У нас были действительно короткие стендапы по утрам и не было затянутых нудных коллов.
  • Было чему поучиться у второго разработчика в нашем офисе.
  • Адекватные код-ревью.
  • 3 раза в неделю у нас были короткие созвоны, где менеджер предоставлял нам краткую выжимку того, что происходит в компании и на соседних проектах, а также планы по проекту.

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

Я внезапно почувствовал острое желание работать ближе к клиенту, возможно даже заняться front-end. Мне начало жутко надоедать работать с Big Data. Мне надоело ходить через несколько удаленных рабочих столов на сервер. Мне надоело запускать свой Job и затем подолгу копаться в логах и анализировать их. Ни в коем случае не назову это скучной и нудной работой, но что-то изменилось. То, что поначалу показалось весьма новым и интересным, спустя время начало надоедать и становиться рутиной. Я пошел к начальству и честно все сказал: я хотел попробовать front-end. А параллельно с этим отправил “шальное” резюме на случайно увиденную, но очень интересную вакансию.

Руководство снова выслушало меня и обещало подумать. А я в это время сходил на собеседование и получил тестовое задание. И, скажу честно, тут я начал метаться. С одной стороны, вакансия была очень заманчивой, а с другой – не хотелось уходить из хорошей компании, которая мне доверяла, спустя полгода после возвращения. На тестовое задание выделялось 2 недели, но я тянул месяц. В конце концов меня позвали на второе собеседование и сделали оффер.

Если кратко – я принял предложение, после чего меня ожидал неприятный разговор с RM. Неприятный потому, что, как я и предполагал, я услышал что-то вроде “как тебе доверять после таких поступков”. Но я решил не принимать это близко к сердцу, ведь за эти полгода я принес компании определенную прибыль, да и проекту помог. Забегая вперед – я не жалею об этом.

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

Этап 5: RoR Developer


Да. Я начал писать на Ruby on Rails. Не буду подробно писать о процессе изучения нового языка, лишь самое главное:

  • Меня практически сразу бросили на боевой проект
  • Коллега по проекту, также бывший Java-разработчик, активно помогал и рассказывал об особенностях языка
  • Руководитель направления также весьма активно участвовал в моем развитии и обучении
  • Я прочел документацию и несколько книг по теме

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

Итак, поздняя осень 2015. Я уже полгода работал в новой компании, зарплаты хватало на все, проект хоть и не самый интересный, но для меня было много нового, следовательно я не скучал. На проекте я познакомился со множеством интересных инструментов: некоторые сервисы Amazon, Heroku, rspec и множество гемов для rails. Но самое главное – я пощупал динамический язык программирования. И если поначалу было абсолютно ничего не понятно, то спустя полгода началась эйфория от этой магии. А потом снова стало непонятно.

Мнение: динамические языки это очень круто. Можно буквально в одну строку писать мета-код, который на лету напишет другой код, который сделает кучу работы. ActiveRecord – круто. С другой стороны, когда эйфория прошла и настали серые будни, эта магия начала нравиться все меньше. Временами код было тяжело читать и неудобно дебажить. В конце концов я пришел к выводу, что лично мне статические языки нравятся больше, на них приятнее писать. Хотя, дело лишь в прямых руках, которые я не до конца успел отрастить за год работы на RoR.

Итак, прошло полгода, как я пишу на Ruby on Rails. Примерно в это время я заинтересовался Upwork. Но заказ я нашел на JavaFX и занимался им около месяца по 10-20 часов в неделю. Понравилось, но график 40 + 10(20) начал утомлять, поэтому после окончания проекта я решил отдохнуть от Upwork пару месяцев.

Затем я нашел другой проект, уже на Ruby on Rails. Ставка была $25/h, а также было условие: работа fulltime. Длительность – от месяца до трех. Если кратко – я работал месяц, дальше проект свернулся по причине стартапа. Это было очень тяжело – первую неделю я отработал все 40 часов вдобавок к тем 40 на основной работе. Далее я работал 35, 30 и 25 часов во вторую, третью и четвертую недели соответственно. Это настолько меня утомило, что я решил еще несколько месяцев отдохнуть от дополнительных проектов. Хотя, стоит отметить, заработал я вполне неплохо за это время.

Итак, я решил сосредоточиться на основной работе, а по вечерам отдыхать либо заниматься самообразованием, а не работать на другой. Некоторое время продолжался такой режим – я не перенапрягался, изучал новое и жил спокойно. А затем проект отдали индусам, а меня кинули на… наидревнейший проект на старых Ruby и со старой легаси-системой, которую мы поддерживали. Видимо, это мой рок – работать на старых проектах. Вдобавок к этому я начал все отчетливее видеть косяки в процессах компании, на которые не обращал внимания поначалу. Основные из них: скудный набор проектов и полнейшее отсутствие аналитики, а также отсутствие тестировщика на проекте.

Совет: если в вакансии в разделе “ожидаем от соискателя” фигурирует пункт “умение работать, не имея законченных требований”, то лучше знайте перевод: “У нас в компании нет аналитики, поэтому ее следует провести вам. И реализовать задачу потом тоже по своим же требованиям”.

Помните, я говорил, что только покидая зону комфорта, можно достичь новых высот? Работая на данной работе, я получал хорошую зарплату, меня устраивал коллектив и офис. В целом было комфортно, и я мог бы остаться на том проекте, особенно если учесть, что загрузка по нему не была полной. Я мог читать статьи и даже заниматься личными проектами в свободное время. Но какое развитие я получал, кроме своих личных начинаний? Как текущее рабочее место способствовало моему развитию? На одном изучении далеко не уедешь, нужна практика. И практика нужна не только в свободное время, но и в каждодневной работе.

Я решил вплотную заняться Upwork.

Этап 6: Fulltime на Upwork


Я немного поискал и нашел подходящую мне работу. Это long-term сотрудничество с довольно крупной американской компанией. Первые 3 недели я работал параллельно на двух работах, а уволился лишь после того, как получил email с указанием того, что работодатель очень доволен качеством моей работы, и классным задачам и морю веселья для меня не будет конца.

На данный момент я работаю здесь чуть более 2 месяцев, и пока что меня все устраивает: стек, процессы и коллектив. Западный стиль управления мне нравится больше. Мне нравится слышать слова “amazing”, “fantastic”, “awesome” при оценке моей работы. Само собой, со своей стороны я тоже прикладываю максимум усилий, чтобы услышать эти слова.

Я не буду описывать, как найти работу на Upwork – на хабре полно статей на эту тему. Опишу основные, наиболее важные моменты на мой взгляд:

  • Заполнение вашего профиля очень важно. Это то, что работодатель увидит во вторую очередь.
  • Конечно, хорошо пройденные тесты вам на руку.
  • Cover letter крайне важно. Это то, что работодатель увидит в первую очередь. Укажите, кто вы и откуда, какой у вас часовой пояс, и готовы ли вы работать по бизнес-часам работодателя, хотя бы частично. Укажите свой опыт и стек, а также дайте понять, что вы хорошо знакомы со стеком работодателя. Не врите. Скиньте свой профиль на linkedin/github/stackoverflow. Если вы только начинаете и у вас пока нет репутации на Upwork – можете указать о готовности выполнить тестовое задание на пару часов.
  • Портфолио также будет отнюдь не лишним.
  • Работайте только с работодателями, у которых рейтинг стремится к 5 звездам. Читайте отзывы. Помните, что неадекватный клиент может подпортить вашу репутацию.
  • Кто-то рекомендует хвататься поначалу за любые заказы, будь то даже пятидолларовый фикс-прайс. Я не думаю, что выполнение дешевых заказов красит вас как опытного разработчика, поэтому я изначально брался только за почасовые заказы с прайсом не менее $20/h.
  • Избегайте «евреев».

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

– Эта задача может быть выполнена быстрее, чем за 12 часов. Я заплачу только за 10.
– Если вы меня наняли, то извольте руководствоваться моими оценками. Я очень подробно описал, почему это займет именно 12 часов.
– Я работал в прошлом разработчиком и кое-что понимаю. К тому же, я не согласен с тем часом, который вы выделили на риски. Его можно исключить.
– Эти часы нельзя исключать из эстимейта, так как мне необходимо поддерживать старый код – в процессе внедрения фичи что-то может пойти не так.
– Артем, вы же профессионал и должны понимать, что это бизнес – я плачу только за фактически выполненную работу, а не за ваши часы.
– Во-первых, ваш бизнес меня не касается. Вы тоже профессионал и должны понимать, что вы вкладываете деньги не только в фактически выполненную работу, но и в знание проекта разработчиком, который будет его поддерживать. Если я потрачу 12 часов на выполнение задачи, я буду ожидать оплату за 12 часов. Если потрачу 8 – оплатите мне 8 часов. Иными словами, я ожидаю оплату за все время, что я потрачу на ваши проекты. Во-вторых, у нас была договоренность о почасовой работе, а текущее развитие событий меня не устраивает.
– Хорошо, пожалуйста сделайте коммит всего, что у вас есть. Я найду другого разработчика.

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

Позволю себе отойти от лирики и опишу основные плюсы, которые я вижу на текущем рабочем месте:

  • Укомплектованная команда: аналитика, разработка, QA, devops.
  • Работа по спринтам с четкой постановкой задач.
  • Заработная плата в 3,5 раза выше, чем на прошлом рабочем месте.
  • Работа из дома – для меня это плюс, так как не испытываю проблем с самомотивацией и дисциплиной.

Если честно, я не знаю, как долго небо над головой будет безоблачным. С одной стороны, работа в России в соответствии с ТК РФ выглядит надежнее. С другой стороны, пары месяцев работы удаленно хватит для создания очень комфортной подушки безопасности. На данный момент ничего не предвещает беды, работодатель имеет большой скоуп задач на много месяцев вперед, а моя работа его вполне устраивает. А еще с каждой неделей растет моя репутация на Upwork, так что я смею надеяться, что в случае необходимости я найду новую работу довольно быстро. Также добавлю, что я работаю строго по ТК РФ – я зарегистрировал ИП и плачу налоги.

Совет: не торопитесь. Суммарно за 4 проекта на Upwork я видел немало ужасного кода. Люди часто уходят на вольные поля, не получив достаточного количества опыта. Их банально никто не тыкает носом в их косяки и не говорит, как надо это делать правильно. Мой путь пока что занял у меня 6 лет, из которых 4 я посвятил разработке и постоянному самообразованию. 80% времени мной повелевали опытные и мудрые тимлиды, которые передавали мне частичку своего опыта. Не торопитесь уходить во фриланс/удаленную работу.

Заключение


Да, 6 лет – это немного. Но все же довольно длинный путь уже пройден. Я не жалею ни об одном своем шаге на протяжении этого пути. По большей части, эта статья – просто мои воспоминания и выписка основных моментов. А все советы, которые я позволил себе озвучить – это те советы, которые я дал бы самому себе, если бы мог. Но, тем не менее, я буду очень рад, если это подобие мемуаров кому-то поможет или вдохновит на что-то. Успехов!
Поделиться с друзьями
-->

Комментарии (108)


  1. loz
    14.09.2016 20:47
    -2

    >Успеть занять место на парковке

    За два года QA смог заработать на машину?


    1. jawaharlalnehru
      15.09.2016 12:03
      +1

      Вот вам лайфхак, пользуйтесь: есть б/у автомобили


  1. Beanut
    14.09.2016 21:50
    +6

    Вы проработали 2 месяца, столкнулись с 1 одним нехорошим заказчиком и повесили ярлык на всю национальность? Если завтра у вас будут проблемы с англичанами, то вы посоветуете не работать с ними? А послезавтра чья очередь? Плохие клиенты есть везде. Оценивать клиента надо по его job-history и на этапе согласования контракта, и уж тем более не писать статьи о том, что евреи плохие, т.к. вам попался один такой.


    1. alek0585
      14.09.2016 22:14

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


      1. capt4net
        15.09.2016 12:05

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


        1. maxlips
          16.09.2016 11:26

          А мне намного приятнее с французскими :)


    1. suicidesquad
      15.09.2016 11:15
      +2

      Скорее всего под «евреями» имелись в виду клиенты, которые говорят, что они лучше знают, на какие задачи сколько нужно времени и какие этапы разработки лучше исключить, а не человека, у которого родители/бабушки/дедушки евреи


    1. zelan
      15.09.2016 12:05

      это же образное выражение.


    1. fpinger
      15.09.2016 12:06

      Я не склонен грести всех по национальному признаку, но несколько согласен с автором.
      Сталкивался несколько раз с заказчиками из Израиля. Один из них как-то мне объяснил частое пренебрежение к удалёнщикам: Только умные могут выжить среди врагов на том клочке земли в пустыне. И то что я работаю на них — это доказательство того. И им лучше нанимать тех кто дешевле. Пусть он делает даже свою работу ногами.
      В тот момент мне предстояло в очередной раз поправить код «созданный ногами» за $5 в час.
      Я понимал, что ногами не поправить код созданный ногами. Как минимум нужно было разделить html от php и js слитых в монолитный не отформатированный поток.
      Я предложил адекватные сроки (с учётом того, что у меня есть основная работа) и помня, что меня на правки ножного кода и взяли.
      На что мне было отвечено, что нет. Нужно сделать вчера.
      Я отказался. Заказчик психонул и сразу оборвал контакты. Правда мне было проще. Встретились не в Upwork.
      Да, я несколько раз встречался с не пренебрежительным отношением от заказчиков из Израиля. И я то же сделал вывод как и автор статьи.
      Правда я встречал и совсем других евреев, но не как заказчиков на фрилансе.


    1. tmn4jq
      15.09.2016 12:17

      Спасибо за отзыв – я поправил в статье. Неудачная метафора вышла.


    1. Hoffmaestro
      15.09.2016 12:35
      +1

      я думаю, слово «евреи» здесь употреблено в иносказательном смысле


      1. taujavarob
        15.09.2016 19:42

        я думаю, слово «евреи» здесь употреблено в иносказательном смысле


        Хм. Стало теперь так. имхо.


  1. Sild
    14.09.2016 21:59
    +10

    Объявлена недели автобиографий на хабре что ли?


    1. tmn4jq
      15.09.2016 12:36

      Да, на той неделе астрологи объявляли – прирост автобиографий в 2 раза :)

      На самом деле не позиционирую это как автобиографию – на книгу не тянет. Это просто мысли.


    1. Viacheslav01
      15.09.2016 17:40

      Поддаться, что ли на общий настрой и засесть за мемуары?


  1. NeverIn
    14.09.2016 22:40

    Почему с java ушли на rails?


    1. tmn4jq
      15.09.2016 12:37

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


    1. taujavarob
      15.09.2016 19:43

      Почему с java ушли на rails?


      Знаю людей уходивших с Java на C#. ;-)

      Деньги.


      1. Viacheslav01
        16.09.2016 13:43

        Звучит как «знаю людей пересевших с мерседеса на жигули. деньги.», я сейчас в обратном процессе, с C# на J, на мой взгляд J на фоне C# просто убогий. И да я таки знаю, что коммент тянет на холливор :)


        1. AlexPu
          16.09.2016 13:48

          Главное, чтобы вам хватало на прокорм семьи и на жигули… а там, хоть в машинных кодах кодируйте


          1. taujavarob
            16.09.2016 13:55

            чтобы вам хватало на прокорм семьи и на жигули

            Но ведь хочется и в Турцию свозить семью и на Форд-Фокусе прокатиться то! ;-)


            1. AlexPu
              16.09.2016 14:29

              Ну если это невозможно с C#, тогда притется выбирать что-то одно…


        1. White_man
          16.09.2016 13:49

          а почему уходите с c# на java?


          1. Viacheslav01
            16.09.2016 17:40

            Моя любимая платформа мертва, а так которая интересна и не мертва использует Java, ну и заманчивое предложение имеет место быть :)


        1. taujavarob
          16.09.2016 13:51

          И да я таки знаю, что коммент тянет на холливор :)

          Не буду холливарить. Я ушёл с Java на Javascript. ;-)
          И дело было не в деньгах. :-)

          Мне Java просто наскучил. Он становится всё «коболистее и коболистее».
          Javascript — это как «новый бриз в паруса» (С) ;-)


        1. tmn4jq
          16.09.2016 14:02

          Хоть я и джавист, но да — C# на уровне языка дает просто море полезных плюшек. Но в Java есть Spring framework, который сильно упрощает жизнь, к тому же Java8 дала реально много.


          1. Viacheslav01
            16.09.2016 17:22

            Увы Java 8 не светит ибо платформа Android.


  1. amaksr
    14.09.2016 22:59
    +8

    Два профессионала не сошлись в естимэйте. Это само по себе не редкость, и случается сплошь и рядом. Но ваш вывод «избегайте евреев» не характеризует вас как профессионала, а в данном конкретном случае скорее наоборот.
    Вообще же профессионала, помимо глубоких технических знаний, отличают отсутствие эмоций по поводу легаси кода, устаревшего стека, наличия/отсутствия процессов/тестов/бизнес аналитиков/тестировщиков/документации. Профессионал работает с тем что есть, объясняет клиенту имеющиеся недостатки и проблемы в понятных клиенту терминах, и знает, где у него оканчивается компетенция.
    Поэтому соглашусь, что 6 лет это немного. Для мемуаров точно маловато.


    1. MAXHO
      15.09.2016 07:43
      +5

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


      1. taujavarob
        15.09.2016 19:44

        Пожалуй это плохо говорит о его толерантности


        Как стилистически «мягко» вы выразились то! ;-)


        1. MAXHO
          15.09.2016 22:23

          Я старался :)


          1. tmn4jq
            15.09.2016 22:41

            Жаль только, что стиль повествования не выдержан :) Хотел сделать упор именно на литературную речь.


    1. tmn4jq
      15.09.2016 12:22

      Да, 6 лет – немного, поэтому я решил начать с простенькой статьи, а не с технического блога. А вы придрались к одному слову, но под ним следует пример, объясняющий суть пункта. Согласен, что метафора не удалась – я поправил в тексте.


      1. taujavarob
        15.09.2016 19:45

        я поправил в тексте.

        Не та правка. Нужна более решительная. Имхо.


    1. NeverIn
      15.09.2016 21:25

      Поэтому в командах эту роль, переговоры с клиентом, выполняют профессионалы, а не технари-разработчики


  1. mr-cpp
    15.09.2016 12:22
    +1

    Спасибо за статью!
    Насколько удобна вам почасовая оплата?
    Мне, например, крайне тяжело дать рациональную оценку работе таким образом
    Не всегда замечаешь сколько времени просидел за работой и/или изначально неправильно определяешь трудозатраты как это часто бывает
    Возможно это только касаемо фрилансеров


    1. tmn4jq
      15.09.2016 12:40

      Это же по сути обычная full-time позиция. Я работаю по 8 часов в день, особо ничего не поменялось. Разве что стало чуть сложнее, потому что я работаю с трекером, который делает скриншоты каждые 10 минут – тут уже среди дня на хабр не отвлечешься. Я работаю по технике pomodoro, лично меня устраивает


      1. White_man
        15.09.2016 17:23

        А сколько pomodoro в день?
        Pomodoro такой: 25 минут таска, 5 минут короткий перерыв, после четырех повторов 15-30 минут долгий перерыв.
        А сколько раз в неделю отдыхаете и как? Глаза не устают?


        Т.е. изучаете что-то новое, читаете, совершенствуетесь после работы?


        1. tmn4jq
          15.09.2016 17:40

          По-разному, обычно получается 6-8 в день, но я предпочитаю 50 минут работать и 10-15 отдыхать. Мне так удобнее.
          Я живу на довольно высоком этаже, поэтому нравится в перерывах либо выходить на балкон и смотреть вдаль, либо читать сохраненные в pocket статьи.


          1. White_man
            15.09.2016 23:36

            6-8 спринтов по 50 минут. и между ними перерыв в 10-15 минут. а обед или полдник, чай, кофе — в 15 минутах?
            сорри, просто интересно.


            1. tmn4jq
              15.09.2016 23:51

              Нет, не нужно работать как робот :) Перерыв на еду – полноценный, не нужно торопиться. Иногда позволяю себе не особо регламентировать отдых – это уже как работун себя поведет.


              1. Vlkam1
                16.09.2016 09:41

                Я работаю по технике pomodoro


                Спасибо за наводку! Фантастическая методика


                1. AlexPu
                  16.09.2016 13:42

                  Тоже заинтересовался — для смарт часов вот нашлось приложение — уже ставлю…


              1. White_man
                16.09.2016 12:55

                А pomodoro ставишь на телефоне в приложении, на часах или в планировщике задач, типа kanbanflow?


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


                Сделать проект, сделать шаблонный проект, сделать проект, которым пользуются. А тебе на работе дали время на изучение мануалов, чтение книг по Ruby/Ruby on Rails?


                Не мешает что на работе пишешь на одном языке, стеке технологий. А сам изучаешь другой — фронтенд, Ruby и т.д.


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


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


                1. tmn4jq
                  16.09.2016 13:20

                  Интересные вопросы :) По порядку:

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

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

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

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

                  С работой из дома проблем нет.
                  Да, для работы у меня мак, а для досуга — ПК с большим монитором. Фильмы, иногда видеоигры :)
                  Еду готовит жена, очень рекомендую. Иногда заказываем :)
                  Смотреть вдаль не приедается, я же не столько рассматриваю просторы, сколько даю глазам отдых и дышу воздухом. Ну и еще внизу постоянно ходят разные люди и ездят разные машины. Очень интересно смотреть иногда, как кто-то пытается припарковаться на узком пространстве.

                  Хочу попробовать работать в кафе иногда, возле дома как раз их довольно много, я живу в центре.


  1. JC_IIB
    15.09.2016 12:23
    +1

    К вопросу о легальности и ИП: судя по https://www.upwork.com/hiring/for-freelancers/getting-paid-russia/, Upwork меняет предоставляемые документы для подтверждения дохода — теперь на каждый вывод денег нужно будет заполнять контракт с _названием (именем) клиента_ и акт приемки услуг. Непонятно вот что — допустим, нарубили мелких заказов на $50-100 каждый, достигли суммы $1000, решили вывести. Выводится-то одним «куском», но я больше, чем уверен, что принимающий банк не устроит, когда к нему придет один платеж на штуку зелени, который будет подтверждаться пачкой из 20 контрактов и 20 же актов.
    А выводить по $100 — увольте, там комиссия на wire transfer $30 с перевода, независимо от суммы.
    Если есть мысли, как эту ситуацию разрулить, поделитесь, пожалуйста.


    1. tmn4jq
      15.09.2016 12:44

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


  1. unabl4
    15.09.2016 12:23

    Около 4-ёх лет опыта с Ruby-on-Rails. Бывают мысли уйти во фриланс, но что-то как-то не срастается. :)


  1. bestmacros
    15.09.2016 12:23

    Избегайте евреев.


    Автор, вы антисемит? Вы пообщались с одним из заказщиков которому не понравилась ваша оценка сложности задачи и основываясь на этом вы рекомендуете избегать евреев?! Может и эйнштейна тоже избегать — он был евреем…


    1. tmn4jq
      15.09.2016 14:09

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


      1. taujavarob
        15.09.2016 19:53

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

        Покупаю арбузы на базаре. Минск.

        Один торговец ни в какую не хочет торговаться и цену никогда не скидывает.

        Остальные вполне вступают в «игру» со мной — кто сколько уступит. ;-)

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


        1. tmn4jq
          15.09.2016 20:23

          Cool story


  1. AlexPu
    15.09.2016 12:24
    +1

    Горячо одобряю и поддерживаю автора :)

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

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

    Но в целом я автора понимаю… даже очень…


    1. tmn4jq
      15.09.2016 13:38

      Хорошо Вы живете, если рейт 20 в час для вас так себе :)
      Для меня тоже тема фриланса является незнакомой, я изначально и искал long-term контракты. И позиционирую это как стабильную работу на удаленного работодателя.


      1. AlexPu
        15.09.2016 16:27

        Думаете так уж хорошо? У нас на таких рейтах разве что очень-очень начинающие разработчики — совсем без опыта работы… Квалифицированный java раазработчик при найме в штат компании и полной занятости должен получать не менее 25-ти ЕВРО в час, плюс бонусы… ну при такой зарплате бонусов будет порядка 3.5 тыс евро в год… причем это не ахти какая зарплата еще (хотя вопрос еще в местожительстве — запросто может быть так, что зарплата меньше, а «на руках» остается существенно больще)

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


        1. suicidesquad
          15.09.2016 17:33

          20$ в час джуниорным джуниорам? 20*40(часов в неделю)*4=3200$ в месяц? Мидлам далеко не везде столько дают :D


          1. AlexPu
            16.09.2016 09:46

            Да! И ключевая фраза здесь — «не везде»… Иными словами где-то «Мидлам далеко столько не дают», а где-то «джуниорным джуниорам за это работать влом»

            Вот давайте посчитаем (я буду считать используя привычные мне величиты: UDS 20 = EUR 18, продолжительность рабочего дня 7.5 часов, среднее количество рабочих дней в месяце — 21.5).

            Таким образом, такая часовая ставка в пересчете на месячный доход (не заработную плату!!) составит 18 * 7.5 * 21.5 = 2900 EUR/m… С чем бы сравнить… водитель автобуса получает примерно 2.5 тыс в мес… медсестра — порядка 3 тыс в мес… библиотекарь (в зависимости от стажа, должности и количества отработаных часов в выходные) — 2-3 тыс в мес… Ну и «джуниорный джуниор» может рассчитывать на такую заработную плату, при условии работы на полный рабочий день — в принципе и меньшая заработная плата может быть — зависит от множества факторов (но конечно предполагается, что это человек с полностью завершенным образованием но без стажа работы — производственная практика не в счет)

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

            1) рабочее время — постоянному служащему гарантирован оплачиваемый отпуск… возимет 24 рабочих дня — это тот минимум который гарантирован (хотя фактически отпуск более продолжительный) — не будем кочевряжиться и возмем просто один рабочий месяц — 21.5 раб. дня — получаем что за год наемный служащий заработает при ставке 18 евро в час EUR 34800 а контрактник получит только 31900 (2900 * 11 мес) — мы просто сравниваем сравнимое — доход полученый за одинаковое количество отработанного времени

            2) Бонусы — не растекаясь мыслью по древу я возьму сумму типичных бонусов, типичного размера (ланч-купоны, телефон компании, отпускной бонус) — порядка 4.5 тыс в год (я немного занизил сумму на всякий случай… в конце концов бывает, что бонусы не получают по разным причинам, кроме того, довольно сложно оценить налоговые выгоды). Таким образом, наемный служащий фактически получит за год EUR 39300 против 31900, которые получит контрактник

            3) гарантированная занятость — постоянные трудовые отнощения потому и постоянные, что работнику при нормальных условиях гарантируются трудовые отношения на неопределенный период времени (у нас это фактически означает, что наемных служащих увольняют только в самом крайнем случае), при этом компания обязана предупреждать сотрудника о предстоящем увольнении — минимум 2 недели, но фактически в силу разных причин это обычно месяц, а то и два — в экстремальных случаях — три месяца, в то время как контракт с любым контрактором можно прекратить в течение одного дня (контракторы для того и существуют). Среднее время поиска новоо контракта — три месяца (это по моему опыту)… Пусть один месяц будет использован как отпуск… два месяца… Ну сократим еще на одмн месяц — иного — для контрактника из суммы 31900 следует вычесть 2900 — для получения оценки фактического дохода, которые получит контрактник за один календарный год при ставке 18 евро в час. Получим 29 тыс евро в год — т.е его месяцный бюджет будет 2400 евро в мес — водитель автобуса получит эту сумму в месяц гарантированного, после полугодового обучения (если без опыта)

            Это я еше некасался вопросов налогообложения и выплат в песионный фонд и фонд занятости (и еще кое в какие фонды) — здесь как раз и проявляются различия между классически контрактором и классическим фрилансером (так как я их понимаю — на самом деле одно другому не мешает). очень грубо из 29 тыс евро дохода полученных выше, нужно вычесть не менее 20% (20-25) — отчисления в вышеупомянутые фонды — это опять чтобы просто сделать результаты дохода контрактника и постоянного служащего просто сравнимыми (после этих вычислений производится рассчет подоходного налога — ставки конечно пронрессивные но принцип уже одинаков в обоих случаях)

            В общем если хочется очень грубо оценить минимальную ставку контрактора у нас, нужно взфть заработную плату и сумму всех бонусов постоянного служащего, которые получал бы именно этот контрактор за год на аналогичном рабочем месте, и умножить на 1.25, потом последовательно разделить на 11, на 21.5 и на 7.5, после чего учесть фактор неполной занятости (я обычно просто вычитаю еще один месяц из 11).

            Так для примера возмем обычного java разработчика со стажем порядка 3-5лет — заработная плата 4 тыс евро в мес (ну она запросто может быть и больше, но не будуем привередничать — 4 тыс евро тоже может быть). Получаем (с учетом бонусов… ну пусть 4 тыс евро) 25 тыс евро в год. далее считаем: 52000 * 1.25/ 11 / 21.5 /7.5 = 36 евро в час или с цчетом фактора неполной занятости: 40 евро в месяц

            Итого, чтобы контрактор получал доход аналогичный заработной плате наемного служащего в 4 тыс. евро в мес, он должен работать по ставке не менее 40 евро в час (45 USD)

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


            1. fr_ant
              16.09.2016 10:48

              В России (не Москва) не просто найти 20-30$ в час, особенно junior'у.


              1. AlexPu
                16.09.2016 10:55

                Дык — кто-ж спорит?
                Скажу более — в Анголе (не Луанда) — еще сложнее!


                1. taujavarob
                  16.09.2016 13:05

                  Скажу более — в Анголе (не Луанда) — еще сложнее!

                  Там тепло. (С)


                  1. AlexPu
                    16.09.2016 13:07

                    Особенно когда вас подвесят над костром


                    1. taujavarob
                      16.09.2016 13:16

                      Особенно когда вас подвесят над костром

                      Не надо нас пугать костром. Не в Европе чай живём то. (Бедный Джордано).


                      1. AlexPu
                        16.09.2016 13:25
                        +1

                        А я вас не пугаю… тем более что вы не в Европе живете…
                        Так что живите себе… пока…


            1. taujavarob
              16.09.2016 13:00

              Так для примера возмем обычного java разработчика со стажем порядка 3-5лет — заработная плата 4 тыс евро в мес (ну она запросто может быть и больше, но не будуем привередничать — 4 тыс евро тоже может быть). Получаем (с учетом бонусов… ну пусть 4 тыс евро) 25 тыс евро в год.


              Тут не понял — Получаем (с учетом бонусов… ну пусть 4 тыс евро) — это не 25 тыс евро в год, а 48 тыс евро в год!


              1. AlexPu
                16.09.2016 13:05

                просто цифирки местами поменялись — 52 тыс евро в год…


                1. taujavarob
                  16.09.2016 13:06

                  просто цифирки местами поменялись — 52 тыс евро в год…


                  Да, польская система записи. :-)


                  1. AlexPu
                    16.09.2016 13:07

                    еврейская — автор статьи очень любит…


                    1. taujavarob
                      16.09.2016 13:17

                      Всё же польская.


                      1. AlexPu
                        16.09.2016 13:28

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


        1. tmn4jq
          15.09.2016 17:36

          Да, зависит от места проживания. Для России в целом это неплохо, но $20/h — это мой первый заказ, сейчас я беру больше. Со временем, когда репутация сложится внушительная, можно будет брать еще больше. Не думаю, что 45-50 это такой рейт, который не позволит себе ни один заказчик. А где вы проживаете, позвольте поинтересоваться?


          1. alek0585
            15.09.2016 23:17

            Омские конторы платят примерно 250 в час средненьким и 500 сеньорам. Грубо говоря 4-8 доллара за час.


          1. AlexPu
            16.09.2016 09:56

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

            Что касается того, что заказчик может себе позволить, а что нет… тут все просто — если я завтра выйду на рынок труда с зарптантыми ожиданиями в EUR 4000/mo, то работа у меня будет в течение недели-двух (нужно учесть бюрократию — переписка, собеседование...) — я не учитываю для простоты тот факт, что работодатель с подозрением отнесется к неадекватным зарплатным ожиданиям (в любую сторону), а если я выйду на рынок фриланса с заявкой на 40-50 евро в час, сколько я буду искать контракт и сколько месяцев в течение календарного года я буду обеспечен работой?

            >> А где вы проживаете, позвольте поинтересоваться
            Проживаю в Финляндии


            1. taujavarob
              16.09.2016 13:15

              Проживаю в Финляндии

              Кстати, говорят в Финляндию берут на работу и программистов(из стран СНГ) без высшего.
              В Германию — только с высшим.


              1. AlexPu
                16.09.2016 13:34

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

                В отношении разработчиков программного обеспечения таких ограничений нет ни в Финлдяндии, ни в Германии (насколько мне известно) — что означает, что для того, чтобы человек мог работать по этой профессии необходимо и достаточно, чтобы этот человек обладал профессиональной квалификацией, которая устраивает работодателя — как работник получит эту квалификацию, и как ее подтвердит это личное дело соискателя и потенциального работодателя… В обзем-то это не особо сложно — я лично знаю нескольких человек без высшего образования, которые преспокойно работают на различных должностях в ИТ (в т.ч. и разработчиками) в разных странах мира включая и германию с австрией


                1. taujavarob
                  16.09.2016 13:47

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


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

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

                  Речь о работе программистом, конечно. Только об этом.


                  1. AlexPu
                    16.09.2016 13:56

                    Да — я тоже знаю ОЧЕНЬ много людей, которые говорят, что их не взяли на работу в компанию X потому что:

                    1) у них нет высшего образования
                    2) у них есть высшее образование, но оно неправильное
                    3) в компании X не любыт русских (украинцев, поляков, евреев итп — нужное подставить)

                    итп — список можно продолжать, но там не будет пункта «потому, что я не соответствую требованиям позиции, на которую претендую» или «нашелся кандидат, которые превосходит меня в требованиях предъявляемых соискателям»


                    1. taujavarob
                      16.09.2016 13:58

                      1) у них нет высшего образования
                      2) у них есть высшее образование, но оно неправильное
                      3) в компании X не любыт русских (украинцев, поляков, евреев итп — нужное подставить)

                      И это будет правдой.

                      но там не будет пункта «потому, что я не соответствую требованиям позиции, на которую претендую» или «нашелся кандидат, которые превосходит меня в требованиях предъявляемых соискателям»

                      Он говорил, что в Германии до этого этапа просто не доходит. Резюме заворачивают на стадии — нет высшего — свободен для полёта в Финляндию только.


                      1. AlexPu
                        16.09.2016 14:32

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

                        >>Он говорил…
                        Ну и вы говорите! Сколько вы там раз за ночь женщин удовлетворяете? В общем — не стесняйтесь!


                        1. taujavarob
                          16.09.2016 14:42

                          Ну и вы говорите!

                          А вы не пишите ерунду.


                          1. AlexPu
                            16.09.2016 15:50

                            Зачем мне ее писать? Вы прекрасно справляетесь за нас обоих :)


                1. webkumo
                  16.09.2016 16:54

                  По Германии — интереснее всего туда ехать по Blau Karte (вроде правильно написал), для получения которой программисту требуется профильное образование или (точную цифру не помню, вроде) 8 лет стажа по профилю.


                  1. AlexPu
                    16.09.2016 17:18

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

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


                    1. webkumo
                      16.09.2016 19:33

                      Свободное передвижение по Европе? Свободный выбор работодателя (некоторые другие виды виз привязывают к работодателию)? Возможность получить вид на жительство через n лет?

                      Если я правильно помню — есть какой-то локальный Германский аналог этой визы, но он не настолько интересен, как мне видится…


                      1. AlexPu
                        16.09.2016 22:02

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

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

                        Насколько я могу судить (я правда могу ошибаться), голубая карта нужна главным образом для того, чтобы получить право на проживание в ЕС до того, как найдешь там работу… Ну или может это как-то упрощает оформление… Но голубая какта никак не заменяет национального разрешения на проживание — его все равно надо будет получать через некоторое время… по крайней мере так написано на сайте финской полиции, в разделе посвященном выдаче разрешениям на пребывание


                        1. AlexPu
                          16.09.2016 22:17

                          Прочитал про «голубую карту ЕС» — извращение какое-то… нахрен оно надо, жить на птичьих правах? взять хотябы громкую фразу «свободное передвижение по европе» — оная фраза должна дополняться словами «в туристических целях», что вообще говоря позволяет любая виза или любй residence permit выдынный страной, участнком шенгенского соглашения.

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

                          В общем — детям… все лучшее — детям…


      1. webkumo
        15.09.2016 20:15

        $20 в час * 40 рабочих часов в неделю * 4 недели * 65 руб/$ ~ 208 000 рублей
        Из этой суммы надо вычесть налоги (13%), страховые взносы в различные фонды (не знаю точную сумму, писать не буду), отпуск, «деньги на больничный» (страховая сумма на случай каких-либо неурядиц, всё-таки на оф. работе вы от этого несколько защищены), итого получается
        (208 000 — 27 040) * 11 / 12 = 165 880 без учёта прочих расходов… Проблема в том, что часть времени — это изучение чего-нибудь нового, что в счёт вставить не получится, да и 8 часов работать эффективно вряд ли получится… Так что я бы рассчитывал на 3/4 от этой суммы в лучшем случае, а это 120к за вычетом прочих расходов опять же (допустим это опустит «чистую» зарплату до 100к). Если для регионов это существенная сумма, то для СПб и Москвы — даже средненькой назвать не получается…
        При этом куча доп. обязанностей ложится именно на вас.


        1. tmn4jq
          15.09.2016 20:27

          Что-то вы тут много повычитали. Взносы в ПФР около 25к в год. Налоги 7% по упрощенке. Вы еще так про отпуск пишете, будто на него 0 расходов на обычном рабочем месте. А изучать новое — разве плохо? К рейту 20 в час тоже не стоит привязываться, это довольно небольшой рейт. Не буду описывать плюсы удаленной работы, просто скажу, как сам вижу: мне так гораздо удобнее и мой белый доход поднялся более чем в 3 раза.


          1. tmn4jq
            15.09.2016 20:35

            Чуть подробнее про то, что изучение нового в счет вставить не получится. Вот когда вы работаете в офисе по ТК РФ и вам приходит задача по незнакомой технологии – вы начинаете копать и изучать? А вы потом вычитаете это время или задерживаетесь до полуночи? Или же это время включается в рабочее – ведь вы изучили что-то, что помогла вам решить очередную задачу работодателя, заодно став более ценным сотрудником? Думаю, второе. Вот у меня абсолютно то же самое, с той лишь разницей, что я сижу дома, а работотадель – на другом континенте. Я не выставляю счет работодателю, он просто платит мне мою заработную плату. Просто этот процесс автоматизирован – сколько часов трекер насчитает, столько денег я и получу.


          1. NeverIn
            15.09.2016 21:30

            Вроде 6% налог


            1. tmn4jq
              15.09.2016 21:46

              С первых 300 тысяч рублей платите 6%, со всего последующего — 7%


  1. Swartex
    15.09.2016 12:24
    +1

    Спасибо автор!
    Очень интересно было читать )


  1. maximpechenin
    15.09.2016 12:24
    +1

    Мне нравится слышать слова “amazing”, “fantastic”, “awesome” при оценке моей работы.

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


    1. taujavarob
      15.09.2016 20:05

      они не означают, что работа действительно «amazing».

      Это верно. Но что ещё на выбор?:
      — Молчание.
      — Так, сделано и ладно, пойдёт.


  1. fr_ant
    15.09.2016 13:33

    Евреи как черный PR


  1. Vlkam1
    15.09.2016 17:29

    Спасибо, очень мотивирующая история


  1. Vlkam1
    15.09.2016 18:00

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


    1. tmn4jq
      15.09.2016 18:10

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


      1. Vlkam1
        15.09.2016 18:21

        это конечно в корне меняет дело


    1. taujavarob
      15.09.2016 20:07

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


      «Восточные люди» также разные бывают. ;-)


  1. alek0585
    15.09.2016 23:26

    Вы бы еще добавили про ИП и прочую бюрократию… Вообще было бы замечтательно!


    1. tmn4jq
      15.09.2016 23:52

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


  1. LumisD
    16.09.2016 10:12

    Напишу мой путь в программисты. Начал в 40 лет.
    Я когда жил в России, в Москве, работал в крупной частной компании инженером электронщиком, но хотел быть программистом. Ходил в отдел программистов, изучал си-шарп, брал учебные задания. Было это всего пару месяцев. К сожалению, я был ведущим инженером, получал хорошую зарплату, а программистом бы я получал в 2.5 раза меньше, и зарплата росла бы очень медленно.
    Уехал в никуда из России, только бы не там. Но буквально через 3 недели столкнулся с программистом который работает разработчиком через UpWork. Я посмотрел как он работает, через 15 минут я уже понял что я хочу заниматься этим, до этого я и не думал, что работая удаленно можно хорошо и стабильно зарабатывать.
    И следующие 3 месяца был хардкор! С нуля java, android studio. Мне было 40. Через 3 месяца меня взяли в компанию где он работает. Вот уже 1.5 года я там работаю. Работа фактически еще и учеба, т.к постоянно сталкиваюсь при работе с чем-то новым, и конца этому я пока не вижу.
    Единственно в последние пару месяцев я решил в свободное время что нибудь еще почитать. Узнал html, сейчас css просматриваю, потом возьмусь за javascript. Просто интересно.
    Зарплата у меня выше чем была в москве, но работаю из дома, поэтому более свободен в графике. Живу в далекой жаркой стране.


    1. AlexPu
      16.09.2016 10:27

      А я встречал людей которые утверждают, что они слишком стары, чтобы учиться… Хотя наверное даже они понимают, что это переводится как «слишком ленивы, чтобы учиться»

      У меня стаж разработки свыше 20-ти лет (хотя по образованию я тоже очень далек от ИТ) но я тоже присматриваюсь к фрилансу… Проблемы похожие — я не готов пока терять в доходах…


      1. LumisD
        16.09.2016 16:04

        я не стал программистом лет 10 назад потому что во-первых считал что это очень долгий процесс, во-вторых делал все неправильно: я шел по толстой книге подряд, а это скучно довольно.
        Как я вижу сейчас, правильный подход это изучение основ языка и системы разработки (у меня это java и android studio) буквально пару недель, а потом писать приложения, опыт приходит быстро, это намного интересней, учиться все равно приходиться каждый день, просто не в линейном порядке как в книге, а по частотной важности применяемых инструментов (я имею в виду что при написании программы больше всего придется изучать то, что применяется наиболее часто, ставятся правильные приоритеты).

        И, что мне не нравится, но очень и ОЧЕНЬ эффективно, это выйти из зоны комфорта. Мой пример: у меня было несколько тысяч долларов, я был в стране, язык которой я едва понимал и значит на все про все у меня было полгода максимум, это была бешенная мотивация, я работал так, что несколько раз было нервное истощение, но 3 месяца и у меня работа (поправка: я все таки не был готов к той работы на 100%, только на 50%, фактически меня взяли по поручительству программера что я встретил, и следующие 2 месяца он помогал мне в работе. Как правило видя мое задание он давал комментарий где это может находиться, на что обращать внимание и т.д. Общие указания которые сильно экономили время. А в первые 2-3 недели он даже писал за меня часть кода, после того как я безрезультатно бился над ним сутки.)

        А самый лучший способ это быть знакомым с реальным прогером в той области где хочешь работать. Собственно это и определило то, что я сейчас делаю то, что делаю. По моему «плану», когда я уезжал из россии, я отводил себе 3 месяца на изучение языка и затем 3-4 месяца на изучение C#, и там и там у меня были начальные знания. Это реальные сроки, но только с учетом правильного подхода, как написал выше, а тогда я тупил. Я даже не знал что есть хабрахабр, stackOverflow!!! Оглядываясь назад я вижу камикадзе)


        1. AlexPu
          16.09.2016 16:30

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

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


          1. AlexPu
            16.09.2016 16:33

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


        1. taujavarob
          16.09.2016 16:50

          > фактически меня взяли по поручительству программера что я встретил, и следующие 2 месяца он помогал мне в работе. Как правило видя мое задание он давал комментарий где это может находиться, на что обращать внимание и т.д.

          Ментор — это здорово! ;-)


    1. taujavarob
      16.09.2016 13:20

      Узнал html, сейчас css просматриваю, потом возьмусь за javascript. Просто интересно.

      Ну, если «прёт изнутри», то это здорово! И вы молодец!