Разработчиком на удаленке – c нуля до героя / Habr
Последнее время все большее количество людей начинают мечтать о том, как они будут сидеть дома, писать крутые проекты в распределенной команде, гладить котика под чашечку домашнего кофе и лутать за это хорошие деньги. И в этом на самом деле нет ничего плохого, тысячи разработчиков так и работают. Однако об этом часто начинают рассуждать ребята, которые не имеют достаточного опыта, и в действительности вряд ли смогут получить такую работу, не получив боевой опыт в офисе.Джуны на удаленке не нужны
Как любят говорить ребята с Тостера, в частности кураторы большинства разделов, джуны на удаленке никому не нужны, как и вероятность что-то заработать джуном на фрилансе. И это действительно так. Но также всем известно, что всегда найдется человек, который сделает то, что считалось практически невозможным.
И так, меня зовут Сергей, я enterprise-разработчик, я живу в городе Уссурийск (Приморский край, 200к население, +7 часов с Москвой), у меня нет профильного образования, и я ни дня не работал в офисе разработчиком. И эта история про то, как я дошел до такой жизни.
Я не ставлю своей целью воодушевить ребят из провинции, чтобы они все дружно бросились и начали пытаться устроиться на удаленку. Я хочу показать то огромное количество времени, которое я потратил, чтобы дорасти до разработчика (без всякого сомнения, если бы в моем городе был «офис», я бы сделал это гораздо быстрее).
После университета
Изначально я планировал работать в игорной сфере, поэтому после школы пошел на «Социально-культурный сервис и туризм», однако на 2 курсе вышел закон РФ о запрете игорной деятельности. Хотя я живу в Приморском крае, где должны были к 2012 году построить казино, все сроки сорвали, и фактически к моменту моего выпуска ничего не было. Точнее были подпольные казино, но это были те места, где тебе бы точно не хотелось работать.
Техническая поддержка
Все это время я просматривал что-то более подходящее, и в один день на «Моем Круге» увидел вакансию в ночную техническую поддержку. Я прикинул, что с учетом моего часового пояса, 7 утра по Владивостоку, это 0-00 по Москве, я смогу работать в ночную смену фактически днем. Я откликнулся, прособеседовался и устроился на работу.
Естественно, просто так левого человека не возьмут в поддержку. Я еще со школы увлекался сайтостроением и делал различные сайты для своей команды по дотке и местного игрового клуба. Плюс из-за моего образования, у меня был достаточно хороший английский язык, что позволило мне также оказывать поддержку клиентам из Австралии, Новой Зеландии и США. У меня фактически был уровень такого хорошего веб-мастера с английским языком, плюс опыт поддержки из 1С.
Движение дальше
На одном из корпоративных съездов я пообщался с ребятами из отдела разработки, и понял, что обсуждаемые темы – это не какой-то «рокет саенс», и что я мог бы попробовать также. Плюс формальное образование хоть было и гуманитарным, но все же математика, статистика, экономика, бухучет и программирование у нас было, так что я не сильно боялся формул и цифр.
Это был 2014 год, везде кричали, что php-отстой, что python – это будущее и прочее (Как я был наивен и глуп!). Поэтому я начал изучать программирование с него. Как я это сделал:
1) Скачал книги Марк Лутца «Изучаем Python», «Программируем на Python». Книги дались достаточно сложно, ибо читать их было крайне скучно, тем не менее, они дали очень хорошую базу. Если у вас есть выбор, начать быстро или прочитать какую-то фундаментальную книгу по программированию, то я настоятельно рекомендую начать со второго, чтобы получать необходимую базу. Важно понимать, не только «Как», но и «Зачем» и «Почему».
После книг я решил немного поиграться и начал писать различные парсеры для игровых порталов (Brablay/GoodGame) с целью сбора статистики по определенным темам. В частности было интересно увидеть, как определенные люди оставляют комментарии, в частности их огромное количество.
2) Потом я решил сделать что-то более значимое и собрать статейный портал на Python. Прочитал книгу по Django (Если честно не особо её понял – информация давалась слишком быстро и слишком «вакумно»). Поэтому посмотрел пару вступительных роликов по Django от ITVDN и обратился к официальной документации.
За 4 месяца разработки я освоился с версткой, понял, как работать с базой, писать миграции, ставить SSL и прочее. В итоге, следующий год я потратил на запуск целого ряда собственных проектов и разработка небольших сайтов для местных ребят (дроп-шиппиг сайт, магазин велосипедов, магазин спортивного питания и так далее).
3) Через год мне наскучило разрабатывать проекты на Django. Я стал смотреть, что еще можно придумать на Python. Я, наверное, прочитал все книги по Python, что были на сайте Ozon. Начиная от книги по Devops, заканчивая компьютерным зрением и машинным обучением. Эти темы не особо меня вдохновили (я не видел прикладного значения в моих масштабах, что я могу использовать прямо здесь и сейчас), но эти термины из какой-то неведомой магии и «скайнета», превратились в обычные формулы и прикладные библиотеки.
4) В итоге, я решил немного поднять свой уровень компьютерной грамотности и начал читать книги по C/C++/Java/Компьютерным сетям/PostgreSQL/TDD и Корпоративным паттернам. Если честно достаточно интересный опыт, когда ты понимаешь, как работает другая технология, на что она опирается, какие несет в себе сложности, и как она решает «сложные задачи» из твоего стека.
Отдельно можно отметить книгу по Spring, которая показала, насколько корпоративное приложение сложнее, чем «easy-going» проекта на Django.
Тестирование и Автоматическое тестирование
Через три года работы в поддержке, мне, к сожалению, отказали в переход в отдел разработки, но появилась возможность получить позицию в отделе тестирования. К тому моменту я свободно знал Python и мог в Java, поэтому было бы глупо не согласиться.
Отдел тестирования дал достаточно хорошее понимание, как ведется разработка сложных систем, как взаимодействуют команды внутри себя и между собой. Конфигурация различных тестовых окружений, приоритезация задач и многое другое.
Естественно, это автоматизация тестирования на селениуме с дерганием тестов через jenkins при релизах новых билдов.
Отдельно понравилась тема тест-дизайна. В компании был большой пул различных курсов по тестированию, поэтому с ними можно было узнать много крутых фишек, о которых ты вообще раньше не задумывался из сферы тест-дизайна. Например, проектирование минимального числа тест-кейсов, чтобы покрыть наиболее количество вариантов системы с помощью pairwise (http://www.pairwise.org/) генераторов. Это крутые штуки из работы QA-Инженера, о котором многие разработчики даже не задумываются.
Переход в разработку
Через полтора года в отделе тестирования, я получил договоренности, что если я предоставлю рабочий прототип на php-стеке, я получу возможность пройти стажировку в отделе разработки.
Один месяц у меня ушел на книги по PHP. После Python и Java освоить PHP оказалось достаточно легко, хотя время от времени и появлялись вопросы «А почему тут так нельзя».
И три месяца я потратил на АПИ-сервис на Symfony (веб-морда, личный кабинет, бизнес-логика, почтовые уведомления, пдф-генератор, парсинг сложных json-структур и прочее). Внезапно оказалось, что Symfony – это своего рода гибрид Django и Spring, поэтому каких-либо проблем с пониманием вообще не возникло.
В итоге, я показал свой проект и получил стажировку в отделе разработки, откуда меня уже перевели в полноценного разработчика.
Первые месяцы в качестве разработчика
Мне предоставили ментора, который фактически ревьювил мой код и подсказывал, почему нужно делать так, а не иначе. Иногда созвоны длились по полтора-два часа, когда детально разбирался код по шаре и давались рекомендации, как его улучшить. Фактически получалось так, что я давал решения в нужные сроки с нужной логикой, но за счет того, что у меня не было опыта корпоративной разработки, они получались слишком запутанными и усложненными. Плюс время от времени появлялись вопросы по работе Redis/RabbitMQ/Elastic итд. Но все же главная работа велась в сфере, чтобы упростить код и сделать его тестируемым (когда пишешь код для себя, даже не задумываешься, что другие люди не смогут его читать). Как итог, за 4 месяца мой код подтянулся по стилю до корпоративных стандартов. Реально, когда пишешь код сам, даже не задумываешься о том, как его будут понимать другие люди, и правильно ли излагать свои мысли таким образом. Опыт работы в команде сложно чем-то заменить.
Общий стаж, чтобы получить работу разработчика на удаленке с нуля – 4 года, 9 месяцев.
Как итог об удаленной работе с нуля:
- Вероятность получить работу разработчиком на удаленке, пройдя какой-то курс и почитав какой-то туториал – стремится к нулю.
- Вероятность справиться даже с работой джуна на удаленке без опыта коммерческой разработки, либо каких-то собственных проектов – стремится к нулю.
- Вероятность того, что без каких-либо рекомендаций, компания будет тратить на вас время, чтобы чему-то научить – стремится к нулю.
- Вероятность того, что прочитав какие-то книжки, и устроившись на удаленку, вы будете получать какие-то «большие деньги» — стремится к нулю.
- Отказываться от других айти-работ, так как вы хотите быть только разработчиком на удаленке с самого начала своей карьеры и никак иначе – большая глупость.
Удалённая работа – отстой. Да здравствует удалённая работа! / Habr
Это перевод статьи Being a Remote Worker Sucks — Long Live the Remote Worker Скотта Хенселмана за 27 февраля.
Я уже 5 лет работаю в Майкрософт – и всё это время удалённо. Мои предыдущие две работы были семилетними мероприятиями – то есть, я работал в одном месте и дольше, но не удалённо. И, раз за пять лет меня не уволили, я могу сказать, что я хороший работник. Я также немало пишу в своём блоге об удалённой работе, и это – очередной пост на эту тему.
Работать удалённо – прекрасно, отстой.
Вступление
На этой неделе бывший сотрудник Google и CEO Yahoo в данный момент Марисса Майер потребовала от удалённых сотрудников вернуться в офис до июня.
Если бы я работал из дома в Yahoo, я бы сразу уволился после такого. Такое отношение демотивирует.
Я вижу три причины, по которым компания Yahoo могла решиться на такой шаг.
- Завуалированная попытка оптимизировать рабочую силу, заставив удалённых работников сделать выбор из одинаково плохих вариантов. После смены политики можно легко не называть увольнение увольнением.
- Полное непонимание того, как работают удалённые работники и чём они ценны.
- Yahoo действительно не имеет понятия, как оценивать продуктивность работника.
И хотя Мариссе хватило двухнедельного отпуска после родов, я в аналогичной ситуации предпочёл трехмесячный отгул (лишь частично оплачиваемый), а я, между прочим, мужчина.
В конце концов это сводится к доверию, определяемому политикой компании. Вас наняли как профессионала. А доверяют ли вам как профессионалу? Компании приходится доверять своему удалённому сотруднику не только не видя его, но и не видя взаимодействия между сотрудниками.
Удаленная работа не идеальна. Есть прекрасные моменты, но в остальном – полный отстой. Вот почему.
Почему удалённая работа – отстой
Есть несколько причин.
Чувство вины – отстой
Работать из дома реально сложно. Я считаю, что удаленные работники работают как минимум так же интенсивно, как офисные работники, если не лучше. Чувство вины и страх подливают немало масла в огонь. Мы действительно чувствуем вину, работая из дома. Нам кажется, что вы представляете нас сидящими на совещании в трусах. Или что мы отправляем емейлы из супермаркета. Мы боимся, что вы считаете, что мы не работаем честные 40 часов в неделю.Именно поэтому мы зачастую работаем на выходных или поздно ночью, когда дети уже спят: поиграв немного с детьи днём (в рабочее время), из-за чувства вины мы вернемся за компьютер вечером, чтобы вернуть потерянные часы. Согласно моему опыту, удалённые работники часто чувствуют, что забирают слишком многое у компании и потому работают больше других.
Вам может это показаться бредом, но поспрашивайте ваших знакомых удалёнщиков. Чувство вины есть, мы просто не говорим об этом.
Вас не видно. Вас не существует
Пару месяцев назад у нас была скрам-встреча, и босс не мог настроить веб-камеру (уже пять лет это занимает 10 минут перед каждым звонком). А в это время, как мне показалось, 20 офисных ребят смотрели (фигурально) на удалёнщиков укоризненными взглядами. Вот она, вина.
Мы говорили по кругу (я тоже в круге, просто я невидимый), а потом встреча закончилась. Мне просто отключили микрофон.
— Эй, ребята, это я, Скотт… хотел бы поговорить о работе за сегодня… ребята?
VPN – не моё и не родное
Не важно, что там говорят про современные технологии или какая у вас скорость интернета, даже с VPN вы не в офисе. Каждую неделю вы встречаетесь с такой штукой, что работает только в офисе. Вы всегда спрашиваете пароли, а скрипты и инталляторы на вашей машине не работают.
Мне приходится каждый сезон ездить в офис, чтобы решить проблемы такого рода.
Когда придёшь в следующий раз?
Это самое ужасное. «Когда будешь в офисе в следующий раз?»
Я онлайн 24/7. У меня есть HD камера, Lync, Скайп, Google Chat, да даже Chat Roulette на каждом устройстве. Но для вас абсолютно нормально не звонить мне по три месяца, а при встрече начинать с «давай, наконец, расскажу про проект».
Со мной можно поговорить абсолютно в любое время. В любое время вы можете написать или позвонить. Можно устроить встречу с 1080p видео. Поверьте мне, я доступен для разговора, просто позвоните.
Так что же делать с удалёнкой
Во-первых, это реально зависит от самой работы. У нас есть парни типа Брайана Харри (Brian Harry) – он живет на ферме где-то в Каролинах, а здесь у него большая команда. Они не в офисе, но в офисе есть ребята, с которыми Брайан тесно работает. Есть Стив Сандерсон (Steve Sanderson), он живет в Лондоне и работает в Редмондской команде. Но его работа – писать хороший код. Я подозреваю, что управлять целой командой программистов удалённо намного сложнее, чем просто работать удалённо в команде. Это одна из причин, почему я ушёл из такой команды. Я чувствую себя лучше как волк-одиночка с одним заданием.До того, как я присоединился к команде ASP.NET, я был лидом в команде, работающей над MSDN. Мы всё работали из дома, разбросанные по всем штатам. Наши задачи были ясно определены, а мы сами были сфокусированы на них и прекрасно работали удалённо.
Вот несколько полезных советов, которые сработали для моей команды.
Статус, статус, статус
Удалённые работники должны сделать так, чтобы все сотрудники могли самостоятельно легко ответить на вопрос «а над чем работает вот этот парень?». Здесь двойные стандарты: зачастую ребята из офиса понятия не имеют, чем занимается девочка через стол, но ведь она приходит каждый день, а значит делает что-то полезное, верно?
Когда я был тимлидом, каждый понедельник мы отправляли всем емейл с 3 пунктами: что мы хотим сделать за эту неделю. В пятницу мы отмечали, что получилось сделать, а что нет.
Вас должны видеть
Раньше я появлялся в офисе раз в месяц, но когда начал много ездить на конференции и к клиентам, я стал заезжать в Майкрософт раз в 3 месяца. Когда это случается, начинается серия встреч в стиле relationship building. На языке бизнеса это означает «поболтаем» – напоминание компании о том, зачем вас наняли. Ребятам нравится, когда работащий из дома появляется в офисе. Приезжайте почаще.
Тимбилдинг
Когда вы в офисе, занимайтесь так называемым тимбилдингом. Разговоры в офисе не о работе могут сильно изменить ваши отношения с ребятами из офиса. Когда я у них в городе, я стараюсь встречаться с командой вне работы, быть в курсе их дел, семьи и других вещей, не относящихся к работе.
Не только дома
Постоянно работая из дома вы можете сойти с ума. Я стараюсь выбираться из дома пару раз в неделю. Я работал в торговом центре, в Старбаксе, Макдональдсе и даже в парке. Мне нравится, когда вокруг ходят люди – их энергия заставляем меня сфокусироваться на работе и быть более продуктивным.
Пробуйте работать не только дома и не бойтесь смешивать работу с отдыхом.
Интересуйтесь отзывами
Во время встреч тет-а-тет с моим боссом мы много обсуждаем над чем я работаю и почему. Мне зачастую казалось, что удаленная работа – это неплохое приключение, но всё-таки работать удалённо у меня не получается. Мой босс не против работы из дома, но такое чувство всё ещё есть.
Интересуйтесь отзывами о себе и о том, что вы делаете – вы должны быть на одной волне с командой. «Интересуйтесь» здесь означает «спрашивайте». «Как вы думаете, я справляюсь вот с этим? А вы довольны вот этой моей работой?» Это сложно, но важно.
Умейте пользоваться средствами связи
Мы используем Lync, но я также использую скайп, Google Chat, Join.me, прямой удалённый доступ, удалённый помощник в Windows, CoPilot и ещё много чего. Если вы не подружились с одной программой, не тратьте время, попробуйте другую. Если кто-то начнет ассоциировать вас, как удалённого работника, с техническими трудностями, отношение к вам изменится.
Будьте доступны
Совет-предостережение. Будьте доступны в рабочее время. Но не переусердствуйте – в 5 часов утра вы никому не нужны, а рабочий емейл в воскресенье никто не проверяет. Но с 9:00 до 17:00 ваш босс должен иметь возможность с вами связаться каким-то способом.
А как вы справляетесь с проблемами работы из дома?
От переводчика
Ещё раз оригинал статьи: Being a Remote Worker Sucks — Long Live the Remote WorkerЯ тоже работаю из дома, и меня волнуют многие вопросы, рассмотренные в этой статье. Но и не все советы мне подходят – например, я не могу работать не из домашнего рабочего места.
Программист — предложения работы в категории Программирование
Просьба внимательно дочитать до конца, прежде чем оставлять отклик — экономьте деньги! Дано: есть 5 сайтов по теме металлопроката сделанные на движке ModX. Сайты разной степени крепкости от 7000 страниц до 200 Ссылка на самый крупный: c-met.ru по меньше: tvermet.ru в целом все однотипно!! Что нужно: Делать бэкапы раз в неделю и перед каждым обновлением ( после очередного обновления многие блоки работаю не корректно!). Слетел блок автоматического добавления и изменения цен на продукцию, сейчас приходится вручную изменять по 3700 карточек товара, раньше просто вводили на сколько процентов увеличена цена и все автоматном менялось, после перехода на ModX evolution перестало работать. Надо уметь написать скрипт и внедрять его в движок!!! Далее слетела галерея, тоже нужно разбираться. Далее в связке работать с сео специалистом: добавить кнопку, сменить анимацию или положение логотипа исправить глюки на сайте, проверить работу форм, очистка от вирусов и т п. В общем ваша задача что бы сайты технически работали идеально. Плюс чистка кода и оптимизация по заданию сео спеца, мало ли будут глюки. На переход на битрикс или другой движок не готовы, предлагал((. Обязательно !!! Проживание в Санкт Петербурге и раз в 1-2 недели приезжать на планерки. Будете работать в моей группе: Вы, контент менеджер, сео спец, копирайтер. Опыт работы с этим движком и написания скриптов под него!!! По деньгам пишите сразу, если что то не ясно пишите комментарии. Цена указана произвольно, но судя по ожиданиям клиента эта работа в пределах 15-20 тыс в месяц! Однако это не означает что это стоит именно столько! Нам важно не отвлекаться на технические моменты при работе проекта!! Оцените свои возможности, клиент очень требовательный! Не стоит объяснять что болеть, выключать телефон, хоронить бабушку или кошку и т п — нельзя, за это я отчисляю из команды! Мы там будем комплексно продвижение вести.
Отзыв на задание
Все обсудили и было выполнено. Рекомендую как профессионала на движках ModX
Работа программистом удаленно — Это интересно…
Для многих специалистов работа программистом удаленно – лучшая в мире. Начальник не дышит в затылок, ты самостоятельно распределяешь рабочее время, твой заработок не лимитирован, ты выбираешь для себя только интересные проекты… Но так ли все безоблачно? Какие подводные камни ожидают удаленщика? Где найти программиста, который не сольется в самый ответственный момент и как контролировать его работу? Краткий обзор для фрилансера и работодателя в нашей статье.
Офисный сотрудник vs Удаленный
Первое, с чем придется столкнуться при работе программистом удаленно — нестабильность. Клиентов придется искать самому. И если в одном месяце будет густо с доходом, то в другом может быть пусто. К слову от обмана ни один фрилансер тоже не застрахован. Лучший вариант в этом плане – заключить договор с компанией на постоянное сотрудничество. Но тут везет далеко не каждому. В основном удаленщики работают по проектам – когда заканчивается один, приходится искать другой.
Вторая особенность работы программистом удаленно — отсутствие соцпакета. У вас не будет отпусков, больничных, пенсионных отчислений. Исключение – договорные отношения с компанией, предоставляющей удаленному разработчику полный соцпакет. Еще одно исключение – оформление юридического лица или ИП, но здесь уже нужно вычитать из своего дохода налоговую нагрузку.
Третье. Важнейшее качество для удаленного девелопера – способность к самоорганизации. Вы, конечно, можете полдня слоняться по квартире, распивая кофе. Такое удовольствие офисному сотруднику не светит. Но проект за вас никто не сделает. И если вы не сумели для себя распределить задачи так, чтобы сделать все к сроку, то с работой можно попрощаться.
Наконец, находясь вдали от офиса, сложно учиться у более опытных разработчиков и консультироваться с командой. Приходится заниматься самообучением.
Впрочем, безграничные финансовые перспективы и отсутствие нравоучений со стороны начальства для многих перекрывают все минусы работы программистом удаленно.
Поиск программистов на удаленку
Несмотря на все негативные моменты удаленной работы, желающих ее заполучить достаточно много. Найти среди огромного количества фрилансеров надежного сотрудника бывает очень сложно. Порой компании приходится сталкиваться с тем, что программист просто пропадает перед самой сдачей проекта.
Поэтому при найме удаленного разработчика для работодателя должен быть важен не только профессиональный уровень соискателя, но и так называемые «soft skills» — личные качества кандидата. Насколько ответственно он относится к работе, способен ли к самостоятельному планированию и грамотной расстановке приоритетов, насколько у него развиты коммуникативные навыки для решения возникающих вопросов – все это оценивает HR-специалист при личной беседе в офисе или по скайпу.
Но как и где найти программиста, который не подведет? Многие начинают поиск программистов на удаленку на биржах удаленной работы. И делают ошибку. На поиск уйдет масса времени, поскольку похож он будет на многочасовое перебирание крупы. И не факт, что это увенчается успехом. На биржах часто демпингуют. Найти профи там очень сложно.
Лучший способ — найти удаленную «звезду» на сайтах рекрутинговых агентств. К слову, на нашем сайте есть подходящие вакансии. Другой вариант – просто воспользоваться поиском резюме на сайтах вакансий или разместить там свою вакансию.
Работа программистом удаленно: организация и контроль
Вот вы нашли хорошего программиста на удаленную работу. Что может все испортить? Безграмотная организация его работы и отсутствие контроля. На первый взгляд, звучит это сложно и страшно даже приступать. Но есть сервисы для сотрудничества с удаленными сотрудниками, которые облегчат вам эту работу.
Для управления проектами удобно использовать корпоративную облачную CRM-систему. Популярны Битрикс24, AmoCRM – можно с любого компьютера зайти в проект, увидеть задачи и включиться в работу. Более простой и дешевый вариант – подключение таск-мессенджеров Trello, Asana или других. Они содержат необходимый минимум для постановки, распределения и отслеживания хода выполнения задач.
Для организации онлайн-встреч можно использовать как всем известный Skype, так и специальные сервисы типа Kato, JoinMe, GoToMeeting и другие.
Наконец, контролировать работу удаленных специалистов можно с помощью трекеров рабочего времени. Тайм-доктор, CrocoTime, Bitcop — они покажут, сколько времени сотрудник уделил работе над вашими проектами.
Как видите, все уже придумано до нас – нужно только применить.
Теперь вы знаете, где найти программиста на удаленку, а также понимаете, что в плане организации и контроля работа программистом удаленно не более сложна, чем работа офисного сотрудника.