Как "научиться учиться" программированию

Тема в разделе "Свободное общение", создана пользователем Denis1989, 4 окт 2019.

  1. 4 окт 2019
    #1
    Denis1989
    Denis1989 ЧКЧлен клуба
    Всем привет!

    Вопрос касательно всех языков.
    Для себя нашел Scott Young для понимания предмета
    Jack Kinsella и его JANKI METHOD для помещения в долговременную память
    TheBrain + Anki: Ankification 2.0 так же для помещения в оперативку. Рекомендую вписаться!


    Какие вы можете выделить принципы, методы, технологии для максимально быстрого и качественного усвоения языка программирования?

    Делитесь мнениями, опытом, ссылками, авторами )
     
    2 пользователям это понравилось.
  2. 4 окт 2019
    #2
    ZibukaZavr
    ZibukaZavr ЧКЧлен клуба
    Наличие движущей силы!
    Если человека за руку ведёт мечта, он горы перевернет.
     
    1 человеку нравится это.
  3. 5 окт 2019
    #3
    FrontEnd-NodeJS
    FrontEnd-NodeJS ЧКЧлен клуба
    @Denis1989, привет! Можешь что-нибудь рассказать об этом Janki-методе, ты его лично пробовал? Какие есть результаты, сколько занимаешься уже по этому методу?

    Интересует как он может помочь в освоении программирования, ведь в программировании не на запоминание идут задачи в основном, хотя и это тоже нужно, но больше нужно уметь логику выстаивать(писать циклы, условия, различные логические конструкции), нужно хорошо понимать как работают функции, как их правильно описывать, уметь писать в объектно-ориентированном стиле.

    Тут скорее чистая практика нужна, писать код пробовать, смотреть как он работает, стараться вникнуть, на ошибках учиться, опять писать код и снова так же. Такая долгая сложная тема, только со временем приходит понимание, когда, скажем, "отложилось/записалось" и пришло более-менее видение этого процесса. Это как в принципе обучение любой новой профессии, только в программировании все более трудоемко и требует больших сил и времени.

    Еще бы было просто отлично, если найдете личного наставника, который уже долгое время в этой теме, такого senior-разработчика.
    Но лично мне кажется, что будет сложно такого человека найти, который будет возиться с начинающим, уделять ему достаточно времени, сидеть и разбирать все ошибки, подробно объяснять как и что тут работает и почему так. Должен быть такой человек ответственный, да и еще уметь донести информацию, чтобы понятно было новичку.

    Могу сказать, что проходил, к примеру, интенсивы различные в интернете по веб-разработке, то там большая редкость встретить наставника нормального, в основном из-под палки работают, объясняют плохо, на связь часто не выходят, просто так время отбывают.
    Да и сами посудите, чему научишься на интенсиве за 1,5 - 2 месяца, по 4 часа в неделю занятий, а если еще и наставник попадётся никакой, то вобщем зря потраченные: силы, деньги, время, там хорошо если тегов (в веб) несколько запомните и какие-то принципы ухватите и то без ясного понимания вещей, просто по-верхам.
    Вот и получается, что такие обучающие интенсивы по несколько кругов нужно проходить по пол года или год и периодически оплачивая, пока хоть чему-то научишься более-менее и придёт понимание. Другой вопрос потом еще работу найти новичку без практики тоже еще поискать придётся, ведь хочется и деньги те "отбить" потраченные на обучение и зарабатывать нормально начать на приобретённых знаниях.
     
    1 человеку нравится это.
  4. 22 окт 2019
    #4
    Denis1989
    Denis1989 ЧКЧлен клуба
    Для мотивации извне думаю записаться на обучающие курсы. Но наслышан о преподавателях-халтурщиках. Сами уроки состоят из теории.

    Подскажите кто в курсе... Существует ли такое ..твое участие в реальном проекте в группе ? И уже походу выполнения своей роли в проекте ты обучаешься.. То есть всю теорию ты дома изучаешь по материалам и готовишься исключительно к практическим урокам.
     
    1 человеку нравится это.
  5. 22 окт 2019
    #5
    ZibukaZavr
    ZibukaZavr ЧКЧлен клуба
    Ну и получишь только то, что делал. Теорию нужно закреплять практикой, а обширную теорию - обширной практикой...
     
    1 человеку нравится это.
  6. 2 ноя 2019
    #6
    Denis1989
    Denis1989 ЧКЧлен клуба
    Так я же написал что не курсы а именно участие в проекте ... (практика в смысле)
     
  7. 2 ноя 2019
    #7
    Denis1989
    Denis1989 ЧКЧлен клуба
    Процесс изучения программирования (вообщем как и любой другой технический предмет) рассматриваю в трёх вариантах :

    а) понять мысль полностью (какую либо ..на микро - и макро- уровне)... Решается техниками Скотта Янга, Ягодкина

    б) заносить мысль в долговременную память..Решается методом Janki и TheBrain + Anki: Ankification 2.0 (спасибо Improver за подсказку)

    в) решение задач (практика, проект, лаба...тип задач -простые и сложные). ( благодаря решению задач мы лучше понимаем мысль, запоминаем мысль ..но это не самоцель.. главное СПОСОБНОСТЬ решать более сложные задачи, находить решения) ........какая тут методология? как решать задачи? ( ведь понимание "мысли" есть , она занесена в долговременную память даже..)

    "Надо писать код ..пишите код и практикуйтесь..решайте задачи" .. как это реализовать на практике ? Какие принципы, техники,методики ? Если в первых двух пунктах всё понятно ( есть авторы, которые разжевали то как быть здесь ?) .. Особняком стоит вопрос мотивации решать "чужие задачи и тесты для тренировки" (как мотивировать ?)

    Подскажите.. Книги, авторы, статьи по навыку решения задач (простых, тестовых, средней сложности задач ... )
     
  8. 2 ноя 2019
    #8
    ZibukaZavr
    ZibukaZavr ЧКЧлен клуба
    Посмотри на такую последовательность:
    - ух ты, оказывается на этом япе можно крутить циклы...
    - ой, а я теперь умею извлекать данные из таблиц, в т.ч. с исп циклов...
    - потоки? что может быть проще...
    - какие же убогие эти субд, напишу свою...
    - безопасность никсов железобетонная? не смешите меня, моя новая ось...
    - на сдачу дали акции спейсХ, отдам бомжам...
     
    2 пользователям это понравилось.
  9. 7 ноя 2019
    #9
    improver
    improver ПартнерПартнер (А)
    насчет "полностью" - это, похоже, никак не решается, в принципе (и вариант "встретив в жизни - смогу распознать и применить" можно считать достаточным)
    "занести" - это вдь лишь одна часть задачи (лучше всего методологически и технически проработана). А еще ведь есть задача "вынести" (если устарело) и "перезанести" (исправить ущербную / устаревшую технику)
    тут, по-хорошему, нужно бы перечитать учебник "Системное мышление-2019" Левенчука (лучше бы, конечно, целиком, но непосредственно относящийся к теме обсуждения раздел - стр.42 "Стадии обучения мышлению"). Вот только в твоем случае, вместо (или в дополнение к) системного мышления - будет вычислительное или алгоритмическое. В результате, если внимательно прочесть рекомендуемый кусок - должно возникнуть понимание разницы между тренажерными задачами, задачами из жизни, и (учебными) проектами, как минимум. Ну и модель "спираль развития компетентности" (это где "неосознанная некомпетентность ... - - ... неосознанная компетентность") тоже неплоха в плане отслеживания прогресса обучения.
    ну и отдельным разделом - (пере)использование практик изучения иностранных языков для освоения языков программирования (Anki ведь изначально ровно для этого - для изучения иностранных языков - создавалась...). Можно искать по блогу Левенчука "полиполиглотность" и "как зажечь мастерство".
    ну, да - вопрос мотивации стоит, и не только для обозначенного тобой варианта упражнений/тестов. Если не влезать в глубокое разбирательство твоих индивидуальных особенностей (хотя влезать, конечно, нужно - и, как минимум, провести ретроспективу "к чему у меня есть / была мотивация" (из аналогичных, пусть частично, проектов/задач) - то я бы смотрел в сторону геймификации (и там, для программирования, существуют даже решения "из коробки" - в смысле, игры и SaaS-ресурсы для игрового обучения программированию)
    P.S.: если кто забыл, учебник Левенчука (для тех, кому 40р. на него жалко) лежит бесплатно в его Telegram-группе
     
    2 пользователям это понравилось.