Это может быть больше, чем просто полезное хобби

Если у вас кризис среднего возраста, вас только что уволили с банковской работы или вы переживаете непростой развод и пересматриваете свой жизненный выбор, тогда программирование может быть для вас вариантом, но я говорю не об этом. Моя целевая аудитория для этой статьи - люди, которые хотят расширить свой кругозор, повысить свою продуктивность и бросить вызов себе, выйдя из своей зоны комфорта на неизведанные территории. Те, кто осознал повсеместное распространение смартфонов и Интернета и очарован постоянно растущей ролью этих чудес в нашей повседневной жизни. Если вы, «непрофессиональный программист», хотите взглянуть и понять очевидную ерунду, которая заставляет эти машины работать, и научитесь приручать этих изощренных тварей, написав свое собственное ерунду, то читайте дальше ...

Что учить?

Существует множество технологий, связанных с сетью и мобильными устройствами, которым вы можете научиться как непрофессионал. Речь пойдет о разработке мобильных приложений. Однако все это применимо и к веб-разработке. Разработка приложений - традиционно для смартфонов и все чаще для Интернета - это хорошо зарекомендовавшая себя область информатики, сложность которой требует дополнительных подспециализаций, таких как дизайн пользовательского интерфейса (UI), разработка внешнего интерфейса, внутренняя разработка, управление базами данных. облачные вычисления, сети и т. д. Хотя это может показаться сложным, и превращение в полномасштабное приложение или веб-разработчик требует больших усилий, для того, чтобы начать работу, требуется совсем немного времени.

Но действительно ли вам это нужно?

Нет, не знаешь. Большинство из нас не понимают механики двигателя автомобиля, но у нас нет проблем с вождением автомобиля (если вы умеете водить). Вы можете довольно продуктивно использовать смартфон и эффективно использовать сотни (если не тысячи) приложений, не зная о мельчайших деталях разработки приложений. То же самое и с сетью.

Так что тогда я должен остановиться, верно?

Конечно, нет. Хотя любопытство могло убить кошку, удовлетворение вернуло ее. И мало что в мире приносит столько удовольствия, как изучение чего-то нового. Помимо интеллектуального удовлетворения, чистая перспектива юзабилити также дает весомые преимущества:

  • Не помешает иметь возможность разрабатывать собственные приложения или поддерживать собственный веб-сайт. Как частному лицу или малому бизнесу трудно иметь эффективное онлайн-присутствие, не имея приличного веб-сайта, для чего обычно требуется приобретение услуг веб-фирмы / фирмы, занимающейся разработкой программного обеспечения. И это стоит денег. Небольшие вложения (в основном времени и усилий), которые вы делаете сегодня в изучении веб-разработки, могут иметь большое значение и сэкономить вам немало денег. Приложения - это настоящее f̵u̵t̵u̵r̵e̵. То, что было правдой в отношении веб-сайтов вчера, верно и в отношении приложений сегодня.
  • Для некоторых разработка приложений также может быть дополнительным источником дохода. Более того, наличие одного или двух дополнительных навыков в вашем резюме может дать вам преимущество, которое вы так отчаянно ищете в жестких соревнованиях.
  • Время от времени нам нужно отвлечься, чтобы освежить сознание и сломать монотонность повседневной работы. Здоровое хобби может во многом помочь в решении этой проблемы. Разработка и программирование приложений могут быть только для тех, чья основная работа - что-то другое. С точки зрения личного развития такие новые начинания могут расширить ваше мировоззрение и добавить новое измерение в ваш образ мышления и решение проблем.

С чего начать

Это определенно один из самых сложных шагов. Существует множество вариантов разработки приложений и даже больше для веб-разработки. Появление таких технологий, как гибридные приложения, прогрессивные веб-приложения и кроссплатформенная разработка, стерло грань между двумя платформами (мобильными приложениями и Интернетом). Может возникнуть соблазн выбрать одну из всеобъемлющих веб-фреймворков, которая позволяет создавать приложения для Android, iOS и Интернета с использованием единой базы кода, но я бы не советовал использовать этот подход. Я настоятельно рекомендую вам начать с изучения нативных приложений, особенно с телефонами. Таким образом, вы лучше поймете нюансы платформы, и вам станет проще разрабатывать что-то еще. Я начал с создания приложений для Android с помощью языка программирования Java, используя официальные инструменты разработки для Android. Хотя кроссплатформенные фреймворки не были так популярны пять лет назад, когда я только начинал, как сейчас, я все же настоятельно рекомендовал бы этот метод вместо кроссплатформенного фреймворка, например, Flutter или React Native.

В качестве примера и для простоты я буду говорить о разработке под Android в оставшейся части этого поста.

С чего начать: книги или видеоуроки.

