Привет! часто начинал учить что-то с нуля и хотел бы поделиться небольшим количеством поинтов, которые, как мне кажется, достаточно эффективные на длинной дистанции обучения. Они хорошо подходят, если уже есть какой-то небольшой опыт в программировании
1) Круто, если ты уже определился с языком, с помощью которого планируешь заработать на хлеб или просто делать крутые шутки. Не редко можно встретить совет о том, что, если ты хочешь вкатиться в программирование, и хочешь, например, писать на плюсах, то учи пайтон, потому что он проще, а затем уже плюсы. Достаточно непонятный для меня поинт и, как мне кажется, такого стоит избегать.
2) Хорошие книги имба, но осилить хотя бы ее часть, когда ты еще не знаком с языком, достаточно трудно, так как в большинстве случаев одна глава, хоть и глубоко описывает какую-то часть языка, занимает продолжительное время. И да, ты получишь качественные знания, но применить их будет очень трудно. Как бы круто мы не разбирались в выделении памяти на разные вещи и корнер кейсы работы с ней, программу только за счет этого мы вряд ли получим.
3) Не только воровать, но и работать, как художник. Первое, что я бы сделал, начиная снова изучать что-то заново - прошелся по всем (или по большей части) аспектам этой технологии или языка, чтобы иметь картину более менее полную от начала и до конца. Тут хорошо подходят курсы, найти хороший труда не составит, думаю. Не обязательно даже повторять все примеры, на этом этапе цель - загрузить в голову общее представление. Чтобы, когда ты начнешь углубляться, ты уже примерно знал, что есть вот такая фича, выглядит она примерно вот так, и погуглить ее детальнее труда не составит.
4) После получения общей картины самое время приступить к практике. Тут все как обычно, главное, чтобы проект нравился или представлял какую-то ценность для вас, еще круче, если он пересекается с конечной целью. Тут мы закрепляем базу и углубляемся в трудные для нас моменты на прошлых этапах.
5) Продолжаем развитие книгами, литкодом, лекциями, туториалами, джемами и всем, чем угодно.
тлдр:
1) Берем сразу то, что хотим учить.
2) Книги имба, но не для начала.
3) Получить общее представление о технологии или языке. Не стоит доводить до идеала какой-то отдельный аспект и только после этого переходить к следующему. Охватываем большие куски, нанося общий объем на холст, а затем добавляем детали, а не рисуем конечный результат сразу.
4) Приступаем к обучения на проекте(ах)
5) Продолжаем развитие
Опять же, это не строгий план, той же практикой можно заниматься и при получении общего представления. Также, если ваша сфера очень комплексная, как, например, разработка игр, то может быть несколько итераций на каждом из пунктов - это ок.
Например:
- прогоняем шарпы
- также могут быть подпункты, например, многопоточка, работа с памятью, архитектура и паттерны, вроде солида, кисса, dry и все остальные
- работу с сетью
- sql
- т.д
Буду рад выслушать замечания и предложения, так как сам стараюсь придерживаться данный поинтов.
И, конечно, успехов в обучении!