С чего начать изучать питон – Что должен знать программист Python и как быстро изучить этот язык

Содержание

Почему не нужно учить python первым языком / Хабрахабр

Если вы будете искать ответ на вопрос: «Какой язык программирования выбрать первым», то где-то в 90% всех случаев вам будет предложен Python — как наиболее простой в изучении язык. И очевидно, что определенное число людей, которые до этого не учили программирование, выберут Python из-за этих рекомендаций. И вот тут у нас начинается проблема, о которой пойдет речь ниже. Конечно, с описанием того, как я дошел до такой жизни.

О себе

Еще в студенческие годы я понял, что моя специальность не такая уж радужная, как мне казалось в 18 лет. Поэтому я стал думать о том, как заработать адекватные деньги. И наслушавшись историй о том, как мой двоюродный брат получал безумные на то время деньги в 1С, я также решил связать свою жизнь с IT.

Изначально это были шаблонные сайты на конструкторах и wordpress, потом я занялся SEO, и в один момент наткнулся на Хабр, после чего решил стать полноценным программистом. Высшей математики у меня не было, поэтому я решил выбрать сферу, где она не требуется – веб-разработка.

У меня появился очевидный вопрос: какой язык выбрать – php/python/ruby. Насмотревшись статей на Хабре, почитал хейт в сторону php, посмотрев пару мотивационных роликов от Yandex. Я выбрал Python. Преимущества языка, я надеюсь, вы знаете, поэтому не буду про это говорить.

Первичное обучение языку

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

1) Изучил книги:

  • Марк Лутц — Изучаем Python
  • Марк Лутц — Программирование на Python
  • Чед Фаулер – Программист Фанатик
  • Билл Любанович – Простой Python

2) Изучил множество роликов от Украинских/Буржуйских авторов по Django
3) Прошел курс от codeacademy
4) Освоил PyCharm
Свой первый проект

Далее у меня появилась идея небольшого сервиса на весьма специфичную тематику, который я решил сделать, чтобы закрепить знания Python + Django.

В создания сайта я

1) Изучил книги:

  • Джон Дакетт — HTML и CSS. Разработка и дизайн веб-сайтов
  • Дэвид Флэнаган — JavaScript. Подробное руководство
  • Бен Форта — Освой самостоятельно SQL.

2) Изучил документацию Django под свои задачи
3) Изучил деплой проектов на Django Gunicorn + nginx + centOS
Свой первый нормальный проект

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

Проект показал свою жизнеспособность (по сей день приносит мне определенные деньги, чему я безумно рад). И я решил уже его прокачать получше.

После прочтения книги «Percival H. — Test-Driven Development with Python», решил написать тесты сначала на основе компонентов Django, потом поднял документацию селениума, и уже сделал внешние тесты.

Я хочу быть крутым

Открыв вакансии по Python-Django разработчикам, я посмотрел что еще обычно требуется в таких вакансиях:
  • Django Rest Framework
  • Celery
  • Tornado/Twisted/ asyncio (На выбор что-то одно)
  • Class-based view Django
  • Angular/React (На выбор что-то одно)

Потратил 3 месяца на знакомство/пробование с этими штуками. Также поднял стандартную библиотеку Python + внешняя библиотека для парсинга beautifulSoup.
Ты не тру без C/C++

Бытует мнение, что без знания C/C++ программист не может называть себя программистом. Поэтому когда у меня было свободное время, я познакомился с книгами:
  • Брайн Керниган – Язык программирования С
  • Стенли Б ЛиппМан – Язык программирования С++. Базовый курс

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

И вот тут мы приходим к самому важному моменту. Потратив в общей массе 2 года на изучение всех элементов веб-программирования, о которых я говорил выше. Я посчитал себя достаточно готовым, чтобы претендовать на позицию веб-разработчика на Python. Конечно, что-то я знал не очень хорошо, что-то поверхносто, а что-то вообще не знал (например, Flask), но общее понимание и навыки были неплохими.

И вот тут начались проблемы с Python, на которых люди чаще всего не заостряют внимание. А именно на востребованности бизнеса в Python-разработчиков junior/pre-middle уровня.

С этим вопросом я вышел на рынок

Хотя на первый взгляд кажется, что вакансий на Python достаточно много, но когда начинается конкретика, все резко меняется.

1. Сразу идет большой отсев вакансий, где Python является исключительно вспомогательным языком. Чаще всего это позиции Java-разработчиков, Системных Администраторов, QA-Автоматизация. Также сейчас идет большой отсев по Data Learning, где требуется мат-образование + язык R. Т.е. с одним Python вы эту вакансию не сможете подобрать.

2. Оказалось, что в моем городе вакансий под Python нет, от слова вообще нет. Расширив поиск по всей области, я также получил неудовлетворительный результат. Пару вакансий на PHP, где Python шел «будет плюсом». Открыв фильтр за последние 3 года, я также обнаружил, что вакансий на Python не было вовсе. Т.е. бизнес в провинции чаще всего выбирает более простые и популярные технологии, нежели Python.

3. Открыв вакансии на Python в общем поисковике, я обнаружил следующие тенденции:

  • 90% + вакансий находятся в Москве или Санкт-Петербурге
  • 90% + вакансий требуют уровень middle+ / seniour
  • ~100% вакансий junior позиций в Москве или Санкт-Петербурге (чаще всего от гигантов)

Другими словами получилась ситуация, что если ты не живешь в Москве, Санкт-Петербурге и не собираешься ехать их «покорять», то тебе практически негде получить свою первую работу.

Конечно, есть пару очагов, где Python еще используется, например, в Казани. Но чаще всего это какая-то одна фирма, где с Вакансиями тоже весьма middle+ / seniour.

4. Вариант поиска удаленки на текущий уровень также показал, что работодатели не готовы идти на такой риск. Мало опыта + удаленка = это какая-то фантастика.
Тем не менее, я все же смог найти пару вариантов, но уже в ходе первичного собеседования стало понятно, что это ерунда по типу: «Ты у нас три месяца поработай, и если клиент заплатит за твою работу, мы тебе тоже заплатим». Не самый лучший вариант.

5. Поговорил с парой HR из крупных компаний, они высказали такую тенденцию. «Мы обычно берем людей с опытом на Python от года, плюс опытом на другого языке (3+ года). Чаще всего php/Java». Другими словами, они вообще не рассматривали варианты, чтобы взять человека с одним лишь Python.

6. Поговорив с ребятами с профильных форумов, стало понятно, что это достаточно типичная ситуация. Из их рассказов стало понятно, что люди после тщетных поисков либо шли работать на php/1c, либо как-то пролазили через upwork/собственный проект/автоматизацию тестирования.
Но опять же от случая к случаю.

В общем, оказалось, что Python – это отличный язык, который позволяет делать мощные проекты. И так уж сложилось, что их концентрация находится в столицах. И раз это сложные проекты, то и сотрудники туда требуются уже уровня middle+. Готов ли человек, который только что изучил Python получить такую вакансию? Трудно!

Но есть другой путь!

В настоящий момент только в моем городе находится 24 вакансии на php различного уровня (начиная от небольших компаний, которым нужно поддерживать текущий сайт, заканчивая гигантами e-commerce, которые предлагают последовательное расширение функционала). И примерно столько же вакансии на 1С. И где-то на половине из этих вакансий готовы взять человека, который хотя бы что-то знает в программировании. Скорее всего, это не самые лучшие места, но это уже первая работа, после который вы официально для HR станете программистом с опытом.
Так что в итоге

Получается ситуация, что можно изучить клевый язык программирования Python и остаться на улице. А можно выучить «ненавистный» php/1c и получить работу. Качество этой работы, конечно же, оставляет много вопросов – но это уже опыт.

Что касается меня, то в моих условиях (не ехать в Москву/СПб) я фактически потратил время на изучение языка, который сейчас востребован исключительно в моих собственных проектах. Найти работу на месте или удаленке у меня не получилось. Сейчас иду в сторону php, так как на нем банально есть работа.

