Как стать успешным рубистом. Иегуда Кац 1/9/2010
Иегуда Кац является членом основной команды разработчиков Ruby On Rails, а также ведущим разработчиком проекта Merb. Он член основной команды jQuery и основной помощник DataMapper. Он помогает многим OpenSource проектам, таким как Rubinius и Johnson , а также работает над теми, которые создал сам, например, Thor.
Дмитрий: Привет. Как ты нашел свою первую работу, связанную с Ruby?
Иегуда: Моя первая работа, связанная с Ruby, была в организации, которая работала c ColdFusion и PHP. Проработав там недолго, я стал разрабатывать следующие версии их приложений с помощью Rails, что позволило мне двигаться гораздо быстрее, чем это было возможно с PHP или ColdFusion (даже без достаточного опыта).
Дмитрий: Где и как ты ищешь работу? Можешь дать мне совет, где лучше всего искать заказы, связанные с Ruby?
Иегуда: Сейчас я работаю с Rails в Engine Yard, и очень счастлив, так что работа у меня уже есть. Очень хорошая идея, это стараться помогать OpenSource проектам, а затем искать работу в компаниях, которые смотрят на это, как на резюме. Обладая достаточным багажом OpenSource проектов, вы быстро найдете людей, которые наймут вас.
Дмитрий: Какой бы ты дал совет начинающему без завершенных проектов?
Иегуда: Опять же, начать с OpenSource. Если есть желание присоединиться к разработке, то существует ряд крупных OpenSource проектов (например, Radiant, Spree или даже Beast). Есть также множество возможностей для создания или помощи с адаптерами к существующим библиотекам, таким как Sphinx, MongoDB и т.д. Если вы новичок в Ruby, но эксперт в ряде других проектов, почему бы не изучить и улучшить интеграцию Ruby с ними?
Дмитрий: Что ты делал в самом начале для изучения Ruby, поиска клиентов и т.д.? Множество людей мечтают изменить прошлое, для лучшего настоящего… Что-нибудь, чем бы ты хотел поделиться.
Иегуда: Когда я впервые начал работать с Rails, мне было трудно, т.к. приходилось убеждать людей использовать этот каркас. Оглядываясь назад, я бы просто искал работу с людьми, которые уже убедились, что и я в конечном итоге сделал после моих первых работ, где смог использовать Rails. Рискуя повториться, путь для достижения этой цели проходит через повышение вашего опыта в OpenSource проектах и ставку на работу с людьми, ищущими более опытных рубистов.
Дмитрий: Какие книги, рецепты, советы ты можешь порекомендовать (о производительности, переговорах, просто размышления - все, что по твоему мнению поможет мне жить лучше, как программисту)?
Иегуда: Несмотря на общую неприязнь между Джоэлом Спольски (Joel Spolsky) и сообществом Ruby, я многому научился, читая Joel on Software, и особенно некоторые старые статьи о менеджменте и маркетинге. Он много не публикует, и не все, что он говорит, должно быть принято на веру, но определенно там присутствуют крупицы мудрости. Также стоит почитать некоторые работы Мартина Фаулера (Martin Fowler) и “Uncle” Боба Мартина (Bob Martin). Некоторые интересные отрывки можно найти на www.c2.com и martinfowler.com. Будучи поопытней, вы возможно заинтересуетесь паттернами на martinfowler.com/eaaCatalog. Одно предупреждение о паттернах: т.к. концептуально заложены в Ruby, процесс, необходимый для реализации, зачастую значительно короче.
Дмитрий: Сколько времени в неделю ты работаешь? Как ты поддерживаешь свою производительность и сосредоточенность?
Иегуда: Я работаю 40-50 часов в неделю в Engine Yard и вероятно еще 40 часов в неделю у себя дома. Работа в паре с Карлом положительно сказывается на производительности, а осознание того, что каждый час работы повлияет на тысячи часов работы других людей, мотивирует очень сильно.
Дмитрий: Как ты организовал свое рабочее место и какие утилиты используешь в работе?
Иегуда: Я использую TextMate (догадываюсь, что я не “настоящий” хакер) и терминал для большинства того, что я делаю. Для Git, я использую терминал и GitX (в основном для организации больших коммитов перед отправкой). Я часто использую TextMate для взлома небольших кусков кода и просто запускаю их в Ruby. Нередко запускаю несохраненный код в окне TextMate с нажатыми Apple-R (сочетание клавиш - прим. переводчика) для вещей, которые не по зубам IRB.
Дмитрий: Что порекомендуешь, чтобы стать успешным и прибыльным программистом?
Иегуда: Если ты выведешь формулу прибыльности, дай мне знать! Чтобы удачно применить свой талант в этом деле и иметь успех, учавствуй в OpenSource проектах. Ты мгновенно присоединяешься ко множеству умных, заинтересованных коллег, которые будут с интересом смотреть на твою работу и высказывать замечания, если ты намерен внести свой вклад в проект.
Дмитрий: Что необходимо знать каждому программисту?
Иегуда: Нет ничего нового под солнцем. Поэтому простое совершенствование взаимодейтствий в рамках существующей парадигмы может приводить к различным результатам. Rails и Ruby содержат несколько по-настоящему новых идей, но в отношении комфорта программиста они значительно инновационней.
Дмитрий: Пожалуйста, напиши свои мысли о том, как, являясь программистом, быть веселым и счастливым.
Иегуда: Быть счастливым это все, что нужно для удовлетворения. Никогда не позволяйте никому (включая себя) убедить вас не делать того, что сделает вас счастливым или самореализовавшимся. Я начал прогуливаться по 5-7 миль каждые выходные по живописнейшим местам Сан-Франциско. Это то, что я всегда хотел делать, но думал о том, как глупо это будет выглядеть. Делайте то, что сделает вас счастливым, и что более важно, самореализовавшимся, и неважно, как глупо это может показаться.
Дмитрий: Спасибо, Иегуда, за эти полезные советы.
Ссылки
- Оригинал статьи (англ.)
- Официальный сайт автора интервью (англ.)
- Блог Иегуды (англ.)
- Следуйте за Иегудой (англ.)