Пару дней назад мы открыли набор на один из самых долгожданных курсов — курс серьезного изучения Python. Сегодня мы хотели рассказать вам о направленности и программе курса. Курс предназначен для тех, кто уже знает всякое про Python, но хочет повысить свой навык до уровня middle разработчика и найти уже работу, которая будет приносить не только удовольствие, но и хороший доход (ведь лучшим по результатам обучения студентам наши партнеры — крупнейшие IT компании предложат пройти собеседования). Мы не ждем на курсе новичков: поэтому наличие некоего beginner уровня проверяется вступительным тестом — там всего пара десятков вопросов. Если большинство из вопросов теста вызывают длительный ступор — лучше задуматься над тем, чтобы немного подтянуть свои знания по Python самостоятельно, ведь во время курса может не быть возможности останавливаться на basic вещах.

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

Как была составлена программа? Мы собрали требования актуальных вакансий Python разработчиков с зарплатой выше 100к и актуализировали их с нашими компаниями-партнерами. Далее, опираясь на полученные результаты, представление преподавателя курса о, скажем так, динамическом диапазоне языка, мы разбили курс на 5 логических частей, пропорционально востребованности на рынке труда.

Python for everyone. Вступительная часть курса будет своеобразным трамплином для разгона. Несмотря на вступительное тестирование, уровень знаний на входе все равно будет варьироваться, но в ходе первых недель мы придем к общему знаменателю. В процессе посмотрим на функциональные приемы языка, декораторы, покопаемся в “кишках” интерпретатора, обсудим алгоритмы (непременная составляющая большинства собеседований), поговорим про ООП и паттерны проектирования, завершим блок operation аспектами разработки.

Python for web. Самый обширный пласт курса. Это связано с тем, что большинство актуальных вакансий требуют знаний того или иного web фреймворка, Django в частности. Мы начнем с того, что посмотрим, как создавать простые приложения без всяких фреймворков, а потом с головой окунемся в Django. Тут будут и SQLAlchemy, и REST, и Celery, и, конечно, “ванильная” Djago c ее ORM’ом, view’шками, template’ами. Не забудем поговорить и про тестирование. А, в зависимости от наличия времени, может успеем обсудить штуки типа Flask, Twisted и Tornado. В этом блоке будет одно сквозное ДЗ, где мы будем делать Django приложение.

Python for data science. Анализ данных в наши дни безмерно, иногда даже чрезмерно, популярен и в предложениях о работе это тоже находит свое отражение. Понятно, что стать специалистом по machine learning за пару занятий не получится, зато вполне по силам получить навыки data science инженера. Такой специалист создает data pipeline’ы, поддерживает инфраструктуру аналитики. Тут самое оно изучить NumPy, Pandas, попрактиковаться рисовать красивые картинки и даже поднять “игрушечный” Hadoop и написать для него простейший таск.

Python for high performance. Дональд Кнут учит нас, что преждевременная оптимизация — это корень всех зол. Но в предпоследней части курса уже, кажется, самое время затронуть аспекты производительности. Мы будем говорить про профилирование, написание расширений на C, конкурентные вычисления. Рассмотрим возможные оптимизации, а также осветим вопрос “что делать, если Python недостаточно?”.

Python for future. Python 3 — это то светлое будущее, которое уже наступило, правда, неравномерно. В этом блоке мы будем обсуждать основные изменения, которые произошли в языке между версиями, рассмотрим новые классные фичи (один asyncio чего стоит!). Обязательно обсудим процесс миграции проектов со второй версии на третью.

Конечно, нельзя в рамках одного курса натренировать отличного django разработчика, аналитика и инфраструктурного программиста. Почти нереально даже если сфокусироваться на чем-то одном. Ведь хорошего разработчика делает реальная рабочая практика и опыт. В свою очередь, получение широкого спектра знаний, дает возможность определиться с тем, чем именно вы хотите заниматься как Python разработчик, возможность, при необходимости, заниматься чем угодно, возможность “срезать углы” и наступать на меньшее количество граблей по дороге к своей мечте.

