Найти тему
Спроси Таню

Как ты училась на разработчика? Что именно (курсы/книги/видео) помогло больше всего?

Оглавление
Тут я уже полгода как разработчик :)
Тут я уже полгода как разработчик :)

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

Помогло все и сразу. Расскажу на примерах из тестового задания. Будет понятно даже не программистам :)
Нет инструмента лучше или хуже, есть задачи/вопросы, которые необходимо решить в данный момент.

Откуда начать?

Знаю, что многие теряются с какой темы начинать: как устроен компьютер / алгоритмы и системы данных / язык программирования, расскажу как было у меня.
Еще работая на своей обычной работе я решила начать что-то изучать, началось все с десятка часов на ютубе про становление программистом и выбор языка программирования. Плюс, у меня было несколько друзей, которые уже работали программистами и могли что-то сказать про свой технологический стек.
Так выбор пал на бэкенд и Java - классический типизированный язык, популярный, распространенный, ну просто идеальная база. Купила книжку, начала читать, параллельно
смотрела курс на ютубе для начинающих. Книжку открывала мало, по непонятным вопросам курса. Спойлер: курс офигенный!!! Самый лучший из тех, что мне удалось посмотреть, подробно, с каверзными вопросами, популярными проблемами - максимально душная подача материала простым языком. Я вела тетрадку, записывала все, изредка делала домашние задания из курса, шла строго по темам - классы, массивы, списки и т.д.
50% информации игнорировалось моим мозгом, как оказалось. Все, что было связано с памятью, ее управлением, какой-то абстракцией - терялось в лабиринтах извилин и в знания не трансформировалось.
Так прошел месяц-два, я уволилась с работы (с одной лишь только верой в свою идею) и начала учиться полный день. Так прошла неделя и я узнала, что у нас в городе есть компания, которая может принять на стажировку, если выполнить тестовое задание. Тестовое оказалось на C# (фронт RazorPages или React, на выбор). Я выбрала RazorPages, т.к. друзья мне пояснили, что с Реактом придется учить целый новый язык и фреймворк, а это звучало нереальным - учить два языка одновременно. К моей большой радости C# оооочень похож на Java. А в части той крупицы знаний, что была у меня в голове - они были одинаковые 😁
К сожалению, знание массивов, интерфейсов и классов не дает никакого понимания о том, как написать настоящее приложение,
началась паника.

Первое приложение

Именно отсюда начинается мой настоящий путь обучения и именно такая дорога (но не все нижеописанные инструменты) оптимальная, как мне кажется. Задание вкратце: написать приложение для учета книг в библиотеке, есть роли - пользователь и администратор библиотеки, пользователи бронируют и забирают книги, администратор вносит новые книги.
Первым делом я пошла читать про базы данных, тестовое требовало работы с PostgreSQL - страшно, непонятно, но таблички красивые. Тут я поняла, где хранятся данные в приложениях 😊 (но не
как).
Написала первые классы - Book и User. Все. Что с ними делать, как выдать книгу, где описывать всю работу - оставалось непонятным. Так я приняла решение найти репетитора. Взяла первого понравившегося из списка на каком-то сайте, вроде опыт есть, вроде технологии как в тестовом. Это было лучшее решение в жизни) уже на первом звонке он объяснил мне, что первым делом приложение надо связать с базой данных, настроить правила хранения сущностей (книги и пользователя). Я узнала, как создаются RazorPages, что такое контроллеры, как записывать методы для взаимодействия с сущностями (вроде тогда мы использовали сервисы, хотя по требованию нужно было использовать Mediatr). Узнала, что существуют еще модели представления (бизнес-модели), такие классы, с которыми взаимодействуют на фронте. Понимания зачем так - у меня еще не было, но надо значит надо. Все это он показывал мне на своем pet-проекте, моя задача была все показанное повторить самой.

Первая база данных

Установить PostgreSQL на комп заняло 5-10 минут. Класс, открываешь - там таблички - красиво. Задача номер 1 - заставить приложение создать таблички в базе по твоим написанным классам (Book, User и т.д), ну и вообще наладить "связь". Казалось бы, дело на 5 минут. Помню как шла по гайду на сайте https://metanit.com/sharp/. Там все как по маслу. У меня же появилась первая в жизни ошибка. Ошибки страшные, текста на пол страницы, как их читать и разбирать - непонятно. Гуглю - попадаю на stackoverflow. Какие-то решения предлагают, начинаю применять те, что полегче и понятнее - не работает. Ошибка изменилась, текст другой. Гуглю ее и так по кругу. Так проходит 3-е суток. Я спала по 4 часа, потому что не могла спать, когда не решена проблема, бежала за комп и не вставала по 15 часов. Под конец третьих суток, умываясь перед сном и почти плача от беспомощности своей и тупости, ко мне приходит первое в жизни озарение (их будет еще сотни потом, но я еще не знаю о том, что работать можно не только за компьютером). Я лечу к компьютеру, исправляю и ОНО РАБОТАЕТ!!!!!!!!!! К сожалению, я забыла в чем именно было дело, но возможно в какой-то лишней точке с запятой в строке подключения. 😊 Так я испытала свое первое удовлетворение от нового вида деятельности: сама придумала проблему - сама решила.
Во время решения мне приходилось смотреть десятки видео, читать кучу статей, форумов, отрывки из учебников - и так было всегда по каждой новой проблемной или не очень теме. Так я поняла, что не каждое видео тебе поможет, не каждая статья описывает конкретно твой случай и даже не с каждой можно провести аналогию. Именно поэтому так много шуток о том, что самый полезный навык программирования - умение гуглить. И это не шутки 😁

Но не база данных уничтожила мои нервные клетки и прибавила немного седых волос, были случаи и похуже. 😁

Если у вас были такие ошибки в начале пути - обязательно делитесь ими, это помогает начинающим верить в свои силы и не сдаваться. Можно в комментариях :)