Периодически на нашем сайте мы делимся с вами интересными историями из мира Apple. Это могут быть истории создания уже известных всем устройств или аксессуаров, игр или приложений. Зачастую речь идет об иностранных специалистах. И мы подумали, а почему бы нам не начать говорить о наших разработчиках или дизайнерах iOS-приложений? Ведь наша земля всегда славилась великими умами и талантами. Поэтому мне хотелось бы начать новую рубрику, которая, надеюсь, вам понравится. А называется она «Беседы с программистами». И сегодня мы поговорим с Виктором Петренко, CTO проекта Songsterr.

Здравствуй, Витя! Спасибо, что согласился уделить мне немного своего драгоценного времени и дать интервью нашему сайту МакРадар. Хотелось бы узнать, с чего начинался твой путь в программировании?

Привет! Начинал еще в школе, классе в 8-м. Как и многие наверное, с Паскаля. Тогда дома уже была первая персоналка, я был «продвинутым» пользователем и писал для себя и друзей утилиты, небольшие вычислительные программки и игры. Когда возможностей базового Turbo Pascal стало не хватать, углубился в программирование под DOS, с использованием прерываний, чтобы ускорить и улучшить работу своих программ.

Насколько был тернист последующий путь, и как ты перешел на Objective-C? В чем ты сейчас видишь его преимущество?

Достаточно тернист. :) В университете появилось желание перейти на что-то более современное, чем Паскаль, и я выбрал С++. Крутые игры в то время писались исключительно на нем, да и многие другие программы тоже. Первую коммерческую работу программистом нашел курсе на 3-м, писал на С++ под Windows. Позже появилась возможность попрограммировать под Mac OS X, мы портировали Filter Forge, достаточно сложное Windows приложение на Мак. К сожалению, тогда мы использовали стремительно устаревающий С++ интерфейс Carbon, и на Objective-C (Cocoa) тогда была написана лишь небольшая прослойка.

Спустя несколько лет меня пригласили поработать в стартап (songsterr.com), где нужно было, в частности, писать приложения под iOS. С этого момента, можно сказать, и начался мой путь Objective-C программиста. С самого начала Objective-C показался мне близким, несмотря на нестандартный внешний вид с обилием квадратных скобочек. По сути, он является альтернативным (по сравнению с С++) развитием языка С в сторону объектно-ориентированного программирования. И он существенно проще для освоения, в нем сложнее выстрелить себе в ногу. Хотя в нем существуют нетривиальные моменты, на мой взгляд, это очень неплохо спроектированный язык, хорошо читаемый. Посмотрите на правила именования функций, их вызовы можно читать, словно предложения!

_AZonTMR-8U

А ты не мог бы немного поподробнее рассказать о проекте Songsterr?

Если вы играете на гитаре, наверняка знаете, что такое гитарная табулатура. Если нет, грубо говоря, это нотная запись музыки, специализированная для гитары. Songsterr — каталог гитарных табулатур с возможностью онлайн-проигрывания. Можно не только посмотреть как играть ту или иную песню, но и послушать как звучит конкретный вариант. Проект существует по принципу Википедии, каждый пользователь может загрузить свою табулатуру или исправить (уточнить) существующую. Кроме сайта, у нас есть приложения для iPhone, iPad и Android. Помимо этого, мы разрабатываем еще ряд приложений, но это пока секрет.

Получается, что в проекте сейчас участвует большая команда.

Да, мы за последние пару лет выросли более чем вдвое. Сейчас нас больше дюжины. Преимущественно программисты, но у нас такая организация процессов, что писать код — далеко не единственное занятие. Каждый участник команды может выполнять разные функции, учиться чему-то. Например, играть на гитаре, проектировать пользовательский интерфейс, заниматься теорией обучения, маркетингом и прочим.

Вы работаете в одном городе или, как это сейчас принято во многих компаниях, находитесь удаленно друг от друга?

Начинали мы в одном городе, хотя часто практиковали удаленную работу. Сейчас технические средства позволяют вместо обычного офиса использовать виртуальный и работать оттуда удобнее. Наши сотрудники живут в Москве, Питере, Ростове-на-Дону, Томске, один даже в Австралии.

А ты сам увлекаешься игрой на гитаре?

Увлекаюсь — это верное слово, я учусь играть на гитаре. Когда интенсивнее, когда немного забрасываю. Музыка должна быть в удовольствие, приятно взять в руки гитару и сыграть что-нибудь. Надеюсь, мы облегчаем эту задачу для наших пользователей, делаем процесс разучивания песен приятнее.

У тебя есть какое-нибудь хобби, чем ты занимаешься в свободное время от программирования?

У меня их несколько, часто приходится разрываться. В последнее время увлекаюсь видеографией. Снимаю видео на цифровой фотоаппарат. Это сравнительно недавняя тенденция, с развитием техники стало возможно получать достаточно интересную картинку. До этого больше увлекался фотографией, переход к видео был технически легким, потому что была уже камера и объективы, но быстро стало понятно, что это отдельный сложный жанр, в котором нужно учиться заново, прилагать много усилий.

5606799816_df16c6d251_o

Получается, что фотография и кино являются для тебя источником вдохновения. А что еще подпитывает твою творческую энергию: книги, музыка, возможно, встречи с разработчиками других приложений?

Конечно! Музыка играет практически постоянно. Часто помогает сконцентрироваться на работе или, наоборот, отдохнуть и подумать. Художественные книги в последнее время подзабросил в пользу научно-популярных и технических, но это просто такой период сейчас. Знаю, что они вернутся.

