11 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Метод Бенджамина Франклина для чтения книг по программированию

Метод Бенджамина Франклина для чтения книг по программированию

Посмотрим правде в глаза, книги по программированию — отстой. Эти общие книги по распределённым системам, науке о данных и так далее — их можно читать бесконечно. Но за редким исключением у практических руководств по языку/фреймворку/СУБД/кексопечке есть нечто общее. Зверюшка на обложке, примеры вычурных приложений, они так легко забываются, так банальны, настолько… ничему не учат.

Думаю, я наконец-то понял, почему они мне не нравятся. И не только потому что они учат навыкам, которые скоро станут устаревшими. Это их педагогический подход в целом. Алгоритм обучения как будто такой: напиши эти программы, где мы говорим всё, что нужно сделать, и теперь ты знаешь этот язык/фреймворк/базу данных/кексопечку. Главное в этих книгах — длинные листинги кода, которые читатель должен воспроизвести. Вот пример из одной из лучших книг этой категории.

Традиционно есть два способа изучить такую страницу:

  1. Ввести каждую строку кода вручную.
  2. Скопипастить код с их сайта, возможно, поиграться и внести небольшие изменения.

В первом случае, как и в лекциях, код переходит со страницы книги на экран читателя, минуя мозг. Второй вариант — это как пытаться собирать автомобили, разбирая ремень безопасности и стереосистему: вы просто играетесь с маленькими кусочками. Оба варианта не подходят для обучения.

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

Мысленные образы

По словам К. Андерса Эрикссона в его книге Peak, экспертиза — это процесс построения ментальных репрезентаций (мысленных образов). Мы можем их увидеть, потому что умы экспертов хранят знания в сжатом виде. Музыкант способен запомнить страницу с мелодией гораздо быстрее, чем страницу со случайными нотами. Опытный шахматист, которому сказали запомнить позицию на доске, сделает это гораздо лучше любителя, но если ошибётся, то перепутает целую группу фигур.

Такое возможно, потому что в музыке и шахматной композиции есть структура, из-за которой они выглядят совершенно иначе, чем страница случайных нот или случайная расстановка фигур. Технически говоря, у них более низкая перплексивность, чем у случайного шума. Таким образом, хотя в английском алфавите 26 букв, Клод Шеннон показал, что информационное содержание английского языка составляет около 1 бита на букву: зная случайное начало абзаца, люди угадывают следующую букву примерно в половине случаев.

Вот почему опытный программист может читать код как художественную литературу, останавливаясь лишь на необычных битах, в то время как новичок пыхтит, читая строчку за строчкой. Именно поэтому умный инструмент автодополнения угадывает длинную последовательность кода из первой пары строк. Более качественные мысленные образы просто облегчают понимание кода.

(Как работают эти мысленные образы? Моя коллега Зенна Таварес утверждает, что это структуры данных, чувствительные к распространению).

Это именно то, чего лишён подход «просто введите код»: ничто не заставляет ваш ум представлять программу как нечто лучшее, чем просто последовательность символов. Тем не менее, если заставить свой ум сделать это, то вы быстрее ухватите суть концепции. Вот идея 200-летней давности, как этого добиться.

Метод Бенджамина Франклина

Не знаю, что более впечатляет: что Бенджамин Франклин стал светилом во всём, от политики до физики, или что для этого ему не понадобились современные методы образования, такие как школы, учителя или StackOverflow. Вместо этого он открыл мощный метод самообучения. Позволю ему сказать самому (или можете прочитать чужой краткий пересказ).

Примерно в это время мне попался в руки разрозненный том «Зрителя». Это был том третий. До сих пор я ещё не видел ни одного. Я купил его, неоднократно перечитывал от корки до корки и был от него в совершенном восхищении. Слог показался мне бесподобным, и я решил, насколько возможно, ему подражать. С этой целью я взял некоторые очерки и кратко записал смысл каждой фразы, затем я отложил их на несколько дней, а потом попытался восстановить текст, не заглядывая в книгу и излагая смысл каждой фразы так же полно и подробно, как в оригинале, для чего я прибегал к таким выражениям, которые мне казались уместными. Затем я сравнил своего «Зрителя» с подлинником, обнаружил некоторые свои ошибки и исправил их. —Бенджамин Франклин. Автобиография

