Python. От теории к практике?

Доброе время суток! Прошу не "закидывать камнями"... Предыстория: занимаюсь изучением ЯП Python некоторое время(порядка 4 месяцев), прошел обучение на codecademy, codeschool, достаточно вдумчиво читал и читаю Лутца "Изучаем Python" , уже очень хочется начать делать какой-нибудь собственный проект, но в силу своего нубизма, не могу понять как все это связать воедино. Читал на разных форумах что можно попробовать написать свой блог, сайт визитку, магазин, веб-приложение и т.д. Но как зная типы данных, итераторы, генераторы, немного ООП и еще некоторые вещи применить эти знания для создания чего-то реального. Подскажите куда двигаться дальше, тянет в сторону веба.
P.S. извиняюсь за такое количество сумбура в голове...
  • Вопрос задан
  • 5637 просмотров
Пригласить эксперта
Ответы на вопрос 10
saboteur_kiev
@saboteur_kiev
software engineer
Суть вашего непонимания заключается в том, что сейчас программирование состоит не только из знания языка программирования, а из знания стека технологий, из которых можно построить продукт.

Например, чтобы сделать веб-сайт на питоне, нужно понять как в принципе работает http, подучить html, понять как прицепить питон к веб-серверу (cgi?), разобраться как работает авторизация, как хранить данные (sql?). Часто для этого используют фреймворки, следовательно разобраться с ними, а для фреймворков уже нужен ООП.

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

В общем учитесь дальше.
Ответ написан
aRegius
@aRegius
Python Enthusiast
Если тянет в сторону веба - значит Django/Flask вам в руки (что касается лично меня, я работаю с Django). И оптимальный вариант своего собственного, первого, интересного, полноценного и актуального проекта - свой сайт/блог.

Для того, чтобы нагрузить себя максимально полезно и сделать все это с нуля, более-менее презентабельно, но без готовых шаблонов а-ля Wordpress, рекомендую дополнительно изучить HTML и CSS.

Для того, чтобы все это реализовать, вам понадобятся 4 книги, желание и самодисциплина. По времени - все очень индивидуально и будет зависеть от того, сколько оного у вас имеется для этой работы, плюс степень вашей обучаемости.

Книги:
1. Django. Подробное руководство Адриан Головатый, Джейкоб Каплан-Мосс
Да, книга реально 2009 года издания (оригинал). Но пусть вас это не смущает. Ее ценность превышает факт устаревания некоторой информации, в ней изложенной. Тем более, она написана непосредственными создателями Django - информация из первых рук.
2. Django Girls Tutorial Django Girls non-profit organization
Можно читать онлайн, можно скачать PDF.
3. HTML5. Недостающее руководство Мэтью Мак-Дональд
4. Большая книга CSS3 Дэвид Макфарланд

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

Книга 1 познакомит вас с Django.
Книга 2 покажет, step-by-step, как с помощью Django создать свой блог/сайт.
Книги 3 и 4 нужны для того, чтобы привести внешний вид ресурса в более-менее благородный вид.

Для начала вполне достаточно. В качестве оперативного справочника используйте официальное руководство (или djbook.ru - если с английским пока никак).

P.S.
Если ваш выбор Flask - не подскажу.
Если вы владеете английским на уровне чтения литературы - обратите внимание на эту книгу (после первой, вместо второй).
Ответ написан
1nn0
@1nn0
Системный администратор\Фрилансер
Вложу свои 5 копеек:
Я начал изучать Python для всякого рода скриптов атоматизации (простой и выразительный синтаксис, ООП, PEP8 в конце концов). Вначале написал маленький скрипт-костыль для отправки Push-уведомлений, потом переписал скрипты, которые я использую в работе, с Bash на Python. Много нового узнал о стандартной библиотеке и сторонних модулях (requests, workerpool). Потом на предприятии потребовалось заменить старый телефонный справочник (внутренний сайт). Написал его на основе Flask. Вот так вот, от простого к сложному, до жути банально, но работает.
И еще, книга Лутца - это больше академический справочник по языку (Есть еще у него "Программируем на Python", это уже ближе к практике). Для того чтобы начать кодить мне больше помогли:
Zed Shaw - Learn Python The Hard Way
Программируем на Python (Майкл Доусон)
ну и в качестве тренировок: checkio.org
Ответ написан
@alexandershelupinin
Самый простой способ чтобы структурировать сумбур в голове - начать делать реальные практические проекты, тогда результат (работает/неработает) тебе точно скажет, понял-ли ты тот или иной материал по python.
Самый простой способ начать делать проекты - начать делать то что тебе интересно и что в теории может принести некоторые деньги (это чтобы всегда была мотивация допилить до конца).
Самый реалистичный подход - начать либо с малых проектов, либо со сложного проекта который структурно можно разбить на множество малых, таких малых что интересны и полезны сами по себе.
Просто как пример из моей жизни - можно попробовать раскрутить twitter/instagram/fb/vk аккаунт путем автоматизации всего и вся, включая поиск/парсинг/постинг контента, поиск/добавление/лайкание друзей и т.д. Вот например автоматизировал все задачи по раскрутке https://twitter.com/jokeforeveryone , у твиттера простой API и куча модулей под питон, например tweepy, twithon .
Ответ написан
quux
@quux
Вот вам бесплатный мудрый совет: пока не делайте ничего своего ибо наговнокодите. Найдите хороший проект с открытым исходным кодом, влейтесь в сообщество и развивайтесь на нем.
Ответ написан
@FireGM
Реализовать один из проектов, который крутится уже в интернете. Гуглите, что вызывает вопросы, через год сможете меньше гуглить, всё нужное уже в закладках будет :)
Шучу, конечно, но надо просто делать. Сохраняйте мотивацию и пишите код.

P.s. Такой вопрос вроде каждый день пишут.
Ответ написан
@nothingmore
Таки да, фреймворки. Разные сторонние библиотеки. И побольше ООП.
Начать всё же лучше с какого-нибудь граббера или там простенького бота. ИМХО, сразу браться за сравнительно крупный и серьёзный проект не стоит. Лучше прийти к нему через серию проектов небольших.
Ну и весь остальной "джентльменский набор" для веба освоить как бы желательно: HTML, CSS, JS. Скорее всего, PHP тоже не повредит. На одном-единственном ЯП сильно далеко не уедешь...
Ответ написан
vechnoe
@vechnoe
Tornado, Django, Postgres, Asyncio, Clojure
Вообще согласен с предыдущими ораторами. Однако дополню. Знание синтаксиса -- это как в 1 классе, как будто научился писать в тетрадях после прописей. Но чтобы стать писателем нужно много учится (и иметь талант). Даже нужно дофига учится чтобы стать копирайтером после 1 класса (но можно таланта не иметь). Так и здесь. Чтобы писать программы нужно много опыта и знаний. Начинать конечно с SICP + алгоритмы. Это даст широту мышления. А вообще особо нет смысла вкладываться в изучение языков, больше нужно уделить фундаментальным вещам (после них все языки и фреймворки похожи так или иначе).

Также посмотрите это Итак, вы решили стать программистом
Ответ написан
@balamut108
Py
Для начала рекомендую, всё же укрепить свои навыки на чистом Питоне, иначе будет как в одном курсе по Джанго, где автор называл стандартный строковый метод lower() методом Джанго. Вот пример курса: propercourse.ru/courses/1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы