
Текст
Ксения Кандалинцева
Stanford University, курс CS 193P iPhone Application Development, ставший классикой. Доступен в iTunes.
Курс «Разработка приложений для 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 это чувствуется, как ни в одной другой индустрии. В наши дни зачастую можно жить где угодно, и, не выходя из своего дома, работать на заказчика с другого конца света. Для независимого разработчика-одиночки, фрилансера или создателя собственных приложений в этом смысле никаких ограничений нет.
Гораздо сложнее обстоит дело, если речь идёт о создании крупной фирмы, работающей над большими проектами. Тут приходится учитывать как национальные особенности разработчиков, силами которых приходится выполнять поставленные задачи, так и общую политико-экономическую ситуацию в стране. В России много технически сильных программистов, востребованных по всему миру. Однако вопросы дисициплины, самоорганизации и самоконтроля, а также глобальные проблемы коррупции, отсутствия честной конкуренции, прозрачных рыночных отношений и многие другие приводят к тому, что успешных крупных софтверных фирм в современной России не так много. При этом количество сильных и достаточно успешных программистов-одиночек — вполне на мировом уровне.
Конференций, посвящённых мобильной разработке, много, но все эксперты и большинство крутых разработчков считают их глупой тратой времени и ходят только на основные.