Тебе подойдет любой из них. Все сводится к личным предпочтениям. Опять же, исходя из личного опыта, я бы посоветовал вам сначала начать с книги для начинающих, чтобы получить представление о различных терминах и концепциях. Доступно много хороших. Некоторые примеры для Android: Программирование для Android для начинающих Джона Хортона или выбор заголовка из серии «Для чайников» или «Сначала с головой». Если вам больше нравятся движущиеся картинки, чем книги, у Udemy есть ряд хороших видеокурсов, многие из которых доступны по цене менее 20 долларов (в продаже). Сначала проверьте превью, а затем решите, какой из них вам подходит. Независимо от того, выберете ли вы книгу или видеокурс, уловка состоит в том, чтобы придерживаться этого и завершить поставленную задачу. Поверьте, это сложно, чем кажется.

Подождите ... Разве я не должен сначала изучить Java (или Swift / Javascript)?

Да, вам следует или, скорее, вы должны. Но вот кое-что: хотя перед бегом определенно рекомендуется пройтись пешком, вам не нужно совершенствовать искусство ходьбы, прежде чем пытаться бегать. Научитесь правильно делать несколько шагов, а затем попробуйте сделать небольшой прыжок. Тратить слишком много времени только на совершенствование основ, вероятно, нецелесообразно. Помимо метафор, концепции программирования довольно абстрактны, и им нужно время, чтобы их усвоить. Сначала изучите основы, такие как синтаксис языка, типы данных и функции, и примените все, что вы научились использовать, при создании приложений для Android. Несколько продвинутые концепции и семантика языка программирования лучше усваиваются по мере того, как вы переходите к разработке более сложного программного обеспечения и по мере необходимости. То же самое верно для iOS и языка программирования Swift. Мой совет: изучите основы, быстро создайте что-нибудь, а затем узнайте больше. Вспенить, промыть, повторить. Минимальное приложение, которое показывает только часть текста на экране, более вдохновляет и мотивирует, чем застревание в понимании некоторых сложных концепций Java, таких как интерфейсы и алгоритмы данных. Многие хорошие книги по Android для новичков включают в себя учебник по Java, хотя и версию, более ориентированную на разработку Android. Если вам нужно что-то более существенное, подойдет Java: руководство для начинающих Херба Шильдта. Теперь, когда вы начали: не скучайте. Помните, что вы занимаетесь этим как хобби (по крайней мере, пока). Обучение - это упражнение, которое лучше всего делать, когда оно нравится.

Выбери свой яд и придерживайся его.

Распространенная ошибка новичков - прыгать в поисках чего-то более блестящего. Легко искать альтернативы, когда дела идут тяжело, но поверьте мне, что бы вы ни перескочили, будет так же сложно, если не больше. Если вы выбрали Java и Android в качестве поля битвы, сосредоточьтесь на этом. Через месяц вы действительно чего-то добились бы. В противном случае, через два месяца вы бы переходили с java на Ionic, на Xamarin, на React Native и черт знает что, не добившись чего-либо существенного и оставаясь таким же невежественным, как и прежде.

Если с первого раза у вас ничего не получится, попробуйте в другой раз.

Не устанавливайте строгие сроки. Если вас беспокоит какая-то проблема, сделайте глубокий вдох, расслабьтесь и расслабьтесь, вместо того, чтобы ругать монитор и выставлять плохую репутацию программированию. Выгуливайте собаку, прыгайте с парашютом или что-нибудь еще. Вы не знаете, что может спровоцировать ваш разум. Проблема, которую невозможно решить за один раз, в дальнейшем может оказаться до смешного простым решением.

Интернет - ваш лучший друг, но не паразитируйте.

Когда вы сталкиваетесь с проблемой (я использую «когда», а не «если», потому что разработка программного обеспечения - это решение проблемы, независимо от того, являетесь ли вы новичком или опытным профессионалом), не стесняйтесь обращаться за помощью. Используйте Google или перейдите прямо в Stackoverflow. Есть очень большая вероятность, что кто-то другой столкнулся бы с подобной проблемой, и другой человек в Интернете помог бы ему с решением. В маловероятном сценарии, когда вы не найдете то, что ищете, задайте вопрос себе на Stackoverflow, и люди будут более чем готовы помочь. Уловка обращения за помощью в Интернете заключается в том, чтобы не быть паразитом и ограничить свое творчество. Не ищите готовых решений. Найдите подсказки, в которых вы застряли, и попытайтесь использовать их самостоятельно.

Я врач-ординатор и заинтересовался программированием, когда учился в медицинской школе. На данный момент я разработал и опубликовал три приложения для Android, простую систему управления больницей для своего отделения и программное обеспечение для управления клиникой для моих старших коллег. Программирование было для меня чудесно полезным хобби, которое очень помогло мне нарушить монотонность больничной рутины. Я ни в коем случае не являюсь экспертом в программировании и считаю себя новичком, и цель этой статьи - помочь новичкам стать новичками.

И я надеюсь, что вы найдете свое новое начинание таким же полезным и радостным, как и я. Удачного кодирования.