Найкращий спосіб вивчення Python
Сьогодні Python як ніколи популярний, використовується де тільки можливо, починаючи від бекенд серверів, закінчуючи розробкою фронтенд ігор і так далі. Python по праву вважається мовою загального призначення і швидко стає мастхевим інструментом в арсеналі будь-якого програміста, що поважає себе.
Але Python популярний не тільки тому, що він популярний. Його легко вчити, читається він як псевдо-код і дуже динамічний. Однак вивчення нової мови може виявитися досить проблематичним заняттям, знайшовши правильне місце для навчання і людей від яких можна дізнатися нову інформацію, ви вирішите половину поставленого завдання. Наш путівник допоможе вам у цьому. Це буде ваш надійний план, який полегшить вивчення Python, зробить процес навчання веселим та цікавим.
Завдання 1: почніть з основ
На момент написання цієї статті існує дві основні версії Python: Python 2.7 і Python 3.2. Яку версію ви виберете для вивчення не так важливо, оскільки відмінності будуть мінімальними - особливо для новачка. Але вам варто знати, що Python 2 підтримує більше сторонніх бібліотек, в той час як Python 3 в основному фокусується на розробниках, які працюють над покращенням мови. Вибір залишається за вами, якщо код з будь-якого туторіалу працює не так, як задумано, переконайтеся, що ви використовуєте відповідну версію Python з цього туторіалу.
Wikibooks Python туторіал для тих хто не знайомий із програмуванням
Wikibooks завжди був надійним джерелом для вивчення чогось нового і Python тут не є винятком. Тут ви знайдете чудову серію посібників, яка допоможе вам краще орієнтуватися в Python. Тут не буде безлічі технологічних термінів і ви можете приступити до написання коду досить швидко, що, безсумнівно, виявиться корисним досвідом. Тому ярекомендую цей сайт як відповідне місце, з якого варто почати вашу подорож у мову Python.
Офіційний Python туторіал
Ви не знайдете кращого джерела інформації, ніж офіційна документація на сайті python.org. Тим не менш, якщо ви хочете почати відразу звідси, це може виявитися поганою ідеєю.
Для початківців найпомітнішою відмінністю Python 2 від Python 3 швидше за все буде можливість у Python 2 використовувати print без дужок. Дужки в Python 3 є обов'язковими, на цьому мабуть все.
Завдання 2: туторіали та скринкасти
Python туторіал від TheNewBoston
Nettuts+ Python з нуля
Непоганим введенням у мову Python буде курс Giles Lavelle. Як і у випадку з серією від The New Boston, Lavelle має на увазі, що у вас немає досвіду в програмуванні.
Якщо ви хочете побачити реальні програми або хочете зрозуміти веб-розробку на Python, ця серія підійде, як не можна до речі.
У цьому скринкасті ви створите динамічний веб-сайт з нуля, використовуючи Python фреймворк Django.
Скринкаст по Python від ShowMeDo
StackOverflow відомий не тільки новачками, помилками та проблемами.
Створити Python бота, який може грати у веб-ігри
У цьому туторіалі ви познайомитеся зі специфічним матеріалом, я не рекомендую його абсолютним новачкам. Однак я думаю, його варто згадати. У цьому уроці, Chris Kiehl покаже, як створити дуже цікавого Python бота, який буде грати в просту гру для вас. Туторіал покаже вам силу Python; він може стати в нагоді для вирішення повсякденних завдань, які можна застосувати для керування вашим комп'ютером.
Завдання 3: безкоштовні електронні книги

Learn Python the Hard Way
Незважаючи на назву книги - "Не простий підхід вивчення Python",вивчення Python все також є простим заняттям—як це має бути! У цій книзі, Zed A. Shaw дає вам повний і докладний посібник, із завданнями та прикладами за допомогою яких ви можете перевірити свої сили в програмуванні. Книга написана неформальною мовою, проте детально описує безліч подробиць, тим самим у вас не виникне труднощів при її прочитанні і результат не змусить себе чекати.
Think Python: Як на Think Like a Computer Scientist
Ви не знайдете кращого джерела інформації, ніж офіційна документація python.org.
Як говорить підзаголовок, "Думати, як програміст", тут ви знайдете багато теоретичного матеріалу. Можливо новачки можуть засмутитися і книга здасться їм складною, але повірте мені, вона варта того, щоб її прочитали, тут ви знайдете інформацію про теорію алгоритмів і концепції високого рівня.
Invent With Python
Якщо вас більше цікавить практична частина, створення своєї гри, буде справді корисним досвідом! У цій книзі, Al Sweigart припускає, що ви не маєте впевненого знання Python і допомагає створити вам гру. Незважаючи на те, що ця книга про розробку ігор, вона також цілком підійде повним новачкам. Пізніше у цій статті я згадав схожу книгу, проте для неї потрібне впевнене володіння Python. Якщо ви відчуваєте, що добре знаєте мову, інша книга виявиться більш інформативним джерелом для вас.
The Django Book
У тому випадку, якщо хочете навчитися веб-розробці на Python, найімовірніше ви будете використовувати фреймворк Django. Ви можете бути не знайомі з фреймворком Django, проте повинні добре розбиратися в Python для читання цієї книги. Інформація в ній незамінна для будь-якого веб-розробника-початківця.
Книги з Python
Якщовсіх вищезгаданих книг недостатньо або вас цікавить специфічна тема, перейдіть за цим посиланням. Діти з python.org створили великий список книг, відсортували їх за складністю та тематикою.
Завдання 4: ознайомтеся зі StackOverflow
Тисячі розробників зазнали тих самих проблем, з якими вам доведеться зіткнутися віч-на-віч. StackOverflow чудове джерело інформації, де будь-який розробник може знайти вирішення своєї проблеми. Коли ви зіткнетеся з черговим багом і у вас не буде ідей, як його виправити, шукайте відповідь на StackOverflow. Швидше за все там вже є інформація, як інші люди вирішують аналогічне завдання.
Але StackOverflow відомий не лише новачками, помилками та проблемами; на цьому сайті повно дуже розумних людей, готових допомогти - навчайтеся у них!
Більшості хитрощів і порад, які ви тут знайдете, немає в жодному з туторіалів, вони будуть дуже корисні просунутим користувачам або користувачеві з середнім рівнем знань Python.
Завдання 5: проект Euler

