Стоит ли учить python

Стоит ли учить python

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

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

Что такое Python?

Python это язык программирования общего назначения, нацеленный в первую очередь на повышение продуктивности самого программиста, нежели кода, который он пишет. Говоря простым человеческим языком, на Python можно написать практически что угодно (веб-/настольные приложения, игры, скрипты по автоматизации, комплексные системы расчёта, системы управления жизнеобеспечением и многое многое другое) без ощутимых проблем. Более того, порог вхождения низкий, а код во многом лаконичный и понятный даже тому, кто никогда на нём не писал. За счёт простоты кода, дальнейшее сопровождение программ, написанных на Python, становится легче и приятнее по сравнению с Java или C++. А с точки зрения бизнеса это влечёт за собой сокращение расходов и увеличение производительности труда сотрудников.

Для демонстрации лаконичности рассмотрим код на Python и Java, который открывает файл и сохраняет его содержимое в переменную:

Код на Java использует обновлённый интерфейс для работы с системой ввода-вывода. Старый способ выглядел бы ещё ужаснее 🙂

Кто использует Python?

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

  • Google
  • Dropbox
  • Mozilla
  • Facebook
  • Yandex
  • Red Hat
  • Microsoft (с недавних пор очень активно, в частности с Visual Studio)
  • Intel (активно ведёт исследовательскую работу в области параллельных вычислений на Python)

. и многие многие другие. Впечатляет, не правда ли? Что же касается крупных и популярных проектов, написанных на Python то это такие монстры как:

  • YouTube (большая часть кодовой базы полностью на Python)
  • Первая версия поискового паука Google была написана на Python, а позже, из-за чрезвычайно высокой нагрузки и требований к скорости, была переписана на C++.
  • Десктопный клиент Dropbox
  • Reddit
  • Instagram (500M юзеров на Python)
  • Bitbucket (Python 2.7 и Django 1.7.11)
  • EVE Online MMOPG
  • Quora
  • Spotify
  • Критические сервисы PayPal, обрабатывающие до 2 миллиардов запросов в сутки. Подробнее можно узнать в подкасте от TalkPython, выпуск #54
  • Сервисы Mozilla
  • Популярный сервис идей Pinterest
  • Сервис комментариев Disqus (использую в этом блоге, сервис реализован на Django)
  • Внутренние сервисы Facebook (см. постер в моей заметке о PyCon)
  • Система контроля версий Mercurial (до некоторых пор разработчики Python использовали её в своей работе)
  • Сервисы Wargaming

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

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

В заметке про книгу "Структура и Интерпретация Компьютерных Программ", я писал о том, что она была взята за основу в качестве учебного материала для вводного курса по программированию в MIT, компьютерным языком на тот момент выступал диалект Lisp — Scheme. Времена меняются, сейчас в качестве цифрового lingua franca лидирует что. Правильно, Python. Именно его используют в качестве надёжного инструмента в столь удивительном ремесле.

Читайте также:  Www nalog ru создать личный кабинет налогоплательщика

Недостатки Python

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

Скорость

Одним из главных недостатков является его относительно низкая скорость выполнения. Python является языком с полной динамической типизацией, автоматическим управлением памятью. Если на первый взгляд это может казаться преимуществом, то при разработке программ с повышенным требованием к эффективности, Python может значительно проигрывать по скорости своим статическим братьям (C/C++, Java, Go). Что касается динамических собратьев (PHP, Ruby, JavaScript), то здесь дела обстоят намного лучше, Python в большинстве случаев выполняет код быстрее за счет предварительной компиляции в байт-код и значительной части стандартной библиотеки, написанной на Си. На конференциях мне довелось пообщаться с ребятами из крупных компаний вроде Wargaming, у многих из них наблюдается тренд перехода в сторону статики, и чаще всего это Go, Rust.

Интересный доклад про скорость и оптимизацию CPython (родная реализация языка на Си) был прочитан на PiterPy 2015 в Санкт-Петербурге:

Динамическая типизация

Для начинающих программистов, язык программирования с динамической типизацией на первый взгляд (и на второй и даже на третий) может казаться отдушиной, райским наслаждением, особенно для тех, кто ранее имел дело со "статикой". Но есть и обратная сторона луны. С ростом кодовой базы (а это часто неизбежный процесс в успешных проектах), следить за типом передаваемых друг другу данных бывает очень сложно (а при отсутствии внятных доков и тестов практически невозможно), отсюда появляются проблемы, когда, например, у None пытаются вызвать метод или обратиться к атрибуту в процессе выполнения кода. Для решения такого рода проблем динамические языки обрастают всевозможными костылями, свистелками и перделками в виде type annotations, проектов mypy по статическому анализу кода и так далее. Это же в свою очередь накладывает негативный оттенок на эстетическую сторону кода.

В связи с ограничениями языка, появляются альтернативные реализации интерпретаторов: PyPy, Pyston, Jython, Cython и многие другие. Сейчас тренд хорошо заметен именно в эту сторону, например Pyston разрабатывается в стенах т.н. Мекки Python программистов — компании Dropbox 🙂