Этот процесс немного похож человеческий вариант автокодировщика в машинном обучении. Автокодировщик представляет собой нейронную сеть, которая пытается воспроизвести на выходе такие же данные, какие были на входе, но с прохождением через промежуточный слой, который слишком мал, чтобы полностью представлять данные. В ходе этой процедуры ему приходится выучить более компактную репрезентацию данных. Здесь в качестве нейронной сети выступает скопление дендронов в вашей голове.
К. Андерс Эрикссон уподобляет метод тому, как художник практикуется, пытаясь сымитировать некоторые известные работы. Математик учится доказывать теоремы самостоятельно, не читая книгу или научную статью — даже если не получится, потом ему будет проще свести доказательство к основному инсайту. Я использовал этот процесс, чтобы лучше понимать графический дизайн; это было похоже на лазерную коррекцию зрения.
Но в отношении книг по программированию основная идея особенно проста, и в то же время эффективна.

Читать еще:  Appguideplugin что это за программа?

Как это работает:

  1. Читайте книгу как обычно. Когда попадётся образец кода, прочитайте его.
  2. Закройте книгу.
  3. Попробуйте набрать код.

Просто, верно? Но попробуйте и посмотрите, как приходится изучать и понимать структуру.
Всё очень похоже на то, что вы делали раньше, только с более качественным обучением.

Метод Бенджамина Франклина: как (действительно) научиться писать

Бенджамин Франклин, возможно, был одним из самых плодовитых людей в американской истории. В своём бестселлере «Бенджамин Франклин: американская жизнь» Уолтер Исааксон пишет о нём:

«(Он был) самым совершенным американцем своей эпохи и оказал определяющее влияние на развитие типа общества, которым стала Америка».

Путь Франклина к богатству и лучшей жизни — это история развития искусства письма. Рождённый в бедности и имевший 16 братьев и сестёр, Франклин бросил школу в возрасте 10 лет. Как же ему удалось преодолеть путь от подростка, не окончившего школу, до самого совершенного американца в истории страны?

Я хотел разобраться.

В поиске методов развития собственного навыка письма я погрузился в автобиографию Франклина. И знаете что я обнаружил? Он с этим не родился.

В возрасте около 30 лет Франклин стал достаточно богат благодаря своим публикациям в Pennsylvania Gazette и особенно в прославленном Poor Richard’s Almanack. Будучи тинейджером, Бенджамин был не особенно хорош в письме. Поставив себе цель научиться писать, но не имея денег на учителей, он решил заниматься самообразованием.

Его автобиография точно описывает как он это сделал.

Большинство сегодняшних советов для людей, которые хотят научиться писать — отстой. Ужасный отстой. Интернет-форумы забиты бесполезной ерундой вроде «просто больше читайте» или «продолжайте пытаться». Советы Франклина, написанные почти 200 лет назад, действительно полезны. Он предлагает специфические, действенные и прямые методы, которые вы можете использовать прямо сейчас, чтобы улучшить свой навык написания текстов.

  1. Анализируй и реконструируй

В 16 лет Бен обнаружил, что не умеет хорошо писать. Точнее его орфография и грамматика были неплохи, но…

«я чувствовал недостаток элегантности в выражении своих мыслей, в методах и ясности изложения»

Решив улучшить ситуацию, Бен начал изучать один из своих любимых журналов, «Зритель»…

«Я взял материалы и, сделав короткие пометки по каждому предложению, отложил их на несколько дней, а затем, без подглядывания в журнал, попытался восстановить написанные снова, стараясь придерживаться изначальной длины и описания, но используя свои слова. Затем я сравнил мой «Зритель» с оригиналом, нашёл свои ошибки и скорректировал их«.

Вау, это полезный совет.

Берем хороший текст и делаем краткие пометки по каждому предложению.

Читать еще:  В чем различия Scala и Java?

Откладываем записи и возвращаемся к ним через несколько дней.

Пытаемся «переписать» фрагмент используя только свои пометки (и делая это своими словами).

