Я хочу стать разработчиком мобильных приложений — что дальше? (0 знаний программирования)
Я хочу стать разработчиком мобильных приложений — что дальше?
Ежедневно миллионы людей запускают на своих смартфонах мобильные приложения — это целая культура, развивающаяся в бешеном темпе. Разработчики этих приложений — новые романтические герои, люди, способные в одночасье стать миллиардерами, как создатели 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. Боритесь с желанием просто читать без применения прочитанного на практике. В выборе источников вами должны руководить любопытство и амбиции решить сложную задачу. После того, как вы ознакомитесь с основами языка, начните читать коды успешных проектов на открытых ресурсах. Посмотрите, какие модели и методы используют другие разработчики для решения различных проблем, попробуйте их адаптировать к собственным задачам. Нет конца тому, чему вы можете научиться у других.
«Некоторые стремятся обязательно пройти школу программирования, но я не раз убеждался, что лучшие разработчики — самоучки»
И ещё один совет. Найдите или сами создайте локальное комьюнити разработчиков со схожими интересами. Регулярно встречайтесь и обсуждайте свои проекты, проблемы и решения. Такие встречи дадут вам куда больший толчок, чем большие конференции.
Что читать
Сергей Шаповалов о базовом образовании
для разработчиков и о том, почему
в США у них больше перспектив
Сергей Шаповалов
разработчик приложений для 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-разработчиков.
Как стать разработчиком мобильных приложений для Android и Apple
Дата публикации: 2016-12-09
От автора: всем привет! Сегодня мы поговорим о том, как стать разработчиком мобильных приложений для Apple и Android. Количество приложений на таких сервисах, как Apple Store и Google Play растет с каждым днем. Эти приложения могут выполнять самые разные функции. Одни из них позволяют обрабатывать фотографии благодаря модным ретро-фильтрам и всевозможным эффектам. Другие помогают изучать иностранные языки, третьи — скачивать и читать электронные книги. Можно даже установить металлоискатель или строительный уровень. В общем, приложений, готовых облегчить нашу жизнь, сейчас в изобилии.
Некоторые из них можно скачать бесплатно, некоторые — нет, в любом случае, бесплатные приложения будут содержать рекламу и платный контент. Но нам в данный момент интересен несколько иной аспект. Дело в том, что на разработке мобильных приложений можно зарабатывать, и довольно неплохо.
С чего начать обучение разработке приложений для мобильных устройств?
Стать разработчиком мобильных приложений значительно легче, если вы уже имеете представление о программировании. Тогда вы можете смело пропустить этот раздел. Но, как известно, повторение — школа художника, а в нашем случае — программиста. К тому же, не исключено, что вам придется выполнить часть работы, связанную с графическим оформлением.
Если же вы не имеете представления о программировании, ничего страшного, ведь этому всегда можно научиться. Тем более, в интернете содержится много информации, посвященной изучению программирования.
В частности, это видеокурсы, которые помогли большому количеству пользователей стать программистами. Скажем так, в наши дни освоить профессию программиста стало проще, чем лет 8-10 назад. И всевозможные курсы разработчиков мобильных приложений успешно способствуют этой тенденции.
JavaScript. Быстрый старт
Изучите основы JavaScript на практическом примере по созданию веб-приложения
Тем, кто хочет углубиться в сферу веб-программирования в целом и желает во всем «докопаться до сути»; тем, кому интересно программирование не только как ремесло, но и как искусство, можно посоветовать изучить HTML, CSS, JavaScript, а может быть даже jQuery, в том случае если вы хотите по-настоящему испытать себя и свой пытливый ум =)
Так ли нужен диплом?
Существует стереотип, что лучшие программисты — те, что окончили школы программирования, имеют сертификаты и дипломы, якобы подтверждающие их умения и навыки. Но это порой далеко от истины.
Как среди программистов-профессионалов, так и в среде самоучек есть люди, действительно оказавшиеся на своем месте, которые имеют склонность к программированию. Но встречаются и те, что просто считают себя мастерами своего дела, хотя, в действительности, им больше бы подошел веб-дизайн или что-то еще, больше связанное с творчеством.
И, как не странно, среди дипломированных специалистов такая картина наблюдается чаше, чем в среде тех, кто изучал программирование самостоятельно. Это объясняется тем, что тот, кто действительно желает освоить эту профессию, на самом деле учится и постоянно применяет знания на практике, а не просто посещает занятия и ждет в очереди за дипломом.
Что нужно знать разработчику мобильных приложений?
Используя современные языки программирования, которые применяются для разработки мобильных приложений под Android или iOS, вполне реально создать свое первое творение уже за месяц.
Только представьте: всего за месяц из вас получится разработчик мобильных приложений. Обучение профессии программиста, конечно, этим далеко не исчерпывается. Да, вы сможете разрабатывать какие-нибудь несложные игры и даже получать с них прибыль после монетизации.
Зайдите в Google Play или App Store: там подобных приложений большинство, особенно, среди игр. По статистике таких приложений девять из десяти. Этим и занимается среднестатистический разработчик мобильных приложений. Но с чего начать свое обучение, если вы не хотите остановиться на этом?
Для того чтобы не быть тем самым среднестатистическим разработчиком и создавать что-то действительно оригинальное, нужен качественный фундамент. Опытные программисты рекомендуют начинать обучение с computer science, структуры данных, классических алгоритмов, устройства хэш-таблиц и так далее.
Необходимо уяснить те базовые понятия, что используются в программировании, вне зависимости от языка и устройства. Здесь будет нелишним знать основы C++, несмотря на то, что многие уже считают его устаревшим. Возможно и так, но это основы основ, без которых не возникли бы Java и PHP. Полезно будет узнать о защите данных, шифровании, сетевых протоколах и о ядре Unix.
До сих пор мы говорили лишь о технической части вопроса, но для успеха этого будет недостаточно. По-настоящему качественный софт — это не только программа, которая работает без ошибок. Качественный софт подразумевает продуманный интерфейс, который был бы понятен пользователю (а не только разработчику), логику работы программы с учетом всех возможных вариантов развития событий. Обращать внимание на детали и находить интересные, нестандартные решения — это обязанность каждого разработчика.
Почувствуйте себя создателем тенденций
Как странно бы это ни выглядело на первый взгляд, но разработчику мобильных приложений следует быть не только хорошим программистом, но и проницательным маркетологом.
Важно понять, что востребовано в данный момент среди пользователей, после чего поспешить занять ту нишу, которая еще не была занята вашими конкурентами. Вам не нужно гнаться за тем, что популярно сейчас или было популярно когда-то.
Безусловно, новое — хорошо забытое старое, но успешные программисты не подстраиваются под современные тенденции. Они сами берут на себя ответственность создавать эти самые тенденции.
Кроме того, не следует забывать об изучении английского языка, ведь программные коды пишутся именно на нем. Благодаря написанию этих кодов, вы сможете выучить лишь технический английский, но для общения с англоговорящими заказчиками свои знания придется углубить. К тому же, это станет полезной практикой не только для разработки приложений.
Только если гармонично развивать в себе навыки программиста, дизайнера и маркетолога, можно добиться успеха в сфере разработки мобильных приложений.
В заключение
Когда вы обретете необходимые знания, вы можете смело предлагать свои услуги заказчикам, которых в изобилии сможете найти на биржах фриланса. Не стоит ждать того, что успех сам свалится на вас сразу после регистрации и заполнения портфолио с вашими наработками.
Вначале вам придется выполнять небольшие и несложные заказы, но, если на этом не останавливаться, со временем вы сможете разрабатывать действительно впечатляющие проекты для заказчиков не только своей страны, но и всего мира.
JavaScript. Быстрый старт
Изучите основы JavaScript на практическом примере по созданию веб-приложения
Хотите узнать, что необходимо для создания сайта?
Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!
Инструкция для тех, кто хочет стать программистом с нуля
Кризис заставляет многих сменить место работы или даже полностью поменять специальность. Приходится осваивать новые навыки и профессии. Прекрасным выбором в этом случае может стать профессия программиста. Это интересно, комфортно и прибыльно. В этой статье мы постараемся ответить на вопрос, как построить карьеру программиста с нуля.
Начать свой путь к карьере программиста стоит с ответа на вопрос, нужно ли вам программирование вообще? Этот вопрос не относится к тем, кто учится или учился по специальности, близкой к программированию. Если вам в школе математика давалась лучше, чем гуманитарные науки, если вам нравится проводить много времени за компьютером, если вам хочется изучать что-то новое, тогда программирование вам подойдёт.
С чего начать
Есть несколько вариантов развития событий, в результате которых человек становится программистом. Первый — родители-программисты, которые всему научили своих детей. Таким детям даже не нужно идти в университет. Второй вариант — модная профессия программиста. После школы нужно было выбрать, куда пойти учиться, и выбрали модное направление IT, вроде бы понравилось. И последний вариант — хобби, которое переросло в работу.
Если с вами ничего из вышеперечисленного не произошло, значит, у вас есть выбор из четырёх вариантов:
- Самообразование. Этот вариант можно использовать как самостоятельно, так и в паре с другими методами. В интернете полно сайтов, книг и приложений, которые помогают изучать различные языки программирования и технологии. Но это самый тяжёлый путь для начинающих.
- Университет. Если вы оканчиваете школу и хотите быть программистом, тогда идите в университет. Если не за знаниями, тогда за корочкой. Она может послужить бонусом при устройстве на работу. Хотя и какие-то знания вы тоже получите. Но не забывайте заниматься и самообучением. К выбору вуза стоит подойти очень ответственно. Внимательно изучите программы обучения и выбирайте лучшие технические вузы.
- Ментор. Будет очень неплохо, если вы найдёте человека, который согласится помочь вам и направит вас в правильную сторону. Он подскажет подходящие книги и ресурсы, проверит ваш код, даст полезные советы. Кстати, мы уже писали о полезном ресурсе, где вы сможете найти ментора. Наставника можно искать среди знакомых программистов, на IT-тусовках и конференциях, на онлайн-форумах и так далее.
- Специализированные практические курсы. Попробуйте поискать в своём городе курсы, где вас обучат какому-нибудь языку программирования или технологии. Я был приятно удивлён количеством таких курсов в Киеве, в том числе бесплатных и с последующим трудоустройством.
Какой язык, технологию и направление выбрать
Когда вы станете программистом, через годик-другой будете вольны выбирать любой язык, который вам нравится. Но при выборе первого языка программирования новичок должен учитывать следующие критерии:
- Наличие на рынке вакансий. Конечная цель этого пути — найти работу программистом. А это будет трудно сделать, если на рынке вакансий никто не будет искать разработчиков на вашем языке программирования. Проверьте сайты с вакансиями, посмотрите, кого больше ищут, выпишите десяток языков. И переходите к следующему критерию.
- Низкий уровень вхождения. Если вам придётся потратить длительное время на изучение языка, это может отбить у вас охоту к программированию вообще. Почитайте о тех языках, которые вы выбрали выше. Просмотрите литературу, которую нужно будет прочитать, чтобы изучить эти языки. И выберите те, о которых пишут, что они лёгкие, или которые вам показались лёгкими. Такими языками могут оказаться PHP, Ruby, Python.
- Кайф от процесса. Если вам не нравится писать код на выбранном языке, вы не будете получать удовольствия от этого процесса, от работы и от жизни. А оно вам надо? Делайте правильный выбор.
Также вам придётся определиться с направлением программирования. Мобильное, десктопное, игры, веб, низкоуровневое программирование и так далее. Самые популярные и относительно лёгкие отрасли — разработка под веб, мобильные и десктопные клиенты. Под каждое направление может подходить один язык и совсем не подходить другой. То есть при выборе языка программирования также стоит отталкиваться и от этого фактора.
В любом случае изучите веб-технологии. Это язык разметки HTML, стили CSS и JavaScript, который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.
Как получить начальный опыт
Без опыта вы не получите работу. Без работы вы не получите опыт. Замкнутый круг реальной жизни. Но ничего страшного, мы из него выберемся.
Во-первых, не стоит ждать, пока вы прочитаете все книги по выбранному языку программирования. Начинайте писать свои первые строки кода уже после второй главы книги. Выполняйте все задания из книг, перепечатывайте примеры, разбирайтесь в них. Усложняйте примеры и задания из книг своими идеями. Создавайте свои задачи к пройденному материалу. Решайте эти задачи.
Во-вторых, вам нужно найти свои первые проекты. Это, наверное, самый сложный вариант, но рабочий. Вам придётся самому искать заказы, выполнять их, заморачиваться с оплатой. Для новичка это архисложно, но зато затем все остальные варианты покажутся плёвым делом. Выполненные проекты можно будет записать в опыт и показать вашему будущему работодателю. Реальные проекты являются большим плюсом в вашем резюме.
Если вы знаете английский язык, регистрируйтесь лучше на англоязычных биржах. Рынок там больше. Если не знаете английского, учите его. А пока что вам доступны русскоязычные биржи фриланса. Ищите небольшие проекты, которые соответствуют вашему уровню знаний или чуть выше него. Подайте заявку на пару десятков таких заданий. И приготовьтесь получить море отказов. Но если одна-две заявки выстрелят, у вас будет шанс получить реальный опыт.
Ещё одним неплохим вариантом для получения реального опыта является open source. Таким проектам всегда нужны новые люди, пусть даже и новички. Вы можете поискать в проекте баги или посмотреть в баг-трекере и предложить методы их решения. Найти такие проекты легко на GitHub или других сервисах для хостинга кода. Не стесняйтесь задавать там вопросы.
Четвёртый вариант получения опыта — помощь знакомым программистам. Попросите их передать вам маленькие и несложные задания. Если что-то не будет получаться, у вас всегда будет к кому обратиться. И при этом вы будете участвовать в реальном проекте.
Последний способ — собственные проекты, различные хакатоны или работа в коворкинге. Свои проекты сложно начинать самому, лучше поискать знакомых или друзей.
Почему стоит выбрать Python
Давайте немного подробнее поговорим о выборе первого языка программирования. Первый язык должен быть простым и популярным на рынке. Таким языком является Python. Я очень советую выбрать именно его в качестве первого языка программирования.
Код программы на Python читабелен. Вам даже не нужно быть программистом, чтобы в общих чертах понять, что происходит в программе. Из-за несложного синтаксиса Python вам понадобится меньше времени для написания программы, чем, например, на Java. Огромная база библиотек, которая сэкономит вам кучу сил, нервов и времени. Python является высокоуровневым языком. А значит, вам не нужно особо думать о ячейках памяти и о том, что там разместить. Python — язык широкого назначения. И он такой простой, что даже дети могут его выучить.
Справедливости ради стоит упомянуть и о других языках программирования. Java может стать неплохим выбором для новичка. Этот язык популярнее, чем Python, но и немного сложнее. Зато инструменты для разработки гораздо лучше проработаны. Стоит только сравнить Eclipse и IDLE. После Java вам будет проще перейти к работе с низкоуровневыми языками программирования.
PHP — ещё один очень популярный язык. И, мне кажется, он даже проще, чем Python. Очень легко найти себе ментора или решение какой-нибудь проблемы на форуме. Всё потому, что в мире существует огромное количество PHP-программистов разного уровня. В PHP нет нормального импорта, есть множество вариантов решения одной и той же задачи. А это усложняет обучение. И PHP заточен исключительно под веб.
Языки C и C# очень сложны для новичка. Ruby — хороший выбор в качестве второго языка, но не первого. JavaScript — очень простой язык, но ничему хорошему он вас не научит. А задача первого языка программирования всё-таки научить вас чему-то правильному, задать какую-то логику.
Важен ли английский язык
Важен! Не знаете? Учите. Знаете? Совершенствуйте. Учитесь читать, писать, слушать и говорить на английском. Делайте упор на техническую литературу. Слушайте англоязычные подкасты. Читайте англоязычные учебники по программированию.
Что нужно знать, кроме языка программирования
Конечно же, кроме языка программирования и английского, нужно знать что-то ещё. А вот что — зависит от направления, которое вы выберете. Веб-программист обязан знать HTML, CSS, JavaScript. Десктоп-программист учит API операционной системы и различные фреймворки. Разработчик мобильных приложений учит фреймворки Android, iOS или Windows Phone.
Всем нужно выучить алгоритмы. Попробуйте пройти курс на Coursera или найти подходящую для себя книгу по алгоритмам. Кроме этого, нужно знать одну из баз данных, паттерны программирования, структуры данных. Стоит также познакомиться с репозиториями кода. Хотя бы с одним. Обязательно знание систем версионного контроля. Выбирайте Git, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста — уметь гуглить. Без этого вы не проживёте.
Последние шаги
Вам нужно подготовить резюме. Не просто резюме, а хорошее резюме. Не стоит писать там лишней информации, но и умалчивать о своих умениях тоже не нужно. После того как вас пригласят на интервью, вы должны к нему подготовиться. Пройдитесь по материалу, который указан в вашем резюме. Вы должны быть уверены в своих знаниях. Просмотрите проекты, над которыми вы работали, вспомните технологии, которые вы применяли. И вперёд — к светлому будущему с новой профессией программиста.
Профессия «разработчик мобильных приложений»: подробное описание и обзор
Google Play и Apple App Store — платформы, где ежедневно появляются тысячи приложений. О том, кто делает эти приложения и как стать таким специалистом я расскажу в статье.
Кто такой мобильный разработчик и чем занимается
Мобильный разработчик — человек, который разрабатывает программные приложения для смартфонов и планшетов. Работа специалиста делится на следующие этапы:
- Идея. Разработчик может придумать замысел приложения самостоятельно или получить готовый заказ. Во втором случае нужно встретиться с заказчиком и обсудить все необходимые планы. Продумать, кому будет интересно приложение и для каких целей будет служить.
- Подготовка. После того, как появилась идея, составляется план работ. Начинать нужно с анализа рынка конкурентов: найти приложения похожей направленности и проанализировать. Достаточное ли количество загрузок, сильные и слабые места, отзывы пользователей. Анализ информации о конкурирующих компаниях — тоже входит в работу мобильного разработчика.
- Вопросы монетизации. Этот пункт касается разработчиков, которые пишут программы самостоятельно, без заказчика. Специалист разрабатывает приложение с учётом дохода: платные сервисы, премиум-версия, встроенные покупки. Если приложение бесплатное, мобильный разработчик продумывает разные варианты получения прибыли.
- Разработка. Воплощение всех заранее запланированных идей. Работа с дизайнерами мобильных приложений, менеджером проекта. При необходимости внесение коррективов в процессе разработки. Постоянная связь с заказчиком и выполнение отчётов.
- Тестирование. Вопросами тестирования приложений занимается тестировщик. Но если разработчик работает самостоятельно, тестировать нужно самому. Проверяются такие характеристики, как функциональность, удобство пользования, производительность, дизайн.
- Внедрение на рынок. Специалист внедряет продукт на платформы Google Play Store и Apple App Store, соблюдая все правила этих сервисов.
- Раскрутка. Если разработку заказывает клиент, чаще всего он же и занимается вопросами маркетинга. То есть, нанимает для этого других людей. В случае самостоятельной разработки приложения специалист сам продвигает продукт. Он продвигает приложение, чтобы его скачивали и пользовались. Для этого разрабатывается целая маркетинговая стратегия.
После того, как приложение начали скачивать, разработчик следит за отзывами, устраняет недостатки и регулярно обновляет приложения.
Что должен знать и уметь
Специалист по разработке мобильных приложений обладает следующими профессиональными навыками:
- знание систем Apple iOS – Objective-C, Swift;
- умение работать с Google Android – Java, Kotlin;
- навык работы с API-сервером;
- отличное знание правил Google Play Store и Apple App Store;
- навык создания приложений для Android, iOS;
- работа над отладками приложений;
- знание основ разработки программ под iPhone и iPad;
- знание разных библиотек технологий (Siri, «OK, Google»).
Уникальное предложение — -50% на ВСЕ курсы Skillbox. Получите современную онлайн-профессию, раскройте свой потенциал.
Плюсы и минусы профессии
В работе с мобильными приложениями есть положительные моменты и отрицательные. Плюсы:
- высокооплачиваемая профессия;
- востребованность на рынке труда;
- возможность работать удалённо;
- постоянное развитие и рост;
- работа в команде с интересными людьми, обмен опытом.
- излишняя придирчивость заказчиков;
- сложно обучиться профессии самому;
- в Apple долгая проверка внесения правок.
Зарплата по Москве и в России
Согласно сайту trud.com зарплата специалиста по разработке мобильных приложений по Москве следующая:
Уровень зарплаты разработчика мобильных приложений по Москве — согласно сайту trud.com
По областям России:
Уровень зарплаты разработчика мобильных приложений по областям России — согласно сайту trud.com
Согласно сайту hh.ru зарплата разработчика мобильных приложений начинается от 65 тыс. рублей. Такому специалисту необходимо работать в отрасли не менее года и обладать такими навыками:
- разработка мобильных приложений для Android;
- аналитический подход, способность решать технические задачи;
- умение работать с Java.
Зарплата от 100 тыс. рублей предлагается специалисту, опыт которого более двух лет. Ожидания заказчиков:
Требования к разработчику мобильных приложений при з/п от 100 тыс. рублей
Зарплата в 150 тысяч предлагается специалисту, опыт которого более 3 лет. Требования работодателей следующие:
Требования к разработчику мобильных приложений при з/п от 150 тыс. рублей
Зарплата свыше 200 тыс. рублей предлагается специалисту с опытом работы более трёх лет. Вакансия выглядит следующим образом:
Требования к разработчику мобильных приложений при з/п от 200 тыс. рублей
Как стать разработчиком мобильных приложений
С нуля и самостоятельно профессию освоить трудно. Нужно сначала читать много теории, скачивать необходимые программы и самостоятельно в них разбираться. Но где тогда взять портфолио? Предлагаю выбрать лёгкий путь и пройти курсы по разработке мобильных приложений. Преимущества:
- Освоение профессии за несколько месяцев — можно проходить в удобное время и скорость прохождения выбирать самостоятельно.
- Чётко структурированная информация — вместо самостоятельного поиска материала вы изучаете отобранную специалистами информацию в удобном формате.
- Наработанное портфолио — то, что так часто просят работодатели. Домашние задания помогут с практикой, а работы можно будет предъявить заказчику в качестве портфолио.
- Удобно учиться — формат обучения позволяет получать информацию где угодно, когда угодно и на любом удобном гаджете. Подойдёт даже смартфон.
Готовы к обучению?
Если ответ положительный, то вот вам первое домашнее задание.
Решите задачу:
Собака была привязана к десятиметровой веревке, а прошла по прямой двести метров. Как ей это удалось?
Ответы пишите в комментариях!
Как стать Android-разработчиком
Разработчик Дмитрий Гордин провел открытое занятие для Нетологии и рассказал, с чего начинать изучение Android-разработки и как найти первую работу.
Для создания все новых и новых мобильных приложений компаниям нужны талантливые разработчики: профессия востребована, и специалистам готовы платить. По статистике зарплатного сервиса «Мой Круг», разработчики с опытом от 2 лет получают 50 000 − 100 000 рублей в регионах, 90 000 − 160 000 в Москве. Для сравнения, веб-разработчикам платят 50 000 − 110 000 рублей. Программисты, которые работают на иностранные компании, получают больше.
Плюсы Android-разработки
- Распространенность. В сентябре 2018 Android занимает 75% рынка смартфонов, iOS — 24%:
Статистика распространенности операционных систем мобильных устройств
- Разнообразие устройств. Можно писать приложения для смартфонов, планшетов, умных часов, музыкальных систем и телевизоров.
- Дешевле оплата аккаунта. Чтобы публиковать мобильные приложения в Google Play, разработчик платит $25 один раз. Аккаунт Apple Developer стоит $99 в год.
- Android — OpenSource проект. Исходный код системы доступен для всех. Можно посмотреть как сделана та или иная функция. Документация встроена прямо в код в комментариях, ее можно посмотреть прямо в IDE.
С чего начать изучение Android-разработки
План обучения может отличаться, в зависимости от задач и бэкграунда начинающего разработчика. Дальше опишем базовые знания и навыки, которые понадобятся в любом случае.
Изучите основы программирования
Базовые знания HTML и CSS. Выучите синтаксис языков и терминологию, чтобы грамотно формулировать вопросы и быстрее искать на них ответы. Например, эффективнее искать в Google не скругление углов у кнопки, а cornerRadius — поисковик выдаст больше релевантных ответов.
Основы XML. Это язык разметки, который не содержит логики работы или алгоритмов и предназначен для удобного хранения данных. Его стоит выучить, чтобы размечать пользовательский интерфейс, задавать расположение кнопок и текстовых полей, других элементов приложения. XML позволяет использовать мультиязычность, в XML-файлы записывают строки в разных языках.
Принципы работы HTTP и REST. Это протоколы взаимодействия приложений с окружающим миром — другими приложениями и сервисами, например, серверами в интернете. Их нужно осваивать, чтобы понимать, как приложение взаимодействует с другими сервисами и получает информацию из них.
Разница между языками программирования. Компьютер не различает, в чем была написана программа — он выполняет машинные коды. Языки программирования были созданы для разработчиков. У них много общего — почти во всех есть функции, переменные, классы, массивы. Если вы знаете, как использовать их в одном языке, при необходимости сможете перейти на другой. Язык нужно выбирать под решение конкретной задачи, например, для мобильной разработки стандарт — Java.
Общие принципы разработки. Чтобы писать понятный код, который смогут читать коллеги в крупных общих проектах, нужно выучить:
- как называть функции и переменные;
- разделять текст программы на файлы;
- расставлять переносы и пробелы.
Освоить все сразу при обучении не получится, навыки придут с практикой и будут постоянно совершенствоваться.
Основы объектно-ориентированного программирования. Одна из основных идей Java-разработки, которая заключается в следующем. Все предметы или явления реального мира можно представить в программе в виде совокупности их свойств и выполняемых действий. Разрабатывать программу проще, когда вы понимаете: приложение — объект, любое окно в нем — объект, свойства — высота, ширина и цвет фона, методы — рисование изображения, добавление элементов.
Git и Github. Git позволяет просматривать историю проекта, все изменения, кто и когда их вносил. В системе можно обнаружить ошибку и сделать откат. Github нужен для сложных проектов, над которыми работают несколько разработчиков одновременно. Когда один из разработчиков выкладывает код, ознакомиться с ним и редактировать может вся команда. При этом есть возможность работать даже над одним и тем же участком кода параллельно, не мешая работе другого разработчика.
Изучите среду Android
Графические элементы приложений. При создании интерфейса приложения не нужно писать код с нуля, достаточно использовать готовые блоки — View. Существуют разные виды блоков:
- для отображения текста;
- для отображения изображений;
- для размещения на экране других элементов.
Для первых приложений вам будет достаточно готовых блоков, в дальнейшем вы научитесь разрабатывать свои.
Файловая система Android. Ее нужно освоить, чтобы оптимизировать работу приложения и научить его запускаться каждый раз не с чистого листа, а сохранять свое состояние между перезапусками. Также файловая система позволяет обмениваться данными с другими приложениями, например, загружать фотографии из галереи.
Жизненный цикл Android-приложения. Когда пользователь будет работать с вашим приложением, может поступить звонок, прийти СМС или другое приложение выведет уведомление поверх окна. Для таких случаев нужно прописать поведение программы, например, сворачивание окна, паузу, сохранение текущего состояния или уменьшение громкости звука. Если не настроить жизненный цикл приложения, использовать его будет неудобно.
Технологические решения Android. Многие приложения выполняют одинаковые действия, например, запрашивают информацию в интернете, выполняют поиск или сохраняют массивы данных. Чтобы не писать код для этих действий с нуля, научитесь использовать библиотеки — типовые решения. Это части кода, которые хорошо работают и их можно вставлять в свое приложение.
Навигация между экранами. В большинстве приложений предусмотрено несколько экранов. Чтобы пользователь мог переходить между ними, сворачивать или закрывать, вам нужно разработать систему навигации и прописать алгоритм действий для каждого способа навигации.
Работа с сенсорами и тачем. Освойте класс SensorManager, чтобы научить приложение взаимодействовать с датчиками в смартфоне — акселерометром, гироскопом, датчиками расстояния и освещения.
Производительность приложений. Чтобы ваше приложение не потребляло много ресурсов и не заставляло смартфон зависать, научитесь тестировать и дорабатывать производительность.
Все перечисленное — только основы Android-разработки. Также придется освоить библиотеки кода, научиться работать с разными версиями OC Android. Когда будете писать первое приложение — понять суть этапов разработки от изучения документации до тестирования и дебаггинга, релиза, техподдержки и обновления.
Обучение в онлайн-университете: курс «Android-разработчик с нуля»
Освойте инструменты разработки
Основной инструмент разработки приложений — Android Studio. Программа состоит из двух частей:
- Визуального редактора. Здесь можно задавать расположение графических элементов будущего приложения вручную, например, перетаскивать кнопки.
- Редактора кода. В нем пишут, что нужно сделать при нажатии кнопки, увеличении или уменьшении экрана, скроллинге. Писать код можно на любом языке, например, Java или Kotlin.
Подробную видео-инструкцию по скачиванию и установке смотрите здесь: developer.android.com/studio/install
С чего начать карьеру
- Решайте задачи по Java. Найти их можно на тематическом сайте Javarush, в квестах Java Syntax, Java Collections, Java Core и других. Работайте над задачами ежедневно, чтобы освоить язык.
- Переходите на более сложные проекты — разрабатывайте лабиринты, змейку, словари и публикуйте на GitHub. Так вы будете собирать портфолио и сможете показать его работодателю.
- Выкладывайте приложения из GitHub на Google Play. Даже если у программ не будет тысяч скачиваний, ссылки на них можно указать в резюме.
- Изучите вакансии и посмотрите, какие библиотеки используют в компаниях. Освойте Glide, Retrofit, Room, Fabric — с ними работают многие работодатели.
- Выберите потенциального работодателя и идите на собеседование как Junior. Если вас не возьмут на работу сразу, порекомендуют, что изучить и какие пробелы в знаниях и навыках заполнить.
Пример вакансии для junior-уровня
Частые вопросы новичков
Нужно ли знать английский, чтобы стать Android-разработчиком
Разговорный английский для разработки не нужен, но придется освоить технический. Сначала обучающие материалы можно читать на русском, технические термины в них будут созвучны с английскими.
Можно ли научиться разрабатывать мобильные приложения самостоятельно
В интернете доступно много обучающих материалов на русском и английском, их можно освоить самостоятельно. Но для понимания нужно изучить основы, и это лучше делать на курсах под руководством профессионалов. Преподаватели помогут освоить материал с нуля быстрее, ответят на вопросы, дадут рекомендации, проведут ревью кода. Полученные знания лучше сразу отработать на практике — после каждого занятия нужны практические задачи.
Нужно ли знать математику и получить профильное образование
Чтобы начать программировать, диплом университета не нужен. Профильные знания понадобятся, если вы будете работать над соответствующим проектом.
Нужно ли знать все об Android наизусть
Не нужно, но важно уметь задавать вопросы в поисковике и искать на них ответы в документации, на профильных сайтах и форумах. У разработчиков большое сообщество, опытные программисты помогают новичкам. Документация есть в Android Studio, получить полезную информацию можно там.
Что общего у Android с HTML, CSS, Javascript
Мобильная и веб-разработка — разные отрасли. Но если вы знаете языки HTML, CSS, Javascript и понимаете принципы программирования, перейти в Android будет проще.
Можно использовать не Java, а другие языки
Использовать Javascript, Python, C# и другие альтернативные языки стоит, только если решение оправдано, поможет сэкономить время и деньги. Большинство сложных приложений, где нужно взаимодействие с аппаратной платформой телефона, лучше писать на Java или Kotlin. Именно с Java начинают обучение на курсах, так как язык самый распространенный.
Выводы
Android-разработка — перспективное направление. Программисты нужны работодателям, и им готовы платить. Новичкам доступно много обучающих материалов, сильное сообщество опытных коллег всегда поможет советами. Обучаться можно самостоятельно, но чтобы упростить и ускорить процесс, лучше обратиться за помощью к преподавателям и начать с курсов.
Мнение автора и редакции может не совпадать. Хотите написать колонку для «Нетологии»? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.
ТОП-15: Лучшие Онлайн-Курсы для Android-Разработчиков [2020]
Привет, дружище! На связи Шаполов Алексей. В этой статье ты найдёшь только самые лучшие платные и бесплатные онлайн-курсы для начинающих Android-разработчиков .
Готов начать обучение? Тогда погнали! 🚀
А ты знал, что в среднем Android-разработчики зарабатывают более 100 000 рублей в месяц?
ТОП-15+ лучших курсов для начинающих Android-разработчиков
№1. Профессия Android-разработчик с 0 до PRO
Кто проводит курс: онлайн-университет SkillBox.
Сколько длится: 20 месяцев.
Что ты узнаешь и чему научишься из курса:
- Язык программирования Kotlin. Узнаешь, как писать приложения на самом актуальном языке для Android.
- Работа с библиотеками. Изучишь популярные библиотеки, необходимые для разработки.
- Создание концепций. Освоишь базовые принципы дизайн-концепций и познакомишься с material design.
- Анимация и View. Научишься делать дизайн твоих приложений уникальным и ярким.
- Релиз в Google Play. Подробно разберёшь процесс подготовки твоего приложения к публикации в Google Play.
- Unit- и UI-тестирование. Научишься определять качество своей работы, тестировать гипотезы и отдельные фишки приложения.
Стоимость: 166 900 108 485 рублей по скидке + бесплатная консультация + курс можно оплачивать в рассрочку или купить его в кредит у банков-партнёров SkillBox.
Отзывы:
№2. Android-разработчик с нуля
Кто проводит курс: онлайн-университет «Нетология».
Сколько длится: 6 месяцев.
Что ты узнаешь и чему научишься из курса:
- Разрабатывать на Java и Kotlin. Ты изучишь основы Java и Kotlin, освоишь объектно-ориентированное программирование и работу с вычислениями в оперативной памяти.
- Проектировать приложения. Ты сможешь самостоятельно проектировать логику работы мобильного приложения, настраивать регистрацию и другие ключевые события.
- Верстать интерфейсы. Ты научишься верстать графические интерфейсы и адаптировать мобильные приложения под любые Android-устройства.
- Введение в программирование на Java
- Основы Java
- Английский язык для начинающих разработчиков
- Основы ООП
- InMemory хранение данных — массивы
- InMemory хранение данных — коллекции
- Git — система контроля версий
- Работа с Android. Структура проекта
- Android View
- Ресурсы и стили
- Динамический интерфейс
- Работа с файлами
- Жизненный цикл, события в Activity
- Переходы и действия в ОС Android. Android Intents
- Разработка приложений на Kotlin
- Карьера в Android-разработке
- Дипломная работа: создание многоэкранного приложения
Стоимость: 49 900 рублей (первый модуль БЕСПЛАТНО).
Отзывы:
№3. Разработка мобильных Android-приложений с нуля
Кто проводит курс: онлайн-университет GeekBrains совместно с Mail.ru Group.
Сколько длится: 1 год практического обучения = 1 год опыта работы.
Твои навыки после прохождения курса:
- Навыки программирования на Java
- Разработка клиент-серверных приложений для Android
- Знание классических алгоритмов и структур данных
- Работа в команде
- Умение работать с GIT
- Знание принципов ООП
- Навыки успешного прохождения собеседований и общения с заказчиками
- Навыки проектирования архитектуры, использования шаблонов проектирования и принципов Clean Architecture
- Как учиться эффективно. Видеокурс от методистов GeekUniversity
- Java Core. Базовый уровень
- Java Core. Продвинутый уровень
- Java Core. Профессиональный уровень
- Android. Базовый уровень
- Android. Продвинутый уровень
- Чистая архитектура в разработке под Android
- Android. Material design
- Программирование на Kotlin под Android
- Популярные библиотеки: RxJava 2, Dagger 2, Moxy
- Профессиональная разработка Android-приложений
- Тестирование Android-приложений
- Командная разработка Android-приложения
- Базы данных. Интерактивный курс
- Алгоритмы и структуры данных на Java. Базовый курс.
- Как студенту GeekUniversity найти свою первую работу?
- Подготовка к собеседованию Android-разработчика
- Git. Базовый курс
Стоимость: 12 500 рублей в месяц.
Отзывы:
№4. Разработка под Android
Кто проводит курс: онлайн-школа LoftSchool.
Сколько длится: 5 недель = 11 занятий.
Что ты узнаешь и чему научишься из курса:
- Создавать современные Android-приложения. Для этого ты освоишь весь базовый функционал в актуальном исполнении: Activity, Layout, Fragments, REST API, Manifest. У твоих приложений будет полный набор обязательных элементов: кнопки, картинки, вкладки, стили, авторизация.
- Быстро воплощать свои идеи в жизнь.
- Использовать необходимые инструменты для построения приложений.
- Создавать клиент-серверные приложения.
- Создавать свои кастомные виджеты.
- Играть можно с чем угодно: датой, временем, шрифтами, погодой, курсом валют…
- Работать с API социальных сетей.
- Научишься правильно настраивать авторизацию пользователей в приложении, в том числе через социальные сети. Сделаешь вход в приложение удобным и, в то же время, защищённым.
Стоимость: 20 000 рублей.
Отзывы:
№5. Android-разработчик. Базовый курс
Кто проводит курс: онлайн-школа OTUS.
Сколько длится: 5 месяцев (4 часа в неделю).
Что ты узнаешь и чему научишься из курса:
- Научишься профессионально создавать приложения под Android.
- Подготовишься к собеседованию.
- Разработаешь портфолио с использованием современных библиотек и фреймворков.
Стоимость: 50 000 рублей.
Отзывы:
№6. Уроки программированию под Android
Кто проводит курс: онлайн-проект JavaRush.
- Создание макета: Часть 1 (Building Layouts: Part 1)
- Создание макета: Часть 2 (Building Layouts: Part 2)
- Практический модуль 1 (Practice Set 1)
- Испытание «Кофе-брейк» (Coffee Break Challenge)
- Создаём интерактивное приложение — 1 (Lesson 2A — Making An App Interactive)
- Создаём интерактивное приложение — 2 (Lesson 2B — Making An App Interactive)
- Практический модуль — 2 (Practice Set: Making an App Interactive)
- Объектно-ориентированное программирование — 1 (Lesson 3A — Object-Oriented Programming)
- Объектно-ориентированное программирование — 2 (Lesson 3B — Object-Oriented Programming — 2)
- Объектно-ориентированное программирование — 3 (Lesson 3B — Object-Oriented Programming — 2)
Стоимость: бесплатно.
Отзывы:
№7. Быстрый старт в разработке Android-приложений
Кто проводит курс: Московский физико-технический институт (МФТИ).
Сколько длится: 4 недели = 24 часа (6 часов в неделю).
- Первые шаги в Android-разработке
- Компоненты Android и элементы интерфейса
- Старт курсового проекта
- Завершение курсового проекта
Стоимость: бесплатно.
№8. Android разработка — с нуля до профессионала. Полный курс
Кто проводит курс: преподаватели онлайн-проекта Udemy.
Сколько длится: 40,5 часов видео + 45 статей + 14 ресурсов для скачивания.
Что ты освоишь и чему научишься из курса:
- Разрабатывать XML разметку и UI андроид приложений
- Основы Java, и также более продвинутые темы, включая ООП
- Работать с аудио, видео и изображениями
- Такие элементы Material Design, как RecyclerView, CardView и другие
- Сохранять различные виды данных разными способами
- Получать данные из Интернета
- Использовать библиотеки Volley, Glide, Picasso
- Создавать приложения-мессенджеры при помощи Firebase — такие как Viber, WhatsApp, Telegram
- Использовать Google Location API
- Использовать Google Maps API
Стоимость: 19 799 рублей.
№9. Более 189 уроков по Android-разработке от проекта Start Android
Стоимость: бесплатно.
№10. Практический курс Middle Android Developer на Kotlin
Кто проводит курс: онлайн-школа Skill-Branch.
Сколько длится: 6 месяцев = 200 часов практики + 2 проекта в портфолио.
Программа курса курса:
- Первая вводная встреча. Правила и напутствия
- Стандартная библиотека Kotlin
- Архитектура приложения
- Kotlin Delegates
- Android Architecture Components
- Тестирование Android приложений — Mockk, Espresso
- Fragments — продвинутое использование
- Продвинутая работа с View, реализация CustomView
- Material Animation
- ORM Room
- Инъекция зависимостей (Dependency Injection)
- Клиент-серверное взаимодействие
- Kotlin Сoroutines
- Введение в RxJava 2, Rx операторы, взаимодействие с потоками данных
- Service — продвинутое использование
- Продвинутая работа с Gradle (Различные версии сборки, Flavors)
- FireBase — настройка и интеграция с приложением
- Push уведомления, локальные и инициализируемые с сервера
- Proguard — оптимизация и обфускация кода. Подготовка к деплою приложения
- Выпускная квалификационная работа
В итоге ты получишь:
- 6 месяцев обучения и реальной практики уровня Middle
- 20 модулей с бессрочным доступом к записям в личном кабинете
- Доступ к более 30 мастер-классам по Android
- 20 презентаций и методических пособий с практическими кейсами
- Сертификат и 2 Android-приложения в портфолио, подтверждающих профессиональный уровень
- Практические задания и автотесты для закрепления пройденного материала
- Сообщество для общения с коллегами, менторами и преподавателями
- Good Practice и современные инструменты разработки
Стоимость: 56 000 рублей.
Ещё несколько десятков очень классных курсов для начинающих Android-разработчиков
Это были самые лучшие курсы для обучения Android-разработке с нуля .
Если понравилась статья — обязательно оценивай её по 5-балльной шкале ниже и делись ей с друзьями!