Кем статьЯ хочу стать разработчиком мобильных приложений — что дальше?
Профессиональные разработчики делятся опытом и дают советы начинающим энтузиастам
Текст
Ксения Кандалинцева
Ежедневно миллионы людей запускают на своих смартфонах мобильные приложения — это целая культура, развивающаяся в бешеном темпе. Разработчики этих приложений — новые романтические герои, люди, способные в одночасье стать миллиардерами, как создатели Instagram, имея под рукой несколько компьютеров и хорошую идею. Их нигде этому не учат, и в этом они чувствуют своё преимущество и уникальность — всё зависит от тебя самого. Ты берёшь и пишешь программу, и если она работает — значит ты всё сделал верно, если нет — твоё место в топе Apple Store займёт кто-то другой. Главное тут — скорость. Совершенно не обязательно пять лет сидеть за партой, чтобы начать программировать. Это как раз тот случай, когда всё зависит от желания и практики. С чего же всё-таки стоит начать разработку мобильных приложений, Look At Me обсудил с опытными девелоперами.
Где учиться
Stanford University, курс CS 193P iPhone Application Development, ставший классикой. Доступен в iTunes.
WWDC, ежегодные учебные сессии от ведущих разработчиков Apple, которые проходят в течение недели после знаменитых презентаций новых продуктов компании. Все сессии доступны онлайн для зарегистрированных разработчиков.
Курс «Разработка приложений для iPhone и iPad» на русском языке от компании Empatika.
Интенсивные курсы Brainwashing для iOS-разработчиков от компании Any Void.
Образовательная платформа Code School, где ключевой момент обучения — практика.
Google Developers University Consortium — курсы по работе с продуктами Google: Android, Google Maps, Google App Engine и др.
Мэтт Томпсон о том,
что лучшие программисты — самоучки
Мэтт Томпсон
разработчик и дизайнер в Heroku, автор блога про Objective-C и Cocoa NSHipster.com, автор многих Open Source проектов, например AFNetworking, который использовали хотя бы раз все iOS разработчики
Лучший и единственный способ стать мобильным разработчиком — начать разрабатывать! Правда, сейчас в интернете столько вспомогательных ресурсов, что освоить профессию просто, как никогда раньше. Никто, кроме вас самих, не научит вас программировать. Просто прочтите туториал в книге или в Сети и начните создавать интересующее вас приложение, начните с самого простого. Или я бы рекомендовал вообще начать с веб-разработки: HTML и CSS или jQuery, если вас тянет к приключениям.
Некоторые стремятся обязательно пройти школу программирования, но я не раз убеждался, что лучшие разработчики — самоучки, причём с разноплановым бэкграундом. Чёрт возьми, да я сам бросил курс Computer Science в университете, чтобы изучать философию! Хорошим программистом двигает страсть к поиску решений проблемы. Если в вас есть эта страсть — у вас всё получится.
Если вы хотите стать программистом, вам придётся много читать. В первую очередь нужно прочесть всю документацию и гайдлайны, которые предоставляют разработчикам Apple или Google. Боритесь с желанием просто читать без применения прочитанного на практике. В выборе источников вами должны руководить любопытство и амбиции решить сложную задачу. После того, как вы ознакомитесь с основами языка, начните читать коды успешных проектов на открытых ресурсах. Посмотрите, какие модели и методы используют другие разработчики для решения различных проблем, попробуйте их адаптировать к собственным задачам. Нет конца тому, чему вы можете научиться у других.
«Некоторые стремятся обязательно пройти школу программирования, но я не раз убеждался, что лучшие разработчики — самоучки»
И ещё один совет. Найдите или сами создайте локальное комьюнити разработчиков со схожими интересами. Регулярно встречайтесь и обсуждайте свои проекты, проблемы и решения. Такие встречи дадут вам куда больший толчок, чем большие конференции.
Что читать
Стивен Кочан «Программирование на Objective-C 2.0»
Аарон Хиллегасс,
Джо Конвэй
«Программирование под iOS для профессионалов»
Билл Филлипс,
Брайан Харди «Программирование под Android для профессионалов»
Дэн Пилон,
Трэйси Пилон «Программирование под iPhone и iPad»
Крэйг Хокенбери «Разработка iPhone-приложений»
Mark L. Murphy
«The Busy Coder's Guide to Advanced Android Development»
Сергей Шаповалов о базовом образовании
для разработчиков и о том, почему
в США у них больше перспектив
Сергей Шаповалов
разработчик приложений для iOS и OS X, кандидат физико-математических наук, cоздатель приложений Qik, Auto-Assistant, Moow и др., в настоящее время живёт и работает в Кремниевой Долине, США
Современные языки программирования, используемые для написания приложений под мобильные устройства, довольно просты. Освоить азы и написать своё первое приложение за месяц нетрудно. Можно начать штамповать простенькие игрушки, стандартные безликие бизнес-приложения и т. д., даже получать какую-то прибыль с их продаж. Примеров таких разработчиков и таких приложений море: и в App Store, и в Google Play таких программ, наверное, 9 из 10. Но я бы посоветовал начинающему разработчику начать совсем с другого.
Чтобы сделать что-то своё, особое и неповторимое, по-настоящему оригинальное, нужен хороший фундамент. Надо изучать computer science, классические алгоритмы, структуры данных, знать, что такое быстрая сортировка и за какое время она работает, как устроены хэш-таблицы и многое другое. Нужно хорошо усвоить базовые понятия, используемые в программировании на любом языке под любое устройство: процессы и потоки, управление памятью, указатели, параллельные вычисления. Знать назубок C++ (пригодится, и ох как неправы те, кто отправляет его на свалку истории). Понимать и уметь применять на практике design patterns (шаблоны проектирования). Знать, что такое клиент-серверная архитектура и как правильно организовать взаимодействие клиента с сервером в условиях ненадёжного канала связи с помехами. В качестве факультатива почитать что-нибудь про шифрование, защиту данных, сетевые протоколы и ядро Unix.
Помимо чисто технической подкованности, для достижения успеха нужно прививать себе хороший вкус. Потому что хороший софт — это не просто софт, работающий без ошибок, это правильно спроектированный софт, сделанный красиво, элегантно и удобно для пользователя. Не обязательно становиться художником-дизайнером, но необходимо изучать гайдлайны, учиться грамотно проектировать пользовательский интерфейс, продумывать логику работы приложения, учитывать все возможные случаи, обращать внимание на мелочи и находить нестандартные решения.
.
«Помимо чисто технической подкованности, для достижения успеха нужно прививать себе хороший вкус»
Третья составляющая — маркетинг. Надо уметь чувствовать рынок, понимать, что окажется востребованным, а что будет никому не нужно. Это совсем не то же самое, что «следить за мировыми тенденциями». Есть изречение великого хоккеиста Уэйна Гретцки, которое очень любил повторять Стив Джобс: «Я мчусь туда, где шайба будет, а не туда, где она была». Вот именно это умение — понять, где на рынке есть новая ниша, которая пока никем не занята, но которую можно заполнить своей разработкой, — в сочетании с первыми двумя требованиями и приводит к успеху.
Нигде в мире нет такого места, где заплатив за курс обучения, вы сможете быть на 100% уверены, что станете успешным создателем мобильных приложений. Есть университеты, где хорошо учат computer science, и в смысле базового образования в России в некоторых местах до сих пор держат планку: МГУ им. Ломоносова, МФТИ, МГТУ им. Баумана, МЭИ и в некоторых других. Классикой жанра в части программирования (конкретно под мобильные платформы) считается курс лекций Стэнфордского университета (США). Конечно, всё то же самое можно узнать из книг и интернета, но, уверен, грамотно построенный курс позволяет достичь цели намного быстрее, спрямляя к ней путь. Но в любом случае самостоятельная работа по самосовершенствованию необходима.
Следующий вопрос — где вести разработку, где открывать свой бизнес? Этот вопрос выходит далеко за рамки обсуждения перспектив мобильной разработки ПО. В конце концов каждый решает сам, где ему жить, где и на кого работать. В эпоху глобализации границы стираются, и в IT это чувствуется, как ни в одной другой индустрии. В наши дни зачастую можно жить где угодно, и, не выходя из своего дома, работать на заказчика с другого конца света. Для независимого разработчика-одиночки, фрилансера или создателя собственных приложений в этом смысле никаких ограничений нет.
Гораздо сложнее обстоит дело, если речь идёт о создании крупной фирмы, работающей над большими проектами. Тут приходится учитывать как национальные особенности разработчиков, силами которых приходится выполнять поставленные задачи, так и общую политико-экономическую ситуацию в стране. В России много технически сильных программистов, востребованных по всему миру. Однако вопросы дисициплины, самоорганизации и самоконтроля, а также глобальные проблемы коррупции, отсутствия честной конкуренции, прозрачных рыночных отношений и многие другие приводят к тому, что успешных крупных софтверных фирм в современной России не так много. При этом количество сильных и достаточно успешных программистов-одиночек — вполне на мировом уровне.
Куда ходить
Конференций, посвящённых мобильной разработке, много, но все эксперты и большинство крутых разработчков считают их глупой тратой времени и ходят только на основные.
WWDC — главное событие для iOS разработчиков и не только. Если очно присутствовать не получается, видео с конференции и учебных сессий доступны онлайн.
Google I/O — важнейшая конференция для разработчиков на Android.
YAC — конференция, которую ежегодно проводит «Яндекс» в Москве. На ней есть секции, посвящённые мобильной разработке.
NSconference — сугубо практическая конференция для iOS-разработчиков.
Байрам Аннаков о преимуществах
и недостатках профессии и о локальных героях
До того, как я начал заниматься мобильными приложениями, я программировал под Mac, поэтому особенных сложностей с разработкой под iOS не испытывал. Самостоятельно прошёл основополагающий Стэнфордский курс «iPhone Application Development» (все его лекции доступны онлайн). Остальному научился по ходу работы. То есть практика в данном случае — ключевой образовательный момент.
В компании Empatika мы разработали собственный обучающий курс на основе Стэнфордского, адаптировав его к потребностям нашей аудитории и опыту разработки. Мы проводим на него набор два раза в год, по итогам курса двое лучших студентов проходят у нас практику и, чаще всего, остаются в компании. Так мы решаем вопрос квалифицированных сотрудников.
Мы начали заниматься мобильными приложениями в 2010 году, потому что это была горячая тема и сейчас она продолжает набирать обороты — рынок постоянно растёт. В США уже 50% взрослого населения владеют смартфонами, а российский мобильный рынок считается одним из самых быстрорастущих. За всё это время я ни разу не пожалел, что стал заниматься приложениями. Вложенные силы оправдываются на все 100%.
«В США уже 50% взрослого населения владеют смартфонами, а российский мобильный рынок считается одним из самых быстрорастущих»
Больше всего меня завораживает факт, что команда из 2–3 человек может сделать проект международного уровня, прославиться и заработать. Примеров очень много — вы пользуетесь ими каждый день: Instagram, Bump, Foursquare. Вот на кого нужно равняться. Это основное преимущество создания мобильных приложений — вам не нужно никаких ресурсов, перед вами огромный рынок, берите и захватывайте его. Конечно, как и в любой профессии, есть свои сложности. Первая, и самая большая, связана с политикой Apple, которая не позволяет вам оперативно реагировать на ситуацию и вносить изменения в продукт. Каждое ваше приложение, а потом и каждое его обновление требуют как минимум недельной проверки сотрудниками Apple. Также я бы отметил особенности аудитории — пользователи становятся все разборчивее и придирчивее к приложениям. Теперь гениальной идеи и простого исполнения недостаточно. Нужно особенное внимание уделять дизайну приложения, который не менее важен, чем функционал.
Cover image via ShutterStock
Комментарии
Подписаться