tricky88

На Пикабу
1729 рейтинг 24 подписчика 1 подписка 9 постов 2 в горячем
3

Какие ошибки допускает начинающий python разработчик?

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

Попытка узнать все и сразу.

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

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

Уделять теории гораздо больше времени, чем практике.

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

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

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

Заведите свой небольшой пет-проект, опубликайте на GitLab, практикуйтесь в его доработке

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

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

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

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

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

Использовать только видео и курсы для подготовки.

Многие видеокурсы достаточно хороши, имеют хорошие отзывы и содержат толковыеинтерактивные задания. Но вот пренебрегать старыми добрыми книгами отнюдь не стоит, если вы будете их читать - то будете наголову выше коллег по цеху, которые просто смотрят видосики. Почему? Просто оцените размер книг, например, Лусиано Ромальо или Марк Лутца по Python. Разве возможно такой объем знаний передать через короткие видеоуроки? Конечно же, любая тема в книге освещена более глубоко, чем в видео. Более того, видеоуроки на ютубе может начать делать любой человек, и ничто кроме отзывов и комментариев под видео его знания не оценивает. А вот признанные книги скорее всего прошли несколько переизданий, написаны профессиональными программистами, и даже возможно получили рецензию тех, кто стоял у истоков языка.

Боязнь браться за неизвестные задачи

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

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

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

Друзья, спасибо за прочтение!

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

А вот здесь разбираю теорию и задачи по Python

Показать полностью
1

Ошибки начинающего Python разработчика

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

Попытка узнать все и сразу.

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

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

Уделять теории гораздо больше времени, чем практике.

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

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

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

Заведите свой небольшой пет-проект, опубликайте на GitLab, практикуйтесь в его доработке

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

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

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

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

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

Использовать только видео и курсы для подготовки.

Многие видеокурсы достаточно хороши, имеют хорошие отзывы и содержат толковыеинтерактивные задания. Но вот пренебрегать старыми добрыми книгами отнюдь не стоит, если вы будете их читать - то будете наголову выше коллег по цеху, которые просто смотрят видосики. Почему? Просто оцените размер книг, например, Лусиано Ромальо или Марк Лутца по Python. Разве возможно такой объем знаний передать через короткие видеоуроки? Конечно же, любая тема в книге освещена более глубоко, чем в видео. Более того, видеоуроки на ютубе может начать делать любой человек, и ничто кроме отзывов и комментариев под видео его знания не оценивает. А вот признанные книги скорее всего прошли несколько переизданий, написаны профессиональными программистами, и даже возможно получили рецензию тех, кто стоял у истоков языка.

Боязнь браться за неизвестные задачи

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

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

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

Друзья, спасибо за прочтение!

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

А вот здесь разбираю теорию и задачи по Python

Показать полностью

Какие плюсы у Python как языка программирования?

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

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

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

Широта применения. Python - язык общего назначения, поэтому сфер применения у него много. Из основных - работа с данными, аналитика, веб-разработка, ci-cd. автоматизации рутинных процессов, тестирование. Менее популярна разработка для десктопа, но и такие библиотеки имеются

Динамическая  типизация. Когда переменной присваивается значение, это автоматически связывает её с определённым типом. Так как типы можно не указывать, Процесс написания кода значительно ускоряется. Но при этом важное замечание -  пропорционально повышается риск возникновения ошибок, особенно у начинающих программистов. Как компромисс, для более-менее сложных проектов все же лучше указывать типы, например из модуля typing. Тогда ваш редактор будет подсвечивать ошибки при несовпадении типов. Также можно встроить в процесс CI статический анализатор, например, mypy - он будет выбрасывать ошибки при несовпадении типов - и код с ошибками не попадет на прод.

Быстрая разработка. Разработка на Python происходит в несколько раз быстрее, чем на C/C++ или Java. Это делает труд программистов продуктивнее, поэтому Python часто выбирают стартапы. Но справедливости ради отметим, что за все нужно платить -  за высокую скорость разработки мы платим довольно низкой скоростью работы самого языка, ведь он является интерпретируемым.

Поддержка ООП. Объектно-ориентированное программирование (ООП) — это парадигма, которая объединяет различные поведения и свойства в несколько объектов и классов.

Обилие библиотек и хорошая документация к ним. Каталог PyPI содержит сотни тысяч пакетов для разнообразных задач. Поразительно, что число пакетов выросло за 13 лет в 40 раз, в 2010 г было около 10 тыс. пакетов, а в 2023 - более 400 тыс.

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

Спасибо!

Показать полностью

Для чего учить Python в 2023 году?

Python - язык программирования общего назначения, в рейтинге TIOBE он занимает первое место
https://www.tiobe.com/tiobe-index/

Для чего учить Python в 2023 году?

Рассмотрим,  где по факту можно реально применить Python.

  1. В качестве языка на бекэнде - широко известны фреймворки Django, Flask, Aiohttp, FastAPI, менее распространены такие фреймворки как CherryPy, Bottle и другие

  2. Data Science, работа с данными, аналитика

    Python располагает отличными библиотеками для работы с данными

    Для продвинутого анализа данных подойдут pandas, numpy

    Для их визуализации -  matplotlib, seaborn

    Если требуется обработать параллельно большие объемы данных,

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

    Если и dask уже не хватает, то имеется обертка для фреймворка параллельных вычислений apache spark - pyspark. С pyspark уже можно строить пайплайны для обработки многих сотен гигабайт данных.

    Оркестрировать процессы доставки данных поможет Apache Airflow - помимо прочих достоинств, он обладает удобным веб-интерфейсом

  3. Машинное обучение

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

  4. Автоматизация тестирования приложений

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

  5. Управление конфигурацией, развертывание приложений

    Ansible решит проблему быстрого развертывания приложения на удаленном сервере. С помощью ansible playbook можно, например, зайти удаленно на сервер (или множество серверов) по ssh, поставить нужные зависимости, создать папки и положить туда файлы, выдать права, заполнить конфиги приложений, настроить запуск сервисов в systemd и многое другое.


Сферы применения языка конечно же не заканчиваются данным списком - все их вряд ли возможно перечислить в одной статье.

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

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

Также, если язык заинтересовал, в предыдущем посте была подборка отличных бесплатных (или почти бесплатных) ресурсов для изучения Python

Показать полностью
2175

Источники знаний для Python разработчика

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

Книги:

  1. Тонни Гэддис “Начинаем Программировать на Python. 5 издание.” Книга отлично подойдет новичкам, читается легко, особенно круто - что есть задания для самостоятельной проработки

  2. Лусиану Ромальо “Python, к вершинам мастерства” - про книгу сказано уже много в интернете, отмечу, что книга объемная,  все примеры кода детальные, разбираются построчно, имеются цветные иллюстрации. Книгу можно читать целиком, а можно использовать как настольный справочник разработчика. Читая ” Python, к вершинам мастерства“ можно узнать новое об уже казалось бы известных вещах ( например, об именовании срезов). Также максимально детально объясняются асинхронное программирование, модуль multiprocessing и multithreading, итераторы, декораторы, ООП.

  3. Стив Макконнел “Совершенный код”. Эта книга без привязки к языку программирования, она расскажет Вам о том как организовать код таким образом, чтобы его легче было читать как Вам, так и Вашим коллегам - а также масштабировать систему без проблем.

  4. Уильям Шоттс “Командная строка Linux”. Книга расскажет об особенностях работы с unix - системами, начиная с азов (перемещение по папкам, права), и заканчивая написанием более продвинутых скриптов автоматизации на bash. Бекэндэру,  датаинженеру, девопсу без терминала никак не обойтись, поэтому решил добавить в подборку