Поэтому если вы не живете в Москве, СПб, не являетесь студентом тех-вуза, то я бы не советовал вам учить Python первым языком. Обратите внимание на PHP – под него всегда есть места, есть работа, есть опыт. А дальнейший путь развития уже за вами.

P.S. Как подсказал мне мой знакомый, на Ruby почти такая же ситуация. Но тут я уже говорить с уверенностью не могу.

habr.com

По каким учебникам лучше начинать учить Питон?

Python сейчас один из самых привлекательных языков. Дочтигнуть этого удается за счет простого синтаксиса и огромного количества задач, которые можно решать с его помощью. Так Python активно используется как у ученых, так и у веб разработчиков. Многие новички хотят побыстрее начать разрабатывать на нем.

В данном списке я привожу книги и ресурсы как для глубоко понимания языка, так и для быстрого осваивания. Сразу хочется сказать, что сам я не читал какие-то книги для изучения Python.

Книги

Начнем с самого интересного вопроса. Что читать, если я новичок? В таком случае тебе обязательно захочется начать с азов.

1. “Изучаем Python” Марк Лутц

Пожалуй самая толстая и нагруженная книга. Из нее вы сможете узнать абсолютно все. Каждый элемент языка разбирается очень детально. Кроме того плюсом является постоянное сравнение с другими известыными языками(С). Это позволяет осознать некоторые конструкции получше. Но многим она может показаться слишком большой для прочтения и возможна потеря увлеченности в изучении. Некоторые моменты Лутц повторяет по несколько раз в течение одной главы, но это не раздражает, а новичкам, думаю, это должно сильно облегчить понимание. Вывод: Подходит тем, кто любит много читать(включая воду) и готов осознать питон на превосходном уровне.

2. “Programming Python” Марк Лутц

Тот же автор. Но уже более дельная книга. Много примеров, как раз ее рекомендуют люди при изучении питона. Теории будет сильно меньше, зато она научит программировать. Книга подойдет тем, кто хочет увидеть питон в действии в различных областях(веб, бд, сценарии и т.д.). Разобрано действительно большое количство тем. Данный практикум подойдет всем, кто изучает Python и желает повысить уровень знаний в этой области.

3. “Python Cookbook” Дэвид Бизли

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

4.“Effective Python” Брэтт Слаткин

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

5. “Think Python First Edition”, by Allen B. Downey

Книга для самых новичков в питоне. На сайте есть много чего интересного. Насыщена примерами и упражнениями. Подойдет как для тех кто только начинает учить питон, так и для тех, у кого уже есть опыт.

6. “Intermedite Python”

Еще одна интересная книга, для тех кто знаком с основами. Кратко и по делу, в стиле zen-python. Разбирается много интересных тем: virtualenv, лямбды, декораторы.

7. Марк Саммерфилд “Python на практике”

Если вы – опытный программист на Python, то после прочтения данной книги ваши программы станут более качественными, надежными, быстрыми, удобными для сопровождения и использования. Многим новичкам книга покажется сложной, тем не менее очень пригодтся тем, кто уже знает основы и хочет продолжать обучение питону.

Интерактивное обучение

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

Начнем с онлайн курсов так как сейчас они имеют наибольшую популярность среди ресурсов для обучения.

1. Программирование на Python

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

2. Python: основы и применение

Данный курс сильно отличается от 1. Тут есть рассказ основ, но он достаточно быстрый( зато задач много). Зато расбираются лямбды моудль itertools, говорят о pep8 и об анализе текстов с помощью python. По-моему, это крутой набор технологий, которые можно не только изучить, но и тут же попробовать. Дерзайте.

Теперь хочу обратить внимание на сайты. Это почти курсы, но без видео

1. PythonTutor

Вот сайт, берете задачки и решаете. Сайты клепать не научитесь, но синтаксис освоите на 100%. Задачи очень простые, но подойдут для тех, кто хочет с нуля научиться синтаксису.

2. Checkio

