Как стать успешным рубистом. Пэт Аллан 8/11/2010
Пэт - фрилансер, веб-разработчик на Ruby, время от времени находящийся в Мельбурне, Австралия. Он известен в сообществе Ruby как автор плагина Thinking Sphinx. В результате этого он увлекся данной темой и выпустил API для Sphinx, под названием Riddle и выложил PDF книгу на Peepcode.
Он также организовал некоторые из “Rails Camps” (в Мельбурне, Лондоне и штате Мэн), они всегда проходят удивительно весело и такое веселье должно быть массовым. Помимо сообщества Ruby, Пэт также принимал участие в запуске мероприятия, известного под названием Trampoline.
Если вам скучно, почитайте его блог или twitter.
Дмитрий: Привет. Как ты нашел свою первую работу, связанную с Ruby?
Пэт: Это был долгосрочный договор, который я нашел с помощью почтовой рассылки локальной группы пользователей (LUG, Local User Group - прим. переводчика). До этого я примерно год уже занимался Ruby On Rails, поэтому чувствовал себя достаточно уверенно, чтобы получать какие-то деньги. Я не был экспертом, но хорошо знал основные веб-технологии, поэтому собеседование прошло успешно и я получил работу.
Дмитрий: Где и как ты ищешь работу? Можешь дать мне совет, где лучше всего искать заказы, связанные с Ruby?
Пэт: В нынешнее время со мной постоянно контактируют люди, чтобы я посмотрел смогу ли им помочь. Иногда у меня есть свободное время, и я сообщу об этом в twitter, откуда часто приходит несколько отзывов.
Если ты начинающий, то тебе действительно нужно сосредоточиться на создании своего профиля. Регулярно посещай местные мероприятия, связанные с Ruby. Улучшай наиболее интересные тебе OpenSource проекты или создай свой собственный. Помогай (или обращайся за помощью) в почтовых рассылках. Используй twitter (или любую другую социальную сеть, на твой вкус), чтобы оставаться на связи с друзьями и коллегами - если ты постоянно на виду и доказываешь, что знаешь Ruby, то когда им потребуется такой специалист, ты будешь первым, о ком они подумают.
Участие в Ruby мероприятиях тоже очень ценно - будь то встречи локальной группы пользователей, конференции, хакфесты или “Rails Camps”. Сеть может быть ругательным словом, но общение должно быть целью.
А иногда, ты должен будешь очень активно искать работу. Пусть люди в твоем местном сообществе Ruby знают, что ты готов заключить договор или устроиться на работу. Используй любую возможность, которая технически позволяет использовать Ruby. Если есть ресурсы, связанные с работой на Ruby, используй предоставляемые ими RSS-каналы.
Дмитрий: Какой бы ты дал совет начинающему без завершенных проектов?
Пэт: Если/Когда ты начнешь свой собственный проект, убедись, что он полезен в первую очередь для тебя - если ты не будешь пользоваться им, то не будешь достаточно заботиться о нем в сложных ситуациях. А они будут.
Если у тебя нет собственного проекта, но ты представляешь, как можешь улучшить те, что используешь, тогда предлагай патчи, а также помогай с поддержкой через почтовые рассылки и IRC. Если ты работаешь с людьми, разрабатывающими на Ruby, то станешь хорошим Ruby разработчиком.
Дмитрий: Что ты делал в самом начале для изучения Ruby, поиска клиентов и т.д.? Множество людей мечтают изменить прошлое, для лучшего настоящего… Что-нибудь, чем бы ты хотел поделиться.
Пэт: Перестань колебаться и найми бухгалтера вместо того, чтобы тратить собственное время на управление финансами. Не бойся сказать “нет” потенциальным клиентам и проектам. Не будь скуп на разговоры во время Ruby мероприятий. Дыши.
Дмитрий: Какие книги, рецепты, советы ты можешь порекомендовать (о производительности, переговорах, просто размышления - все, что по твоему мнению поможет мне жить лучше, как программисту)?
Пэт: Думаю, что множество технических книг являются ориентирами, но больше “пищи для ума” я получаю из книг, не относящихся напрямую к коду. Одна из них, которую я недавно прочитал, называлась “Конец благотворительности” Ника Франса (Nic France). Она никак не связана с разработкой, но в ней прозвучало несколько хороших идей на тему, как начать бизнес с этической и социальной точек зрения.
Художественная литература также может вдохновлять на интересные идеи - в “Accelerando” (в переводе с итальянского “Ускорение” - прим. переводчика) Чарльза Стросса, люди могут превратить бизнес в массовый отлаженный процесс. Я хотел бы видеть такой веб-сервис, где вводишь только несколько деталей и бизнес автоматически регистрируется, создаются счета и все, что необходимо для этого.
На более прагматичном уровне, наличие PDF версий технических книг очень полезно, хотя я предпочитаю деражть книгу в руках.
Что касается веб-сайтов, я считаю, что блог “O’Reilly’s Radar” и “WorldChanging” отличные источники новых идей и иных способов мышления.
Дмитрий: Сколько времени в неделю ты работаешь? Как ты поддерживаешь свою производительность и сосредоточенность?
Пэт: Я провел большую часть из последних 15-ти месяцев путешествуя, так что в основном я не работал. Тем не менее, я не поклонник полного рабочего дня - мне нравится работать по договору с неполным рабочим днем, что позволяет мне также тратить время на свои собственные проекты. Это могут быть OpenSource библиотеки, мероприятия вроде “Rails Camps” и “Trampoline” или просто сон.
Собственная производительность это вечная битва, но я нашел, что техника pomodoro очень полезна (25 минут работы и 5 перерыв, затем по новой). Когда я был в Камбодже, то в основном работал в оффлайне, это сводит к минимуму различные проволочки, так что я мог несколько часов быть предельно сфокусированным. В развитых странах, где интернет почти повсеместно, это сделать сложнее (с точки зрения самоконтроля - технически же совсем не сложно), но я часто игнорирую почту, twitter и различные чаты во время выполнения клиентских заказов.
Но учти, что иногда быть продуктивным не получится и это нормально.
Дмитрий: Как ты организовал свое рабочее место и какие утилиты используешь в работе?
Пэт: Иметь постоянное рабочее место, часто путешествуя, задача нетривиальная, но я стараюсь иметь стол и стул для работы, а также ноутбук с внешней клавиатурой и мышкой. Это все попытки сохранить (или в действительности, восстановить) хорошую осанку и избежать “травмы от постоянного напряжения” (RSI, Repetitive Strain Injury - прим. переводчика).
TextMate, терминал и Safari, мои утилиты для разработки. Я использую Mail для электронной почты, потому что нахожусь часто в оффлайн, который также выполняет роль менеджера задач (позаимствовал немного из методик “Inbox Zero” и “Getting Things Done”).
Дмитрий: Что порекомендуешь, чтобы стать успешным и прибыльным программистом?
Пэт: Если ты успешный программист, то прибыль - на определенном уровне - придет сама. Убедись, что ты знаешь налоговые законодательства того места, где сейчас находишься, а также, что копишь деньги на такие вещи как больничный отпуск, каникулы, конференции, пенсию (естественно, если не работаешь на полный рабочий день). Знай себе цену, старайся не занижать (т.к. будешь чувствовать себя недооцененным) и не задирать ее (т.к. клиенты в любом случае будут недовольны).
А как стать успешным программистом? Я не хочу быть слишком простым и я определенно не специалист, но считаю что, ключом ко всему является написание хорошего кода или помощь другим в его написании.
Дмитрий: Что должен знать каждый программист?
Пэт: Смирение, готовность учиться, соответствие стандартам, желание улучшать как код, так и самого себя, а также готовность читать код библиотек, которые используешь.
Пэт: Надеюсь, что-то из этого было интересным и полезным.
Будь здоров!
Дмитрий: Спасибо большое! Это было действительно интересно.
Ссылки
- Оригинал статьи (англ.)
- Официальный сайт автора интервью (англ.)
- Блог Пэта (англ.)
- Следуйте за Пэтом (англ.)