Заключение

Несмотря на ряд проблем исторически присущих Python, он продолжает оставаться лидирующим инструментом в ряде ниш:

  • Разработка веб-приложений (тут у нас бесусловный лидер в виде Django).
  • Анализ данных и машинное обучение (пакеты scipy, scikit-learn, pandas, numpy признанные мировым ученым сообществом).
  • Введение в программирование (pygame, turtle хорошо помогают мотивировать детей начинать кодить).
  • Быстрое прототипирование идей в бизнесе за счёт обилия готовых библиотек, низкого порога вхождения в язык и высокой продуктивности программистов, пишущих на Python.
  • Написание скриптов (сценариев) для автоматизации задач. Python по-умолчанию поставляется со всеми дистрибутивами unix-like систем и является отличной заменой Bash во всех смыслах.

Наверняка я ещё что-то забыл. В общем, Python рулит!

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

Из этой статьи вы узнаете:

Читайте также:  Топ стелс шутеров для слабых пк

Я, Гридин Семён, приветствую всех читателей моего блога kip-world. Вы давно думаете о том, чтобы начать изучать программирование? Может быть вы размышляете на тему того, как же язык программирования выбрать для начала?

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

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

Я составил для вас небольшую «микростатью-рассуждение» для размышлений.

Стоит ли учить Python?

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

Вы возможно сейчас зададитесь вопросом: «А почему стоит изучать Python как первый язык программирования?» В этом нет никакой тайны, как и нет загадки.

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

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

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

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

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

Программисты просто обожают этот язык за краткость и простоту кода. Там где в языке JavaScript или C++ вам потребуется написать две-три страницы, в Pythone вы уложитесь всего в одну!

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

Давайте подведем небольшой итог:

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

И если у кого-то все ещё остались вопросы: «Стоит ли изучать Python?», «Подходит ли этот язык для начинающих?», «Смогу ли я, выучив этот язык устроиться на хорошую работу?» Мой ответ: «Определенно да! Учите данный язык, независимо от того, начинающий вы программист или уже бывалый. Он вам точно пригодится и поможет в вашей деятельности!»

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

Django, Flask — деньги сразу
помимо выучить еще и 2-3 проекта нужно сделать успеть,за год планируемый
помимо Мускуля — PostgreSQL, иногда он предпочтительней, также в Джанге, кажется, уже по умолчанию
также AngularJS (да, не Питон, "а шо делать"(с))

Читайте также:  Узнать биографию человека бесплатно

ну а потом всякие aiohttp, kivy, pycuda и прочие тяжкие

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

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

Начал изучать Питон (взял на курсере "Intro to interactive programming in Python", сейчас перехожу ко второй его части), т.к. он используется в DSP и компьютерном зрении, а мне эти области интересны. Также полезной вещью в моём багаже будет MySQL, который у меня сейчас идёт в универе.

Питон относительно спорное начинание. Да, в перспективе — он хорош, но, субъективно, найти работу на PHP без коммерческого опыта — проще(это если финансовое положение такое что надо вот сейчас найти работу). Спрос большой, ровно как и спектр задач. Когда в голове будет понимание спектра задач для языка и вообще того какие задачи возникают в коммерческой разработке, тогда уже можно примерять Python к тем задачам которые перед тобой стояли.
Если есть время(3-6 месяцев) то можно подучить джангу/фласк(только что-то одно) и идти работать стажёром — бесплатно или же помогать в open source(тут как раз и поймёшь примерные задачи, которые будут вставать перед тобой в работе, потому как туториалы хорошо, а реальность отличается).
Не знаю как у вас дают БД, у нас давали так себе, поэтому лучше дотягивай сам, хотя бы то как язык работает с базой.
Если хочешь научное — компьютерное зрение и т.д., устраивайся на кафедру (вариант с натяжкой — работу где у тебя будет много свободного времени(сторож, продавец простаивающий)) и штудируй литературу пачками, т.к. минимальные требования там высокие и нужно больше фундаментальных знаний, нежели знания ЯП. Плюс ко всему — участие во всех олимпиадах по программированию, интересные курсовые работы, по актуальным темам.

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

На год вперед после работы? Потому как ШАД+оплачиваемая стажировка+учеба = ничего. Нигде не будешь успевать. По большому счёту — не ШАДом единым, если год самообучения, плюс год работы, то лучше включить в эти 2 года ещё и изучение того что проходят в ШАД, чтобы быть подкованнее

В итоге у меня вопрос: что посоветуете сделать/изучить? Сконцентрироваться на Django, мб html/css, и т.п. и гарантированно идти стажироваться в заданный срок? Или рискнуть, попробовать делать то, что интересно (изучить dsp на базе питона, либо opencv), и податься в какое-нибудь крутое место типа Яндекса, в надежде, что на тебя обратят внимание? (Наиболее туманный для меня вариант). Ещё недавно возникла идея попробовать себя в связке веба, и, например, машинного обучения, может тоже неплохо? В общем, помогите советом нубу)

Ссылка на основную публикацию
Adblock detector