Встречи с другими разработчиками часто приводят к обмену идеями, открытиям чего-то нового, что было под ногами, но почему-то прошло незамеченным. Уже около года в нашем городе (прим. Ростов-на-Дону) появилось сообщество разработчиков (прим. с ним вы можете ознакомиться на сайте it61.info). Это стимулирует больше общаться, делиться опытом не только во время неформальных посиделок, но и мини-конференций. Мне нравится, что пошло движение, в нашем регионе совсем мало «тематических тусовок».

А ты сам выступал на подобных встречах или каких-либо презентациях?

Я стараюсь принимать активное участие во встречах разработчиков. Мне кажется важным поддерживать культуру программирования, стимулировать обмен опыта и знаний. Это становится более актуально, когда многие хорошие разработчики работают удаленно, часто сидят по домам и не получают такого активного обмена информацией и личного общения, как в традиционных офисах. Кроме iOS я еще использую, например, Ruby. Так что за год сделал 4 или 5 докладов.

pItzNNndzxc

Как ты думаешь, насколько полезны и важны для начинающих программистов, возможно, студентов, посещения и выступления на подобных мероприятиях?

Думаю, это полезно, особенно для начинающих. Сейчас очень много информации можно получить из Сети, появился доступ к огромному количеству обучающих ресурсов. Тем не менее, человек так устроен, что в процессе подготовки доклада или общения после запускаются процессы более глубокого понимания прочитанного и изученного. Часто мы читаем, вроде все понятно, но когда пробуем кому-то объяснить — понимаем, что есть пробелы. Считаю, что очень ценно их заполнять. Также очень полезно что-то программировать по мотивам полученных знаний, получать обратную связь на эти решения и обмениваться идеями.

Пройдя определенный путь в программировании, что бы ты сам мог посоветовать новичкам в этой области? Понимаю, что языков бессчетное множество, но, возможно, ты мог бы упомянуть какие-то основополагающие книги, видео или полезные курсы. Например, по близкому тебе Objective-C или Ruby.

На мой взгляд, при выборе языка стоит исходить из желания что-то создать. Тогда выбор существенно сужается. Если вы хотите писать мобильные приложения для iOS, то существует только два полноценных варианта: Objective-C и Swift. Последний — совсем молодой язык от Apple, он очень интересно сделан, можете начать с него. Если вы хотите делать веб-сайты, то выбор исходит из более широкого спектра: Ruby, Python, Javascript, PHP и пр. Кроме того, для создания современного сайта еще нужно знать HTML и CSS. На мой взгляд, порог входа в веб-программирование сейчас на порядок выше, чем в ту же мобильную разработку. Где достаточно совершенствовать только один язык.

В плане литературы, по Swift Apple выпустила бесплатную книгу, которую вы можете скачать с iBooks, по Objective-C мне понравилась книга Stephen Kochan «Programming Objective-C», 6-е издание. Возможно, вам подойдет более легкая для восприятия «Objective-C Programming: The Big Nerd Ranch Guide». Также сайт developer.apple.com является отличным источником информации, как по Objective-C, так и по платформам iOS и Mac OS X.

Уверен, что существуют книги и на русском, но если вы хотя бы немного знаете английский, рекомендую читать на нем. Все же информации на английском больше, она свежее, и большинство мировых звезд разработки знают именно этот язык, соответственно, пишут статьи и выступают на конференциях на нем. Советую также обратить внимание на сайты: nshipster.com , merowing.info , objc.io. Первые два — блоги известных iOS-программистов. Последний — журнал по iOS-разработке. Но главный совет — настройте среду (XCode) и пробуйте писать программы, вы постепенно поймете куда двигаться, появятся вопросы. Задавайте их на stackoverflow.com своим более опытным коллегам, поищите iOS-тусовку в своем городе (на Facebook, ВКонтакте).

На Ruby чаще всего пишут веб-приложения на Ruby On Rails. Если вам интересна эта тема, можно начать с канонической книги «Agile Web Development with Rails». Также много полезной информации на сайте guides.rubyonrails.org.

Кстати об английском, я знаю, что ты недавно побывал в Калифорнии и смог его там попрактиковать в полной мере. Побывал в Силиконовой долине, прогулялся по Mountain view, какую атмосферу ты там почувствовал?

Там много программистов. Если за пределами Долины люди много улыбаются, то здесь люди скорее задумчивы. Есть ощущение, что все много работают и хотят создавать хорошие программы. И вот тот парень бомжеватого вида, который сидит на лавочке с ноутбуком, может вполне быть разработчиком вашей любимой библиотеки или приложения. Вообще, я ехал в отпуск и больше внимания уделял природным красотам и культуре, но раз уж была возможность побывать в Долине, попытался ощутить что такое дух технологий и стартапов. Энергетику места, где создается большинство популярных сервисов, приложений, железа и прочего в мире. Спокойно, энергично, задумчиво и с огоньком.

2LO1W3Lpbtk

На нашем сайте мы часто делаем обзоры различных приложений под iOS и OS X. Можешь, напоследок, поделиться какие-то своими излюбленными приложениями, которыми ты пользуешься чуть ли не ежедневно?

Думаю, у меня достаточно стандартный набор:

  • Instagram (для шаринга фоток, которые я обычно делаю все же встроенным приложением камеры),
  • Twitter (источник новостей),
  • Pocket (позволяет почитать заранее приготовленные статьи, например, стоя в очереди),
  • Slack (командный чат, который используется как наш виртуальный офис в Songsterr)
  • и Things (удобно для организации ToDo списков).

После возвращения из Калифорнии мне жаль расставаться с Uber, Yelp и некоторыми другими, но я надеюсь, что аналоги появятся и у нас когда-нибудь.

Instagram
Price: Free
Twitter
Price: Free
Pocket
Price: Free+
Things
Price: 749 р.