4 ошибки, которые мешают вам выучить Python
Как учиться и что делать, чтобы не пожалеть о потраченном времени. Холодный душ для новичков.
Это статья для всех, кто начинает или планирует изучать Python. Мы разберём четыре ошибки, которые часто встречаются в период обучения. Если сможете их своевременно исправить — сэкономите время и упростите вход в профессию.
Пожалуйста, не рассматривайте статью как очередной набор букв и картинок. Сделайте чтение максимально полезным — попробуйте выполнить все задания, которые мы предлагаем после каждого раздела.
Если вы поверхностно прочитаете материал, то сегодня-завтра всё забудете — это как заказать фитнес-программу у профессионального тренера и отложить её на потом. Никто не сделает за вас зарядку и не поможет с Python. Поэтому берите инициативу в свои руки и с этого момента практикуйте осмысленное чтение.
Ошибка №1
Выбирать профессию «на примерку»
Новички часто недооценивают сложность программирования и выбирают Python из-за его популярности и количества открытых вакансий.
Человек планирует быстро познакомиться с основами Python, потом ещё с несколькими языками программирования, сравнить и выбрать лучший вариант. Это фундаментальная ошибка, которая может испортить карьеру.
Представьте, что вы хотите стать доктором и выбираете направление. Как вы поступите? Соберёте подробную информацию о специальности или воспользуетесь методом проб и ошибок: полгода поработаете в венерологии, затем перейдёте в хирургию, дальше — в глазное отделение, в терапию, и так, пока не определитесь с решением?
В случае с медициной вряд ли кто-то согласится расходовать время впустую. Все понимают, что до квалифицированного специалиста нужно дорасти и это небыстро. В начале карьеры придётся часто дежурить по ночам, заполнять карточки пациентов и выполнять рутинные задачи. Будущий врач осознаёт предстоящие сложности и тщательно выбирает профессию.
В программировании должен быть аналогичный подход. Чем дольше человек прыгает между направлениями, тем меньше у него времени на карьеру.
Каждая смена языка программирования расходует ваше время. Чтобы этого не происходило, выбирайте профессию так, будто планируете стать врачом и проработать в одном направлении большую часть своей жизни:
- Почитайте статьи про Python и сравните его с другими языками.
- Пообщайтесь с карьерным консультантом.
- Посмотрите, какие проекты реализованы на Python и с какими технологиями это связано.
- Выпишите преимущества и недостатки Python.
- Решайте, учить или нет. А можете пока собирать информацию дальше.
Какое бы решение вы ни приняли, скорее всего, оно будет ошибочным. Писать код на профессиональном уровне не всем подходит — часто это монотонная работа, в которой нет творчества и приключений, как в фильме «Социальная сеть». То есть вообще нет гарантий, что вам понравится процесс.
Теперь о хорошем. Программированием необязательно заниматься всю жизнь. Если вы приобретёте опыт и научитесь работать, то через какое-то время сможете использовать свои навыки и изменить карьеру. Например, стать тимлидом и заниматься менеджерской работой или открыть IT-стартап и руководить разработкой полезного сервиса.
Задание 1
Соберите информацию про Python и письменно ответьте на вопросы:
- Почему вы выбираете Python в качестве первого языка программирования? Это эксперимент или осознанный выбор?
- Какой у вас примерный карьерный план на следующие 10 лет?
Под ответами перепишите декларацию намерений:
«Я понимаю, что смогу стать квалифицированным специалистом только в результате труда и многолетней практики. Мои шансы вырастут, если я не буду метаться между разными направлениями и сразу выберу что-то одно.
Я знаю, что выбор языка программирования — это риск. Мне может не понравиться, но я не намерен сдаваться. Через несколько лет я стану востребованным Python-разработчиком и при желании смогу изменить карьеру. Я настроен работать и понимаю, что не бывает простых путей — любой язык программирования лёгок только на старте. Дальше начинаются сложности. Поэтому не вижу смысла тратить своё драгоценное время.
Python — отличный язык, и я верю, что у меня всё получится!»
Число, подпись, ФИО
Распечатайте ответы на вопросы вместе с декларацией и держите записи под рукой. Возникнет желание бросить обучение и подыскать что-то полегче — перечитайте написанное, успокойтесь и продолжайте работать.
Ошибка №2
Писать код и не знать PEP-8
Если решите стать водителем, то придётся выучить правила дорожного движения. Без ПДД вы не получите права и рискуете попасть в аварию.
В языке Python есть индекс PEP-8 — руководство по стилю написания кода. По уровню значимости это такой же документ, как ПДД для водителя.
Каждый Python-разработчик в любой компании должен писать код, учитывая требования PEP-8. Они важнее корпоративных правил, и ошибка новичка — учить руководство по стилю в отрыве от теории и практических домашних заданий. То есть в тот момент, когда этих знаний потребует работодатель.
PEP-8 — это объёмный документ, который недостаточно только прочитать. Нужно научиться видеть ошибки и знать, как поправить код.
PEP-8 не всегда входит в учебную программу, и поэтому программист должен самостоятельно его изучить. Это напоминает внеклассное чтение на лето. Есть разные методики запоминания, но здесь подходит техника коротких записей:
- Заведите блог или страницу в соцсетях.
- Каждый день читайте фрагмент руководства по стилю для Python-кода.
- Делайте короткую заметку обо всём, что запомнили.
Уделяйте этому упражнению 10–15 минут в день, и через несколько месяцев выучите PEP-8 назубок. Когда разберётесь с теорией — переключайтесь на практику. Берите свой или чужой код, находите в нём ошибки и исправляйте их по правилам. Так вы набьёте руку и привыкнете к чистому коду.
Задание 2
Заведите блог, аккаунт в Twitter или страничку в любой соцсети. Сделайте это место своим ежедневником по изучению руководства PEP-8. Старайтесь публиковать короткие заметки и постепенно разбирать все правила стиля.
Для проверки качества кода попробуйте бесплатный сервис PythonChecker.
Ошибка №3
Игнорировать правила нейминга
Если быстро не застеклить разбитое окно, то скоро в здании не останется целых окон. Если не убрать пакет с мусором из неположенного места, то вокруг него вырастет свалка. Если в Python-проектах не следить за неймингом, получится запутанный код, в котором сложно ориентироваться. Социологи объясняют это теорией разбитых окон, согласно которой незначительные нарушения приводят к крупным проблемам.
Предположим, программист назвал функцию delete_all — «удалить всё». Без погружения в контекст и чтения кода ничего не понятно — эта функция может означать что угодно:
- удалить все файлы из базы данных;
- удалить всё с компьютера;
- удалить всех хейтеров из интернета;
- и так далее.
В промышленном коде функция может состоять из тысячи строк. Таких функций может быть много, и вчитываться в код каждой затратно по времени. Добавьте сюда несколько подобных проектов, и вы забудете про оперативность.
Код с хорошим неймингом напоминает картотеку. Вы можете посмотреть любую строку и по названию понять, что она делает — какую задачу решает данная переменная, функция или другой элемент кода. Не нужно вникать в содержание или изучать соседние блоки — название точно передаёт смысл.
Возьмём функцию delete_all и переименуем её в delete_all_archive — «удалить весь архив». Одним словом мы убрали неопределённость. Теперь программистам не нужно изучать код, чтобы понять назначение функции.
Название должно объяснять, что делает код и зачем он нужен. Если ответить на два вопроса не получается, добавляйте комментарий. В названии пишите, что делает код, а в комментарии — зачем он нужен. Это упрощает чтение:
- Программист видит функцию delete_all_archive и понимает, что она удаляет все архивные комментарии.
- Дальше он читает комментарий и узнаёт, что код нужен для автоматической очистки системы от мусорных файлов.
- По названию и комментарию программист может решить: раскрыть код и посмотреть реализацию или не тратить время. Так работает нейминг.
Названия и комментарии старайтесь оставлять на английском языке. Если команде так неудобно — попробуйте сохранить на латинице хотя бы названия.
Задание 3
Нейминг удобно изучать параллельно с PEP-8. Видите полезное правило — добавляйте его в свою базу знаний. Исчерпывающего перечня правил нейминга нет, и в разных проектах бывают нюансы или ограничения.
Поэтому для начала изучите Python Zen и законспектируйте книгу «Чистый код» Роберта Мартина. Когда закончите, обращайте внимание на примеры из практики. Увидели в чужом коде удачное название — сделали заметку.
Ошибка №4
Программировать в отрыве от сообщества
Python много заимствовал у ABC — мёртвого языка программирования, который, по мнению Гвидо ван Россума, провалился из-за отсутствия поддержки сообщества. Язык ABC проектировали учёные, которые не смогли учесть интересы программистов за пределами лаборатории.
Python развивался иначе. После релиза вокруг него сложилось сообщество, где программисты делились опытом, давали обратную связь и предлагали улучшения. Прошло 30 лет, а сообщество продолжает дорабатывать Python.
👉 История языка Python и Гвидо ван Россума.
Пример с Python и ABC демонстрирует силу сообщества, которую можно использовать для изучения языка. Не нужно замыкаться и самостоятельно разбирать непонятные вопросы — не всё можно загуглить, и не всегда ответы поисковой выдачи помогают сориентироваться в предмете.
Присоединиться к Python-сообществу несложно. Проблема в том, что новички часто стесняются и не видят ценности в общении с другими программистами. Они учат базовый материал, которого полно в интернете. Если есть наставник или преподаватель, то они быстрее любого сообщества ответят на вопросы.
Для понимания ценности сообщества нужно представить ситуацию: вас взяли на испытательный срок и в качестве теста попросили разобраться с какой-то нестандартной Python-библиотекой. Коллеги недоступны, в поисковике пусто, а экспериментировать некогда. Остаётся сообщество. Если вы знаете, куда обратиться за помощью, то с большой вероятностью найдёте подсказку.
Задание 4
Общение с программистами должно проходить легко и естественно, будто вы добавляете фотку в Instagram*. Чтобы начать — прочитайте кодекс поведения Python-сообщества и законспектируйте основные правила.
Выберите площадку для общения на русском или другом языке. Начните проявлять активность: если можете кому-то помочь — напишите комментарий; если есть вопрос — задайте; если нужна обратная связь — скиньте заметку или код. Не забывайте благодарить за полезные советы.
Что дальше
- Прочтите про 10 ошибок, которые делал каждый разработчик. После этой статьи вы должны понять, что провалы встречаются у всех на разных этапах карьеры. Программист не должен этого бояться. По возможности лучше стараться сделать так, чтобы побольше учиться на чужом опыте.
- Попробуйте перевести статью When Pythons Attack: Common Mistakes of Python Programmers. Здесь перечислены основные технические ошибки, которые встречаются у всех Python-разработчиков.
- Ознакомьтесь с 10 мифами о Python. В интернете слишком много ложной информации про этот язык. Выясните, что из этого неправда.
- Узнайте, как перестать быть джуниором и начать жить. Это статья о ключевых качествах, которые нужны профессиональному программисту.
- Познакомьтесь с эффектом Даннинга — Крюгера. Из этой статьи вы узнаете про ловушки мышления, которые могут помешать карьере.