Сравниваем с оригиналом и корректируем ошибки.

  1. Перекладываем в поэзию (и возвращаем обратно).

Далее, Франклин освоил мастерство обращения с английским словарём.

Он использовал технику, которую понимают все мастера — от футболистов и математиков до трейдеров Уолл-стрит. Чтобы ускорить обучение, следует добавить искусственные ограничения. Если вы потеряете руки, то научитесь писать ногами.

Франклин обнаружил, что написание стихов может улучшить его мастерство писателя.

» Но оказалось, что мне не хватало то ли запаса слов, то ли сноровки в их употреблении, а это, как я полагал, я бы уже теперь приобрел, если бы продолжал писать стихи; ведь постоянные поиски слов одинакового значения, но различной длины, которые подошли бы под размер, или различного звучания для рифмы принудили бы меня непрерывно искать разнообразия, а кроме того, все эти разнообразные слова закрепились бы у меня в уме и я был бы над ними хозяином».

Но не удовлетворившись одной идеей, он превратил её в выполняемое упражнение:

«Тогда я взял некоторые из напечатанных в «Зрителе» историй и переложил их в стихи; когда же я как следует забыл прозаический оригинал, то принялся переделывать их обратно в прозу».

Возьмите историю и превратите её в поэзию

Подождите несколько дней

Переложите вашу поэму обратно в прозу

Повторяйте это упражнение регулярно и увидите впечатляющий прогресс в своём искусстве писать.

  1. Поймите структуру

Теперь, будучи опытным в создании предложений и подборе слов, Франклин начал совершенствовать общую структуру своего письма.

«Иногда я в беспорядке перетасовывал свои конспективные записи и через несколько недель пытался расположить их наилучшим образом, прежде чем составлять законченные фразы и дописывать очерки. Это должно было научить меня упорядоченному мышлению».

Возьмите свои записи из упражнения 1

Подождите несколько недель

Расположите предложения так хорошо как только можете

Сравните с оригиналом

Это упражнение учит авторов видеть и понимать структуру, а также методам её создания.

  1. Секретная приправа

То, что обозначено выше — достаточно объёмная работа, но есть ещё один ингредиент у формулы успеха Бенджамина Франклина:

«Я мог выделить для этих упражнений и для чтения время только ночью после работы или утром до работы, или по воскресеньям, когда я старался оставаться один в типографии, избегая, насколько возможно, посещать общественное богослужение, чего от меня неуклонно требовал отец, когда я находился на его попечении, — я и до сих пор считал это своей обязанностью, хотя и не мог, как мне казалось, позволить себе тратить на это время».

Франклин действительно утверждает: все его советы бессмысленны без этой секретной приправы. И она заключается в одержимости.

Понравился текст? Поддержите наш проект!

или напрямую на яндекс-кошелёк 410011404335475

Как правильно изучать программирование: метод Франклина

Главная проблема в самообучении — отсутствие системного подхода. Трудно понять, что учить в первую очередь, а что во вторую, и в каком порядке.

Если вам нравится узнавать новое, наводить порядок в хаосе с помощью продуманных инструкций, заставлять технику выполнять команды — значит программирование точно для вас. Чтобы начать путь и избежать сложностей самообучения, достаточно записаться на курс «Профессия веб-разработчик».

Талант программиста можно заметить в человеке, который не написал ни строчки кода. Это человек, который любит головоломки. И первая головоломка — как правильно изучать программирование самостоятельно.

Анатолий Ализар

Пишет про разработку в Skillbox. Работал главным редактором сайта «Хабрахабр», ведет корпоративные блоги.

Самообучение

Путь самоучки — это «метод тыка», общение на форумах, поиск единомышленников, хождение по конференциям и тусовкам-митапам. Это такой путь самурая. Путь подходит не каждому. Поэтому для широких масс выпустили кучу самоучителей — тысячи книг, похожих друг на друга как близнецы.

Самоучитель хорош тем, что быстро погружает в тему. Вы начнете кодить практически в тот день, когда открыли книжку. Но, как говорит преподаватель Джеймс Коппел из Массачусетского технологического института, есть одна проблема: эти книги ничему не учат. Главное там — длинные листинги кода, которые читатель должен воспроизвести.

