Как да науча Python по лесния начин (а не по начина, по който го направих)

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

Но се оказва - и аз научих това при третия опит - че Python може да бъде наистина достъпен, дори и за хуманитарни некодери като мен. Просто трябва да подходите по правилния начин.

Как се провалих при изучаването на Python ... за първи път

За първи път се опитах да науча Python преди почти десетилетие. Не бях наистина сигурен какво искам да направя с него - може би да автоматизирам част от работата си, може би да напиша малко приложение. Просто изглеждаше като умение, което би било добре да се знае.

Затова взех копие на безплатния PDF Learn the Python по трудния начин и започнах да се опитвам да работя чрез него.

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

Исках да се науча как да пиша код на Python и първата ми стъпка беше да прекарам пет часа в борба с командния ред? Бях демотивиран още преди да започна.

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

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

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

Как се провалих при изучаването на Python ... втори път

Няколко години по-късно опитах отново. По това време работех като журналист и се заинтересувах от журналистика на данни и по-специално от изчистване на уеб.

Знаех, че ще имам нужда от умения за кодиране на Python, затова намерих онлайн платформа за образование - няма да кажа коя - и започнах начален курс по Python.

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

Опитните програмисти вероятно вече могат да предположат какво се е случило след това: когато отидох да опитам да напиша Python код за себе си, не можах да направя нищо.

Гледайки някой друг код във видеоклипове и слушайки техните обяснения, бях си помислил, че се уча как да го направя за себе си. И тестовете с многократен избор и попълване на празни места, на които бях на 100%, изглежда потвърждаваха, че съм схванал материала.

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

Също така беше трудно да остана мотивиран, защото работех върху неща, които не изглеждаха уместни.

Исках да се науча на уеб изстъргване. Но вместо това се мъчех да разбера видео лекции за концепцията на обектно-ориентираното програмиране (ООП). Какво общо имаше всичко това с моите цели? Не бях сигурен и това улесни отказа. Отново.

Защо не успях

В ретроспекция не е твърде трудно да разбера защо се провалих. Първият път големите ми грешки бяха:

  1. Няма ясна цел . Защо учих Python? Наистина не знаех. Това наистина улеснява отказването, когато става трудно - което винаги ще стане, рано или късно.
  2. Твърде голямо предизвикателство отпред . Рано или късно би трябвало да разбера как да вкарам Python в моята система, но да настроя това с нулев релевантен опит, преди да напиша толкова, колкото print(‘Hello world!’)беше рецепта за разочарование и провал.

Когато научавате нещо предизвикателно, особено като начинаещ, имате нужда от ранни печалби, които да ви помогнат да повярвате, че наистина можете да го направите.

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

Вторият път избегнах тези грешки, но вместо това направих няколко нови:

  1. Не се учех чрез правене. Гледането на видеоклипове и преминаването на тестове ме караше да се чувствам така, сякаш мога да кодирам, но всъщност не кодирах. Когато се опитах (и не успях ) да напиша код, беше още по-разочароващо, защото мислех, че вече го разбирам. И тъй като трябваше да направя куп кликвания във всяко видео, за да прегледам различни секции и да се науча отново.
  2. Имах ясна цел, но не и ясен път към нея. Знаех, че искам да се занимавам с журналистика на данни и изрязване на уеб, но взех общ начален курс на Python. Това означаваше, че уча уроци, които може да са били от решаващо значение за разработването на софтуер, но не са толкова важни за журналистиката на данните. Често ми беше трудно да свържа основите, които изучавах в клас, с това, което всъщност исках да правя с кода.

През всичко това правех и друга голяма психическа грешка. Мислех да науча Python с много черно-бели термини. Или бях „научил Python“ - цял Python - или не.

Това направи перспективата за учене наистина плашеща. Винаги, когато ударях предизвикателство, това се влошаваше от факта, че мислех за някакъв митичен Python „финална линия“, който все още беше много, много далеч.

Това е погрешно, разбира се. Подобно на говоримия език, Python (и други езици за програмиране) не са нещо, което някога наистина завършвате да изучавате. И като говорим език, всъщност не е нужно да владеете добре Python, за да свършите нещата.

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

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

Но това е урок, който научих само случайно.

Как всъщност научих (някои) Python

До 2018 г. се бях отказал от изучаването на Python. Бях опитал два пъти и два пъти се провалих! Но след това се наех в Dataquest, компания, която преподава онлайн умения за наука за данни - включително програмиране на Python.

Новата ми работа не изискваше никакви умения за кодиране, но прецених, че все пак трябва да опитам платформата за обучение. Трябваше да разбера нашия продукт и това, което нашите ученици изпитваха. Може би, помислих си, дори бих могъл да се науча достатъчно, за да направя някакво изстъргване в мрежата, както бях планирал преди.

И така, с известно притеснение създадох акаунт и стартирах нашия курс на курса по Python for Data Science.

За моя изненада се почувствах забавно и лесно. И за моя по-голяма изненада изобщо не отне много време, преди да почувствам, че мога да изградя някои проекти сам.

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

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

Това се случи, защото, повече случайно, отколкото по дизайн, бях попаднал на начин за изучаване на Python, който избягваше почти всички грешки, които бях направил с предишните си усилия:

  • Влязох с ясна цел - да науча достатъчно Python, за да мога да извърша малко работа с данни, за да мога по-добре да разбера нашите клиенти.
  • Избягвах изцяло предизвикателството да инсталирам Python изцяло, защото Dataquest ви позволява да научите и пишете код направо в прозореца на браузъра.
  • Учих се да кодирам, като всъщност кодирам, вместо да гледам някой друг код.
  • Учех по път, който е проектиран специално за данните на Python, така че всичко, което изучавах, и всяко упражнение, което направих, се чувстваше подходящо.
  • Просто се опитвах да науча това, от което се нуждаех, а не се опитвах да науча целия Python.

Как да улесним изучаването на Python

Поглеждайки назад към грешките си и след това към случайния ми успех, мисля, че това се свежда до няколко прости вземания:

Първо, влезте с цел. Защо искате да научите Python? Какво конкретно искате да изградите с него? Ако нямате добър отговор на този въпрос, ще бъде наистина трудно да останете мотивирани.

Второ, намерете начин да се научите, като правите нещото, което всъщност искате да направите. Ако можете да намерите целеви ресурс за обучение, като платформа, която учи Python специално за разработчици на игри, това е страхотно. Но общите учебни ресурси могат да работят твърде дълго, докато прилагате наученото с някои начинаещи проекти на Python, докато учите.

Вашето обучение за кодиране трябва да включва всъщност писане на код и трябва да е всъщност писане на код, който прави нещо, което ви интересува.

Трето, избягвайте първоначалното предизвикателство да инсталирате Python и различните му библиотеки във вашата локална система.

Вече има много онлайн платформи, които ви позволяват да пишете и стартирате код в уеб браузър, или можете да пишете и стартирате код в бележник на Google Colab или подобна платформа. Просто се опитайте да улесните започването си възможно най-лесно. По-късно можете да се притеснявате за вашата локална настройка.

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

Вместо това се опитайте да научите как да използвате Python за изграждане на проста версия на вашия целеви проект или една част от този проект. След това научете как да използвате Python, за да направите този проект по-голям или как да преминете към следващата стъпка.

Разделете големите задачи на по-малки парчета и съсредоточете целите си върху изграждането на нещо, така че да получите психологическата награда от изграждането на нещо, когато го завършите.

Следвайте тези указания, независимо от вашата лична причина за изучаване на Python и не се съмнявам, че ще успеете да постигнете целите си, без да се налага да се проваляте и да напускате два пъти по пътя!