Проблема
Мысль «Как перейти от руководств по программированию к созданию приложений?» является чрезвычайно распространенным явлением и свидетельствует о том, что кто-то застрял в обучающем аду. Туториальный ад — это когда кто-то делает туториалы один за другим, и когда они, наконец, хотят что-то самостоятельно построить, они все еще понятия не имеют, с чего начать и что делать.
Мы все были там, и если вы учитесь кодировать в первый раз, это обычное дело.
Решение
Ключ к переходу от учебных пособий по программированию к созданию приложений — перестать делать учебные пособия. Какие? Но как я узнаю, как что-то делать? Да, я знаю, выслушайте меня.
Вместо этого вы начинаете самостоятельно решать интересующие вас проблемы, которые изначально очень маленькие и простые, без руководства. С каждым решенным вопросом вы постепенно приобретаете больше опыта, навыков и мастерства в устранении неполадок. Это подготовит вас к решению следующей более сложной и крупной проблемы.
В конечном счете, вы дойдете до того, что сможете самостоятельно создавать приложение без учебника. Я считаю, что это предпочтительнее, чем пытаться создать приложение сразу после изучения языка программирования и быть перегруженным работой.
2 причины против большого количества туториалов:
- Через неделю вы вряд ли что-то вспомните. Часто я заканчивал просмотр 6-часового урока и все еще не знал, как построить то, что построил инструктор, не пересматривая видео. Проходит неделя, эти 6 часов можно было бы лучше потратить на сон, так как я уже все забыл. Я считаю, что это верно, даже если вы выходите за рамки простого копирования кода инструктора построчно, меняя/добавляя функции по пути.
- Вы подражаете стилю кодирования и предубеждениям инструктора вместо того, чтобы развивать свой собственный. Методы, шаблоны и выбор методов, библиотек, фреймворков и т. д., которые вы видели, могут лучше всего работать для них в контексте этого конкретного руководства, но они могут быть не лучшими для вас в проекте, над которым вы хотите работать позже.
2 причины для решения проблем без учебника:
- Учит самостоятельно учиться только тому, что необходимо. Вспомните, как вы вбивали себе в голову учебник для школьного экзамена только для того, чтобы экзамен проверял 1% того, что вы выучили, а вскоре вы забыли 100%. Нет больше этого!
- Любой разработчик скажет вам, что он научился значительно большему, решая интересующие его проблемы, чем пройдя десятки часов курсов (и они получили гораздо больше удовольствия и чувства достижения).
5 шагов для перехода от учебников по программированию к созданию приложений
1. Изучите основы
Прежде чем приступить к решению каких-либо проблем, вы должны как минимум изучить следующие основные элементы любого языка программирования:
- Настройка среды программирования/разработки и редактора кода.
- Типы данных (например, int, string)
- Переменные
- Ключевые слова (например, const, new, break)
- Логические и арифметические операторы (И, ИЛИ, НЕ, +,-, *, %)
- Если еще условия
- Петли
- Функции
- Входные и выходные операции.
- Для объектно-ориентированных языков учить классы было бы полезно, но не обязательно.
2. Решайте небольшие общие проблемы, чтобы испачкать руки
Здесь начинается настоящее обучение, веселье и вызов. Ниже я составил список популярных веб-сайтов, которые предлагают большие банки вопросов для самых популярных языков.
Общий список вопросов:
Подходит для начинающих:
Сложнее:
Играть в игры (одиночные и многопользовательские), решая задачи:
Воспользуйтесь одним из указанных выше веб-сайтов или найдите аналогичный веб-сайт и медленно устраняйте проблемы в вашей локальной среде разработки. С проблемой любого размера и сложности вы должны быть в состоянии:
- Попробуйте решить ее сначала самостоятельно.
- Если вы не можете, просмотрите следующие способы, которые помогут решить проблему (я обычно ищу в этом порядке); Google, Stack Overflow, официальная документация, YouTube, спросить друга/коллегу и т. д. Первые несколько страниц результатов, которые появляются после поиска в Google «Как…», «Почему…», скорее всего, поможет вам найти ответ.
- Если вы получили сообщение об ошибке, прочитав сообщения об ошибках в редакторе кода сверху вниз, вы узнаете, что не так (например, отсутствует точка с запятой в строке 42). Эти сообщения об ошибках называются трассировкой стека.
- Если вы не можете исправить ошибку, просто прочитав трассировку стека, попробуйте скопировать и вставить верхнее сообщение об ошибке в Google, чтобы найти исправление или подсказки по исправлению.
3. Обсудите практические проблемы, которые нужно решить
В конце концов, вы устанете решать общие проблемы и захотите начать создавать полезные вещи. Когда это произойдет, составьте список проблем, которые у вас есть/могут возникнуть, и возможный способ их решения с помощью кода.
Например, начало вашего списка идей может быть таким:
- Мне нужно развлекать молодых членов семьи, я мог бы сделать это, создав текстовую игру выбери свое собственное приключение.
- Я изо всех сил пытаюсь преобразовать кулинарные измерения (например, унции в столовые ложки), я мог бы построить преобразователь кулинарных измерений.
- У меня проблемы с запоминанием важных дат, таких как дни рождения, я мог бы написать программу, которая отправляет мне электронное письмо утром в день важной даты. Программа может выполняться ежедневно с использованием автоматического планировщика (например, планировщика задач Windows, заданий cron Linux и т. д.), который будет отправлять электронное письмо только в том случае, если сегодняшняя дата является определенной датой.
Эти проекты идеально подходят для начинающих, поскольку их можно создавать, используя только один язык и редактор кода. По сути, это приложения с терминалом, выступающим в качестве внешнего интерфейса, которого достаточно для обеспечения функций пользовательского ввода и вывода для многих основных программ.
Соображения для вашей идеи:
- Начните свой список с того, что вы считаете самым простым, а затем постепенно увеличивайте сложность.
- Идея может заключаться в том, чтобы просто воспроизвести существующее решение и, при желании, добавить небольшую настройку или новую функцию (например, создать приложение-калькулятор с дополнительными специализированными функциями).
- Цель должна заключаться в том, чтобы выбросить много мозгов, а об осуществимости побеспокоиться позже, когда вы начнете работать со списком.
- Не ограничивайте свои идеи теми, у кого терминальный интерфейс, будьте смелыми и пишите то, что вы хотите сделать. Если для этого требуется надлежащий интерфейс/графический интерфейс пользователя, база данных и/или решение для веб-хостинга, которым можно поделиться с другими, запишите его.
- Даже если для этого требуются специальные знания в области машинного обучения (например, приложение для музыкальных рекомендаций), глубокого обучения (например, приложение для распознавания лиц) и блокчейна (например, приложение для совместного использования P2P), запишите это. Когда вы доберетесь до него, вы сможете узнать, что вам нужно для его создания.
- Все эксперты в предметной области начинали на вашей нынешней должности со значительно меньшим количеством общедоступной документации, инструментов и примеров кода, которые помогут им учиться. Если они это сделали, у вас нет оправдания даже не пытаться.
- Более сложные идеи должны соответствовать вашим долгосрочным целям кодирования (например, веб-сайт, чтобы стать веб-разработчиком, приложение для музыкальных рекомендаций, чтобы стать разработчиком ИИ и т. д.).
4. Защитите себя с помощью Git
Git — самая популярная и эффективная система контроля версий (VCS) с открытым исходным кодом, доступная в настоящее время.
VCS может сохранять запись о текущем состоянии исходного кода, например точку сохранения в игре или резервную копию компьютерного файла. В случае ошибки разработчики могут вернуть свой код к последней сохраненной рабочей записи. Они также могут сравнивать различия между предыдущим и текущим кодом, чтобы помочь исправить ошибки.
Настройте git внутри ВСЕХ каталогов вашего проекта ДО начала кодирования, чтобы избежать потери времени и боли, когда (а не если) обнаруживаются ошибки. Не рискуйте (серьезно). Используйте git.
5. Начните программировать
Для первой идеи в вашем списке:
- Настройте среду разработки.
- Откройте редактор кода.
- Создайте папку проекта.
- Настройте git внутри.
- Составьте примерный план того, как вы будете писать программу.
- Код прочь!
- При возникновении ошибок воспользуйтесь следующими способами устранения неполадок: Google, Stack Overflow, официальная документация, YouTube, спросите коллегу/друга и т. д.
Выводы
Есть бесконечное количество проблем, которые вы можете решить с помощью кода, даже если вы знаете только основы.
Так как же перейти от руководств по программированию к созданию приложений? Это просто вопрос:
- Изучение основ
- Решение крошечных общих проблем, чтобы испачкать руки
- Мозговой штурм практических задач для решения.
- Защитите себя с помощью Git.
- Начало!
Для справки, я не против когда-либо проводить обучающие программы/курсы. Я считаю, что это последнее средство, если вы все еще не знаете, что делать ПОСЛЕ выполнения всех вышеперечисленных 5 шагов.
Меня больше всего беспокоит то, что я думаю, что чрезмерная зависимость от них приводит к зависимости от них во всем.
Исходный пост, опубликованный на сайте anxiouswebdev.com 13 сентября 2020 г.