Изучаването на език е едно и също, независимо дали е естествен или изкуствен.

Най-голямата ми любов винаги е бил езикът. Като дете научих немски, после испански. Научих сам японски и мандарин. След това санскрит, старогръцки, суахили, сисвати, малайски, бахаса мелаю. В аспирантурата научих чешки.

Не мисля, че имам някакъв специален гений за езика. Това е нещо, което всеки може да научи и приложи. И това ми позволява да науча езиците за програмиране дори по-бързо, отколкото научавам естествените.

Python като втори език

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

За да посрещна предизвикателството на постоянното и бързо самоусъвършенстване, използвах моята история с език:

Обичайте предмета си, потопете се в него и създайте богат контекст, за да приложите новите си знания.

любов

Помислете за момент, в който сте се влюбили. Обектът на вашите чувства беше най-очарователното нещо във вашия свят. Искахте да знаете всяка подробност за тях; нахлуха в мислите ти; не можеше да спреш да бликаш за тях на всеки, който би слушал.

Бях увлечен от всеки език, който някога съм изучавал. Обичам всеки неправилен идиом и странност. Запомнянето на неправилни глаголи и изучаването на синтактични структури не е досадно, защото се случва в процеса на откриване.

Има повече красота в флага на компилатора на c или проследяването на Python, отколкото бихте могли да си представите, освен ако не си позволите да се влюбите в самия език.

Позволете си да обичате с дива изоставеност.

Потапяне

Преструвайте се, че знаете какво правите, преди да разберете какво правите.

Методът „Свободно за три месеца“ за изучаване на езици предлага някои от следните техники за бързо „хакване на езици“:

  • Мислете на целевия си език
  • Слушайте музика и сравнете версията на песен на английски и целевия език
  • Научете културни подробности
  • Google за непознат речник, когато е необходимо/когато се чудите
  • Създайте мнемоника
  • Планирайте уроци по говорене
  • Направете листове за измама с речник
  • Четете новини на целевия език и се опитайте да разберете същността им параграф по параграф

Не можете да съпоставите всичко това буквално с програмирането, но можете да се доближите до:

  • Помислете как бихте превели алгоритми в код
  • Сравнете програма на език, който знаете, със същата програма на този, който искате да научите
  • Научете „културни“ подробности като историята на езика и общността за неговото развитие
  • Google за неизвестен синтаксис, когато е необходимо/когато се чудите
  • Създайте мнемоника
  • Сдвоете програма с приятел, който знае езика
  • Направете измамни листове за функции и общи модели
  • Прочетете изходния код на целевия език и се опитайте да разберете същността му функция по функция

Когато започнете, преди да сте готови, ще напишете много код, който не работи съвсем. Но грешките не са нещо, от което да се страхувате; те са нещо за прегръщане. Учим се по-бързо от грешките си, отколкото от това да оправяме нещата — толкова бързо, че заобикаля съзнателната мисъл. Съобщенията за грешка не трябва да бъдат ругаеми - те са мигновена обратна връзка за обучение за подсилване.

Контекст

„Контекстът, а не запомнянето е ключът към ученето“ и запазването на знанията. Няма да е достатъчно просто да прочетете урок в Java, след което никога да не програмирате нищо в него.

Направете проект. Не е голям; нещо глупаво и малко. Имате ли нужда от генератор на произволни числа в c? Bash скрипт за почистване на вашите директории? Програма на Python, която изтегля PDF файлове вместо вас? Ако направите мини-проект на езика, който изучавате, ще преминете от пасивно усвояване към активно повторно комбиниране в нови, полезни изрази.

Точно както се научи да говориш.

Цитати:

„Защо ни е трудно да учим езици“, Габриел Уайнер

„Проучване разкрива защо се учим от грешките“, Live Science,„Jeanna Bryner“

Ресурси:

„История и еволюция на езиците за програмиране“ — учебник за диахронното развитие на компютърните езици

Ситето на Ератостен във всеки език за програмиране — реализации на известния алгоритъм на много различни езици

Сдвояване на програма с мен — ресурси за дистанционно програмиране на двойки

OpenHack — среща за програмисти, които да работят заедно върху всичко