Всем привет! Вопрос касательно всех языков. Для себя нашел Scott Young для понимания предмета Jack Kinsella и его JANKI METHOD для помещения в долговременную память TheBrain + Anki: Ankification 2.0 так же для помещения в оперативку. Рекомендую вписаться! Какие вы можете выделить принципы, методы, технологии для максимально быстрого и качественного усвоения языка программирования? Делитесь мнениями, опытом, ссылками, авторами )
@Denis1989, привет! Можешь что-нибудь рассказать об этом Janki-методе, ты его лично пробовал? Какие есть результаты, сколько занимаешься уже по этому методу? Интересует как он может помочь в освоении программирования, ведь в программировании не на запоминание идут задачи в основном, хотя и это тоже нужно, но больше нужно уметь логику выстаивать(писать циклы, условия, различные логические конструкции), нужно хорошо понимать как работают функции, как их правильно описывать, уметь писать в объектно-ориентированном стиле. Тут скорее чистая практика нужна, писать код пробовать, смотреть как он работает, стараться вникнуть, на ошибках учиться, опять писать код и снова так же. Такая долгая сложная тема, только со временем приходит понимание, когда, скажем, "отложилось/записалось" и пришло более-менее видение этого процесса. Это как в принципе обучение любой новой профессии, только в программировании все более трудоемко и требует больших сил и времени. Еще бы было просто отлично, если найдете личного наставника, который уже долгое время в этой теме, такого senior-разработчика. Но лично мне кажется, что будет сложно такого человека найти, который будет возиться с начинающим, уделять ему достаточно времени, сидеть и разбирать все ошибки, подробно объяснять как и что тут работает и почему так. Должен быть такой человек ответственный, да и еще уметь донести информацию, чтобы понятно было новичку. Могу сказать, что проходил, к примеру, интенсивы различные в интернете по веб-разработке, то там большая редкость встретить наставника нормального, в основном из-под палки работают, объясняют плохо, на связь часто не выходят, просто так время отбывают. Да и сами посудите, чему научишься на интенсиве за 1,5 - 2 месяца, по 4 часа в неделю занятий, а если еще и наставник попадётся никакой, то вобщем зря потраченные: силы, деньги, время, там хорошо если тегов (в веб) несколько запомните и какие-то принципы ухватите и то без ясного понимания вещей, просто по-верхам. Вот и получается, что такие обучающие интенсивы по несколько кругов нужно проходить по пол года или год и периодически оплачивая, пока хоть чему-то научишься более-менее и придёт понимание. Другой вопрос потом еще работу найти новичку без практики тоже еще поискать придётся, ведь хочется и деньги те "отбить" потраченные на обучение и зарабатывать нормально начать на приобретённых знаниях.
Для мотивации извне думаю записаться на обучающие курсы. Но наслышан о преподавателях-халтурщиках. Сами уроки состоят из теории. Подскажите кто в курсе... Существует ли такое ..твое участие в реальном проекте в группе ? И уже походу выполнения своей роли в проекте ты обучаешься.. То есть всю теорию ты дома изучаешь по материалам и готовишься исключительно к практическим урокам.
Ну и получишь только то, что делал. Теорию нужно закреплять практикой, а обширную теорию - обширной практикой...
Процесс изучения программирования (вообщем как и любой другой технический предмет) рассматриваю в трёх вариантах : а) понять мысль полностью (какую либо ..на микро - и макро- уровне)... Решается техниками Скотта Янга, Ягодкина б) заносить мысль в долговременную память..Решается методом Janki и TheBrain + Anki: Ankification 2.0 (спасибо Improver за подсказку) в) решение задач (практика, проект, лаба...тип задач -простые и сложные). ( благодаря решению задач мы лучше понимаем мысль, запоминаем мысль ..но это не самоцель.. главное СПОСОБНОСТЬ решать более сложные задачи, находить решения) ........какая тут методология? как решать задачи? ( ведь понимание "мысли" есть , она занесена в долговременную память даже..) "Надо писать код ..пишите код и практикуйтесь..решайте задачи" .. как это реализовать на практике ? Какие принципы, техники,методики ? Если в первых двух пунктах всё понятно ( есть авторы, которые разжевали то как быть здесь ?) .. Особняком стоит вопрос мотивации решать "чужие задачи и тесты для тренировки" (как мотивировать ?) Подскажите.. Книги, авторы, статьи по навыку решения задач (простых, тестовых, средней сложности задач ... )
Посмотри на такую последовательность: - ух ты, оказывается на этом япе можно крутить циклы... - ой, а я теперь умею извлекать данные из таблиц, в т.ч. с исп циклов... - потоки? что может быть проще... - какие же убогие эти субд, напишу свою... - безопасность никсов железобетонная? не смешите меня, моя новая ось... - на сдачу дали акции спейсХ, отдам бомжам...
насчет "полностью" - это, похоже, никак не решается, в принципе (и вариант "встретив в жизни - смогу распознать и применить" можно считать достаточным) "занести" - это вдь лишь одна часть задачи (лучше всего методологически и технически проработана). А еще ведь есть задача "вынести" (если устарело) и "перезанести" (исправить ущербную / устаревшую технику) тут, по-хорошему, нужно бы перечитать учебник "Системное мышление-2019" Левенчука (лучше бы, конечно, целиком, но непосредственно относящийся к теме обсуждения раздел - стр.42 "Стадии обучения мышлению"). Вот только в твоем случае, вместо (или в дополнение к) системного мышления - будет вычислительное или алгоритмическое. В результате, если внимательно прочесть рекомендуемый кусок - должно возникнуть понимание разницы между тренажерными задачами, задачами из жизни, и (учебными) проектами, как минимум. Ну и модель "спираль развития компетентности" (это где "неосознанная некомпетентность ... - - ... неосознанная компетентность") тоже неплоха в плане отслеживания прогресса обучения. ну и отдельным разделом - (пере)использование практик изучения иностранных языков для освоения языков программирования (Anki ведь изначально ровно для этого - для изучения иностранных языков - создавалась...). Можно искать по блогу Левенчука "полиполиглотность" и "как зажечь мастерство". ну, да - вопрос мотивации стоит, и не только для обозначенного тобой варианта упражнений/тестов. Если не влезать в глубокое разбирательство твоих индивидуальных особенностей (хотя влезать, конечно, нужно - и, как минимум, провести ретроспективу "к чему у меня есть / была мотивация" (из аналогичных, пусть частично, проектов/задач) - то я бы смотрел в сторону геймификации (и там, для программирования, существуют даже решения "из коробки" - в смысле, игры и SaaS-ресурсы для игрового обучения программированию) P.S.: если кто забыл, учебник Левенчука (для тех, кому 40р. на него жалко) лежит бесплатно в его Telegram-группе