Много задач, чтобы оттачивать новые навыки. Они соединены какой-то историй про иноплонетную жизнь. Мне кажется, будет интересно тем, кто не хочет просто решать задачи в вакууме. А тут вам и среда встроенная прямо в сайт. И тренировка английского. Мой большой палец этому ресурсу.

3. Code Academy

Тут все стандартно. Делаете таски, учите синтаксис. Курс длинный, поэтому, если выберите этот вариант, то попытайтесь дойти до конца. Code academy дает виртуальную консоль, очень удобно решать из любого места. ак минус — нужно минимально владеть английским языком (хотя может это и плюс). В курсе реально с самого начала и азов дойти до решения простых задач. Все обучения разбито на множество кратких интерактивных уроков.

Видео курсы

Даже не знаю что сюда включить.

pyVideo много видео по питону(eng) и на русском

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

Кроме того полно курсов вроде такого обучение python.

Достаточно полный курс,с помощью него можно было бы быстро узнать основы. Советую. Читает его очень крутой парень, приятно слушать такого лектора. Хотя многие считают, что эту же информацию можно было бы куда быстрее прочитать. Выбирать вам.

Еще один курс на ютубе, который почему-то сейчас закрыт, поэтому даю ссылку на пост с видео. Достаточно простой курс, можно смотреть новичкам. Кроме того у курса есть продолжение, думаю, что вы сможете и сами найти его в сети.

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

И вот самоучитель, на который многие, наверное, натыкались.

devman.org

С чего начать изучение Python и Django

Python – язык программирования, который можно охарактеризовать множеством положительных эпитетов: мощный, красивый, приятный в использовании и т.д. Это универсальный инструмент, который возможно применят где угодно.

Django, в свою очередь, является фреймворком – самым популярным, созданным на и для этого языка. С его помощью возможно быстро разрабатывать веб-приложения любой сложности.

Изучение Python и Django

Так же, как и любой друзой язык программирования, знакомство с питоном нужно начинать с его синтаксиса. В первую очередь требуется понять, как в нем:
  • объявляются переменные;
  • создаются и вызываются функции;
  • работает ООП и т.д.

Python прост в изучении, поэтому если есть понимание того, что такое переменные, функции, операторы и т.д., то знакомство с синтаксисом не займет много времени.

Затем обязательно следует познакомиться с философией языка. У Пайтон она сформирована лучше, чем у каких-либо других ЯП. Человек, который узнал и принял философию Python, сможет сразу начать программировать на нем.

Изучать Django следует с момента, когда стали полностью понятны: синтаксис языка и принципы написания кода на нем. К сожалению, пока не существует официальной документации на русском языке, в которой рассказывается об особенностях и функциях этого фремворка. Поэтому людям, плохо владеющим английским, может быть трудно его освоить самостоятельно.

Почему нужно изучать именно Пайтон

Никто не настаивает на том, чтобы изучать именно этот ЯП. Однако он крайне рекомендуется.

Во-первых, Python очень прост в изучении. Многие люди именно с него начинают свое знакомство с программированием, и впоследствии не переучиваются, а пишут код именно н на нем.

Во-вторых, он функционал. Для Пайтон существует огромное количество модулей. Многие из них входят в стандартную библиотеку, но также есть и множество сторонних либ. А еще Python может интегрироваться с C или C++.

В-третьих, этот язык программирования востребован, а написание кода на нем оплачивается очень высоко. Это обуславливается его функциональностью, простотой, быстротой, а главное – отсутствием необходимости каждый раз компилировать программу, чтобы ее запустить.

Как эффективно изучать язык и фреймворк

Любой ЯП возможно изучить не выходя из дома, сидя за своим компьютером или читая документацию в метро/автобусе по дороге на работу/университет. Но это занимает большое количество времени, так как многие вещи после прочтения остаются непонятыми, и за ответами на возникшие вопросы приходится отправляться на форумы, где не всегда удается найти адекватных разъяснений.

