Как стать успешным рубистом. Карлоc Габалдон 21/10/2010
Я хакер, который создает полезные утилиты на протяжении более чем 10 лет. Я умею программировать на любом языке (C, C#, Java, PHP, Python, Ruby), необходимым для работы, но моя последняя страсть это Erlang. А также математик, который любит функциональное программирование.
Дмитрий: Привет.
Карлос: Привет.
Дмитрий: Как ты нашел свою первую работу, связанную с Ruby?
Карлос: Я не искал какой-либо конкретной работы, связанной с Ruby, со мной просто связался человек, с которым мне ранее приходилось иметь дело. Его компания искала того, кто разработал бы ей корпоративный веб-сайт. Мы встретились с ним, чтобы понять, чего же они хотят и в итоге сказал, что закончу работу через 2 недели. Я не продавал им какую-то конкретную технологию, а просто сказал: “Я создам прототип того, что мне кажется от меня требуют, и покажу тебе через 2 дня”. Было решено, что используя Ruby On Rails я добьюсь результата максимально быстро, так что через два дня был готов каркас веб-сайта, а к концу следующей недели проект целиком. Им понравилось, как быстро был завершен проект и последние два года мы постоянно сотрудничаем.
Дмитрий: Где и как ты ищешь работу? Можешь дать мне совет, где лучше всего искать заказы, связанные с Ruby?
Карлос: То, как я нахожу работу сейчас или находил ее в прошлом обычно зависит от людей, с которыми уже приходилось работать или тех, кто обращается ко мне через мой блог, twitter или linkedin. Я также находил работу по объявлениям на: jobs.37signals.com/jobs, phoenix.craigslist.org/sof или monster.com. Очевидно, что хороший способ получить работу - быть активным блоггером или оказывать помощь проектам с открытым исходным кодом. Часто предлагают работу, которую я уже не в состоянии выполнить, просто те люди, которые следуют за мной на github.com/CarlosGabaldon или читают мой блог.
Дмитрий: Какой бы ты дал совет начинающему без завершенных проектов?
Карлос: Лучший совет, который я могу дать, начинай вносить изменения в один из многочисленных существующих OpenSource проектов. Даже если это всего лишь обновление документации или исправление ошибок. Добейся признания комьюнити и учись у великих хакеров, работающих над различными проектами. Убедись, что ты каждый день работаешь над тем, что может повысить твои навыки.
Дмитрий: Что ты делал в самом начале для изучения Ruby, поиска клиентов и т.д.? Множество людей мечтают изменить прошлое, для лучшего настоящего… Что-нибудь, чем бы ты хотел поделиться.
Карлос: Я человек, думающий наперед, и никогда не думаю о том, что “мог сделать” или “должен был сделать”, это глупо. Прошлое изменить нельзя, так что не теряй времени, размышляя о нем. Все, что ты сделал до этого момента, хорошо это или плохо, сделало тебя тем, кто ты есть… Измени одну плохую вещь в своем прошлом и две хорошие уже никогда не произойдут…
Дмитрий: Какие книги, рецепты, советы ты можешь порекомендовать (о производительности, переговорах, просто размышления - все, что по твоему мнению поможет мне жить лучше, как программисту)?
Карлос: Я читаю много книг, как правило по 2-3 за раз. Вот, что я рекомендую:
- Software Architecture: Foundations, Theory, and Practice
- Pragmatic Thinking and Learning: Refactor Your Wetware (Pragmatic Programmers)
- The Passionate Programmer: Creating a Remarkable Career in Software Development
- Mastering the Requirements Process
- Absolute FreeBSD: The Complete Guide to FreeBSD
- Apache Cookbook: Solutions and Examples for Apache Administrators
- From Geek To Peak: Your First 365 Days As A Technical Consultant — жаль, что у меня не было этой книги, когда я начинал свою консалтинговую деятельность
- The Back of the Napkin: Solving Problems and Selling Ideas with Pictures — отличная книга о том, как продавать свои идеи клиентам
- JavaScript: The Good Parts
- TextMate: Power Editing for the Mac
- The Ruby Programming Language
- Programming Erlang: Software for a Concurrent World
- Practices of an Agile Developer: Working in the Real World
- The Well-Grounded Rubyist
Дмитрий: Сколько времени в неделю ты работаешь? Как ты поддерживаешь свою производительность и сосредоточенность?
Карлос: Я работаю по крайней мере 35 часов в неделю, но иногда доходит и до 50-ти, в зависимости от количества выполняемых мной проектов. Кроме проектов на Ruby, у меня есть еще и на Python, C, а также несколько, связанных с веб-дизайном (html и css). Я люблю программировать на любых языках и люблю разработку программного обеспечения в целом, так что оставаться сфокусированным для меня не является проблемой. Самая большая моя проблема состоит в том, как сделать так, чтобы не проводить весь день за работой. Поэтому я пытаюсь проводить как можно больше времени за игрой с двумя маленькими девочками. :)
Дмитрий: Как ты организовал свое рабочее место и какие утилиты используешь в работе?
Карлос: Я не использую много утилит. Для работы, связанной с Ruby это: мой MacBook Pro, TextMate, RSpec, Git, карточки для пользовательских запросов (см. user stories в гибкой разработке - прим. переводчика), Moleskine (заметки), маркерная доска (дизайн) и basecamphq.com (управление проектами).
Дмитрий: Что порекомендуешь, чтобы стать успешным и прибыльным программистом?
Карлос: Успех в том, чтобы заниматься тем, чем любишь и чтобы получалось заработать себе на жизнь. Просто продолжай делать то, что ты любишь и деньги сами придут. Узнай все, что можно о программировании. Не просто работай над проектами, а изучай все, что кажется интересным. Если получаешь чек за проект, убедись, что какую-то часть суммы оставил на “черный день”. Всегда располагай некоторым количеством средств в банке, которые позволят продержаться до следующего проекта.
Дмитрий: Что должен знать каждый программист?
Карлос: Программирование - искусство, которое оттачивается с опытом. Кодируй как можно больше и всегда старайся работать с людьми, сильнее тебя.
Дмитрий: Пожалуйста, напиши свои мысли о том, как, являясь программистом, быть веселым и счастливым.
Карлос: Я программирую на протяжении более 10 лет и я понял, что есть еще очень много того, чего я не знаю. Поначалу это пугало меня, однако чем больше я думал, тем приятней была идея о том, чтобы строить свою карьеру там, где каждый день у меня есть возможность узнать что-то новое.
Счастливо!
Дмитрий: Спасибо большое! Я получил массу интересных идей для совершенствования!
Ссылки
- Оригинал статьи (англ.)
- Официальный сайт автора интервью (англ.)
- Домашняя страничка Карлоса (англ.)
- Следуйте за Карлосом (англ.)
- Работы Карлоса (англ.)