≪ На главную

Как стать успешным рубистом. Карло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 за раз. Вот, что я рекомендую:

  1. Software Architecture: Foundations, Theory, and Practice
  2. Pragmatic Thinking and Learning: Refactor Your Wetware (Pragmatic Programmers)
  3. The Passionate Programmer: Creating a Remarkable Career in Software Development
  4. Mastering the Requirements Process
  5. Absolute FreeBSD: The Complete Guide to FreeBSD
  6. Apache Cookbook: Solutions and Examples for Apache Administrators
  7. From Geek To Peak: Your First 365 Days As A Technical Consultant — жаль, что у меня не было этой книги, когда я начинал свою консалтинговую деятельность
  8. The Back of the Napkin: Solving Problems and Selling Ideas with Pictures — отличная книга о том, как продавать свои идеи клиентам
  9. JavaScript: The Good Parts
  10. TextMate: Power Editing for the Mac
  11. The Ruby Programming Language
  12. Programming Erlang: Software for a Concurrent World
  13. Practices of an Agile Developer: Working in the Real World
  14. The Well-Grounded Rubyist

Дмитрий: Сколько времени в неделю ты работаешь? Как ты поддерживаешь свою производительность и сосредоточенность?

Карлос: Я работаю по крайней мере 35 часов в неделю, но иногда доходит и до 50-ти, в зависимости от количества выполняемых мной проектов. Кроме проектов на Ruby, у меня есть еще и на Python, C, а также несколько, связанных с веб-дизайном (html и css). Я люблю программировать на любых языках и люблю разработку программного обеспечения в целом, так что оставаться сфокусированным для меня не является проблемой. Самая большая моя проблема состоит в том, как сделать так, чтобы не проводить весь день за работой. Поэтому я пытаюсь проводить как можно больше времени за игрой с двумя маленькими девочками. :)

Дмитрий: Как ты организовал свое рабочее место и какие утилиты используешь в работе?

Карлос: Я не использую много утилит. Для работы, связанной с Ruby это: мой MacBook Pro, TextMate, RSpec, Git, карточки для пользовательских запросов (см. user stories в гибкой разработке - прим. переводчика), Moleskine (заметки), маркерная доска (дизайн) и basecamphq.com (управление проектами).

Дмитрий: Что порекомендуешь, чтобы стать успешным и прибыльным программистом?

Карлос: Успех в том, чтобы заниматься тем, чем любишь и чтобы получалось заработать себе на жизнь. Просто продолжай делать то, что ты любишь и деньги сами придут. Узнай все, что можно о программировании. Не просто работай над проектами, а изучай все, что кажется интересным. Если получаешь чек за проект, убедись, что какую-то часть суммы оставил на “черный день”. Всегда располагай некоторым количеством средств в банке, которые позволят продержаться до следующего проекта.

Дмитрий: Что должен знать каждый программист?

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

Дмитрий: Пожалуйста, напиши свои мысли о том, как, являясь программистом, быть веселым и счастливым.

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

Счастливо!

Дмитрий: Спасибо большое! Я получил массу интересных идей для совершенствования!

Ссылки

  1. Оригинал статьи (англ.)
  2. Официальный сайт автора интервью (англ.)
  3. Домашняя страничка Карлоса (англ.)
  4. Следуйте за Карлосом (англ.)
  5. Работы Карлоса (англ.)