Пункт 1/5. Изучение программирования с помощью базовых онлайн-курсов по программированию

XXI век ознаменовался эпохой цифрового обучения. С появлением платформ онлайн-обучения, т.е. Udemy, Coursera, Udacity и т. д., изучение программирования и получение сертификатов стало проще, чем когда-либо прежде.

Благодаря этим курсам вы изучите основы, начиная с печати «Hello World» и заканчивая изучением типов данных, например. различать разницу между int и float, используя условные операторы if-else и т. д.

Волны за волнами испытаний, с каждым часом вы видите, как увеличивается ваш процент выполнения. Какими бы сложными ни были задачи, вы каким-то образом умудрялись выстоять, поломать себе мозг и выполнить задания, поставленные вашим куратором…

Однажды вы нажали кнопку отправки и заметили, что процент выполнения составляет 100%. В следующий момент появилось уведомление, и Бум, сертификация, которую вы преследовали несколько недель, наконец-то ваша! Глядя на Сертификат с вашим именем, вы почувствовали, как в вас нарастает гордое чувство удовлетворения и достижений. Вы думаете, что все эти усилия того стоят, и вы, наконец, один из Разработчиков!

Пункт 2/5: Сладкие сны должны закончиться!

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

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

На самом деле, чем сложнее функция/чем дальше вы пытаетесь продвинуться как разработчик, количество ресурсов становится все меньше и больше (в денежном выражении). Внезапно у вас возникло внутреннее ощущение, что, возможно, разработку веб-приложения или мобильного приложения следует оставить профессионалам (разработчикам).

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

Параграф 3/5: Готовы к синей таблетке (правды)?

Чего тебе не хватает? Почему вы не можете создать работающий код, в котором нет ошибок? Почему фрагмент кода не может склеиться? Значит, ваш онлайн-курс — это пустая трата времени?

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

Можем ли мы требовать от себя слишком многого по сравнению с онлайн-курсами продолжительностью от одного до трех месяцев, которые мы проходили?

Кроме того, область ИТ очень широка и развивается очень быстро, особенно с сообществом открытого исходного кода. Возьмем, к примеру, Android-разработку: вначале ее можно было кодировать только на Java. Однако со временем появляются новые альтернативы, такие как Kotlin (для Native) и React Native, Ionic и Flutter (для кроссплатформенности). Есть даже попытки разрешить разработку Android с помощью python. И мы даже не говорим о разных фреймворках и обновлениях внутри соответствующих языков.

Так много вариантов для чего-то (андроид), что существует уже десять или два десятилетия. Вы можете себе представить варианты веб-разработки, которые существуют уже гораздо дольше, пару десятков лет!

Следовательно, возможно ли, чтобы онлайн-курс охватил все? Кроме того, разумно ли складывать все яйца в одну корзину, углубляться и специализироваться в одной области, когда есть риск, что она устареет?

Часть 4/5. Истинная природа разработчика

Настоящий разработчик должен научиться быть легко адаптируемым и иметь возможность развивать навыки и мыслительный процесс, чтобы справляться с неизвестным. Когда они сталкиваются с ошибками, они обращаются к официальной документации, просматривают Интернет, например. переполнение стека, официальный форум, youtube, руководства по решениям. Если они не могут найти решения в Интернете, они найдут способы обратиться за помощью к сообществу, например. телеграмма, группы facebook, переполнение стека.

Настоящий разработчик также учится работать с умом. Они знают, как использовать существующий код, например. github и использовать инструменты, облегчающие их работу.

Часть 5/5. Делать значит впитывать!

При этом, только работая над проектами Passion, вы могли восстать из пепла и стать настоящим младшим разработчиком. Следовательно, первым проектом, над которым вы должны работать, должно быть приложение с внутренним бэкендом. Я создал менеджер паролей для хранения не важного пароля. Приложение можно найти в магазине Google Play, ссылка ниже:

https://play.google.com/store/apps/details?id=com.mom.rigmiklos.notimptpass&hl=en_SG

Сделав это, вы должны перейти к новому проекту или расширить существующий проект, чтобы иметь облачную серверную часть и использовать API. Что может быть лучше проекта Passion, чем приложение для поиска магазинов, которое использует Google Map API и использует облако в качестве серверной части для магазинов.

Я работаю над учебником для приложения поиска магазинов и впоследствии опубликую ссылку здесь. Следите за ссылкой!