И да, это все Python 2.7, кроме финального блока курса, где мы погружаемся в особенности Python 3. Сразу возникает предмет для споров и возражений. Безусловно, Python 3 — это хорошо, современно, стильно, модно, молодежно. Третья версия получает развитие, новые фичи и однажды мы все войдем в это прекрасное будущее. Но есть нюанс, Python 2.7 (да и 2.6) никуда магическим образом не исчезает из-за того, что Python 3 — это right way to go. Во многих компаниях, в том числе и крупных, компаниях остается Python 2.x код, который нужно поддерживать. Да и новый код тоже частенько пишется на том же Python 2.7, хотя бы потому что последняя CentOS, на которой повсеместно крутятся сервера, из коробки дает именно этот Python, а ставить поверх другую версию и жить с двумя, мягко говоря, неудобно. Если посмотреть вакансии на каком-нибудь агрегаторе, то вы опять-таки увидите, что достаточно часто требуется использование именно Python 2.7. Так же, но это уже чисто субъективно, кажется проще и лучше освоить сначала 2.7, а потом, если потребуется, переходить на 3. Освоение новых фич и особенности не займет много времени, зато будет ясно, откуда “растут ноги” у тех или иных решений и всегда будет возможность разобраться в legacy коде.

Естественно, не обойдется и без практики! HW в учебном плане означает домашнее задание (homework), которое будет разбираться и обсуждаться на занятиях. ДЗ сопровождает каждую из теоретических выкладок и дает возможность самостоятельно “пощупать” то, о чем мы говорили на занятии. Кстати говоря, помимо всего прочего, есть даже одно задание на Go, так что скучать не придется!

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

Комментарии (15)


  1. iroln
    09.06.2017 15:26
    +8

    Python 2.7. — это серьезно

    https://pythonclock.org/


  1. lash05
    09.06.2017 15:27

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


  1. foldr
    09.06.2017 16:03
    +2

    SQLAlchemy. Flask. Twisted. Tornado. Jinja2.

    Зачем весь этот зоопарк, пусть и поверхностно? Джанги более чем достаточно. Кому будет интересно, сам найдет инфу. А так — распыление внимания


    1. ZZZ_Sochi
      10.06.2017 12:24

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

      P.S. Да, я тренер в Django Girls. :-)


      1. foldr
        10.06.2017 12:29

        Я тоже пишу на джанге и разделяю Ваше мнение :) Но раз в курсе делается упор на джангу, а не другой веб фреймворк, то и не стоит тратить на них время


        1. ZZZ_Sochi
          10.06.2017 12:53
          +1

          По мне так там упор делается не на конкретный фреймвок, а на то, чтобы выпустить маляров для оставшихся в прошлом веке компаний. Одно упомянание twisted чего стоит…
          Впрочем, я не спорю. Просто рассуждаю.


  1. MikeLP
    09.06.2017 16:50
    +1

    Мне кажется что python должен активнее развиваться — хороший пример показало сообщество PHP.


  1. delvin-fil
    10.06.2017 06:21
    +4

    лучше освоить сначала 2.7

    Для кого?


    1. VaultVulp
      10.06.2017 12:39

      Вы похоже невнимательно прочитали статью:


      Мы собрали требования актуальных вакансий Python разработчиков с зарплатой выше 100к и актуализировали их с нашими компаниями-партнерами.

      Очевидно же, что "компании-партнёры" страсть как хотят нанимать не вейперов, умеющих только Python 3, а реальных мужиков для работы с Python 2.6.


      1. ZZZ_Sochi
        10.06.2017 12:48
        +2

        Да не, это всё хипстерство. Настоящие мужики пишут на COBOL.

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


      1. ZZZ_Sochi
        10.06.2017 13:08

        Хм… Сорри, я не увидел тега «sarcasmus». :-)


  1. immaculate
    10.06.2017 09:12
    +2

    Вчера последний из своих проектов перевел на Python 3. Мне кажется, уже нет смысла начинать что-то новое на Python 2. Дело не в моде, а в том, например, что тот же последний релиз Django — последний, совместимый с Python 2.


    1. foldr
      10.06.2017 12:32

      А еще ipython, который используется в курсе, тоже прекратил поддержку 2 питона :)
      http://ipython.readthedocs.io/en/stable/whatsnew/version6.html#ipython-6-0


  1. chemtech
    10.06.2017 12:16
    +1

    Dmitry21
    Почему ваш сайт (otus.ru) не использует HTTPS?


  1. ZZZ_Sochi
    10.06.2017 12:21
    -4

    мы думаем, что Python 2.7. — это серьезно, а Python 3 — модно

    image