Самый простой способ получить рассматриваемые знания и навыки – это курсы программирования Python. На них материал подается в структурированном виде, а студенты получают поддержку от преподавателей. Более того, по окончанию курсов, выдаются сертификаты, которые свидетельствуют о наличии квалификации, что ценится работодателями.

Выбирать, что лучше: самостоятельное обучение или курсы – каждый должен сам. Но второй вариант наиболее выгоден, так как он экономит время, которое, в свою очередь, можно превратить в деньги.

macdays.ru

Что должен знать программист Python и как быстро изучить этот язык

С чего начать изучение Python

Начинать свой путь в программировании на Python (Пайтон), так же, как и на других языках, нужно с основ – изучения синтаксиса. Он прост, но в то же время значительно отличается от многих других языков программирования (ЯП).

Например:

– ограничителями блока выступает табуляция, а не фигурные скобки;

– ограничение выражения происходит не по знаку “;” а простым переводом строки;

– нет строгой типизации и т.д.

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

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

Одну или несколько из них обязательно потребуется изучить, так как зная только императивное программирование невозможно найти соответствующую оплачиваемую работу. После освоения вышеперечисленного не обязательно, но очень рекомендуется хотя бы попытаться разобраться в самом интерпретаторе. Для этого можно использовать PyPy – программу, написанную на Python, которая, в свою очередь, выполняет созданные на Пайтоне скрипты.

Полезные навыки для программиста на Python

Что отличает кодера-новичка от опытного программиста? Это опыт. Мало какая компания возьмет к себе на высокооплачиваемую должность человека, который только-только освоил синтаксис и получил представления о парадигмах. Чтобы набраться опыта, нужно что-то делать при помощи Python.

Это может быть сайт, написанный либо на чистом Пайтоне, либо с использованием какого-то фрейворка; игра (совершенно не обязательно с оригинальной идеей – можно взять за основу какой-то существующий проект, например, Flappy Bird) и т.д.

Да и изучать программирование лучше и проще всего на практике. Знание и умение использования алгоритмов – это очень важный навык для любого программиста. И если сам Python можно изучить на практике, подглядывая в документацию, алгоритмы лучше учить по книгам.

Хорошее знание стандартной библиотеки и некоторых сторонних Lib. Это позволит не изобретать велосипеды, а быстро решать задачи. И последнее – это знание одного или нескольких фреймворков.

Как лучше изучать Python

Наиболее быстрый способ изучить язык – это записаться на курсы программирования Python. На них уже состоявшиеся профессионалы обучают основам и особенностям ЯП, а главное – помогают исправлять ошибки.

Самостоятельно изучение, в свою очередь, отнимает куда больше времени и часто не дает такого качественного усвоения информации, как на курсах.

Нам важно Ваше мнение! Оцените пожалуйста статью и не забудьте оставить комментарий. За репост отдельное спасибо!

Загрузка…

pclegko.ru

С чего начать изучение Python?

Работали с одним языком, с другим, с третьим и вот решили познакомиться с питоном. У многих при этом возникает вопрос: с чего начать изучение Python? Я не исключение, поэтому этот же вопрос мучил и мою голову. Многие скажут — начинай с нуля и не парься. Это понятно, но нужна хорошая литература, чтобы изучение было максимально эффективно и интересно. Хотя интереса скорее сам добавляешь, чем литература.

Тем не менее нужна была хорошая книга, где новичку можно быстро во все вникнуть. Хотя тут ситуация двоякая. Может быть так легко все и не получится, если вы в программировании совсем новичок. Нужно тогда вникать в типы, в принципы работы, для кого-то это не так просто. Но при желании все возможно!

Собственно, ниже приведу список литературы, с которой можно смело начинать изучение Python.

Официальный сайт

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

Документация по Python

Язык программирования Python (Россум, Дж. Дрейк, Откидач)

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

В общих словах книга описывает весь язык, разбирая каждую конструкцию, синтаксис, типы и структуры данных, классы, модули и вообще все возможности языка. Сразу скажу, книга только по питону, т.е. в ней нет инфы про джанго, который сейчас так популярен. Поэтому по фреймворкам ищите книги отдельно. Хотя о них я может еще буду говорить в будущем.