Завдання починаються з простих, щоб перевірити ваш рівень знань мови, після чого складність зростатиме, згодом з'являться завдання, які не зможе вирішити, навіть досвідчений програміст. Зрештою, вам доведеться знайти найефективніший алгоритм - на той випадок, якщо у вас немає часу, чекати кілька годин на обчислення правильної відповіді.
Ніщо не зможе зробити вас чудовим програмістом швидше, ніж пошук найефективнішого вирішення завдань на Project Euler.
Коли вам вдасться отримати вирішення чергової проблеми, для вас відкриється сторінка форуму, де люди обговорюють рішення та ідеї один з одним щодо цього завдання. Більшість цих рішень будуть мовою Python. Це той самий ключ, який допоможезначно покращити можливості програмування. Якщо хтось знайшов швидше рішення, не бійтеся витратити час і проаналізуйте його, тим самим ви зможете зрозуміти які моменти варто переробити. З часом, ви почнете розуміти всі хитрощі і навик володіння мовою Python покращити, результат не змусить себе чекати.
На додаток до цього, є кілька інформативних блогів, де можна знайти вирішення завдань з Python на Project Euler. Якщо застрягли на якомусь завданні, нічого страшного якщо ви ознайомитеся з рішенням інших розробників, найголовніше навчитися чогось нового від них. Ось два мої улюблені блоги:
Завдання 6: створіть гру
Крім створення своєї гри, лише кілька речей можуть приносити задоволення.
Крім створення своєї гри, лише кілька речей можуть приносити задоволення. Це може виявитися досить крутою кривою під час процесу навчання, але це точно того варте. PyGame найвідоміша бібліотека для розробки ігор на Python, і вам не важко знайти безкоштовні туторіали про неї. Нижче найкращі з них.
Офіційна PyGame документація
Як і у випадку з туторіалами Python, розробники PyGame зробили документацію - введення. У матеріалі повно технічної термінології, якщо хочете приступити відразу до розробки ігор. Однак, як завжди, документація для розробників буде найкращим джерелом інформації; тому я й рекомендую цей сайт.
Invent With Python (With PyGame)
Туторіал з розробки комп'ютерних ігор TheNewBoston
Це черговий плейлист від The New Boston. Відмінне введення в PyGame. Знову ж таки можна бути незнайомим з цією бібліотекою, читаючи книгу ви почнете розбиратися в PyGame, проте на відміну від InventWithPython ви не робитиметеповноцінну гру.
Завдання 7: вивчіть популярні бібліотеки та інструменти
Python мова загального призначення, з якою можна зробити майже все, що завгодно; у нашому розпорядженні нескінченний набір бібліотек та інструментів. Нижче список найпопулярніших.
Якщо у вас виникне бажання зібрати інформацію з HTML сторінок. BeautifulSoup зробить все необхідне і заощадить величезну кількість часу.
Виконуючи дію, які вимагають багато ресурсів процесора і вам здається, що Python споживає ці ресурси, PyPy прийде на допомогу. PyPy є альтернативним компілятором для Python, який може прискорити обчислення.
NumPy + SciPy
Ці бібліотеки зазвичай використовуються разом (SciPy залежить від NumPy). Якщо вам доведеться виконати роботу пов'язану з математичними обчисленнями або науковими дослідженнями, ці бібліотеки стануть чудовим помічником. NumPy та SciPy розширюють математичні функції та можливості Python, внаслідок чого значно прискорять вирішення поставлених завдань.
BeautifulSoup
BeautifulSoup просто приголомшливий. Збір інформації з HTML сторінок може виявитися досить стомлюючим заняттям і на вас чекає багато розчарування. BeautifulSoup зробить все за вас і заощадить величезну кількість часу. Дуже рекомендую цю бібліотеку, із нею цікаво працювати.
Python Image Library
Бібліотека для роботи із зображеннями (PIL) відмінно підходить для будь-яких завдань, пов'язаних з обробкою зображень. Якщо є необхідність будь-яким чином взаємодіяти із зображенням, швидше за все PIL допоможе виконати це завдання.
Як я вже згадував у цій статті, якщо вас цікавить веб-розробка, ваш вибір – фреймворк Django. Це найпопулярніший фреймворк на Python і по ньому існує безліч навчальнихресурсів.
Завдання 8: візьміть участь у проектах з відкритим вихідним кодом
Тому проекти з відкритим вихідним кодом настільки популярні. Github та Bitbucket веб-сайти, звідки вам варто почати. Не хвилюйтеся, якщо люди будуть критикувати ваш код, ви не повинні робити внесок в ці проекти, негайно. Завжди можна працювати на окремій галузі цього проекту, розібратися як він влаштований і робити з ним все що завгодно. Якщо раптом ви знайдете моменти, які слід покращити, чудово! Зробіть це і надішліть ваші поліпшення. Проекти з відкритим кодом для цього і існують.