Читать еще:  Как форматировать флешку в командной строке

Как и в конспектах университетских лекций, «код переходит со страницы книги на экран читателя, минуя мозг». Студенты, которые слушают обычные лекции, на 55% чаще проваливают экзамен, чем те, кто участвовал в обсуждении материала, пусть даже немного.

Метод Франклинa

Чтобы извлечь какую-то пользу из самоучителей или лекций, некоторые специалисты рекомендуют выполнять практические задания особым методом. Его можно назвать методом Франклина.

Этот метод очень прост на практике.

  1. Читать книгу как обычно. Когда попадётся образец кода, прочитать его.
  2. Закрыть книгу.
  3. Попробовать набрать код.
  4. Повторить пункты 1−3.

Суть в том, чтобы усваивать мысленные образы — структуры данных, чувствительные к распространению. В этом случае мозг работает по принципу автокодировщика в машинном обучении.

«Автокодировщик — нейронная сеть, что пытается воспроизвести на выходе такие же данные, как и на входе, но с прохождением через промежуточный слой, который слишком мал, чтобы полностью представлять данные. В ходе этой процедуры он учит более компактную репрезентацию данных. Здесь в качестве нейронной сети выступает скопление дендритов в вашей голове», — пишет Джеймс Коппел.

Лекции и литература

Освоив метод Франклина, ищите информацию, которая бесплатно доступна в интернете в огромном количестве, особенно на английском языке. Вкратце план действий такой:

  1. Выучить английский язык (хотя можно найти немало курсов и на русском языке).
  2. Выбрать программу обучения. Определиться, какое направление программирования наиболее интересно.
  3. Найти учебные материалы по этому предмету.

Образовательные ресурсы с курсами и лекциями

  • MIT OpenCourseWare: обучающие курсы, видеозаписи лекций и семинаров Массачусетского технологического института.
  • KhanAcademy: бесплатные лекции, в том числе по математике и информатике.
  • Coursera: курсы от ведущих западных университетов.
  • Статьи по программированию от Skillbox.

Учебная литература

  • Список бесплатных книг по программированию (англ. яз.).
  • Сборник учебной литературы для программиста.
  • Бесплатные книги по программированию на русском и английском.
  • Подборка бесплатных книг.

Самоучители для начинающих

  • Занимательное программирование. Самоучитель. М. Мозговой.
  • C# для школьников. Учебное пособие. М. Драйер.
  • Программирование на Java для детей, родителей, дедушек и бабушек. Я. Файн.

Самообучение для неподготовленного человека не так эффективно, как отработанные методики передачи знаний и навыков, которые гарантируют качественный результат без особых затрат. Тратить силы и время всё равно придется, но не в таком фанатичном режиме, как у самоучек.

Программа обучения. Системный подход

В отличие от отдельных курсов, системная программа обучения предполагает обучение с нуля до трудоустройства джуниор-разработчиком. В этом случае ученик получает комплексные знания, необходимые для профессиональной работы.

Программа обучения «Профессия веб-разработчик» рассчитана на один год и включает в себя три модуля:

Веб-разработчик

Практический годовой курс для тех, кто хочет стать профессиональным веб-разработчиком, запустить свой интернет-проект или веб-сервис и получить первые заказы на разработку.

JavaScript с нуля

Практический курс для тех, кто хочет научиться основам языка сценариев с индивидуальным наставником, разработать frontend для интерактивного веб-проекта и положить кейс к себе в портфолио.

Базовые навыки PHP

Курс, на котором вы познакомитесь с базовыми понятиями программирования и поймёте главные принципы. Научитесь писать чистый, структурированный, а самое главное — работающий код. Уже после первого курса сделаете свой первый сайт на PHP.

Система платная, но зато она повышает шансы на успешный результат. А результат — это престижная, востребованная и высокооплачиваемая профессия с интересными проектами и перспективами развития.

Заключение

С чего начать учить программирование, каждый решает сам. И каждый выбирает свой путь. Но главное, что после окончания этого пути вам точно не придется просыпаться с рассветом и идти на завод к первому звонку.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов: