🤔 Как развеять страх перед программированием и начать что-то делать?
Привет! На связи Рин, Java-разработчик Red Collar. Заметила, что многие так и оставляют свою мечту стать программистом или кем-нибудь еще, потому что понятия не имеют, как подступиться к процессу обучения, чтобы и толк был, и тошнить не начало.
Большие подробные книги, туториалы на 9000 часов на ютубе — это все, конечно, классно, но какова эффективность такого способа обучения? Спойлер: 2%, если параллельно не отрабатывать теорию на практике.
Мозгу лень обрабатывать и запоминать информацию, которую он искренне считает бесполезной и занудной. Сделать информацию для ленивой серой желешки первостепенной по важности поможет острая необходимость. Примерно та, из-за которой ищут песню в интернете, помня всего два слова из ее текста. Что человек получает, когда ее все же находит? Прилив радости. Эти приливы и являются топливом качественного процесса обучения.
В процессе обучения таковой необходимостью для мозга становится задача. Можно взять себя же на слабо и искать пути решения задачи. А пока идет поиск, изучается теория. Например, для того, чтобы написать простецкий калькулятор для консоли, нужно знать числовые типы данных, математические операторы и методы, потоки ввода-вывода и базовый синтаксис языка. И когда калькулятор будет закончен, в голове надолго останутся эти знания еще и отработанные на практике. И мозг будет доволен от того, что задача решена, а желанный дофамин получен.
Так же работает с любой другой задачей всякой степени сложности. Поэтому не нужно бояться ставить перед собой, на первый взгляд, непосильные задачи. Их тоже можно декомпозировать на задачи простые, разобраться в том, как решать каждую из них, и так решить одну большую. Но не нужно сразу набрасываться на сложные задачи. Хотите написать бэкенд? Тоже декомпозируйте, двигайтесь от сложного к простому. 😎
Рассмотрим в качестве примера бэкенд на Spring Boot.
🤯 Каков план действий, если вообще ничего не понятно?
Базовое приложение на Spring Boot, собранное через Spring Initializr, не содержит в себе ничего, кроме класса, благодаря которому оно стартует. Вроде бы ничего интересного, на первый взгляд. А почему оно вообще стартует как веб-приложение? Что за аннотации висят над этим классом? А что за файл pom.xml и зачем он нужен? Такие вопросы — это маленькие подзадачи задачи под названием «Что это и как оно работает?». Да, это тоже практическая задача, но исследовательского характера.
В процессе увлеченного поиска ответов на эти вопросы произойдет знакомство с инструментами сборки проектов, основными принципами работы фреймворка, назначением конфигурационного файла с расширением .yml или .properties, что лежит в папке с тестами и зачем они вообще нужны, какие бывают. Таким образом, просто узнавая обо всех неизвестных деталях простецкого приложения можно познакомиться с довольно большим пластом знаний о структуре и работе бэкенд-приложения.
Дальше — задача написать простецкое CRUD-приложение с одной сущностью. Даже если сначала заняться копипастой официального туториала, то его потом нужно изучить. Разобраться с понятием контроллера, HTTP-методами, назначением слоя сервисов и магией репозиториев. Потом по аналогии написать свой CRUD и радоваться жизни, придумать пару фич, которых не было в туториале, прикрутить свою БД, написать кастомный запрос… В общем, на что будет способна фантазия.
💻 Так, со временем накопится не только портфолио где-нибудь на гитхабе, но и понимание того, что делать и зачем. Такой алгоритм обучения работает для любого стека технологий, и не только в программировании. Главное в этом деле - регулярность и дисциплина.
Post #174
1.46K
- 👍 12
- 🔥 4