Диалоги с программистами. Часть 3: iPhone и бар на пляже
АрхивИнтерактивСегодня в нашем распоряжении программист, который создает код для совершенно непрограммистского устройства - iPhone. Да, здесь есть свои особенности...
Программирование для iPhone – это легко, интересно и приносит солидный доход, а еще iPhone-девелоперы нынче крайне востребованы. Примерно таков смысл солидной части материалов на сайтах про Apple в целом и яблочный телефон в частности. Иногда в популярных блогах выкладывают фотографии очередного счастливчика, который сумел заработать четверть миллиона долларов просто потому, что его программа понравилась каким-то 50000 пользователей. Ну и как в результате подобного информационного давления не решиться все бросить и не выучить Objective-C?
Владимир Кузнецов
По профессии ведущий iPhone-разработчик
По образованию искусственный интеллект
Успел изучить премудрости массажа, брейкданса, акробатики, слесаря по демонтажу драгметаллов и бетонщика второго разряда
Любит говорить, смотреть анимэ
Не любит спать, молчать
Живет в квартире с новым пылесосом
Сейчас разрабатывает игровой движок и дорабатывает программу для управления термостатом
В ближайших планах - сноуборд
В дальнейших - курсы бармена
У него на кухне стоит большое мягкое кресло, рядом, на столе, оранжевый чайник, оранжевая кружка, оранжевая хлеборазделочная доска и прочие оранжевые предметы. Владимир поясняет, что это фирменный цвет, жонглирует перед нами самбукой, потом абсентом, предлагает вино, но в итоге все же вздыхает и соглашается на мольбу "чаю, просто чаю, без сахара, сливок и даже без сгущенки". Этого человека не надо долго разогревать для диалога, тут другая проблема – успевать вставлять вопросы и постоянно возвращать тему с девушек на кодинг. Собственно, поэтому наших вопросов тут и нет — места не осталось.
Недавно у меня в жизни произошли большие перемены - много чего поменял. Смена работы изначально в планы не входила, но все-таки вошла. До этого я 3 года работал с С++, С#, ну и ранее года два – эти же языки, но я скорее подрабатывал, чем работал. То есть, общего опыта – около 5-ти лет. А потом поигрался с iPhone, попробовал для него программировать – понравилось, втянулся.
То есть вот так сразу - ведущий разработчик - без знания языка и предмета разработки? С трудом как-то верится, ну да ладно. Попробуем поймать его на слове. Ну, если его удастся вставить...
Objective-C во многом пересекается с C, C++, C#. В большей степени — с C++, который даже можно использовать вместе с родным языком в рамках одного проекта и даже класса. Язык для Mac’ов и iPhone - это тот же C++, но с сильным акцентом на объектно-ориентированный подход. Очень часто приходится встречаться с паттернами. Так что новичку лучше быть знакомым с ООП и С++, иначе будет намного тяжелее.
Переучиваться всегда сложнее, чем учиться - непросто было. Тут все новое и другое - другая сама операционная система, другая раскладка клавиатуры, другие горячие клавиши, другой синтаксис, много новых ключевых слов, терминология, которая пересекается с C#, но имеет иное значение (например то, что в C# называется интерфейсом, в Objective-C зовется протоколом, термин "интерфейс" там применяется несколько в другом роде), другая логика внутренней архитектуры приложений (например, все классы обмениваются информацией через отправку сообщений). Но при наличии желания и терпения к этому быстро привыкаешь.
А вообще, начинать очень легко: надо всего лишь проиграться с iPhone или iPod Touch и загореться желанием. Потом посмотреть несколько видеолекций с сайта Apple и загореться диким желанием. После этого можно начинать читать мануалы по Objective-C (The Objective-C 2.0 Programming Language,147 страниц) и пособие для программирования под iPhone (iPhone OS Programming Guide, 212 страниц). Вся остальная документация будет изучаться в процессе программирования.
На лице собеседника нарисован дежурный смайл, в глазах – глубокое увлечение процессом беседы, мыслями, воспоминаниями, но нет ни тени иронии. Аккуратными тактичными вопросами удается выяснить, что этот человек действительно прочитал все вот эти сотни страниц, разобрался, покопался. Хм, впечатляет. Может, все-таки, самбуки?
Думаете, я просто так работаю по 14 часов в будние дни плюс часа по 4 в выходные? Вот, читал документацию в метро по дороге на работу, проводил техническую сторону собеседований по С++, да и сейчас большую часть текущего проекта я пишу на старом добром С++. Если очень захотеть - можно многого добиться - даже не имея опыта, ведущим разработчиком стать.
Вы можете представить программиста, насилующего свой мозг 14 часов в сутки? Обычно люди (а тем более - программисты) работают 4-5 часов в день, остальное время используют для посещения башорга, ЖЖ, хабрахабра и, что греха таить, "Компьютерры". Вопросы программирования уходят на второй план, личность "оранжевого человека" становится важнее. Аккуратно поворачиваем разговор в сторону более личного и частного.
Мне нравится новый опыт. Новый язык заставляет мыслить более объектно. Простые приложения на пару экранов делаются довольно легко, при этом они обладают всеми графическими красивостями, свойственными iPhone. А еще, общаясь с творениями Apple, понимаешь, насколько дурно продуман интерфейс у Microsoft, и начинаешь сам создавать более грамотные интерфейсы.
Моя самая первая программа предназначалась для микроблоггинга. Потом делал удаленное управление термостатами. Сейчас игровой движок пишу, ну и есть ещё несколько проектов под iPhone. К примеру, софт для термостатов доделать надо. На самом деле, у этих датчиков есть свой веб-интерфейс, но американцы хотят, чтобы все было удобно, через iPhone, с красивыми переходами и удобными кнопочками.
На самом деле, я представляю, что там я бы зарабатывал намного больше, чем здесь. Но в Штаты не хочу, они мне неприятны. Хотелось бы осмотреться в Японии и в Австралии, но это нужно ездить везде и самому смотреть, где понравится.
Все, человек ушел в лирику. Интересно, в каждом программисте закопан поэт, психолог, мачо или еще какой-нибудь яркий индивид, или это только нам такие попадаются?
Мне постоянно не хватает времени. Мозг генерирует идеи быстрее, чем успевает реализоваться хотя бы часть из них. Расстановка приоритетов в жизни и выбор того, чем буду заниматься, часто происходит спонтанно либо по степени актуальности на текущий момент. Вот, массаж - одно из хобби, профессионально этим заниматься не хочу и не буду. Зачем?
Куда двигаться дальше? Поживем - увидим, пока есть где развернуться и что изучить на этой ступеньке. А потом будем двигаться, вертикально или горизонтально, освоим другие технологии и области.
Программирование – это заработок. Но периодически смотрю со стороны на себя и коллег и понимаю, что это уже стиль жизни, это прочно вошло в меня. Даже если бы у меня был хороший капитал, чтобы не париться и работать в своё удовольствие барменом на солнечном пляже, - даже при таком раскладе я бы немного программировал...
Хотя, вообще - программист занимается не только кодингом (тупо кодить неинтересно), это также и проектирование архитектуры приложения, это творческий процесс...
Вам хорошо, вы-то уже дочитали до конца статьи. А нам пришлось еще долго слушать, чем занимаются программисты на самом деле. Зря мы не согласились на самбуку.