Telegram-каналы:

  1. Python academy. Много инфы по Python в краткой форме, с понятными объяснениями и хорошими скриншотами

  2. Python for you. Молодой канал, где без воды разбирается много полезных особенностей языка, подключения к различным источникам (БД, апи, облачные хранилища), разбор задачек с собеседований

  3. [Python:today] Крупный канал, где изюминка - это разбор интересных сторонних библиотек, и чем они могут быть полезны

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

    Ютуб-каналы:

    1. Selfedu - авторский канал Сергея Балакирева, один из лучших для новичков - содержит полный курс по питону начиная с азов по установке интерпретатора и запуска IDE и заканчивая более продвинутыми темами типа дескрипторов классов, декораторов с параметрами и т.д. Также на канале отдельный блок видео по ООП Python, регулярным выражениям, структурам данных, подробнейший курс по Django.  Вообще в целом удивительно, как такие качественные видео отдаются совершенно бесплатно)

    2. Диджитализируй. Канал ведет Алексей, разработчик с большим опытом построения нагруженных и отказоустойчивых приложений с Python на бэкэнде (и не только с этим языком). На канале я лично очень много нашел интересных тем по самому питону и его особенностям, по работе с нужными утилитами в linux (ssh, htop и др), по базам данных. Видео краткие и понятные, также в большинстве случаев автор отвечает на все вопросы

  5. Python Russian - канал разбирает многие интересные темы, которые будут полезны тем, кто уже что то знает о языке - “правила хорошей функции”, “LEGB rule”, разбор модуля collections -  deque, Counter и т.д.

  6. Глеб Михайлов - авторский канал, много информации по Python и linux. Особенно интересно будет тем, кто хочет в ближайшее время пройти собеседование, так как у Глеба есть целый блок “Ща порешаем”, в формате стрима разбираются простые и сложные задачки с собеседований на сайтах Leetcode, Codewars, StrataScretch. При просмотре видео не будет никакой усталости, так как материал подается с юмором, автор старается по возможности поддержать новичков. Также на канале один из лучших туториалов по pandas как введение для аналитика данных или датаинженера.

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

  8. alishev - на канале отличный плэйлист по Python, хотя контента больше по java

  9. PyLounge - хорошо разбираются библиотеки Python

  10. egoroff_channel - видео по основам языка python, pandas, django, ООП и даже Tkinter

    Курсы:

    1. .“Добрый, добрый Python” - бесплатный и крутой курс Сергея Балакирева, рассчитан месяца на 4, и его в целом достаточно чтобы иметь крепкую базу для junior python разработчика

    Также Сергей сделал недорогие курсы по ООП, структурам данных

    2. “Поколение Python” - есть бесплатный крутой базовый курс Python, и его платные продолжения

    3. “Data Science с Глебом Михайловым” - подойдет всем, кому Python нужен для аналитики, работы с pandas и CatBoost

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

Показать полностью
0

Польза оператора Walrus в Python

Друзья, давайте рассмотрим интересный оператор в Python - walrus, или моржовый.

Он появился в питоне, начиная с версии 3.8 и представляет собой двоеточие со знаком равно

:=

Чем он может быть полезен разработчику?

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

Вот самый простой пример - в первом принте мы использовали оператор walrus, но при этом не только присвоили значение переменной variable, но и смогли вернуть значение на вход функции print - поэтому она смогла распечатать значение.

С обычным присваиванием через равно =, такой трюк работать не будет:

И нам пришлось бы писать что то вроде:

То есть больше строк кода, чтобы добиться того же результата.

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

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

В первом случае мы дважды вызвали n**3 для каждого элемента, а во втором только один - так как сразу присвоили значение переменной cube. Поэтому во втором случае будет тратиться в 2 раза меньше процессорного времени.

Walrus мы можем использовать также внутри условия, ведь оператор опять же вернет значение, которое можно с чем-либо сравнить. Единственное, нужно заключить в скобки присваивание с помощью walrus:

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

Спасибо за прочтение, друзья

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

Показать полностью 5

Именование срезов в Python


Как известно, можно получить срез от любого итерируемого объекта с помощью конструкции [start:stop:step]

Но иногда зашивать диапазоны в код неудобно и трудно для восприятия, к примеру, когда требуется многократно парсить объекты одинаковой структуры

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

Вот пример, рассматрим парсинг строк с одинаковой структурой, содержащих информацию о книгах

Именование срезов в Python

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

Показать полностью 1

Польза функции pprint в Python

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

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

Попробуем просто распечатать этот словарик:

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

pprint добавила отступы для каждого логического блока (кстати размер отступа можно подстраивать аргументом indent, по умолчанию 1)

Также мы можем регулировать глубину вложенности, которую хотим вывести, с помощью параметра depth.

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

Всем спасибо за просмотр!

Показать полностью 2
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества