11 проектов, которые должен разработать каждый питонист

Оглавление (нажмите, чтобы открыть):

11 проектов, которые должен разработать каждый питонист

19’572 подписчиков
5’963 просмотров на пост

Полезные материалы по всему, что может быть полезно питонисту.

Детальная рекламная статистика будет доступна после прохождения простой процедуры регистрации

  • Детальная аналитика 70’046 каналов
  • Доступ к 28’004’146 рекламных постов
  • Поиск по 112’332’059 постам
  • Отдача с каждой купленной рекламы
  • Графики динамики изменения показателей канала
  • Где и как размещался канал
  • Детальная статистика по подпискам и отпискам

Найдено 566 постов

Deep vs Shallow Copies in Python
Из данного урока вы узнаете, что такое Deep Copies и Shallow Copies, а также их реализация на языке Python, чтобы оценить основные различия.

Требования к Python-разработчику на мировом рынке 2020 года
Исследование о наборе навыков, необходимых Python-разработчику в 2020 году. Будьте самым востребованным на мировом рынке труда!

​​Линейная регрессия на Python: объясняем на пальцах
Линейная регрессия применяется для анализа данных и в машинном обучении. Постройте свою модель на Python и получите первые результаты!

Как стать Python Web Developer
Данный путь обучения предоставит вам базовые навыки, необходимые для того, чтобы стать веб-разработчиком на Python. Вы узнаете о самых популярных средах веб-разработки на Python, таких как Django и Flask, работе с базами данных, а также о базовых навыках, необходимых для работы с внешними интерфейсами (таких как HTML).

Любой JSON является синтаксически правильным кодом Python. Однако true, false и null не определены по умолчанию. Их определение позволяет использовать eval в качестве парсера JSON (что в любом случае не очень хорошая идея):

�� Разыскивается главный редактор на сайт proglib.io

Если вам хочется глубже погрузиться в мир IT и владеть вниманием широкой аудитории, эта вакансия для вас!

Полное руководство Python import Statements
Данный пост — это погружение автора в решение общих проблем с импортом. Если не указано иное, все примеры работают как с Python 2.7, так и с 3.6.

​​Как войти в разработку и стать программистом?

Скачайте бесплатный пошаговый план от онлайн-университета Нетология
«С чего начать погружение в сферу разработки».

В PDF-плане мы собрали:
— Чек-листы необходимых навыков для начинающего.
— Ссылки на полезные ресурсы, книги и бесплатные курсы.
— Советы HR-специалистов о том, как правильно составить резюме
и наработать портфолио.
— Рейтинг зарплат для начинающих позиций в разработке.

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

Скачайте бесплатно по ссылке:
https://prglb.ru/2cxyv

Разбираемся, что компании ожидают от разработчиков Python в 2020 году?

Руководство для начинающих по time модулю в Python
Эта статья познакомит вас с наиболее часто используемыми функциями и объектами модуля time.

Функция map вызывает другую функцию для каждого элемента итерации. Это означает, что функция должна принимать одно значение в качестве аргумента:

list(map(lambda x: x \*\* 2, [1, 2, 3]))
[1, 4, 9]

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

map(lambda (a, b): a + b, [(1, 2), (3, 4)])
[3, 7]

В Python 3 эта функция исчезла, но есть и другое решение. itertools.starmap распаковывает кортеж для вас, как будто функция вызывается со звездочкой: f (* arg) (отсюда и название функции):

list(starmap(lambda a, b: a + b, [(1, 2), (3, 4)]))
[3, 7]

Программистами не рождаются! Присоединяйся к бесплатному интенсиву по Android-разработке.

Подробности по ссылке �� http://clc.to/NWlucg

За три дня ты:
✅ создашь свой проект и запустишь его на эмуляторе;
✅ познакомишься с основными конструкциями разметки, языком Kotlin, библиотеками Retrofit и Gson;
✅ разработаешь свое первое приложение.

�� Ждем тебя 22–24 апреля в 15:00.

Python Logging: подробное руководство
Модуль logging, входящий в состав стандартной библиотеки Python, предоставляет большую часть необходимых для журналирования функций. Если настроить его правильно, записи логов могут предоставить огромное количество полезной информации о работе приложения.

Быстрый путеводитель по Python: cписки за 7 минут
Не путайте в Python списки и массивы: в первых можно хранить разнородные объекты. Здесь кратко описаны все основные методы списков Python 3.x.

Исследование аудитории Telegram 2020

Друзья, команда TGStat проводит масштабное исследование аудитории мессенджера. Кто же он — пользователь Telegram 2020 года? Страдает ли он из-за блокировки, каково на сегодня распределение по полу, возрасту, интересам и десятку других параметров?

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

Опрос займет всего 5 минут! Не поленитесь)
Ваше мнение очень важно!

Ссылка на опрос:
https://tgstat.ru/research

Простой искусственный интеллект на Python. Распознавание голоса на Python

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

Если вы хотите создать словарь из известного набора ключей и некоторого фиксированного значения для всех из них, вы можете использовать словарные выражения:

Однако в классе dict есть метод класса fromkeys, разработанный специально для этого случая:

​​18 апреля в 20:00 мск — бесплатный пробный вебинар «Heap, Heapsort и Heapqueue» в рамках курса «Алгоритмы для разработчиков»: https://otus.pw/GBaj/

Испытайте себя — пройдите вступительный тест на курс: https://otus.pw/hx3V/

На вебинаре мы:
— рассмотрим структуру данных Heap (иначе говоря, «пирамида» или «куча»);
— разберем алгоритм Heapsort и сравним его с другими алгоритмами сортировки сравнениями;
— узнаем интересные варианты применения Heap: для создания очереди с приоритетами и для внешней сортировки.

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

Приглашаются как действующие, так и начинающие разработчики С++/Python/Java.

Регистрируйтесь сейчас — напомним в день вебинара!

Профессия программист python

Что объединяет компании Google, YouTube, Yandex, Reddit, Instagram, Dropbox, Pinterest, PayPal, Intel, NASA, Microsoft и других гигантов? Кроме имени мирового масштаба, все они полностью или частично используют код, написанный на языке Python.

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

По результатам работы в 2020 году несколько крупных изданий поставили Пайтон на первые строчки рейтингов. IEEE Spectrum определил язык, как лучший, отдав пальму первенства, ресурс Stackoverflow выделил пятую строчку, как одному из самых популярных языков, RedMonk поставил его на третье место по востребованности.

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

Кто такие программисты Python

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

Плюсы и минусы профессии

Программирование на языке Пайтон имеет свои преимущества и недостатки.

Основные плюсы:

  • низкий порог вхождения;
  • востребованность;
  • большое сообщество;
  • возможность самостоятельного обучения;
  • возможность работать удаленно;
  • высокая зарплата python программиста.

Основные минусы:

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

Что нужно знать программисту Python?

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

  1. Знание основ программирования, структур данных, ООП.
  2. Сам язык, его синтаксис, библиотеки, фреймворки (особенно Django).
  3. Базы данных.
  4. Английский язык, особенно для удаленной работы python программистом.
  5. Знать системы контроля версий (git).
  6. Разбираться в чужом коде. Здесь стоит упомянуть о том, что вторая и третья версии Питона отличаются, нужно знать о различиях.
  7. Умение работать в команде.
  8. Javascript, jQuery.

Где обучиться

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

Если вы выбрали самостоятельное обучение, обратите внимание на книги Марка Лутца «Изучаем Python» и «Программирование на Python». Они объемные (2 тысяч страниц в обоих вместе взятых), читать их новичку сложно. Но книги Лутца дают полное понимание темы и быстрое вхождение.
Для тех, кто о программировании еще не знает ничего, можно посоветовать автора Д. Бриггса и его чудесную и легкую в освоении книгу «Python для детей». Здесь вы поймете азы профессии, научитесь писать первую программу, первую игру.

Курсы программистов Python помогут усвоить материал быстрее и легче. Их преимущество в контакте с наставниками и возможности задать вопрос и получить быстрый и понятный ответ на него.
На курсах уделяется внимание основам языка, даются домашние задания и задачи для начинающих программистов python. Внимания достойны онлайн-курсы. Есть яркие примеры обучающих сайтом, где собраны лекции и методические материалы по программированию. После прохождения обучения получаете сертификат, который можно распечатать.

Есть хорошее бесплатное мобильное приложение – SoloLearn. Учите теорию, делайте тестовые задания, решайте задачки, тренируйтесь, играя с другими пользователями. В конце курса выдают сертификат. Приложение русифицировано, позволяет изучить 9 популярных языков, машинное обучение, HTML5, CSS3, JavaScript, JQuery, Web Development.

Еще один совет: посещайте форумы программистов Python. На них можно найти много полезной информации, как по обучению, так и по поиску работы. Вдохновится историями других разработчиков, почитать статьи на важные темы: «Как я стал Python программистом», «С чего начать обучение языку», «Как попасть в программисты Python».

Поиски работы

Программисты по уровню знаний делятся на три категории: Junior, Middle и Senior.

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

Миддл работает как самостоятельно, так и в команде, его код не требует правок. Опыт работы (чаще всего, но не обязательно) 1-3 года. Выполняет сложные задачи, пишет сложные приложения.

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

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

Для наработки опыта можно пройти стажировку. Это Learning by Doing, вы будете работать над настоящими проектами, которые потом можно будет упомянуть в портфолио.

Кстати о резюме, python программист перед началом поиска работы должен ответственно подойти к его заполнению. Важно правильно указать навыки, знания фреймворков, при этом не показаться поверхностным человеком-оркестром. Можно упомянуть о владении другими языками, например: «Работал с PHP. Владею HTML, CSS, знаком с фреймворком Django».

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

На моем сайте регулярно публикуется подборка топовых вакансий для python программистов.

Новичкам стоит обратить внимание на фриланс, Python программисты больше востребованы на англоязычных ресурсах, таких как Upwork, GlobalFreelance.

Есть для программиста Python вакансии без опыта на Яндексе. Для сотрудничества нужно удачно пройти тестовую работу, например. Все вакансии смотрите здесь.

Сколько зарабатывают Python программисты

Программист python без опыта может зарабатывать на фриланс биржах, где средняя оплата за проект 500 – 1000$, за месяц в среднем получается 1500$. Фрилансер уровня Синьор получает еще больше.
Зарплата штатного разработчика зависит от компании и города. Для Москвы она колеблется в рамках 50 000 — 200 000 рублей, в меньших населенных пунктах зарплата начинается от 40 тысяч. В отличие от полноценных программистов Python, стажер может работать за более низкую сумму.

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

Говорят, стать Python программистом легко. Правда?

На биржах труда ищут мобильных разработчиков, девопсов, бэкендеров и фронтендеров, но где эти профессии в списках специальностей классических вузов?

Мы запускаем цикл статей в которых подробно расскажем о каждой профессии через опыт людей. В первом выпуске обсуждаем Python-разработчиков. Свои истории рассказали Артем Сухаренко и Данила Лобанов. Они пришли в профессию совсем недавно, но успели набраться опыта в других сферах. А экспертом выступил Алексей Петренко — декан факультета Python в Geekbrains.

Мы поговорили о том, что нужно знать перед обучением, чем хорош и плох язык, что трудного ждет в обучении и на чем стоит сосредоточиться; какие профессии и какая зарплата python-программиста, как готовиться к первым собеседованиям и многое другое.

Для чего учить Python

Артем Сухаренко учился в СибГИУ на кафедре автоматики и информатики. Его специальность была инженерной, но не связанной с программированием. После выпуска Артем устроился работать на завод ЗСМК — один из самых крупных металлургических комбинатов в России

«Я обалдел, насколько там все ужасно», — говорит он, — «Полуразвалившийся советский электропривод, никакой модернизации, специалисты особо не нужны». Долго на заводе он не задержался, но продолжил работать с электрикой дальше. Вырос до ведущего инженера в Сибирьтелекоме, затем переехал из Сибири в Москву и устроился в коммерческий ЦОД, где отвечал за инфраструктуру.

Программирование иногда подразумевалось. Артем пытался работать с микроконтроллерами, делать что-то более сложное, но всегда упирался в отказы работодателей и заказчиков — им это было не нужно. Хватало элементарных вещей, которыми, как говорит Артем, интересно заниматься только первые 15 минут, и особых скиллов для этого не нужно.

«Может быть, я не туда совался, но развития для себя не нашел. Пять лет вуза — просто чтобы крутить провода. Это было так обидно».

Однажды коллега подал Артему идею изучать программирование не для электрики, а чтобы стать Python-разработчиком. Он стал читать книги, пробовать разные задачи, но не решался сменить профессию. «Желание у меня назревало долго. Сначала не давали сменить профессию ипотека, финансовые вопросы, личный страх».

В 36 лет Артем пошел на курсы GeekBrains «Python-разработчик».

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

«Зная Пайтон можно делать много всего — от простейших скриптов до анализа данных и построения нейронных сетей. Но конкретно разработка на Пайтон — это бэкенд для веб-серверов, разработка скрытой части интернета — той, которую не видят обычные пользователи. Сервер, его логику, взаимодействие с базами данных». Все это мы расскажем на наших курсах и ответим на ваш вопрос — «Как стать программистом Python?», говорит Алексей Петренко, декан факультета Python в Geekbrains.

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

«Хоть Python и пропагандируется как язык для всего, по факту у него только две сферы применения: всякие data science, ML и прочая математика — и веб-разработка. В этом он меня немного разочаровал», — говорит Данила Лобанов, бывший сисадмин, который недавно стал Python-разработчиком.

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

Данила тесно познакомился с компьютером относительно поздно, примерно в 18 лет. От высшего образования он отказался и почти сразу пошел работать сисадмином. Начинал с самых элементарных задач, потом приступил к изучению Linux и программирования.

«Я попытался изучать С, PHP, Java еще какие-то языки, но не заходило — начинал и бросал. Не мог писать даже простейшие скрипты. Когда я ходил на курсы по С, у меня получалось читать код, но не получалось его писать. Мне давали задачу, я смотрел на нее и не представлял, как делать. Преподаватель садился рядом, писал построчно, объяснял, и я понимал, что именно так и надо было делать. Но мне давали аналогичную задачу, и я снова был в ступоре».

После неудачных попыток Данила надолго забросил программирование. Около десяти лет он проработал сисадмином. И когда почувствовал, что администрирование больше не приносит радости, решил дать разработке еще один шанс.

«Новичку лучше первым делом разобраться в синтаксисе», — считает Алексей Петренко, — «Только потом стоит думать, куда хочется идти дальше. Чем больше ты учишься, тем больше уходишь от синтаксиса к библиотекам, паттернам проектирования, отдельным шаблонам».

Данила все-таки выбрал Python потому, что язык считался легким. «Синтаксис реально оказался простым», — говорит он, — «Как писать текст на английском языке. Сначала я изучал его самостоятельно по видеоматериалам на Ютубе, по статьям, решал задачи на pythontutor.ru. Но потом понял, что ресурсы в интернете — это только основы и азы. Они доступны всем и везде, и не помогут научиться программированию основательно. Я понял, что надо искать курсы, которые дадут все то же самое, только систематизировано, а потом поведут меня дальше».

Что надо знать перед началом обучения

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

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

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

Начать может быть легко, но впереди ждут трудности

Артем продолжал работать электриком днем, а вечерами начал учиться на курсах, несмотря на усталость. «Как и у всех наивных людей, у меня было ожидание магии от курсов. Я пришел не совсем нулевым. Я не мог даже ответить на вопросы: «Python developer — что это?», «Что должен знать программист Python?». В багаже было несколько книг и даже простых сайтиков, в том числе на PHP (грешен, признаю). Я ждал, что на курсах надмозги меня выдрессируют, и я стану волшебником. Реалии оказались другими — там такие же люди, которые просто знают чуть больше».

Артему нравилось на курсах, но не все шло гладко. Программа на тот момент была новая, мало обкатанная и по его впечатлениям сумбурная. О спорных моментах ученики высказывались, давали обратную связь, и недостатки исправлялись на ходу. Один из преподавателей оказался настолько слабым, что его попросили убрать. Но остальные, как вспоминает Артем, были очень сильны.

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

«Все признавали, в том числе сотрудники Geekbrains, что уровни 2 и 3 в программе по Python были одними из самых сложных курсов в университете. Очень много информации в слишком сжатые сроки, очень большие домашние задания. Многие усваивали только часть материала. Я лично два раза переводился в следующий поток. Мы просили облегчить программу, нас спрашивали как, и я предлагал разбить два курса на три. Что-то из этого приняли во внимание и сейчас реализовали».

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

«Преподавать программирование тоже очень сложно. Всем кажется, что раз человек может писать программы, значит может и научить. Это не так. Когда мышление перестроено, и знаешь много всего — уже не можешь вспомнить, каково это — не понимать».

Алексей предупреждает, что Python легкий только в начале. А после легкой базы придется приложить усилия, чтобы освоить более серьезные аспекты — библиотеки и фреймворки. «Если сравнить язык программирования с водоемом, то, например, язык С — это океан. Ты ныряешь с обрыва на огромную глубину, и либо плывешь, либо тонешь. Язык Пайтон — это пляж с чистым песком, где ты можешь далеко зайти, спокойно поплавать, и если понял, что хочешь двигаться дальше — то за красивым пляжем есть огромная впадина, по глубине сопоставимая с С и Java».

«Асинхронное программирование в Python — это мозгодробительная штука», вспоминает Артем. «Мы проходили это как-то поверхностно, и потом даже на собеседованиях, когда по нему спрашивали, я чувствовал, что плыл.

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

Данила же вспоминает модуль select как самое трудное: «Все три потока помнят мою боль с селектами. Есть такой модуль, и он мне прямо очень не давался в свое время. Сейчас-то он для меня простой — я теперь не понимаю, как его можно не понять».

«В базовой конфигурации Python лежит около 70 функций и несколько десятков зарезервированных слов, но даже крутой питон программист не обязательно использует их все. То есть, чтобы выучить сотню слов и понять, что они делают, можно потратить одну-три недели при желании и активной работе», говорит Алексей.

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

Чтобы в будущем работать в команде и показывать код кому-то еще, надо знать общепринятые стандарты стиля. В Python они называются «Пепы» (Peps). Я бы советовал читать Pep8 параллельно с изучением синтаксиса. Это соглашение программистов, которые пишут на Пайтоне. Оно рекомендует как правильно писать, а как неправильно.

Несколько лет назад в Python произошло разделение. Был Python 2.7, а потом вышла версия 3. Вторая версия все еще используется, но только в старых фирмах для поддержания легаси-кода. Если устроиться в такую фирму, то изучать Python 2 придется, но я бы рекомендовал учить третью версию. Все современные проекты и сторонние библиотеки пишутся под нее».

Как выдержать первые собеседования

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

«Проект назвался GoLiving. Это что-то вроде AirBnb, только задумка такая: в Америке есть люди, которые часто ездят работать в разные города на непродолжительный период. И они могут между собой меняться жильем с гарантированной страховкой, чтобы точно быть уверенным, что не вернешься в разгромленную квартиру. Сейчас я не знаю, насколько далеко пошел этот ресурс, кажется финансирование приостановили. Но тогда у нас даже были инвесторы».

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

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

«Мой опыт в Geekbrains показывает, что некоторые студенты находят работу, до того как они заканчивают годовой курс обучения», говорит Алексей. «Работодатель хочет видеть у серверного разработчика элементарное умение работать с синтаксисом, знание как работают сайты, как устроен бэкенд, тот же самый набирающий популярность Django. Я бы сюда ещё добавил работу в команде и знания баз данных, потому что любой бэкенд любого сайта неразрывно связан с хранением информации. Требования к python разработчику растут с каждым годом.

Ежемесячно на «Моём круге» открывается порядка 200 вакансий python-разработчиков, вы можете посмотреть самые свежие и подписаться на рассылку о новых вакансиях.

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

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

Данила на собеседовании больше всего удивило то, что ему не задали ни одного технического вопроса: «Не давали никаких заданий — просто общались о том, как я учился, чем интересуюсь. В итоге предложили работу, и я согласился».

Алексей же считает, что с такими компаниями стоить быть внимательнее. «Кроме общих вопросов должны быть задачи на написание кода. Даже если на бумаге карандашом — это нормально. Но если ты пришел на собеседование программиста и не получил ни одного вопроса о программировании, то тебя либо собеседовал некомпетентный человек, либо ты будешь заниматься вообще чем-то непрограммистским. Программистов надо проверять на программирование».

«Я считаю, не спрашивать технические вещи — это правильный подход», говорит Данила. «Очень известный в Python-сообществе Григорий Петров тоже говорит, что скилы по программированию (хард скилы) подтянуть всегда можно. Главное сойтись во взглядах на жизнь, чтобы было комфортно вместе работать. Я с ним согласен.

Конечно, навыки программирования важны. Но сейчас я работаю с такими вещами, которых на курсах не преподают. Мне их показали уже на работе, и дальше я разбираюсь сам, читаю документацию, статьи, смотрю примеры — требования ко мне, как к python разработчику постоянно растут. Меня больше настораживают компании, которые дают «нормальные» тестовые задания. Ты смотришь и думаешь — а это правда тестовое или я сейчас бесплатный фрилансер?»

«Собеседование, которое проходил я, расплавило мне мозг еще как», вспоминает Артем. «Когда я вышел, состояние было, как будто иду на автопилоте — так сильно продолжали жужжать мысли».

Проходило оно так: сидели два эйчара и два технаря. Один питонист и фулстек, который занимался вебом — куда пробовался и я. Второй — судя по вопросам — совершенный надмозг. У него такой был сильный матан, что просто ого-го!

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

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

Честно, даже не ожидал, что мне перезвонят. Тем не менее — получил оффер. Через несколько дней будет первый рабочий день».

Велика ли зарплата Python программиста

Люди идут в ИТ не только по зову души. Это индустрия с одними из самых быстро растущих зарплат в России. И иногда кажется, что зарплаты программистов Python по сравнению со среднестатистическими профессиями отличаются как зарплаты в Москве и в регионах. Тем не менее, ни Артем, ни Данила не шли в эту профессию за богатством. Больше того — они его пока так и не нашли.

«Даже в Москве на начальных позициях программистам предлагают 40-50 тысяч, может даже меньше. В регионах 20 тысяч для джуниора тоже не редкость. Это не такая уж высокооплачиваемая работа, как все утверждают. Да, когда достигаешь уровня синьора, зарплаты python программиста могут переваливать за 200-300 тысяч. Но где таких зарплат нет? Недавно одна такси-компания показала доходы таксистов, которые больше всех заработали. Там 230, 240 тысяч.

На диаграмме зарплат python-разработчиков с разбивкой по квалификациям видно, что медиана для джуна составляет почти 60 000 рублей, тогда как мидл получает уже в среднем чуть больше 100 000 рублей. Зато разница между показателями медиан для сеньора и лида совсем небольшая — 151 000 рублей и 167 000 рублей соответственно.
При построении диаграммы были использованы данные зарплатного калькулятора «Моего круга».

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

«Зарплаты зависят от региона», говорит Алексей, «Кто-то устроится за 40 тысяч как начинающий, кто-то может и сразу на 100 тысяч. Смотря как себя проявить. Если покажешь, что можешь писать не только код, но и разбираешься в архитектуре, можешь набросать схему проекта целиком, всех модулей, сервисов, связей между ними».

Артем же вообще ушел в разработку на меньшую зарплату, чем имел будучи инженером. «В электрике у меня была должность главного инженера, и зарплата была очень хорошая. Я ушел, потому что хочу развития. А в программировании можно развиваться до бесконечности».

Мастер Йода рекомендует:  PHP и Web. Кэширование PHP

Несмотря на то, что в программировании одна из самых четких и понятных градаций по уровню мастерства (джуниор, мидл, синьор) — она все равно остается относительной и постоянно разжигает споры размытостью своих критериев. Споры в духе «ты в компании Х синьор, а в компании Y и джуниором не возьмут» или «пока десять лет не работал — не синьор».

«До уровня мидла можно прокачаться в течение года обучения. Например, в Geekbrains есть обязательные курсы и дополнительное. Все их надо пройти полностью чтобы честно сказать — я прокачался до уровня мидла. То есть, получается год основной программы и ещё полгода параллельных курсов», — считает Алексей, — «А синьор — это человек, у которого есть богатый опыт. Это тот, кто разбирается в разных фреймворках, способен масштабировать задачи, понимать каких ресурсов они требуют. Человек, который не изобретает велосипеды. Кто на собственном опыте разобрался во всех аспектах и нюансах работы.

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

На биржах труда ищут мобильных разработчиков, девопсов, бэкендеров и фронтендеров, но где эти профессии в списках специальностей классических вузов?

Мы запускаем цикл статей в которых подробно расскажем о каждой профессии через опыт людей. В первом выпуске обсуждаем Python-разработчиков. Свои истории рассказали Артем Сухаренко и Данила Лобанов. Они пришли в профессию совсем недавно, но успели набраться опыта в других сферах. А экспертом выступил Алексей Петренко — декан факультета Python в Geekbrains.

Мы поговорили о том, что нужно знать перед обучением, чем хорош и плох язык, что трудного ждет в обучении и на чем стоит сосредоточиться; какие профессии и какая зарплата python-программиста, как готовиться к первым собеседованиям и многое другое.

Для чего учить Python

Артем Сухаренко учился в СибГИУ на кафедре автоматики и информатики. Его специальность была инженерной, но не связанной с программированием. После выпуска Артем устроился работать на завод ЗСМК — один из самых крупных металлургических комбинатов в России

«Я обалдел, насколько там все ужасно», — говорит он, — «Полуразвалившийся советский электропривод, никакой модернизации, специалисты особо не нужны». Долго на заводе он не задержался, но продолжил работать с электрикой дальше. Вырос до ведущего инженера в Сибирьтелекоме, затем переехал из Сибири в Москву и устроился в коммерческий ЦОД, где отвечал за инфраструктуру.

Программирование иногда подразумевалось. Артем пытался работать с микроконтроллерами, делать что-то более сложное, но всегда упирался в отказы работодателей и заказчиков — им это было не нужно. Хватало элементарных вещей, которыми, как говорит Артем, интересно заниматься только первые 15 минут, и особых скиллов для этого не нужно.

«Может быть, я не туда совался, но развития для себя не нашел. Пять лет вуза — просто чтобы крутить провода. Это было так обидно».

Однажды коллега подал Артему идею изучать программирование не для электрики, а чтобы стать Python-разработчиком. Он стал читать книги, пробовать разные задачи, но не решался сменить профессию. «Желание у меня назревало долго. Сначала не давали сменить профессию ипотека, финансовые вопросы, личный страх».

В 36 лет Артем пошел на курсы GeekBrains «Python-разработчик».

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

«Зная Пайтон можно делать много всего — от простейших скриптов до анализа данных и построения нейронных сетей. Но конкретно разработка на Пайтон — это бэкенд для веб-серверов, разработка скрытой части интернета — той, которую не видят обычные пользователи. Сервер, его логику, взаимодействие с базами данных». Все это мы расскажем на наших курсах и ответим на ваш вопрос — «Как стать программистом Python?», говорит Алексей Петренко, декан факультета Python в Geekbrains.

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

«Хоть Python и пропагандируется как язык для всего, по факту у него только две сферы применения: всякие data science, ML и прочая математика — и веб-разработка. В этом он меня немного разочаровал», — говорит Данила Лобанов, бывший сисадмин, который недавно стал Python-разработчиком.

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

Данила тесно познакомился с компьютером относительно поздно, примерно в 18 лет. От высшего образования он отказался и почти сразу пошел работать сисадмином. Начинал с самых элементарных задач, потом приступил к изучению Linux и программирования.

«Я попытался изучать С, PHP, Java еще какие-то языки, но не заходило — начинал и бросал. Не мог писать даже простейшие скрипты. Когда я ходил на курсы по С, у меня получалось читать код, но не получалось его писать. Мне давали задачу, я смотрел на нее и не представлял, как делать. Преподаватель садился рядом, писал построчно, объяснял, и я понимал, что именно так и надо было делать. Но мне давали аналогичную задачу, и я снова был в ступоре».

После неудачных попыток Данила надолго забросил программирование. Около десяти лет он проработал сисадмином. И когда почувствовал, что администрирование больше не приносит радости, решил дать разработке еще один шанс.

«Новичку лучше первым делом разобраться в синтаксисе», — считает Алексей Петренко, — «Только потом стоит думать, куда хочется идти дальше. Чем больше ты учишься, тем больше уходишь от синтаксиса к библиотекам, паттернам проектирования, отдельным шаблонам».

Данила все-таки выбрал Python потому, что язык считался легким. «Синтаксис реально оказался простым», — говорит он, — «Как писать текст на английском языке. Сначала я изучал его самостоятельно по видеоматериалам на Ютубе, по статьям, решал задачи на pythontutor.ru. Но потом понял, что ресурсы в интернете — это только основы и азы. Они доступны всем и везде, и не помогут научиться программированию основательно. Я понял, что надо искать курсы, которые дадут все то же самое, только систематизировано, а потом поведут меня дальше».

Что надо знать перед началом обучения

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

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

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

Начать может быть легко, но впереди ждут трудности

Артем продолжал работать электриком днем, а вечерами начал учиться на курсах, несмотря на усталость. «Как и у всех наивных людей, у меня было ожидание магии от курсов. Я пришел не совсем нулевым. Я не мог даже ответить на вопросы: «Python developer — что это?», «Что должен знать программист Python?». В багаже было несколько книг и даже простых сайтиков, в том числе на PHP (грешен, признаю). Я ждал, что на курсах надмозги меня выдрессируют, и я стану волшебником. Реалии оказались другими — там такие же люди, которые просто знают чуть больше».

Артему нравилось на курсах, но не все шло гладко. Программа на тот момент была новая, мало обкатанная и по его впечатлениям сумбурная. О спорных моментах ученики высказывались, давали обратную связь, и недостатки исправлялись на ходу. Один из преподавателей оказался настолько слабым, что его попросили убрать. Но остальные, как вспоминает Артем, были очень сильны.

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

«Все признавали, в том числе сотрудники Geekbrains, что уровни 2 и 3 в программе по Python были одними из самых сложных курсов в университете. Очень много информации в слишком сжатые сроки, очень большие домашние задания. Многие усваивали только часть материала. Я лично два раза переводился в следующий поток. Мы просили облегчить программу, нас спрашивали как, и я предлагал разбить два курса на три. Что-то из этого приняли во внимание и сейчас реализовали».

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

«Преподавать программирование тоже очень сложно. Всем кажется, что раз человек может писать программы, значит может и научить. Это не так. Когда мышление перестроено, и знаешь много всего — уже не можешь вспомнить, каково это — не понимать».

Алексей предупреждает, что Python легкий только в начале. А после легкой базы придется приложить усилия, чтобы освоить более серьезные аспекты — библиотеки и фреймворки. «Если сравнить язык программирования с водоемом, то, например, язык С — это океан. Ты ныряешь с обрыва на огромную глубину, и либо плывешь, либо тонешь. Язык Пайтон — это пляж с чистым песком, где ты можешь далеко зайти, спокойно поплавать, и если понял, что хочешь двигаться дальше — то за красивым пляжем есть огромная впадина, по глубине сопоставимая с С и Java».

«Асинхронное программирование в Python — это мозгодробительная штука», вспоминает Артем. «Мы проходили это как-то поверхностно, и потом даже на собеседованиях, когда по нему спрашивали, я чувствовал, что плыл.

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

Данила же вспоминает модуль select как самое трудное: «Все три потока помнят мою боль с селектами. Есть такой модуль, и он мне прямо очень не давался в свое время. Сейчас-то он для меня простой — я теперь не понимаю, как его можно не понять».

«В базовой конфигурации Python лежит около 70 функций и несколько десятков зарезервированных слов, но даже крутой питон программист не обязательно использует их все. То есть, чтобы выучить сотню слов и понять, что они делают, можно потратить одну-три недели при желании и активной работе», говорит Алексей.

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

Чтобы в будущем работать в команде и показывать код кому-то еще, надо знать общепринятые стандарты стиля. В Python они называются «Пепы» (Peps). Я бы советовал читать Pep8 параллельно с изучением синтаксиса. Это соглашение программистов, которые пишут на Пайтоне. Оно рекомендует как правильно писать, а как неправильно.

Несколько лет назад в Python произошло разделение. Был Python 2.7, а потом вышла версия 3. Вторая версия все еще используется, но только в старых фирмах для поддержания легаси-кода. Если устроиться в такую фирму, то изучать Python 2 придется, но я бы рекомендовал учить третью версию. Все современные проекты и сторонние библиотеки пишутся под нее».

Как выдержать первые собеседования

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

«Проект назвался GoLiving. Это что-то вроде AirBnb, только задумка такая: в Америке есть люди, которые часто ездят работать в разные города на непродолжительный период. И они могут между собой меняться жильем с гарантированной страховкой, чтобы точно быть уверенным, что не вернешься в разгромленную квартиру. Сейчас я не знаю, насколько далеко пошел этот ресурс, кажется финансирование приостановили. Но тогда у нас даже были инвесторы».

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

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

«Мой опыт в Geekbrains показывает, что некоторые студенты находят работу, до того как они заканчивают годовой курс обучения», говорит Алексей. «Работодатель хочет видеть у серверного разработчика элементарное умение работать с синтаксисом, знание как работают сайты, как устроен бэкенд, тот же самый набирающий популярность Django. Я бы сюда ещё добавил работу в команде и знания баз данных, потому что любой бэкенд любого сайта неразрывно связан с хранением информации. Требования к python разработчику растут с каждым годом.

Ежемесячно на «Моём круге» открывается порядка 200 вакансий python-разработчиков, вы можете посмотреть самые свежие и подписаться на рассылку о новых вакансиях.

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

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

Данила на собеседовании больше всего удивило то, что ему не задали ни одного технического вопроса: «Не давали никаких заданий — просто общались о том, как я учился, чем интересуюсь. В итоге предложили работу, и я согласился».

Алексей же считает, что с такими компаниями стоить быть внимательнее. «Кроме общих вопросов должны быть задачи на написание кода. Даже если на бумаге карандашом — это нормально. Но если ты пришел на собеседование программиста и не получил ни одного вопроса о программировании, то тебя либо собеседовал некомпетентный человек, либо ты будешь заниматься вообще чем-то непрограммистским. Программистов надо проверять на программирование».

«Я считаю, не спрашивать технические вещи — это правильный подход», говорит Данила. «Очень известный в Python-сообществе Григорий Петров тоже говорит, что скилы по программированию (хард скилы) подтянуть всегда можно. Главное сойтись во взглядах на жизнь, чтобы было комфортно вместе работать. Я с ним согласен.

Конечно, навыки программирования важны. Но сейчас я работаю с такими вещами, которых на курсах не преподают. Мне их показали уже на работе, и дальше я разбираюсь сам, читаю документацию, статьи, смотрю примеры — требования ко мне, как к python разработчику постоянно растут. Меня больше настораживают компании, которые дают «нормальные» тестовые задания. Ты смотришь и думаешь — а это правда тестовое или я сейчас бесплатный фрилансер?»

«Собеседование, которое проходил я, расплавило мне мозг еще как», вспоминает Артем. «Когда я вышел, состояние было, как будто иду на автопилоте — так сильно продолжали жужжать мысли».

Проходило оно так: сидели два эйчара и два технаря. Один питонист и фулстек, который занимался вебом — куда пробовался и я. Второй — судя по вопросам — совершенный надмозг. У него такой был сильный матан, что просто ого-го!

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

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

Честно, даже не ожидал, что мне перезвонят. Тем не менее — получил оффер. Через несколько дней будет первый рабочий день».

Велика ли зарплата Python программиста

Люди идут в ИТ не только по зову души. Это индустрия с одними из самых быстро растущих зарплат в России. И иногда кажется, что зарплаты программистов Python по сравнению со среднестатистическими профессиями отличаются как зарплаты в Москве и в регионах. Тем не менее, ни Артем, ни Данила не шли в эту профессию за богатством. Больше того — они его пока так и не нашли.

«Даже в Москве на начальных позициях программистам предлагают 40-50 тысяч, может даже меньше. В регионах 20 тысяч для джуниора тоже не редкость. Это не такая уж высокооплачиваемая работа, как все утверждают. Да, когда достигаешь уровня синьора, зарплаты python программиста могут переваливать за 200-300 тысяч. Но где таких зарплат нет? Недавно одна такси-компания показала доходы таксистов, которые больше всех заработали. Там 230, 240 тысяч.

На диаграмме зарплат python-разработчиков с разбивкой по квалификациям видно, что медиана для джуна составляет почти 60 000 рублей, тогда как мидл получает уже в среднем чуть больше 100 000 рублей. Зато разница между показателями медиан для сеньора и лида совсем небольшая — 151 000 рублей и 167 000 рублей соответственно.
При построении диаграммы были использованы данные зарплатного калькулятора «Моего круга».

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

«Зарплаты зависят от региона», говорит Алексей, «Кто-то устроится за 40 тысяч как начинающий, кто-то может и сразу на 100 тысяч. Смотря как себя проявить. Если покажешь, что можешь писать не только код, но и разбираешься в архитектуре, можешь набросать схему проекта целиком, всех модулей, сервисов, связей между ними».

Артем же вообще ушел в разработку на меньшую зарплату, чем имел будучи инженером. «В электрике у меня была должность главного инженера, и зарплата была очень хорошая. Я ушел, потому что хочу развития. А в программировании можно развиваться до бесконечности».

Несмотря на то, что в программировании одна из самых четких и понятных градаций по уровню мастерства (джуниор, мидл, синьор) — она все равно остается относительной и постоянно разжигает споры размытостью своих критериев. Споры в духе «ты в компании Х синьор, а в компании Y и джуниором не возьмут» или «пока десять лет не работал — не синьор».

«До уровня мидла можно прокачаться в течение года обучения. Например, в Geekbrains есть обязательные курсы и дополнительное. Все их надо пройти полностью чтобы честно сказать — я прокачался до уровня мидла. То есть, получается год основной программы и ещё полгода параллельных курсов», — считает Алексей, — «А синьор — это человек, у которого есть богатый опыт. Это тот, кто разбирается в разных фреймворках, способен масштабировать задачи, понимать каких ресурсов они требуют. Человек, который не изобретает велосипеды. Кто на собственном опыте разобрался во всех аспектах и нюансах работы.

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

Что можно делать с Python?

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

И что дальше?

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

Содержание:

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

Что другие делают в Python?

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

Google, к примеру, использовали Python с самого начала, и сегодня он занимает место ведущих гигантов среди языков, ориентированных на серверную сторону. Гвидо ван Россум, добрый пожизненный диктатор Python (уже нет) даже работал нам на протяжении нескольких лет, наблюдая за тем, как развивается язык.

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

Что я могу делать в Python?

Начиная с веб разработки до работы с научными данными, машинным обучением, и пр., приложения Python не имеют границ. Рассмотрим несколько проектов, которые помогут вам развить ваши навыки работы с Python.

#1: Автоматизация нудных дел

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

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

#2: Держать руку на курсе Биткоина

Похоже, что сегодня о Bitcoin Python говорят все. С тех пор, как в декабре 2020, когда курс почти поднялся до отметки в 20 000 долларов, криптовалюта стала на слуху у миллионов. Цена продолжает колебаться, но многие считают инвестиции целесообразными.

Если вы хотите обогатиться на виртуальном золоте и хотите знать, когда делать следующий шаг, то вам нужно иметь представление о лучших ценах на bitcoin. Это руководство может научить вас, как использовать навыки работы в Python, чтобы построить собственную систему уведомлений о курсе Bitcoin.

Основа этого проекта – это создание IFTTT (if this, then that) апплетов. Вы узнаете, как использовать библиотеку requests для отправки запросов HTTP и как использовать webhook для подключения вашего приложения к внешним сервисам.

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

#3: Создание калькулятора

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

Если вам интересен UX\UI дизайн, то это руководство вам понравится. Вы будете работать с модулем tkinter, стандартным пакетом графического пользовательского интерфейса, который поставляется вместе с Python.

Модуль tkinter – это обертка вокруг Tcl/Tk, комбинация скриптового языка Tcl и расширения фреймворка графического пользовательского интерфейса Tk. Если у вас есть установленный Python, то у вас уже есть готовый к использованию tkinter. Вам нужно сделать простой вызов перед началом:

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

#4: Майнинг данных Twitter

Благодаря интернету, и (все чаще и чаще) интернету вещей (IoT) – у нас есть доступ к огромному количеству данных, о которых не могли мечтать всего десять лет назад. Аналитика – это огромная часть любой сферы, которая связана с данными. О чем люди разговаривают? Какие шаблоны видны в их поведении?

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

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

Вы увидите, как использовать Tweepy для фильтрации твитов, которые вы хотите вытягивать, TextBlob для подсчета настроения этих твитов, Elasticsearch для анализа содержимого этих твитов и Kibana для показа результатов. По окончанию данного руководства, вы уже будете готовы к тому, чтобы заняться другими проектами, которые используют Python для обработки текстов и распознавания речи.

#5: Создание микроблога с помощью Flask

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

Он называется «Мега-руководство Flask», и однозначно соответствует названию. Проработав 23 главы, вы получите глубокое представление о веб-фреймворке Flask. К концу проекта, вы сможете создать полностью работающее веб приложение.
Вам не нужно знать что-либо о Flask, чтобы приступить к делу, так что это идеально для тех, у кого чешутся руки, чтобы приступить к веб разработке.

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

#6: Создание блокчейна

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

Вы можете получить лучшее представление о том, как это работает, построив свой блокчейн! Руководство Hackernoon поможет вам реализовать блокчейн с нуля. К концу проекта, вы получите глубокое представление того, как работает эта технология транзакций.

Вы будете работать с HTTP клиентами и библиотекой requests. После установки веб-фреймворка Flask, вы сможете использовать запросы HTTP и взаимодействовать со своим блокчейном в интернете.

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

#7: Разбираемся с лентой Twitter

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

Боб Белдерброс делится кейсом, где он создал 40th PyBites Code Challenge, в котором участникам нужно было построить простое веб приложение для лучшей навигации по ленте новостей Daily Python Tip в Твиттере. Вы можете пройтись по результатам данного челенджа и ознакомиться с кодом.

Вместо Flask, вы будете использовать микро веб-фреймворк Bottle. Он славится тем, что является слабо зависимым решением для быстрого создания приложений. Так как он был разработан таким образом, чтобы быть легким и простым в использовании, вы сможете получить свое приложение практически мгновенно.
Вы также сможете работать с модулем Tweepy, чтобы загружать данные из API Твиттера. Вы сможете хранить данные в базе SQLAlchemy или Peewee, так что заодно получите небольшую практику в запросах SQL.

#8: Играйте в PyGames

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

Библиотека Pygame заметно упрощает разработку собственных игр. Он включает в себя практически все необходимое, чтобы вы могли приступить к разработке игр.

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

Вам доступны десятки игр, которые вы можете создать при помощи библиотеки. Что-бы вы не хотели придумать, чувствуйте себя комфортно и делитесь своими работами в сообществе Pygame!

#9: Выберите свое собственное приключение

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

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

Если вы хотите, чтобы ваша история вышла на новый уровень, вы можете использовать движок, вроде RenPy, чтобы добавить звуки и изображения в вашу игру, создав визуальную новеллу с полным погружением. (После этого, вы можете выложить игру в Steam и посмотреть, как она расходится! Лучший способ получить отзыв о вашей работе – создать собственный релиз на мировом рынке.)

#10: Скажите “Привет, мир!” машинному обучению

Машинное обучение может быть фундаментальной областью в понимании искусственного интеллекта. Однако, в этой сфере легко запутаться, так как она постоянно развивается и меняется.
К счастью, в вашем распоряжении имеются онлайн ресурсы, которые могут помочь освоиться, перед тем как нырнуть с головой в мир под названием data science. Это руководство создано Джейсоном Браунли, и является хорошим примером введением в использование Python для машинного обучения.

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

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

Когда вы будете уверены в том, что можно нырять с головой, можете ознакомиться с этими руководствами, где вы сможете научиться анализировать отпечатки, создавать визуализации, распознавать речь и лица, и все это в Python!

#11: Бросаем вызов!

Если вы не уверены в том, что готовы окунаться в некоторые крупные проекты, упомянутые ранее, при этом мелкие вас не очень интересуют, вы можете думать: а чем еще можно заняться?

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

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

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

Чтобы начать, попробуйте одно из следующих, чтобы оценить свои силы:

  • Python Challenge. Более 20 доступных уровней. Создавайте простые скрипты в Python, чтобы решить уровень. По интернету есть разбросанные подсказки, но старайтесь искать решение самостоятельно!
  • PyBites Code Challenge. Включает в себя 50 задач, и количество растет! Эти задачи направлены на то, чтобы вы научились работать в Python для создания приложений, которые будут решать определенные проблемы.

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

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

Чего (скорее всего) не стоит делать в Python?

Очевидно, что Python – чрезвычайно универсальный язык, с которым вы можете делать массу вещей. Но вы не можете делать буквально всё. Фактически, есть определенные сферы, на которые Python не рассчитан.

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

Мастер Йода рекомендует:  Apache установка и настройка веб-сервера

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

Что если вашей идеи нет в этом списке?

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

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

Что делать дальше?

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

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

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

Moscow Python Podcast. Истории успеха джуниоров-питонистов

В Moscow Python Podcast мы регулярно касаемся того, как джуниору начать путь в индустрии. Сегодня — выпуск с самыми твёрдыми пруфами: два выпускника Learn Python рассказали нам, как учились на наших курсах и до них, с какими трудностями столкнулись в освоении основ профессии, в чём их ожидания совпали, а в чём разошлись с практикой рынка, как им удалось устроиться на первую программистскую работу. В гостях у подкаста разработчик компании МТС Александр Козельский и разработчик компании Techboss Мария Кузнецова. Ведущие выпуска — сооснователь MoscowPython и компании DryLabs Валентин Домбровский и DevRel компании Evrone, руководитель программного комитета Moscow Python Conf++ Григорий Петров.

Валентин Домбровский: Всем привет. В эфире MoscowPython подкаст. Подкаст для тех, кто любит Python.

Наш подкаст традиционно записывается при поддержке конференции MoscowPython Conf++ и курсов Learn Python. Всё это проходит в офисе Skyeng.

Сегодня с вами в нашей импровизированной студии Валентин Домбровский — сооснователь Moscow Python и компании Drylabs, Григорий Петров – DevRel компании Evrone, евангелист Moscow Python, руководитель программного комитета Moscow Python Conf++, и ведущий разработчик компании Evrone – Михаил.

И ещё два человека — это очень важно. Сегодня мы говорим как раз про курсы Learn Python. Некоторые наши ролики, в связи с тем, что мы говорим в них про курсы, объявляют слишком длинной рекламой. Если вы считаете, что это слишком длинная реклама, то можете пропускать этот ролик. На самом деле, на мой взгляд, реклама бывает и полезной. И мне хотелось бы, чтобы это было именно так.

Сегодня мы говорим про истории успеха начинающих разработчиков и с нами сегодня в студии Александр Козельский — разработчик компании МТС, выпускник двенадцатого набора курсов Learn Python и Мария Кузнецова — разработчик компании Techboss, выпускник девятого набора.

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

Александр Козельский: Я закончил вуз в 2020 году и устроился работать в авиацию, хотя заканчивал робототехнику. Это, по большому счёту, часть программирования, часть какой-то механики, конструкторских вещей. Я решил, что инженерное дело мне нравится — пошёл в авиацию, не совсем на своё, на гидравлику, но тем не менее. В процессе работы я понял, что и околовоенная структура мне не очень нравится, и в принципе специфика работы именно в конструкторском бюро высокого уровня, каким является ПАО “Туполев”, мне не интересна. Тогда я подумал: а что нравится, что когда-то нравилось, вспомнил из своей биографии, что писал какие-то программы, “рыбы” для студентов. Подумал, что это, наверно, будет интересно. Сначала начал изучать всё самостоятельно, потом в какой-то момент упёрся в то, что что-то не получается. Наткнулся на ваш курс, на подкаст изначально, тогда Junior был подкаст, посмотрел другие курсы и далее определился, что хочу к вам. Пришёл. Спасибо вам.

Валентин Домбровский: И не прогадал.

Григорий Петров: Позвольте, я ворвусь буквально на несколько секунд. Меня, как нейрофизиолога-любителя, бесконечно интересует: ты сказал очень важную для меня вещь, что в какой-то момент ты упёрся и понял, что не получается. Сможешь сейчас вспомнить на каком моменте это произошло и с чем были сложности при изучении программирования?

Александр Козельский: Я помню свой первый проект, с которого начал изучать Python — это был проект на Django. Тогда я упёрся в “никакую” регистрацию пользователя. Причём, это была именно проблема с ORM, я не мог разобраться в ней, и не знал куда дальше идти и что делать. Думал, пойду разберусь, но в итоге немного в другую степь ушёл.

Григорий Петров: Очень здорово, спасибо.

Валентин Домбровский: Мария, твоя история?

Мария Кузнецова: Я скрипач по первому высшему образованию, с 20-летним профессиональным опытом, Лауреат российских и международных конкурсов. У меня всё очень хорошо получалось, но было всегда ощущение, что это не моё, не захватывало. Тогда я получила второе высшее образование — это социально-культурный сервис и туризм. Проработала в международной компании три года. FCM Travel Solutions — большая компания, лидер рынка, но что-то было не то. Потом я родила ребёнка, была в декрете и меня настигла депрессия, потому что я понимала, что выходить нужно, видимо, туда же, но перспектив нет и это было ужасно. Я усиленно учила английский, потому что у меня было не очень хорошо с ним в то время. Мой бывший муж, инженер-связист, посоветовал программирование. Я подумала: почему бы и не попробовать? Я очень долго сомневалась. В итоге пришла на курсы, и оказалось, что это то, что нужно.

Валентин Домбровский: Это радует.

До того как решили заняться программированием, как вы себе представляли это и насколько это представление совпало с реальностью?

Александр Козельский: На самом деле достаточно сильно не совпадало. Я думал, что это какое-то сверх-творчество, каждый делает какого-то огромного слона. Когда я пришёл в достаточно крупную компанию МТС, я понял, что каждый делает свой вклад по кирпичику Lego. Это совершенно другое.

Валентин Домбровский: Примерно как о работе следователя судить по сериалам на НТВ?

Александр Козельский: Да, что-то вроде того.

Валентин Домбровский: Так-то понятно, что в поп-культуре программист сидит перед экраном и перед ним падают зелёные буковки.

Александр Козельский: В моём окружении программистов нет. Как ещё судить, кроме как не по поп-культуре. Понятно, что это всё гиперболизировано, но в любом случае.

Григорий Петров: И снова я ворвусь. Думаю, нашим слушателям будет интересно забавное когнитивное искажение. Когда ты сидишь в офисе где-нибудь в Башне в “Москва-Сити”, ты думаешь, что всё рядом с тобой разговаривают по-английски — наверно, большинство может разговаривать по-английски. Ты выходишь из Башни и вокруг тебя рушится твой стеклянный мир, и ты понимаешь, что в принципе, мало кто может разговаривать. И, когда ты программист, тебе кажется, что справа от тебя сидит программист, слева от тебя сидит программист и единственный непрограммист — это тётя Валя из бухгалтерии. Но и она уже на курсы пошла. Наверное, все более-менее понимают в компьютерах. Потом ты выходишь и всё это снова рушится с довольно неприятным звуком бьющегося стекла. Ты понимаешь, что для большинства компьютеры — такая магия и многие его даже включать не умеют — этим занимаются их дети и внуки. Это забавно. И тем интереснее слышать, что есть, например, два молодых человека, у которых в окружении нет программистов. У вас ведь не по три-четыре знакомых, а больше? Я имею в виду вообще. Это десятки, возможно даже сотни человек, и среди них нет программистов?

Александр Козельский: Да, разработчики есть, но профессионального общения с ними не было.

Григорий Петров: Понятно.

Валентин Домбровский: Да, у меня, к сожалению, не так много в окружении скрипачей. Есть один виолончелист Большого театра, это правда. Но у меня довольно широкий круг знакомств и этот виолончелист, помимо прочего, ещё держит сайт, посвящённый классической музыке. Так мы с ним и познакомились. Но, конечно, когда ты в своей профессиональной среде, ты видишь то, что тебя окружает, это очевидно.

Мария, у Вас с Александром, немного разные истории, потому что Александр всё-таки с техническим бэкграундом, а у тебя гуманитарный. Я сам, если честно, гуманитарий (придётся в этом признаться). Как я написал недавно в одном техническом чате: “я гуманитарий, извините, есть такой грех”. Это, наверное, тоже интересно, потому что многие имеют подобный бэкграунд, и я думаю, что есть какой-то блок “гуманитарный”. Как ты его преодолела?

Мария Кузнецова: У моего бывшего мужа иногда на экране были такие чёрные окошечки с белыми буквами — это всё, что я знала о программировании. И он тогда дал характеристику этой профессии: ты должен всё время самосовершенствоваться, всё время что-то учить новое, и если тебе вдруг надоест этот язык, есть ещё языки для изучения. У тебя всегда есть сфера, в которой ты можешь развиваться неограниченно. Одна из моих самых больших страстей в жизни, любимых вещей — это возможность учиться. Не зря у меня два высших образования и колледж. Я обожаю этот процесс. Я подумала, что эта сфера мне подойдёт.

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

Григорий Петров: Лет пять-шесть назад я думал, что мозг мальчика и девочки различается, мозг гуманитария и технаря различается. Потом я более глубоко начал изучать нейрофизиологию, пообщался с Бесчастных, ещё с рядом нейрофизиологов, психиатров. Они говорят, что нет, не различаются, это всё наученное. То есть, последняя версия моей картины мира 2.0, улучшенная и переработанная — нет различия между мальчиками и девочками, гуманитариями и технарями, а есть то, чему мы научились, а переучиваться тяжело. Программирование — это специальная, я бы сказал, область, которая не похожа ни на что. Её можно сравнить с гуманитарным, её можно сравнить с математикой, хотя я это очень не люблю. Для меня это принципиальное новье, которое не имеет корней вообще. Ты начинаешь программировать и это имеет примерно такое же отношение к написанию книги, как к написанию книги имеет, например, готовка еды. У них есть что-то общее, можно проводить какие-то аналогии: и там, и там, например, есть рецепт. Но на самом деле вещи разные.

Валентин Домбровский: Пожалуй. Александр, ты учился программированию до курсов. Какие вообще методики ты применял до того, как решил пойти обучаться? Что тебе мешало, а что может быть помогало? Как ты оцениваешь процесс самостоятельного обучения?

Александр Козельский: Именно методик, как таковых, не было. Был навык учиться, который я приобрёл в институте. Так как работа подразумевала под собой активную интеллектуальную деятельность, приходилось выделять время на отдых. Чтобы, например, заставлять себя не смотреть в телефон в электричке, когда ехал домой. Это было самым важным. Потому что, если в телефоне будет какая-то информация, захочется какие-нибудь страницы в ВК полистать, например, то голова просто перегружается. Приезжаешь домой, садишься за компьютер, включаешь его и понимаешь, что ничего не хочешь, кроме как лечь поспать, поесть и пр. Это нужно было ограничивать. Так как мне нравилось разбираться в чём-то — это интересный процесс, особенно, когда начинает что-то получаться. Но Django такой фреймворк, где всё очень быстро делается, тяп-ляп и в продакшн, как говорится. Документация очень хорошая. Она на английском, но отличная. В Django быстро и tutorial идёт. Я сначала посмотрел какие-то видео по Django. Везде разбирается один и тот же блок, потом посмотрел в tutorial Django — этот же блок по сути разбирается. Именно так учился. У меня была какая-то задача, которую я не разбивал на слишком маленькие задачи. В этом была небольшая ошибка. Просто садился за то, что нравилось, и думал, как это сделать.

Валентин Домбровский: Мария, ты сразу решила что тебе нужна такая поддержка? Когда ты решила пойти в эту профессию, то сразу поняла для себя, что тебе нужно пойти на курсы?

Мария Кузнецова: Я прошла приложение Sololearn, для Python. Ничего не поняла. Погуглила курсы. И примерно через 2 месяца пошла уже на курсы. Мне нужна была поддержка, потому что я была абсолютным нулём. Я даже не знала как вызвать командную строку.

Валентин Домбровский: Понятно. Тогда такой вопрос: почему мы? У тебя не было программистов в окружении, значит, я думаю, ты не знала о MoscowPython. Я думаю, ты узнала о нас через курсы. У нас есть два типа студентов: те, кто узнаёт о курсах через MoscowPython и те, кто узнаёт о MoscowPython через курсы.

Мария Кузнецова: Я отношусь ко второму типу.

Валентин Домбровский: Да, у тебя второй вариант. Почему, что тебя зацепило?

Мария Кузнецова: Мне посоветовали Python, сказав, что с него лучше всего начинать. Я слушалась. У меня не было вариантов. Курсов много. Я выбирала несколько месяцев, очень сомневалась, стоит ли идти. А из аргументов “за”, почему я выбрала именно эти курсы: во-первых, график очень удобный: в выходной можно было посещать занятия. У меня ребёнок, нужно было с кем-то оставлять. Во-вторых, на вашем сайте было написано, что после курсов ты, скорее всего, не будешь программистом оплачиваемым, скорее всего не выйдешь на работу, а должен будешь посвятить ещё около года учёбе и только потом, если ты будешь хорошо учиться — ты выйдешь. Мне показалось это честным. Потому что обещание, что я закончу курсы через три месяца и мне будут платить сто двадцать тысяч, по моему опыту, это подозрительно.

Валентин Домбровский: Да, так некоторые наши коллеги, к сожалению, поступают.

Мария Кузнецова: Да, и это вызывает большое сомнение.

Александр Козельский: В подтверждение хочу сказать, что фраза “мы не обещаем трудоустройство после курсов” определяющая. Мне кажется. В моём случае тоже самое было.

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

Александр Козельский: Эта помощь — уже очень многое.

Мария Кузнецова: Рассмотр резюме — это классно, что вы это делаете.

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

Григорий Петров: Кстати, забавно, я программирую, наверное, уже лет двадцать пять. Из них 20 лет за деньги. Когда ты так долго этим занимаешься, очень трудно понять, а что же в этом непонятного. Всё кажется таким простым, и когда ты человеку объясняешь интерактивно, всегда все всё понимают. Поэтому долгое время меня ставили в тупик слова людей из серии “я начал изучать программирование и упёрся во что-то, не понял”. Во что там можно упереться? Покажите мне эту стену, давайте вместе разберёмся. Так было, пока я не начал изучать японский. Японский у меня просто лакмусовая бумажка, о том, что всё бывает тяжело. Я начал читать статью о том, как спрягаются японские глаголы. Они спрягаются непросто, но есть какой-то набор правил. Прочёл. Не понял. Слова вроде бы все понятные и какие-то действия понятны. Тут разбиваем, тут словарные формы, тут пять вариантов, тут “i” отбрасываем, тут вставляем, а вот целостной картины как-то нет и повторить не можешь. Так и изучаешь-изучаешь сам и только через несколько лет на какой-то десятой статье, которая это объясняет разными способами, я наконец-то понял, что там происходит. На каком-то совершенно отвлечённом примере, я вдруг понял, как оно работает. Очевидно, что вне зависимости от того, какой у человека бэкграунд, какой у него интеллект, насколько он умный и так далее, новые вещи реально даются тяжело, особенно если пытаешься изучать по книжкам. С живым человеком гораздо проще, потому что живой человек видит, как ты с этим пытаешься разобраться, следить за твоим мыслительным процессом и может его подкорректировать. Это, конечно, ценно.

Валентин Домбровский: Так как у нас рекламный ролик, всё спонсируется Learn Python, скажу, что я недавно был на митапе, посвящённом обучению data science. Там были ребята, которые учат на разных курсах, у некоторых свои школы. Хорошие ребята, хорошие преподаватели, всё хорошо. Но там они как-то чётко разделяли, условно: онлайн — это на потоке, массово и так далее; оффлайн — это преподаватель, у него группа студентов и он их обучает. Я про себя подумал, что, по-видимому, у нас в некотором роде уникальный случай. В оффлайне есть не только главный преподаватель Миша, Володя и Илья, у нас есть кураторы. По сути, ты получаешь более индивидуальный подход, учась в этой мини-группе с куратором. Но и в онлайне та же самая история. Да, у тебя есть куратор и ты с ним уже в онлайне общаешься.

Вы оба учились в оффлайне. Мы видим, что этот подход более эффективен. По-видимому, потому что есть чёткие отсечки — встречи в субботу. И это всё работает более эффективно, чем то, что в онлайне. Но мы стараемся онлайн тоже подтягивать и делать эффективным. В принципе системы похожи: есть куратор, есть группа и всё это работает.

Давайте теперь по-честному о курсах — что хорошо, что плохо. Честно и откровенно. Нам самим это нужно: и Мише, Володе и Илье скину ссылку на эту запись, скажу: “смотрите, смотрите сюда!”

Александр Козельский: Я помню, как оставлял фидбэк о курсах после окончания — общение, оно бесценно. То, что мы приходим, группы из 6 человек плюс куратор — это очень классно, потому что в онлайн так не сделаешь. Есть тот, кто вещает, и остальные — максимум в чат могут написать. Наверно, это работает, точно не знаю. При этом, когда ты приходишь на занятие, вокруг совершенно разные люди, и, например, один что-то не понял, а ты это понял — ты ему объяснил, и наоборот. Происходит такой обмен опытом. Это хорошо.

Валентин Домбровский: Да. Не зря, собственно, на первом занятии, когда присутствую (к сожалению, я не на всех первых занятиях бываю), говорю, что если Вы искали школу программирования, Вы ошиблись адресом. Вы попали в сообщество.

Александр Козельский: Это очень хорошо. Практикоориентированность — это такой краеугольный камень, потому что у каждого есть свой проект и каждый идёт своими темпами. Это действительно хорошо. Первый день — интенсив, который погружает в язык программирования и его синтаксис. Но не хватает, лично мне кажется, мини-лекции в начале каждого занятия. То есть, рассказ на 10-15 минут о какой-то фиче языка, условно, как работает словарь, что такое хэш-функции, мэппинг и так далее. Чего-то подобного не хватает, потому что, например, на собеседованиях такие вопросы очень частые и их в основном нигде не освещают. В статьях, учебниках также редко об этом упоминается. Такое погружение в язык или, например, небольшая лекция по модулю itertools было бы полезно. Когда читаешь какую-нибудь статью, написано: здесь используем вот это и вот это. А почему, что она делает? Такие вопросы возникают.

Валентин Домбровский: Да, мы получаем фидбэк на тему того, что сам формат занятий, когда люди приходят, садятся и начинают кодить, не все понимают. Обычно приходишь, тебе что-то рассказывают и так далее. У нас, можно сказать, политика такая, что на семинарах ты сразу погружаешься. Но вы сами видите, что это работает. На счёт небольшого контента… Повторюсь, что мы получаем такой фидбэк, что это, возможно, было бы полезно, но тут важно отметить, что те вещи, о которых ты говоришь, которые где-то как-то не освещаются, какие-то лакуны закрывать. Здесь важен какой-то список этих вещей. Если есть такой список, мы можем публично на митапе это сделать, будет видеозапись, которую можно будет посмотреть. Как вариант. Мы сейчас планируем проводить воркшопы с партнёрами. У нас есть один партнёр, который заинтересован в том, чтобы наши студенты шли к нему учиться на продвинутые курсы датасаентистов.

Он хочет сделать воркшоп бесплатно для наших выпускников. Анонсы будут в закрытом сообществе. Воркшоп сделает, кто-то придёт к нему учиться. В принципе такие вещи мы тоже будем практиковать. Это кажется интересным форматом сотрудничества.

Мария, теперь твой честный фидбэк.

Мария Кузнецова: Мне понравилась идея коротких лекций. Потому, что ты приходишь и не очень понимаешь, когда начинать. Но в то же время, в этом есть большой плюс, потому что когда ты становишься программистом, ты всегда приходишь, открываешь ноутбук и всё твой рабочий день начался. Мне кажется, это особенность профессии такая, в принципе. И у тебя, пришедшего из “другого” мира, возникает вопрос: “а что происходит. ”. Но к этому надо привыкать. Из недостатков, сразу из плохого, мне было сложно из-за того, что некоторые видеолекции по установке каких-то модулей, прочего, были по старым версиям. У меня была винда, это в принципе было сложно, и тут ты заходишь на сайт, и понимаешь, что на этом месте нет этой кнопки. А там где я была тогда, на уровне моего знания, если ты не видишь кнопки, у тебя наступает паника. Тогда ты скачиваешь какую-нибудь устаревшую версию, лишь бы там была эта кнопка в том месте.

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

Мария Кузнецова: А так, всё классно.

Валентин Домбровский: Супер. Очень рад. А если касаться каких-то трудных моментов во время обучения? Мы говорили об организационных каких-то моментах, а вот какие-то блоки во время обучения у вас наступали? Например, “к пятому занятию я понял, что мозг у меня кипит” — что-то такое было?

Александр Козельский: Я подошёл к курсам уже более-менее подготовленным студентом. Я просматривал в основном веб, с Flask разбирался. Но в Django я с этим сталкивался. Была трудность в том, что мы с моим коллегой, скажем так, на неделю ошиблись с окончанием курсов и нам пришлось в последний вечер и ночь доделывать.

Валентин Домбровский: Моделирование дедлайнов. Чувствуешь, что такое дедлайн.

Александр Козельский: Лекции достаточно простые. Они для тех, кто приходит с нуля и дальше растёт сам. Это правильно. Я считаю, так и должно быть. Потому что человек, который в это окунётся, он найдёт какой-нибудь ресурс, который будет смотреть. Кстати, я вспомнил такой ресурс — Codewars. Это замечательный ресурс для просто набития руки. Какие-то простые логические задачи, например, декодировать какую-нибудь строку, которая легко закодирована. Зачастую это даёт понимание как работают разные структуры данных, например list, dict. Особенно, когда приезжаешь и над проектом нет никакого желания работать, но поучиться надо. Запускаешь какую-нибудь простенькую задачку, и эта платформа потом он тебя поздравляет, ранги повышает. Ты испытываешь восторг.

Мария Кузнецова: Я вот не соглашусь, что лекции очень простые.

Валентин Домбровский: Да, немного разный был начальный уровень.

Мария Кузнецова: Я помню, как смотрела, например, лекции Миши, где он даёт пример из трёх строчек кода, который я перепечатываю полностью, проверяю, что у меня буква в букву. Но код не работает. В итоге лекция в 20 минут у меня занимала часа два минимум. Добавьте сюда, что это винда. Ты пытаешься установить, но ничего не устанавливается.

Валентин Домбровский: Главное, что ты сама в этом разбиралась.

Мария Кузнецова: Да. Иногда куратору напишешь. И когда всё заработает, ты думаешь: “ну, наконец-то”.

Григорий Петров: Для образования это очень здорово: запоминание эмоций. Если сам помучился, то гораздо лучше запоминаешь.

Мария Кузнецова: Да, это хорошо работает. Но немного психологически выматывает. На уроке тебе говорят: “вот и всё, смотрите, всё работает”. А у тебя не работает.

Григорий Петров: Обучение вообще психологически выматывает.

Мария Кузнецова: Это точно. Но это классно.

Валентин Домбровский: Да, согласен, обучение — это всегда некий слом привычек, которые у тебя есть. Слом какого-то способа мышления, который у тебя есть. Поэтому согласен с Григорием насчёт психологической сложности этого процесса. Не всем это даётся. Особенно если ты стремишься учиться всю жизнь. Но у тебя действительно очень хороший пример, потому что ты научилась учиться. Именно поэтому у тебя всё и получилось.

А чем вы сейчас занимаетесь? Чем вообще джуны занимаются на работе?

Александр Козельский: Скажем так, я ещё не знаю, чем джуны занимаются. Я работаю 3 дня. Возникли некоторые трудности из-за того, что вакансия для студентов и тех, кто закончил не более двух лет назад. Я не под одну из категорий не попадал и поэтому моё устройство сместилось на неделю. Сначала у меня не было учётки, ничего. Подхожу к моему куратору, он спрашивает: “ты это знаешь, это знаешь, это знаешь?” Я говорю: “нет”. Тогда читай всё это. Потом принёс мне ноутбук: “вот наш Confluence, читай, а ещё вот это, вот это, вот это”. И сидишь читаешь по 8 часов. Конечно, мне это нравится. В любом случае это интересная новая информация, не скучно, как минимум. Но пока руками я ничего не делаю и поэтому не знаю, чем занимаются джуны по большому счёту.

Валентин Домбровский: Давай чуть-чуть откатимся назад. Чем ты занимался после курса? У тебя получился относительно небольшой срок. Я имею в виду, мы говорим, что год-полтора надо ещё поучиться. Но поскольку у тебя был уже такой background и ты сам занимался, получилось, что. ты закончил 12 набор, это было у нас в мае месяце, и фактически пара месяцев всего прошла, судя по нашей статистике, с чем готовы поздравить. Что ты делал эти два месяца, расскажи, пожалуйста.

Александр Козельский: После курсов я был вымотан, потому что над проектом было достаточно тяжело работать, много нового. И в итоге я перешёл в режим light обучения: я приходил, читал статьи, решил пойти попробовать, что такое асинхронность в Python. Это было тяжело, больно, но я что-то понял. Я больше читал, чем кодил руками. Так как я работал, пока искал работу, у меня не было возможности часто ходить на собеседования. Особенно то, что у меня режимное предприятие и убегать с работы нехорошо. Может меня закидают тапками — это было моё первое собеседование и оно тут же стало успешным.

Валентин Домбровский: Ты же участвовал в проекте поддержки трудоустройства? Помогло хоть чем-то?

Александр Козельский: Истории, когда некоторые ходят и у них спрашивают какие-то просто невероятные вещи на собеседованиях для меня непонятны. Ты джун, ты, по сути, только начинаешь свой путь. У тебя есть два варианта обучения — в глубину или в ширину. Либо ты берёшь какую-то технологию, условно, Flask и погружаешься в неё, но ничего другого не знаешь. Либо ты посмотрел на Flask, Flask может это, SQL — вот это, ещё где-нибудь о Pandas узнал. В любом случае тебя начинают спрашивать не по одной технологии, а по нескольким. И спрашивают достаточно глубоко. Но если ты Junior, ты не можешь глубоко всё сразу изучить. Во-первых, у тебя нет проекта, чтобы это изучить, потому что просто почитать — это не работает. Скажем, есть какой-нибудь пример, который работает, а вот когда есть какое-нибудь отклонение, какое-то условие, которое нужно выполнить немного по-другому, всё это не работает. И вот тут нужно разбираться. Получается так, что в глубину несколько технологий сложно освоить, а когда ты приходишь на собеседование, тебя спрашивают всё. Я считаю это неправильно.

Валентин Домбровский: Работодатели, привет!

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

Валентин Домбровский: В итоге твоё собеседование в МТС было достаточно лояльным?

Александр Козельский: Да. Оно мне показалось идеальным. Меня спросили про Python: основы, как устроен, как работают словари, и так далее. Специфика моей работы больше не Python, не на Python писать, а делать SQL запросы. Из кластера нужно переводить в другие места данные, скажем так. И меня спросили про SQL. Я что-то ответил, что-то нет. Это было дружественное собеседование. Спасибо HR, которая нашла, и привела, так сказать, за ручку.

Валентин Домбровский: Как тебя нашли?

Александр Козельский: Через вас, как раз. Через программу поддержки.

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

Александр Козельский: Ну, как сказать…

Валентин Домбровский: Я имею в виду, фидбэк от другой стороны.

Александр Козельский: Как сказать. В чате вы написали раньше, чем мне ответили, что мне дают оффер.

Валентин Домбровский: Да, точно… Ок, отлично. Курсы Learn Python: “сообщаем о трудоустройстве раньше, чем вы об этом узнаёте!”.

Да, хорошо. Отлично. Мария, у тебя так получилось, что ты раньше заканчивала и у нас ещё не было нашего проекта поддержки. Как ты прошла свой путь? Чем ты занималась после курсов?

Мария Кузнецова: Курсы закончились прошлым летом, почти год назад, получается. Потом у меня был жёсткий период, связанный с разводом. Процесс занял полгода и я была не в состоянии учиться, если честно. Начала учиться где-то в январе. Я тогда отдала ребёнка в садик и у меня получалось уделять время учёбе около десяти часов в день. Я только училась: туториалы, лекции, Otus.

Валентин Домбровский: Понятно, продолжая всё то, что мы показывали.

Мария Кузнецова: Да, как можно больше и параллельно рассылала резюме на hh.ru, получая отказы.

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

Мария Кузнецова: Это немножко, конечно, печалило, если не сказать больше. Есть ещё разные группы в Telegram для поиска работы. Первый раз, когда я откликнулась, и мне прислали тестовое задание — это было весной. Я поняла, что я ещё не могу, это было сильно выше головы. Пришлось ответить немножко нечестно, что просто нет времени, потому что постеснялась. В июне я ещё раз откликнулась. Мне также прислали тестовое задание. На тот раз оно было мне по силам. Задания были примерно на одном уровне, но, видимо, я просто была уже готова. Я его сделала и мы пособеседовались. Я работаю удалённо, кстати. Собеседование было по телефону, через два дня я прислала выполненное задание, его через три дня пустили в продакшн. За тестовое задание заплатили (что за него заплатят, было сразу оговорено). Таким образом, спустя 10 дней я получила первую зарплату.

Григорий Петров: Классно. Удалённая работа — это вообще круто.

Мария Кузнецова: Да, очень здорово. Мы живём в пригороде.

Григорий Петров: Вот компания Evrone, в которой я теперь DevRel известна не только тем, что делает заказ на разработку в основном на Ruby, но и тем, что вся команда удалённая. Вообще вся. В офисе “Москва-Сити” сидят два человека и теперь я. Потому, что я боюсь работать удалённо, я реально не смогу найти в себе силы. Поэтому каждое утро я прихожу в офис, говорю “привет, я буду работать здесь”. Народ говорит “ну ок”.

Валентин Домбровский: Мы сейчас находимся в таком относительно небольшом офисе замечательной компании Skyeng. Не сопоставим с небоскрёбами Mail.ru и с “Красной розой” Яндекса. Но при этом, когда у нас был подкаст с Сашей Куликовой, HR’ом, она сказала, что у них здесь 3000 человек работает и тогда для меня это было открытием. И действительно, основная масса, 3000 человек, на удалёнке. То есть это сопоставимо по масштабам с крупнейшими компаниями, это уже корпорация можно сказать, но это удалёнка. На самом деле это зачёт Skyeng, её менеджменту.

Григорий Петров: Ооо, да! CRM изнутри выглядит просто как. Я не буду спойлерить, но такого…

Валентин Домбровский: В Evrone сколько человек?

Григорий Петров: Больше сотни. Довольно большая компания по разработке. А CRM изнутри выглядит просто феерически. То есть процессы по удалённой работе — это реально процессы. Это сильно отличается от полностью офисного full-time, очень сильно.

Валентин Домбровский: Об этом мы ещё поговорим. Кстати, мы уже как-то говорили про это в одном из наших выпусков. Но ещё, я думаю, вернёмся к этому в других наших подкастах.

Григорий Петров: Да, кстати, обсудить удалённую работу было бы интересно. У нас в Москве, например, Лихачёв есть, наш операционный директор. Я с ним ещё по NPTV знаком, где вместе работали. Он хорошо в удалённой работе разбирается и вполне возможно, что он как раз в качестве гостя подкаста сможет рассказать, каково разработчику на удалённой работе со стороны компании, которая с ним работает.

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

Мастер Йода рекомендует:  Как отказаться от jQuery в современном фронтенде опыт команды GitHub

Александр Козельский: Знать SQL. Мне кажется, что в большинстве случаев это очень нужный навык. Не знать его досконально, потому что какое-нибудь распределение по какому-то рейнжу, не обязательно знать. Но обычные join запросы, join таблиц, запросы вложенные, вьюхи — это нужно. Это не так сложно. Некоторые компании не используют ORM, считают, что это замедляет. Или, если это большие данные, действительно большие данные, терабайты, то ни о какой ORM речи быть не может, только SQL запросы. А дальше на самом деле зависит от того, куда хочешь идти. Если условный back end, то Flask, Django, искать, что больше нравится. Специфику именно той области, куда идёшь и в принципе SQL, если там есть SQL. Потому что, например, в проекте с моим коллегой договорились, что мы не пользуемся ORM какой-то, а пользуемся SQLAlchemy, для того чтобы научиться. Это лично для себя.

Валентин Домбровский: Кстати, какой проект был на курсах?

Александр Козельский: Проект был предложен моим коллегой. Мы делали анализ словосочетаний абстрактных научных статей. Сделали сайт, выложили, он работал. Использовали NLTK, модуль, который это использовал, был достаточно маленький. Он просто пробегался по всем этим статьям, вычленял оттуда словосочетание. Дальше машина, которая это обрабатывала, вызывала. И парсер в итоге делал я, который работал неделями.

Валентин Домбровский: Мария, у тебя какой был проект?

Мария Кузнецова: Мы делали Keykeeper — это было расширение для FireFox, хранитель паролей, мы всё шифровали с сервером. Было прям классно! Я придумала.

Валентин Домбровский: Прикольно. Действительно интересно. И что в итоге? Ты вышла, потратила ещё полгода, практически full-time. То есть, тебе ещё полгода нужно было такого серьёзного, планомерного обучения. Что тебе помогло, какие знания тебе помогли и сейчас помогают в работе?

Мария Кузнецова: Помогало смотреть headhunter и смотреть какие требования по вакансиям для джунов. И очень помогло — я зарегистрировалась на ……, где смотрела задачки. Я ни разу ничего не взяла, но это очень помогало понимать, что нужно в боевых задачах. Я за это время сделала pet project — бота для Telegram. Он принимает данные артериального давления, какая-то аналитика несложная, строит графики через Matplotlib, естественно работает всё время с сервером. Надо что-то делать такое, что можно посмотреть, чтобы оно работало. Чтобы оно было боевое, более-менее приближённое к действительности.

Валентин Домбровский: Кстати, на том самом митапе, посвящённом обучению data science, когда говорили о найме начинающих датасаентистов, один из спикеров сказал такую вещь, что “если датасаентист присылает ссылку на github, то это уже большой плюс”. У нас у всех по итогам курсов есть ссылки с проектами. Я отдельно хочу ещё раз подчеркнуть, что есть проблема, что у людей нет уверенности в собственных знаниях для того, чтобы идти куда-то на работу, для кого-то что-то писать. Я обычно говорю так: рассылайте резюме на более-менее адекватные вакансии, где Вы видите, что более-менее подходите. Не значит, что всё, что описано в вакансии Вы должны знать. Условно, если Вы джуниор-разработчик — отправляйте резюме. Если Senior, то, наверное, рановато. После курсов можете отправлять резюме на любую вакансию джуниор-разработчика на Python. Моё мнение лично такое. И здесь, мне кажется, что те отказы, о которых ты говоришь, не стоит их воспринимать как “ я ничего не знаю”. Ты абсолютно правильно сказала, что надо смотреть, что требуется в вакансиях естественно, всё это тоже стараться изучать потихоньку, нарабатывать, улучшать своё резюме. Делать проект и показывать, накапливать базу в Github, постепенно делать всё это. Параллельно рассылать резюме, не воспринимать обратную связь, как некий укол в вашу личность, что вы чего-то не знаете. Это всё нормально. Ходить на собеседования по возможности. Это тяжело может быть, потому что в любом случае этот тот самый процесс оценки, который ты должен пройти. И здесь действительно психологический барьер может быть. Когда тебе говорят, что ты чего-то не знаешь — это всегда неприятно. Но через это нужно пройти, если ты хочешь успешно устроиться. Иногда такой процесс может быть достаточно растянут во времени на несколько месяцев. Но несколько месяцев — это всё-таки не несколько лет, к счастью. Ну что же, давайте тем, кто смотрит нас, может, только начинает свой путь в изучении программирования, питона и так далее, дадим какой-то лайфхак, который вы обнаружили на пути, до той своей стадии, на которой вы сейчас находитесь. Лайфхак в обучении.

Александр Козельский: Лайфхак… По поводу Codewars уже сказал, это мне сильно помогло. Ещё такой лайфхак — спите по 8 часов минимум. Это действительно так. Спите в комфортном для себя ритме, сколько вам нужно, чтобы выспаться. Вы должны высыпаться, потому что вся информация, которую вы получаете днём — она обрабатывается и аккумулируется именно во сне.

Валентин Домбровский: Мне понравилась твоя мысль о том, что, чтобы фактически сочетать учёбу с работой, если вы работаете и учитесь одновременно, вам нужно освобождать процессорные мощности мозга. То есть, твоя мысль о том, что не нужно потреблять излишнее количество информации помимо того, что касается непосредственно вашей работы и учёбы.

Александр Козельский: Да, то есть соблюдать некоторую такую «диету».

Мария Кузнецова: Мне помогло всё время носить свой ноутбук. Когда у тебя есть пять минут, ты открываешь и что-то делаешь, что-нибудь, хотя бы чуть-чуть, покодишь и ты уже в процессе, ты ходишь и думаешь об этом. Это хорошо работает. А из лайфхаков: когда я хожу на маникюр, то смотрю лекции. Последний раз про Redis. Это было очень интересно. Девочкам очень рекомендую, потому что два часа просто так выкинуть… А тут ты не выкинула, ты ещё что-то узнала.

Валентин Домбровский: Да. У нас есть Youtube канал с докладами наших митапов. Кстати, скоро будем выкладывать наши прошлые конференции, там будет много интересных лекций. И, конечно, наши подкасты. Друзья, слушайте подкасты и смотрите в свободное время. Михаил Корнеев, как раз, на последнем занятии, когда говорит о том, как вам дальше двигаться и развиваться, говорит такую мысль, которую полезно освоить: надо как можно чаще практиковаться, кодить каждый день по возможности, хотя бы 20 минут. То есть, когда ничего не хочется, ставите таймер на 20 минут. И бывает так, что ты втягиваешься, и уже 20 минут превращаются в час, два и так далее. Программирование имеет такое свойство, что оно затягивает. Я думаю, вы со мной согласитесь, время летит незаметно.

Александр Козельский: Ещё хотел сказать. Посмотрите выступления с митапов Евгения Идзиковского. Его обязательно надо посмотреть, потому что там очень много таких лайфхаков, которые реально помогают. Условно, две минуты, но концентрация максимальная. Очень-очень полезно.

Валентин Домбровский: Да, это те самые доклады по soft skills, серию которых предложил нам сделать Григорий, и пригласил своего друга Евгения. На Youtube канале MoscowPython, на котором, возможно, некоторые из вас смотрят этот подкаст, зайдите в раздел плейлистов и найдите Евгения Идзиковского. У него много лекций и в других местах, но у нас есть три лекции Евгения, которые непосредственно относятся к разработке. Например, “Как перестать прокрастинировать и начать писать код”.

Григорий Петров: Первый доклад мы с ним делали вместе, я помогал. И эта вот Женина формулировка про прокрастинацию, он же сам бывший it’шник, ну как, бывших it’шников не бывает, но он ушёл из it в психологию — эта его формулировка про то, что прокрастинация — это на самом деле не откладывание работы “на потом”, ты просто не хочешь её делать вообще и перепоручаешь себе “завтрашнему” в полностью оправданной надежде, что во-первых, ты “завтрашний” её стопудово примет потому, что это не существующей персонаж, и, во-вторых, стопудово её не сделает, потому что завтра его уже не будет.

Валентин Домбровский: Мне нравится эта концепция разных людей: я вчера, я сегодня, я завтра. Действительно, абсолютная правда. Что ж, большое спасибо, друзья, это было очень интересно. Что-то я для себя открыл очень полезное и интересное. С Вами был MoscowPython подкаст — подкаст для тех, кто любит Python. Все это дело происходило в офисе компании Skyeng, за что им отдельная благодарность. Подкаст проводится при записи конференции Moscow Python Conf++ и для тех, кто ещё не понял во время нашего выпуска, курсов Learn Python. Cсылочки в описании и другие ссылочки, о которых мы сказали, например, ссылка на форму партнёра по трудоустройству курсов Learn Python, также будет в описании. Как Вы видите — это работает. C нами сегодня были: я Валентин Домбровский — сооснователь MoscowPython и компании Drylabs, Григорий Петров — Dev Rel компании Evrone, евангелист MoscowPython, руководитель программного комитета Moscow Python Conf++. Я стараюсь ускорять перечисление твоих регалий. Ведущий разработчик компании Evrone — Михаил. Александр Козельский — разработчик компании МТС, Мария Кузнецова — разработчик компании Techboss.

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

Ещё подкасты про выпускников Learn Python:

Что стоит знать junior developer’y (python)

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

Данные собраны по посещению примерно 13 собеседований (включая по удаленке) в Питере за 2 последних года. (искал работу трижды, последний раз 3 недели назад)

Собственно, сам список:

1) Для начала типы данных — как использовать, как хранятся, что делает функция >

2) Потом декораторы. Их любят вообще все. Советую не просто почитать что это, а написать парочку, а потом написать декоратор который еще и аргументы принимает)

3) Что такое итераторы и генераторы, чем отличаются и как задать и тот и другой

4) Знать что делают методы класса типа __call__, __srt__, __init__, __next__ и т.д.

Почитать про то, какие есть базовые декораторы (property, staticmethod..)

Дальше общие вопросы, не связанные с питоном.

5) Следует знать про асимптотику функций, уметь расчитывать сложность. Почитать про популярные алгоритмы сортировки, особенно про то, что есть базово в питоне)

4) Почитать про популярные способы хранения информации и как (и за сколько) в них совершается поиск

5) Любят спрашивать про SQL, особенно про индексы. Мне с SQL помогли разобраться задачки на составление запросов, гугл выдает много сайтов, найти что-нить для себя не трудно

6) Про ООП следует понимать как работает механизм наследования классов, знать что такое mixin и как это применить. Про инкапсуляцию/наследование/полиморфизм меня спрашивали только 1 раз, но знать будет не лишним)

Вроде ничего не забыл)

Несколько раз мне встречалась задачки про взвешивания (Что то типа даны весы с 2 чашами и 8 монеток. Одна из них фальшивая и легче. За сколько взвешеваний можно найти монетку?)

Еще было пару раз задание накодить следующее: дана строка, содержащая скобки (), <> и []. Необходимо определить валидна ли эта строка (т.е. (а+<в-с>) валидна, а <а×(в+с>) нет.)

И еще мне нравится задачка: человек находится в поезде, замкнутым по кругу. Все окна заколочены, никаких меток ставить нельзя, паттерны тоже использовать запрещено — количество вагонов конечно, но вполне может стремиться к бесконечности) Можно только включать или выключать свет. Изначально в каждом вагоне рандомное состояние света. Задача — посчитать сколько всего вагонов)

�� 11 проектов, которые должен разработать каждый питонист. #[email protected]

Уверены, что хорошо знаете Python? Проверьте, сможете ли вы разработать эти проекты на Python. Если нет − бегом читать наши туториалы.

11 проектов, которые должен разработать каждый питонист

Уверены, что хорошо знаете Python? Проверьте, сможете ли вы разработать эти проекты на Python. Если нет − бегом читать наши туториалы.

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

Рустам Борханов

Большего хлеба, сегодня я не видел.

О проекте

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

Комьюнити программистов: что нужно знать о Python-сообществах

23 августа, 2020 |

Любовь Белоконь
Любовь Белоконь
Получайте новые статьи на e‑mail

Пишем о будущем, технологиях и стартапах

«Python — язык программирования, созданный сообществом»
Гвидо Ван Россум, создатель Python

«Опять сломалось» — типичная ситуация для разработчиков. Если поиск в Google бесполезен, документация и Stack Overflow молчат, а известные способы починки не работают, программист идёт за помощью в сообщество. Это может быть чат, форум, группа — место, где тебя выручат и потроллят. Живое комьюнити особенно важно для начинающих программистов. Поэтому вместе с Никитой Соболевым, преподавателем курса по программированию на Python, дорогая редакция #tceh сделала обзор полезных и интересных сообществ для новичков и профи.

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

Спасибо, что живой
Активное сообщество определяет развитие языка в целом. Для крупных корпораций это показатель надёжности с точки зрения бизнеса. YouTube, Reddit, Quora, Spotify не боятся делать свои продукты на Python. Не говоря о небольших компаниях. А значит, пока их бизнес развивается, спрос на питонистов продолжит расти.

Не знаю, как это сделать
Когда не получается, нужно копать, читать и пробовать. Бывает, что неделю не двигаешься с места. Ускорить этот процесс помогает сообщество. Важно вести себя адекватно: чётко объяснить проблему и показать, что вы предприняли не одну попытку её решить. За ошибки вас не прогонят. Прогонят за просьбы о готовом решении.

О, да ты шаришь!
Сообщество — это общение с близкими по духу. С теми, кто так же ошибается и так же выходит из положения. Как правило, активные участники одни и те же — они могут дружить годами, даже не зная настоящих имён друг друга. «Я бы не стал тем, кем стал, если бы в Python-комьюнити не было такого количества невероятных людей», — пишет Армин Ронахер, автор фреймворка Flask.

А давай вместе?
В сообществе легко найти тех, с кем можно объединиться в команду по работе над проектом. Бесплатно. Потому что интересно и нарабатывается опыт.

