Як вивчити Python простим способом (і не таким, як я)

Питон повинен бути однією з найпростіших для вивчення мов програмування. Знаючи, що змусило мене почуватися досить погано, коли вперше я намагався і не зумів цього навчитися. Ще гірше було вдруге, коли я зазнав невдачі.

Але виявляється - і я дізнався про це з третьої спроби - що Python може бути по-справжньому доступним навіть для таких гуманітарних некодерів, як я. Вам просто потрібно підійти до цього правильно.

Як мені не вдалося вивчити Python ... вперше

Вперше я намагався вивчити Python майже десять років тому. Я не був точно впевнений, що я хочу з цим зробити - можливо, автоматизувати якусь свою роботу, можливо, написати невеличку програму. Це просто здавалось навичкою, яку було б непогано знати.

Тож я взяв копію безкоштовного PDF-файлу Learn Python the Hard Way і почав намагатися його обробити.

Першою стіною, яку я вдарив, було налаштування 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, і я не сумніваюся, що ви зможете досягти своїх цілей, не маючи невдачі і двічі кинути дорогу!