По-моему, это самый лучший вариант для тех, кто только начинает изучать Python.

Ссылка на книгу (в PDF)

Изучаем Python (Марк Лутц)

Эту книгу рекомендуют многие и я в том числе. Книга подойдет как начинающим разработчикам на Python, так и профессиональным. Можно использовать в качестве настольной книги.

Привожу ссылку на книгу в озоне, на последнее 4-е издание. В свободном досутпе ищите уже сами, думаю, это не проблема.

Ссылка на книгу (Озон)

PyQt. Создание оконных приложений на Python 3 (Н.А. Прохоренко)

Эта книга уже касается больше вопроса работы именно с PyQt (про саму библиотеку я уже писал ранее). Довольно простым языком описано, как создавать оконные приложения на Python. Что такое QtDesigner и как с ним работать, что связывать событие с действиями и конкретными элементами. Ничего сверхъестественного, но для понятия принципов создания оконных приложений подойдет идеально. Советую.

Ссылка на книгу (Rutracker)

В заключении

На самом деле есть и другие книги, книг вообще не мало, но достойных не так и много. К тому же, здесь в основном приведены книги для тех, кто только начинает изучать Python. Хотя исключением может быть книга Изучаем Python (Марк Лутц), она рассчитана на всех.

Надеюсь, этого списка вам хватит для начала. Со временем будем изучать еще и другую литературу. Кстати, если знаете неплохие книги по питону, то жду комментариев, может быть я действительно что-то упустил.

world-blog.ru

Как эффективно изучать веб python и с чего начать? — Toster.ru

Да… я телепат, поэтому ответил даже на не заданный вопрос. В принципе задача сводится “как просто настроить и просто кодить, а потом уже заниматься тонкой настройкой”

Поскольку придётся самому со всем работать со всем стеком – надо дополнительно изучить:
1. Системы управления службами линукса. На данный момент всех порабощает systemd, написать юнит службы, которая будет сама перезапускаться – не проблема
2. Настройку базовых веб-серверов – nginx, apache

Доки джанги страдают тем, что городится здоровенная цепочка действий без объяснения – зачем оно надо.

Для себя использую связку systemd-nginx-uwsgi-bottle в простых случаях:
1. /etc/systemd/system/py_service.service

/etc/systemd/system/py_service.service
[Unit]
Description=OPDS
After=network.target
[Service]
WorkingDirectory=/home/web/fli
User=web
Group=web
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all
ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi/opds.ini
[Install]
WantedBy=multi-user.target


2. /etc/uwsgi/opds.ini
/etc/uwsgi/opds.ini
[uwsgi]
socket = 127.0.0.1:3081
chdir = /home/web/fli/
master = true
plugin = python3
file = /home/web/fli/app.py
uid = web
gid = web
enable-threads = true


3. /etc/nginx/sites-available/fli – не забыть сделать симлинк в sites-enabled
/etc/nginx/sites-available/fli
server {
        listen 2081;
        server_name testing.my_site.ru;

        root /home/web/fli;

        location / {
                include uwsgi_params;
                proxy_read_timeout 300;
                uwsgi_pass 127.0.0.1:3081;
        }
}


Итого:
1. Systemd запускает всех, nginx уже в автозапуске по умолчанию, а вот вашему сервису потребуется немного больше:
systemctl enable py_service- разрешает автозапуск после перезагрузки
systemctl start py_service – сразу стартует

2. Nignx принимает соединения и занимается черновой работой по обработке запроса, передавая по wsgi запущенному процессу. В итоге лучшая достигнутая скорость – 6 мс на страницу на моём минимальном сервачке под ARM (scaleway).

3. Uwsgi запускает скрипт веб-сервера, написанного под bottle, занимается взаимодействием с nginx и приложением.

4. Сам скрипт написан под bottle, но поменять под flask/django проблем не будет.

Можно еще немного ускорить, если через python не отдавать статику, а доверить это всё nginx. Добавить ему в конфиг location /static/ и сказать – просто отдавать файлы.