Python-сообщества можно поделить на онлайн и оффлайн. Те же люди и там, и там, различается только формат.

В онлайне

Конечно, кодерам и удобнее, и проще общаться в онлайне. Чаще всего это мейллисты, чаты, форумы, соцсети и UGC-сообщества типа Habrahabr/Geektimes.

Maillist — наиболее важный способ общения в Python-сообществе, где обсуждаются новые фишки языка и принимаются основные решения. На mail.python.org собраны все публичные списки питонистов.

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

Slack — онлайн-сервис для ведения переписки с коллегами и единомышленниками.

  • • Python Developers — живое комьюнити в социальных сетях; 2000 человек.
  • • Python.ru — общение в различных каналах: общий, флуд, помощь, работа, ивенты; 1000 человек.

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

  • • Англоязычная группа в Facebook PythonDevelopers. Сюда кидают ссылки на профильные новости, полезные материалы и видео. И обсуждают всё это комментариях.
  • • Группа Moscow Python в Facebook — много интересных вакансий и анонсов мероприятий для питонистов.

Telegram. Раньше была популярна IRC, теперь более живая среда — в Telegram-чатах. Из минусов: нет комнат для тесного общения и слабая модерация.

  • • Python_beginners — для новичков, где не побьют за глупый вопрос.
  • • Python — популярный Telegram-чат в российском сообществе: больше 1000 человек. Для прошаренных ребят.
  • • rupython — чатик поменьше, но принципиальной разницы нет.
  • • RudePython — грубый чат без обиняков.
  • • Два одноимённых чата по Django: первый и второй.
  • • Программисты — для общения о различных языках программирования.

Форумы.Вот популярные форумы и порталы для питонистов:

  • • Stack Overflow — крупнейший сайт формата «вопрос-ответ» для программистов.
  • • Python.su — для знакомств, обсуждения новых фич и взаимопомощи.
  • • Cyberforum — здесь тоже общение и решение задачек.
  • • Reddit — формат тот же, но на английском языке.
  • • Python Дайджест — портал, где новости о Python собираются коллективными усилиями на совершенно безвозмездной основе. Каждый желающий может добавить ссылку на релевантную новость или проект и таким образом помочь проекту.
  • • Тостер — можно задавать вопросы в духе «А что почитать?», «А накидайте задачки», «Как распределить время при обучении?», «Сколько можно заработать?».

Хабр. На Хабре по хабу Python можно найти уйму полезного: от книг до нетривиальных кодерских решений. Можно отфильтровать материалы и медитировать на них.

Hello, world

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

Moscow Python — объединяет российское Python-комьюнити. Это встречи, мастер-классы, обучение начинающих питонистов и большая конференция Moscow Python Conf. 24 августа пройдёт очередной митап, не пропустите. Здесь набираются опыта и знакомятся с классными людьми, находят работу или тренируются в публичных выступлениях.

Пример. Сейчас Владимир Филонов руководит компанией ITCanFly. Всё началось в 2012 году, когда он впервые посетил мероприятие для программистов. Это была встреча Moscow Python (тогда Moscow Django), где Владимир познакомился с человеком, который пригласил его на позицию CTO музыкального стартапа. Вдохновившись духом сообщества, Филонов из разработчика превратился в евангелиста — стал тем, кто движет вперёд российское Python-сообщество. К примеру, именно Владимир придумал провести мастер-классы по программированию для девушек Django Girls, которые проходили в #tceh.

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

Pycon проводят и в России, обычно за городом, куда съезжаются питонисты и приглашённые иностранные докладчики . Последняя конференция прошла 3-4 июля в Подмосковье, объединив 350 участников со всей страны.

Яндекс тоже собирает мероприятия и конференции для питонистов. Следите за расписанием новых событий и смотрите записи старых.

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

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

Зачем изучать Python?

Python является широко используемым, высокоуровневым языком программирования, который был назван в честь знаменитого британского комедийного телешоу « Летающий цирк Монти Пайтона ». Язык Python простой по своей структуре, и в то же время невероятно гибкий и мощный. Учитывая, что код Python легко читаемый и без излишней строгости в синтаксисе, многие считают, что он является лучшим вводным языком программирования.

Python — описание языка, которое дали в Foundation описывает Python :

Какой язык программирования изучить первым?

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

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

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

Преимущества Python

Язык Python для начинающих универсален. Вы можете автоматизировать рабочие процессы, создавать сайты, а также настольные приложения и игры с помощью Python . К слову, спрос на разработчиков Python ( PostgreSQL, OOP, Flask, Django ) резко вырос за последние несколько лет в таких компаниях, как Instagram , Reddit , Tumblr , YouTube и Pinterest .

Высокоуровневый язык общего назначения

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

Интерпретируемый язык

Язык программирования Python для начинающих является интерпретируемым, а это значит, что вам не нужно знать, как компилировать код. Поскольку этап компиляции отсутствует, возрастает производительность, а время для редактирования, тестирования и отладки в значительной мере уменьшается. Просто скачайте интегрированную среду разработки ( IDE ), напишите свой код и нажмите « Выполнить » ( Run ).

Читаемость кода является ключевым моментом

Простой, легкий в изучении синтаксис Python делает упор на читаемость и задает хороший стиль программирования. С Python вы можете выразить свою концепцию меньшим количеством строк кода. Этот язык также заставляет вас обдумывать логику программы и алгоритмы. В связи с этим он часто используется как скриптовый или интегрирующий язык ( glue language ), чтобы связать существующие компоненты вместе и писать большие объемы легко читаемого и работоспособного кода в короткие промежутки времени.

Это просто весело

Нельзя назвать язык программирования в честь Монти Пайтона , не имея чувства юмора. Более того, было проведено тестирование для сравнения времени, необходимого для написания простого скрипта на различных языках ( Python, Java, C, J, BASIC ):

Данная публикация представляет собой перевод статьи « Why Learn Python? » , подготовленной дружной командой проекта Интернет-технологии.ру

46 терминов из разработки, которые нужно знать UX-дизайнеру

Может показаться, что начинать работу в IT без технического бэкграунда сложно. Так вот, это правда. Если вы, как и автор оригинальной статьи, не занимаетесь разработкой, но хотите ориентироваться в её терминах, держите от нас руку помощи. Специально для всех начинающих дизайнеров, менеджеров и маркетологов в Лайв Тайпинг и за его пределами мы перевели эту статью. Надеемся, что она избавит вас от необходимости тайком от коллег гуглить незнакомые слова.

Agile, или гибкие методологии разработки

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

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

API (программный интерфейс приложения)

Документ, который регламентирует то, как веб- и мобильные приложения обмениваются друг с другом информацией. Например, приложение ищет, какая сейчас погода в Сиднее. Для этого оно отправляет запросы к API ресурса weather.com, а weather.com присылает приложению структурированный ответ. То, в каком формате приложение обращается к ресурсу и то, в каком формате ресурс присылает ответ, определяет API.

Система управления контентом, она же «админка». В ней администратор редактирует разделы, добавляет статьи, фото товаров, удаляет спамные комментарии. С CMS одного сайта может работать несколько человек.

Data Science или «наука о данных»

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

DevOps

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

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

Github или Гит

Это , который используют разработчики для централизованного хранения кода. С помощью Github они могут работать над проектами совместно.

Расшифровывается как «язык гипертекстовой разметки». HTML выглядит как текст со специальным набором кодов разметки, который браузер получает из интернета и затем показывает как . Разметка говорит браузеру, как нужно отобразить содержимое на странице. HTML отвечает за структуру страницы, CSS — за стиль элементов структуры, JavaScript — за их поведение.

Технология позволяет мобильным приложениям с минимальной погрешностью определять местоположение смартфона. Исходя из того, где находится пользователь, приложение присылает ему соответствующий контент. Маячок использует технологию Bluetooth low energy (BLE).

JavaScript, или джаваскрипт

Язык программирования, который помогает делать интерактивными. HTML отвечает за структуру страницы, CSS — за стиль элементов структуры, Javascript — за их поведение.

MVP (Минимальный жизнеспособный продукт)

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

NFC (Технология ближней бесконтактной связи)

Способ беспроводной передачи данных от мобильного телефона другому устройству. Системы оплаты в одно касание, такие как Apple pay, работают по этому принципу.

Open (Создание программ с открытым исходным кодом)

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

(Программное обеспечение как услуга)

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

Scrum (в разработке)

Итеративный управления разработкой продукта. Главные компоненты такие:

  • Команда из разработчиков.
  • Спринты. Отрезки времени в недели, за которые команде нужно сделать определенное количество задач. Перед началом спринта команда оценивает, сколько времени нужно потратить на каждую задачу.
  • Scrum Master. Лидер, который помогает команде устранять проблемы и препятствия в работе над проектом.
  • Product Owner. Посредник между заказчиком и командой. Он отвечает за судьбу проекта и формирует Backlog — список задач на текущий спринт — и назначает приоритет задачам.

О том, как мы в Лайв Тайпинге применили scrum в тестировании, читайте в этой статье.

SEO, или «оптимизация под поисковые системы»

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

Процесс, в ходе которого вы проверяете, какую из двух версий предпочтут пользователи.

Аватар

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

Автоматическое тестирование

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

Адаптивный

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

(IP Address)

То же, что адрес или сетевой адрес в интернете, — это уникальный код, который идентифицирует устройство в локальной или .

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

Бэкенд (разработка)

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

Ветка проекта

Часть кода, над которой разработчик работает отдельно от основного проекта. Разработка по принципу «веток» помогает программистам создавать части проекта параллельно.

Виртуальная частная сеть (VPN)

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

Водопад

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

Гибридное приложение

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

Запросы на включение изменений в коде (Pull Requests)

Запрос, который разработчик отправляет другим участникам команды, чтобы сообщить об изменениях в коде. Pull Requests применяются в разветвлённой системе работы над проектом, с их помощью разработчик сообщает, что хочет отправить изменения в главную ветку проекта на Github из своей локальной ветки. Лидер команды разработчиков принимает Pull Requests и просматривает изменения. Если они не требуют рефакторинга, он заливает их в главную ветку.

Итерация или итеративная разработка

Это процесс разработки программного обеспечения, разбитый на временные отрезки. Итерация — это один из таких временных отрезков длинной от одной до четырёх недель. Итеративную разработку применяют в .

Каскадные таблицы стилей (CSS)

Это язык, который описывает, как элементы HTML отобразятся на экране. HTML — отвечает за структуру страницы, CSS — за стиль элементов структуры, JavaScript — за их поведение.

Коммит (подтверждение изменения кода)

Коммит — это фиксирование состояния кода. Применение коммитов связано с разветвлённой системой работы над кодом и системой контроля версий. Его применение выглядит так: разработчик делает изменение в своей ветке, потом он делает коммит — подтверждает, что он внёс изменения, код при этом хранится локально. После этого разработчик делает пуш и отправляет код на сервер.

Коммит можно сравнить с операцией Ctrl+S в любом редакторе, но это не одно и то же. После того как разработчик подтверждает коммитом изменения в коде, локально вернуть исходное состояние уже нельзя — для этого нужно возвращаться к состоянию, которое хранится на сервере. Это возможно благодаря тому, что вся история коммитов хранится в проекте — для этого они и нужны.

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

Набор средств разработки (SDK)

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

Парное программирование

Процесс, во время которого два программиста работают вместе: один пишет код, пока другой просматривает его и затем они меняются ролями.

Программа для управления взаимоотношениями с клиентами (CRM)

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

Ретроспектива

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

Рефакторинг кода

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

Мессенджер для общения внутри команды. Мы в Лайв Тайпинге пользуемся им.

Спайк (Spike)

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

Спринт

Установленный период времени, в который должен быть закончен оговоренный объём работы. Обычно спринт длится недели. Спринты применяют в scrum.

Технический долг

Попробуем объяснить этот термин через пример. Разработчику нужно добавить в проект код. У него есть для этого два пути: быстрый, но «грязный», и, более «чистый», но более затратный по времени (пример взят с сайта Agile Web Operations). «Грязный» способ сделает изменения в будущем сложнее, «чистый» — даст на выходе структурированный, читаемый, легко изменяемый код. Технический долг — это дополнительное время, которое понадобится на то, чтобы привести «грязный» код к «чистому» виду. Чем больше один разработчик заливает в проект «грязного» кода, тем сложнее будет другому разработчику дорабатывать проект и тем больше будет технический долг.

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

Хак (Hack)

Быстрое решение, которое устраняет проблему либо не совсем правильно, либо блестяще.

Хакатон

Это мероприятие, во время которого проводит один или несколько дней за поиском инновационной идеи. Цель хакатона — развивать креативность и помогать людям думать вне рамок.

«Хлебные крошки»

Способ визуально отобразить навигацию на сайте или в приложении. Он показывает, на какой вы сейчас странице и где в иерархии сайта она находится. Этот термин связан с понятием «путь», о котором мы писали в другой нашей статье с терминами для дизайнеров.

Чат-бот

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

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

Добавить комментарий