Кодирование в основном связано с тем, как вы думаете и подходите к проблеме, и очень мало о знании того, как следовать синтаксису.
Запоминание синтаксиса - это мышечная память, которой вы научитесь со временем с практикой.
Так что всякий раз, когда меня спрашивают, как создавать приложения? Как мне начать программировать?
Мой прямой ответ на это: подумайте о проблеме, которая вам близка и лична, и создайте приложение, которое ее исправит? Неважно, существует ли приложение сегодня на рынке или нет. Пойдите в создание приложения, найдите лучший технический стек, чтобы научиться создавать это приложение.
В 2017 году я хотел изучить разработку приложений для Android. Не знал азбуки Java. Я занимался программированием на C ++ среднего уровня.
Я выбрал проблему, которую хотел решить: мой друг купил зеркалку, щелкал и редактировал несколько потрясающих фотографий, но IG не давал ему большой видимости. Поэтому я подумал, как я могу (создав приложение) ему помочь?
Именно тогда мне пришла в голову идея приложения для обоев с его подписью на фотографиях.
Теперь я расскажу о своем подходе к созданию приложения (и помню, что это было первое приложение, которое я создавал).
- Оцените свои сильные и слабые стороны.
- Выберите стек технологий, исходя из своих сильных сторон.
- Создайте свой пользовательский интерфейс для приложения (грубый каркасный карандаш или используйте программное обеспечение)
- Разбейте приложение на более мелкие модули (например, экраны)
- Выберите особенности каждого модуля и расставьте приоритеты
- Найдите ресурсы в Интернете для создания аналогичных функций (YouTube, блоги, переполнение стека и т. Д.)
1. Оцените свои сильные и слабые стороны:
Перед тем, как начать, вы должны знать, в чем ваши сильные и слабые стороны. Я не знал Java, чтобы создать приложение для Android с помощью Java. Так что мне пришлось этому научиться.
У меня было два варианта: либо изучить Java, а затем изучить разработку приложений для Android, либо изучить Java на ходу, изучая разработку приложений для Android. Я выбрал второе.
Потому что у меня не хватило терпения пройти 30–40-часовой курс только по Java для сборки. Но поскольку я работал с C ++, я хорошо разбирался в концепциях ООП.
Итак, я начал бесплатный курс на Udacity от Google по основам разработки приложений для Android. За сертификат пришлось заплатить, но меня это особо не волновало. Я ПРОСТО ХОТЕЛ СОЗДАТЬ ПРИЛОЖЕНИЕ!
Вопросы, которые нужно задать:
1. Какой язык программирования изучать?
2. Какой язык программирования мне следует выучить для создания приложения ‹app_you_want_to_build›?
3. Какие курсы лучше всего изучать ‹programming_language ›?
4. Найдите на Youtube:« Живое кодирование ‹app_you_want_to_build› ».
2. Выберите набор технологий, исходя из ваших сильных сторон.
Здесь вы оцениваете свои силы и оцениваете, что еще нужно для создания полного приложения?
Какой технологический стек требует минимальных усилий для внедрения и не требует значительного обслуживания? (Tbh, я даже не знал, что означает техническое обслуживание в этот момент)
Именно здесь я наткнулся на Firebase, потому что ничего не знал о серверной разработке и о том, как ее написать и развернуть. Firebase позаботилась обо всем с помощью простой реализации SDK.
Итак, я закончил работу над Android, использующим Java для внешнего интерфейса и Firebase для внутреннего интерфейса.
Вопросы, которые нужно задать:
1. Что требуется для сборки ‹app_you_want_to_build›?
2. Какой технический стек используется для сборки ‹app_which_exists›?
3. Как проще всего реализовать ‹ a_feature_in_your_app ›?
3. Создайте пользовательский интерфейс приложения (набросок карандашом или используйте программное обеспечение).
Это та часть, где все начинает становиться реальным и личным.
Вы бы выбрали имя для своего приложения. У вас в голове уже было бы представление, как это будет выглядеть. В основном это будет зависеть от множества приложений, которые вы использовали, или от того, что вы выбрали несколько хороших вещей здесь и там. Все и все в порядке.
Но очень важно заложить фундамент, создав грубые каркасные конструкции или создав макеты экранов в программном обеспечении, таком как Adobe XD или Figma, для использования в будущем.
Я лично использую Adobe XD, потому что считаю его очень простым и быстрым в использовании.
Вопросы, которые нужно задать:
1. Как использовать ‹Adobe XD / Figma / или любое другое программное обеспечение для создания прототипов›?
2. Вдохновляющие идеи для ‹app_you_want_to_build›
3. Как мне создавать каркасы для приложение?
4. Разбейте приложение на более мелкие модули (например, экраны).
Теперь, когда у вас есть макеты каждого экрана, вам нужно будет разделить приложение на несколько основных частей.
Например: в приложении для обоев у меня было всего 3 основных части: загрузка изображений, отображение всех изображений, просмотр одного изображения и его использование.
У каждой из вышеперечисленных функций были разные экраны.
(Только у меня был доступ к загрузке изображений. Я закомментировал кнопку для загрузки, другие могли просматривать все изображения и использовать изображение в качестве обоев. Я сделал это, потому что в приложении не было аутентификации, и еще одна причина заключалась в том, что я этого не сделал есть время, поэтому я отложил аутентификацию Firebase до следующего приложения)
5. Выберите особенности каждого модуля и расставьте приоритеты
Теперь, когда у вас есть разные экраны с разной функциональностью, вам нужно будет определить, какой из экранов будет разработан в первую очередь.
Во многих приложениях есть экран входа в систему и регистрации, поэтому обычно люди начинают с него.
Но в моем случае это была обычная служебная программа для смены обоев. Это не требовало от пользователей входа в систему.
- Моей основной задачей было загрузить изображение. Мне пришлось загрузить его в хранилище Firebase и получить URL-адрес изображения, чтобы сохранить его в БД изображений.
- Затем мне пришлось отобразить эти URL-адреса в таком представлении, как Pinterest (более простое).
- Затем мне пришлось помочь пользователю загрузить изображение, поставить лайк или установить его в качестве обоев.
6. Найдите в Интернете ресурсы для создания аналогичных функций (YouTube, блоги, переполнение стека и т. Д.).
Теперь, когда у вас есть набор приоритетов, вам придется учиться и строить один за другим. Неважно, сколько времени это займет - придерживайтесь этого.
Вам будет сложно понять многие вещи, кривая обучения будет очень крутой, но у вас есть все ресурсы мира, доступные в ваших руках. Вы должны задавать ПРАВИЛЬНЫЕ вопросы, люди будут вам отвечать и помогать.
Смотрите и читайте о различных способах реализации функций. Это очень важно.
Некоторые функции могут занять меньше времени, чем другие, а некоторые могут занять неожиданно больше времени.
Для меня создание Feature 1 и 3 заняло всего 7–10 дней. Но на втором я очень сильно боролся. Я действительно не мог осмыслить адаптеры и то, как recyclerviews работает в Android. Эта часть заняла более 1 месяца. Меня забанили на переполнение стека на неделю за то, что я задавал глупые вопросы 😂
Но послушайте, вот я сегодня пишу этот блог после создания полдюжины опубликованных приложений (которые в основном были моими побочными проектами, чтобы подогреть мое любопытство).
Это цикл, и с опытом вы расширите его и создадите более надежные методы для создания продуктов более высокого качества.
На этом этапе очень важно понять, что вызывает проблему, с которой вы столкнулись. Если вы этого не знаете, у вас есть 2 проблемы, которые нужно исправить.
Вопросы, которые нужно задать:
1. Что вызывает ‹the_problem_you're_facing›?
2. Как исправить ‹the_problem_you_know_the_cause_for› ?
(PS: меня забанили в SO за то, что я задавал вопросы, не разбираясь в причинах этого)
В вышеупомянутом блоге я добавил Вопросы, которые нужно задать - это вопросы, которые вам нужны для поиска в Google, поиска на Youtube, задания вопросов на платформах сообщества, таких как Stackoverflow и Reddit.
Я не прикреплял ссылки на ресурсы, как это делают многие блоги по программированию, потому что вы уникальны и ваш способ обучения будет уникальным. Курс, который сработал для меня, может не подойти вам, и наоборот. Это лучший способ выучить что-либо самостоятельно.
Сообщество разработчиков в Интернете очень обширно !! Просто задайте правильные вопросы!
Это один из самых простых способов, которым я чему-либо научился до сегодняшнего дня. Я разбиваю проблему на более мелкие части, изучаю / решаю каждую из них и снова объединяю полученные знания / решения.
Вот и все, ребята! Надеюсь, вам понравилось! Если вы хотите, чтобы подобные псевдоразборы продуктов создавались для новичков. Обращайтесь ко мне со своими идеями, пытаясь превратить это в серию (Супер Псевдо серию), в которой учащиеся учатся, создавая проекты самостоятельно, а не следуя монотонному 40-часовому онлайн-курсу.
Спасибо за чтение!
Вы можете связаться со мной в Twitter: https://twitter.com/sourav_bz
Немного о первом мобильном приложении (приложении для обоев), которое я создал