С uwsgi под дебианом были проблемы – в базовой поставке не было плагина uwsgi-plugin-python3, после его установки всё стало правильно работать с моими скриптами, причем в доке это обходилось вежливым молчанием.

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

Про bottle скажу, что система шаблонов там довольно убогая, зато всё остальное вполне себе отлично работает.

toster.ru

python – Новичок, преподающий сам питон, что еще я должен изучать?

Многое зависит от вашей общей цели – для обучения Python. Вы рассматриваете его как изучение второго языка или лучшее понимание компьютеров и как эффективно использовать язык программирования?

Похоже, вы хотите лучше понять компьютеры и стать лучшим программистом. Изучение новых языков, таких как Python, вероятно, не поможет вам в этом отношении. Я по-прежнему рекомендую изучать Python, если вам интересно, но как только вы изучили один язык программирования, большая часть обучения новому языку знакома с синтаксисом и типами данных (обычно).

Вы упомянули, что не уверены в понимании материала в классе, который вы взяли. Если вы чувствуете, что не понимаете фундаментальных понятий (таких как циклы, классы и т.д.), То изучение Python поможет вам понять программирование, так как большинство книг/руководств пересматривают эти понятия (Learning Python, 3rd Edition должно помочь с этим). Если вы понимаете эти концепции, но вы не знаете, как применять эти понятия, тогда моя рекомендация состояла в том, чтобы узнать о структурах данных и общих алгоритмах (например, сортировка, поиск и т.д.).

Говоря из личного опыта, я не знал, как применить то, что я узнал от вводного класса программирования, к личным проектам программирования. Изучение структур данных из класса помогло укрепить те концепции, которые я ранее изучил, предоставляя алгоритмы/структуры данных, которые строят эти предыдущие знания. Этот класс также позволил мне по-разному думать о проблемах с точки зрения использования этих структур данных.

Чтобы узнать о различных типах структур данных, см. http://en.wikipedia.org/wiki/List_of_data_structures. Обычно каждая структура данных полезна для определенной цели (например, деревья двоичного поиска хороши для поиска отсортированной информации). К сожалению, у меня нет рекомендаций по книге (наш класс не использовал книгу). Googling “Структуры данных” должны быть хорошей отправной точкой.

Структуры данных также заставили меня задуматься о том, насколько эффективна реализация. “Сложность” алгоритма определяет, сколько времени требуется для выполнения определенной части кода. Это позволяет легко сравнивать другие реализации и определять, что лучше.

Я также хотел бы прокомментировать, что, когда дело доходит до изучения компьютерных концепций, лучший способ учиться – это делать. Книга/класс может объяснить только так много, а остальное вам нужно учиться самостоятельно. Каждый человек учится по-другому, и программирование – это способ взять материал, о котором вы читаете, и подумать об этом таким образом, который вам лучше всего понять.

Надеюсь, я ответил на ваш вопрос. На данный момент вам не нужно беспокоиться о базовом оборудовании. Это полезно знать, планируете ли вы сделать это как карьеру (которой вы не являетесь) или хотите сделать оптимизацию конкретным оборудованием, на котором вы работаете (в этом случае вы не захотите использовать Python), Python – хороший выбор, чтобы узнать о структурах данных, поскольку он реализует их много для вас, но важно знать, для чего они используются.

Если вы все еще в школе, возьмите класс структур данных и посмотрите, что вы думаете об этом. Если вам это нравится, я бы посоветовал пересмотреть роль программирования /CS в вашей карьере. Вам не нужно это делать, но рассмотрите небольшую или, по крайней мере, позицию, в которой используются эти навыки, которые вы изучаете. Я говорю это, потому что, несмотря на то, что это не ваш главный, вы заинтересованы в понимании того, как компьютер работает и принимает такие инициативы, как обучение Python, создание собственного компьютера и установка Linux.

Если у вас есть дополнительные вопросы, не стесняйтесь спрашивать. Удачи!

qaru.site