Почему Python не станет языком программирования будущего, даже если сейчас популярен
Команда Mail.ru Cloud Solutions перевела колонку Rhea Moutafis «Why Python is not the programming language of the future». Автор перевода не всегда разделяет мнение автора статьи.
133 120 просмотров
Python появился в мире программирования довольно давно, но с начала 2010 годов переживает бум — он уже обогнал по популярности C, C#, Java и JavaScript. До каких пор будет сохраняться тенденция роста, когда Python заменит какой-то другой язык и почему?
Автор колонки считает, что у Python есть несколько свойств, которые помогли ему стать популярным языком. Но есть и слабые места, которые уничтожат его в будущем.
Что делает Python популярным прямо сейчас
Популярность языка программирования можно отследить по динамике количества тегов на самом востребованном у разработчиков ресурсе — Stack Overflow. Так, судя по графику, рост Python начался с 2010 года, а стремительным он стал в 2015 году. В то время как R в течение последних нескольких лет находится на плато, а многие другие языки находятся в упадке. У такой популярности Python есть причины.
Топ-5 причин учить Python новичку прямо сейчас
Популярность языков программирования на Stack Overflow
Время существования
Python можно смело назвать довольно старым языком — он появился в 1991 году, то есть практически 30 лет назад. За это время он постепенно собрал вокруг себя большое сообщество.
Если у вас появится какая-то проблема с этим языком, то решить ее, скорее всего, получится примитивным поиском в Google — наверняка кто-то уже опубликовал мануал с алгоритмом и примером кода.
Python можно смело рекомендовать как первый язык программирования. И дело не только в том, что он существует давно и поэтому по нему есть много хороших учебников. У него понятный синтаксис, похожий на обычный, «человеческий» язык. и еще он прощает ошибки.
Например, в нем не нужно указывать тип данных, достаточно просто объявить переменную. Из контекста Python поймет, является ли она целым числом, числом с плавающей запятой, логическим значением или чем-то еще. Это огромное преимущество для начинающих.
Если вам когда-либо приходилось программировать на C++, вы знаете, как это печально, когда программа не компилируется только потому, что вы где-то поменяли число с плавающей точкой на целое число.
Код Python довольно просто читать. Просто сравните синтаксис Python и C++ .
Универсальность
Python существует так долго, что разработчики смогли сделать специальные библиотеки практически для любых целей. Например:
- Для многомерных массивов и высокоуровневых матриц используйте NumPy.
- Для расчетов в инженерном деле подойдет SciPy.
- Для исследования, анализа и манипулирования данными попробуйте Pandas.
- Для работы с искусственным интеллектом изучайте Scikit-Learn.
Если вам нужно решить какую-то вычислительную задачу, вероятно, что для нее уже есть специальная библиотека Python. Это позволяет языку оставаться в тренде последние годы, что видно по всплеску его использования в машинном обучении.
Что такое Python и почему вы захотите его изучить?
Недостатки Python, которые могут уничтожить этот язык
Вот недостатки, которые могут стать критичными для развития Python как самого популярного языка в будущем.
Python медленный — в среднем, на операции на нем понадобится в два, а то и в десять раз больше времени, чем если бы вы выбрали другой язык. Для этого есть разные причины. Одна из них в том, что Python — язык с динамической типизацией. То есть на нем не нужно заранее определять тип данных, как в других языках.
Конечно, это удобно разработчику, но такой подход требует большого резерва памяти для каждой переменной, чтобы она работала в любом случае. Соответственно, больше памяти означает больше времени на вычисления.
Python может выполнять только одну задачу за раз, как раз из-за того, что язык должен проверить тип данных. Параллельные процессы всё испортят. Для сравнения, обычный веб-браузер может запустить несколько десятков различных потоков одновременно.
Конечно, вы можете возразить — кого сейчас волнует эта скорость, ведь компьютеры и серверы стали такими мощными, что в итоге «медленно» означает выбор между загрузкой приложения за 0,01 секунды или 0,001 секунды. Действительно, конечному пользователю нет разницы.
Области видимости
В Питоне используются динамические ограничения видимости. То есть для оценки выражения компилятор сначала ищет текущий блок, а затем последовательно все вызывающие функции.
Проблема такого подхода в том, что каждое выражение должно быть протестировано в каждом возможном контексте. Это, мягко говоря, утомительно и долго. Поэтому современные языки программирование используют в основном статическую область видимости.
Питон пытался перейти к статической области видимости, но ничего не вышло. Обычно внутренние области видимости — например, функции внутри функции — могут видеть и менять внешние области видимости. В Python внутренние области могут только видеть внешние области, но не менять их. Такой подход приводит к путанице.
Лямбда-функции
Несмотря на всю гибкость, использование лямбд в Python ограничено. Они могут быть только выражениями (expressions), но не инструкциями (statements). С другой стороны, объявления переменных и statements и есть инструкции. Проще говоря, добавление statements сделает лямбду многострочной, а синтаксис Python не позволяет так сделать.
Это различие между expressions и statements довольно произвольно, и не встречается в других языках.
Питон хорошо подходит начинающим разработчикам — там используются пробелы и отступы для обозначения разных уровней кода. Это делает его визуально привлекательным и интуитивно понятным.
Другие языки, например C++, больше полагаются на фигурные скобки и точки с запятой. И пусть это не так визуально комфортно для новичков, зато делает код намного удобнее для поддержки. Для больших проектов это намного важнее.
Новые языки, например Haskell, так решают эту проблему — они полагаются на пробелы, но предлагают альтернативный синтаксис для тех, кто хочет обойтись без них.
Пробелы делают код более читаемым, но менее удобным в сопровождении Irvan Smith на Unsplash
Мобильная разработка
Сейчас мы наблюдаем массовый переход от компьютеров к смартфонам — уже понятно, что нам нужны языки, подходящие для мобильных приложений.
В Python такая возможность как бы есть — пакет под название Kivy. Но нужно учитывать, что Python не был создан для мобильных устройств. Использовать его можно, результат будет даже приемлемым, но зачем, когда можно взять более подходящий язык, созданный для разработки мобильных приложений. Например, фреймворки для кроссплатформенной мобильной разработки: React Native, Flutter, Iconic и Cordova.
Если вы планируете стать всесторонне развитым разработчиком, только знания Python недостаточно.
Ошибки во время выполнения (Runtime Errors)
Скрипты в Python компилируются каждый раз во время выполнения, вместо того, чтобы сначала компилироваться, а уже затем выполняться. Поэтому любая ошибка проявляется во время выполнения кода.
Это приводит к низкой производительности, временным затратам и большому количеству тестов. Тесты — это замечательно, особенно для новичков. Но для опытных разработчиков такая необходимость воспринимается как минус и приводит к нехватке производительности.
Что может заменить Python в будущем
На рынке языков программирования есть несколько его конкурентов:
- Rust — в нем так же, как и в Python, переменная не может быть случайно перезаписана. Но за счет концепции владения и заимствования в Rust решена проблема с производительностью. Кстати, именно Rust разработчики называют самым любимым языком.
- Go стоит рассматривать начинающим разработчикам. Он довольно прост в освоении, поддерживать код тоже не трудно. Плюс разработчики на GO сейчас одни из самых высокооплачиваемых.
- Julia подходит для крупномасштабных технических вычислений. Раньше для этого нужно было использовать Python или Matlab плюс библиотеки C++. После выхода Julia потребность в жонглировании языками отпала.
На рынке есть масса других полезных языков, но именно эти три закрывают слабые места Python. Rust, Go и Julia подходят для инновационных технологий, особенно для искусственного интеллекта. Сейчас их доля на рынке еще невелика, судя по тегам Stack Overflow, но тенденция роста уже есть.
Динамика роста на Stack Overflow
Учитывая популярность Python в настоящее время, наверняка потребуется не меньше пяти, а то и десяти лет, чтобы любой из этих новых языков заменил его.
Какой из языков это будет — Rust, Go, Julia или новый язык будущего — пока трудно сказать Но учитывая проблемы с производительностью, которые являются основополагающими в архитектуре Python, каждый из новых языков найдет свое место.
Что еще почитать по теме:
- Язык Golang на пике популярности у IT-компаний.
- Необычный подход к автотестам для JavaScript и UI.
- Наш канал об IT в Телеграме.
107 комментариев
Написать комментарий.
Единственная верная предъява это скорость.
Но почему проблемой являются отступы вместо скобок или динамическая типизация? Отступы в любом случае придется делать, иначе код станет не читаемым.
Компилятора нету? А как же Numba или PyPy? Да пускай не идеальные компиляторы, но питон на скорость не претендует.
Runtime error это вообще смех, да грех, вы два раза написали о том, что питон интерпретируемый язык?
Go не заменит питон, так как он строго типизированый и далеко не такой простой как python про julia уже более правдеподобно, но ближайшие года julia будет только набирать обороты. Как Rust может заменить python, если это конкурент c/c++, а не python.
Статья бредовая.
Развернуть ветку
Отступы создают проблем при поддержке больших, старых проектов. На хеловорды с парой разработчиков это не проблема.
Проблема отступов для управления блоками кода:
1. На больших проектах где много разработчиков и кодовая база старая, могут встречаться разные кодовые стили что создает проблему с поддержкой. Только не надо про, то что в проекте должен быть один стиль и все должны его придерживаться. Конечно должен, но реальность такова что в больших проектах с текучкой кадров, в старых проектах, это труднодостижимо.
2. Могут быть проблемы при банальном мерже: Например у вас есть функция один разработчик вставил в начало условие — все тело +1 отступ, другой в середину функции добавил оператор — у него отступы были старые. Автоматической слияние пройдет отлично, но код работать не будет.
Развернуть ветку
10 комментариев
ох уж эти жёлтые заголовки
питон очень сильно ушёл в data science и стал чем-то вроде пыхи в плане порога вхождения
никто его уже там не заменит в виду тонн кода и библиотек и будущее питона именно за ds
одновременно сильно сдал позиции в веб, из-за чего я сам перешёл с него на java
Развернуть ветку
D может заменить. В общем он сейчас на это и претендует.
Развернуть ветку
А в чём собственно говоря приемущество отсутствия строгой типизации и нормального форматирования кода в виде фигурных скобок?
Типы в питоне и так есть, просто в нормальных яхыках, вы читаете код, вы понимаете где и какой тип возвращаеться, а в питоне пойди угадай, что возвращает функция GetVasia(). Т.е. я абсолютно не понимаю, какую проблему решает тот факт, что не надо объявлять типы? Вы всё равное не сможете совершать операции над разными типами данных, ибо это приведёт в исключению выполнения, какой тогда в этом смысл? С каких пор int x = test.GetVal() стало блин хуже чем x = test.GetVal() .
Фигурные скобки. серьёзно. я конечно понимаю, что типичный код пайтон-разработчика — подключить 1000 библиотек, и написать something = DoAmazingThings(), но вы попробуйте на пайтоне написать больше 30-50 строчек кода. у вас глаза на лоб вылезут, пока вы поймёт где какой отступ был сделан, и какая часть кода к какому «блоку» относиться. В чём сложность использования нормальных фигурных скобок для визуального разграничения блоков кода?
Ну так вообще, у пайтоне есть своя ниша, это ХэллоВорлд приложения с использованием очень богатых библиотек, т.е. как язык что бы показать своей бабушке, какой у неё умный внучек, какие нейросети делает — самое то. Но когда я вижу +- серьёзные приложения на пайтоне. бууээээ. Понятия не имею, зачем это делают.
ах да, в качестве первого языка брать пайтон — хреновая идея. Это как учиться ездить на машине сразу с автомата — ездить уметь будешь, но посади тебя за механику, повесишься.
Развернуть ветку
Лично для меня динамическая типизация — это гибкость. Если мне надо по-быстрому наваять какой-то разовый скрипт или простенький прототип, чтобы проверить работоспособность идеи, то я не буду заморачиваться с тем, чтобы на каждый чих писать тип, это лишняя работа.
Уже три года пишу на питоне, и никогда не возникало проблемы с отступами. Если уж совсем всепечально, есть прекрасные IDE (например, PyCharm), который все делает за Вас.
С++ код не требует соблюдать отступы, чтобы код работал, но все нормальные разработчики их делают, причем стараются соблюдать конвенцию (2 или 4 пробела, например) и почему-то никто не кричит о том, что: «Ааа, это кошмар, попробуй уследи за всеми этим отступами!»
Долгое время я писал на C++ и никакого дискомфорта не испытываю от того, что в Питоне скобок нет. На мой взгляд наоборот очень классно, что блоки выделяются пробелами, и этого достаточно. Философия Питона — это практичность. Зачем тогда добавлять ещё одну сущность в виде скобок для выделения блока?
Насчёт ниши Питона. Ну тут даже комментировать нет никакого желания, просто дам реплику: Java для тех криворуких, кто не смог освоить С++ и управление памятью вручную. (Сарказм, ага)
В качестве первого языка использовать Питон я бы тоже не стал лично для себя. Уменя первым был С, и я нисколько не жалею, и это дало мне хорошее понимание того, как работает компьютер и осознать все удобство, что дают более высокоуровневые ЯП. Но если твоя задача быть продактом или аналитиком, то Питон как первый язык — прекрасный инструмент для решения задач.
Источник: vc.ru
Язык программирования Python, есть ли смысл вникать?
Сын просит меня рассказать, как работает и что это такое? Я как бы спец по Java и php, не то чтобы спец, но понимаю, как работает все, о питоне услышала впервые от сына. Сын идет в 8 класс, до какого класса они будут изучать этого питона? Стоит ли вообще тратить на питона время? Учитель в школе не мог донести, как это все работает.
Хотя вот читаю и в сети пишут, самый легкий язык программирования. Выходит не легкий, раз весь класс не сообразил, как с помощью него программировать. Да, и зачем им вообще в 7 классе программировать? Кто в теме, что там по программе информатики в 8 классе, а то может они там уже флеш начнут изучать и мы зря время на питона потратим.
Комментировать
Я работаю учителем информатики. в 8 классе как раз начала давать Питон. а 10 по старинке паскаль изучают (просто уже начали с другим учителем). По программе в 8 классе, во втором полугодии как раз алгоритмизация и программирование начинается. В первом полугодии системы счисления и логика. Программирование изучают до 11 класса (но это еще зависит от учебника).
По поводу 7 класса могу сказать так. те кто ходит ко мне на внеурочку по программированию, начинают вникать намного быстрее чем другие, логика начинает работать. Если класс не сообразил как программировать, значит не так объяснили на каком то этапе.
У нас информатика в школе на уровне 0. И о внеурочке я даже не мечтаю.
у нас внеурочка в школе только для галочки или отстающих. сын пару раз сходил, сказал — это для двоечников, зря время потерял. и информатики нет во внеурочке. только основные предметы, рисование, фитнес, английский. ходят те, кто двойки закрывает по предмету.
У нас та же история по математике. А так хотелось бы олимпиадные задания там видеть.
аналогично, к олимпиадам готовимся в сети, качаю все что можно и занимается дома. тут важна практика и еще раз практика.
Если хотите позаниматься, советую сайт Константина Полякова. Там хорошие практические задания. В том числе по алгоритмизации и программированию. Можно так же найти его учебник. Я его скачивала с сайта алленг.ру
у меня сын пропустил первые 2 урока, так как уехал на региональную олимпиаду на 2 недели. и ошиблась в теме, не питон (пайтон), а паскаля они проходят. он вроде и знает предмет, но сказал не все понимает, просил помочь, так как я веб-разработкой занималась раньше. но я не знаю ни паскаля, ни питона.
Питон прекрасен. Обязательно нужен. Самый современный язык на сегодняшний день
Питон как раз очень хорош для начала. Процедурный (но можно и как на объектно ориентированном писать), с динамической типизацией, очень универсальный. Пиши да радуйся. У нас на работе филолог начала автотесты писать на питоне, не зная изначально вообще темы. Сейчас уехала в Питер, ещё знания подтянула и фигачит там во всю) Уже на других языках.
Java и C# тоже востребованы, но это всё-таки уже ООП и понять его с разбегу ещё сложнее. Жаль что учитель нормально не смог донести, но это действительно востребованный язык. Ещё, заглядывая вперёд можно на язык Go посмотреть.
поговорила с сыном, оказывается ошиблась, они проходили в школе Pascal а не понял язык, так как когда началась тема, он был на олимпиаде в другом городе и пропустил 2 первых урока. так и не смог вникнуть. для меня это тоже темный лес.
Блин) А я уж думала и правда начали полезным языкам в школе учить) Лучше бы питон, честное слово) Ну значит всё впереди
это я видно, увидела книги по питону, когда искала чтобы к лету прикупить сыну, и вылезла эта литература, как самая популярная по программированию. паскаля смотрю нигде нет. школы и вузы его по-старинке проходят.когда уже образовательную программу обновят? в 8 классе вроде перл должны изучать, ничем не лучше паскаля. пишут везде, что основы. а питоном заинтересовалась. на досуге по изучаю сама.
Хорошо ещё не бэйсик)) Не знаю, сколько уже можно этому паскалю учить. Только пустая трата времени. Питон поизучайте, лишним не будет) Мы 10 лет назад только на 3 курсе универа до питона дошли, и то так, на один семестр ознакомительно. В итоге получается, что почти везде, что в школе что в универе были либо устаревшие языки, либо те, что используют только повёрнутые извращенцы)
я бейсик в вузе изучала))) но я не программист, у меня экономическое образование. когда нам объявили тему, я в шоке была. зачем оно нам? зато 1с-предприятие и бухгалтерия пришлось осваивать самой, а по специальности надо было, а в вузе не заложено было. очень сильно отстает программа по информатике. считают паскаль и перл базовыми языками, хотя когда я осваивала пхп, джаву, хтмл, флеш, css мне вот никак не пригодился ни перл, ни паскаль. то есть эти языки можно изучить не вникая во все это. но они сейчас тесты в школе по всем предметам пишут, плюс сын выбрал профиль физмат, и к нему в придачу идет информатика, тоже надо знать на уровне. поэтому пусть уже в паскаль сам вникает)
Ну вообще основная идея познакомиться с разными видами языков программирования — процедурные, ооп, интерпретируемые, компилируемые. А потом уже браться за тот язык, что тебе пригодится для твоих целей. Просто могли бы это делать и на языках посовременнее. html это язык разметки) У меня математическое образование с примесью информатики, поэтому она была, но тоже стёмноватая. Наверное на факультете более близком к программированию что-то по-другому.
на факультете, максимально близком к программированию, все то же самое.
Печалька) У нас на КНиИТе вроде есть преподаватели, работающие в ведущих ИТ организациях в городе, может они что-то дельное ведут. Но не факт)
Паскалю учат не потому, что он все еще современный и практичный, а потому, что он именно для переложения с алгоритма на языковые конструкции хорошо подходит. Скажем, С# более востребован, но по сути своей содержит больше сокращенных форм, облегчающих жизнь программиста. С Паскаля на С# или Java вообще никаких проблем перейти при необходимости.
Даже в ВУЗе зачастую структуры данных изучаются на Паскале (а то и вообще Фортран изучается,на нем несметное количество библиотек для физических исследований), а УИР, КП и диплом каждый пишет на чем хочет, но изучает это что хочет дополнительно и самостоятельно. Я училась в МИФИ на факультете Кибернетики. Изучали Паскаль, Лисп, Аду, Модула-2, GPSS. В работе программисты на тот момент использовали Delphi, Visual C++.
Просто зачастую учат от силы синтаксису и сразу несколько задач прикладных пиши, решай. А надо бы по хорошему учить эффективному построению алгоритмов. А это у меня было только на дополнительных курсах
Очень востребованный в сша сейчас, куча вакансий
СтОит, он очень востребованный.
расскажи, о востребовательности.
Просто вбив Python Job Germany я вижу кучу вакансий, в т.ч. в Амазон. Думаю, если сделать выборку hh.ru такую же, то тоже вакансий будет не мало. Знаю как минимум 4 крупные московские компании (знаю лично людей оттуда или работала там), где нужны были такие разработчики.
у меня сын больше с уклоном в математику и физику, не думаю, что станет программистом. но все равно почитаю и попробую программировать.
Источник: www.babyblog.ru
Программирование на Python: нет смысла идти на платные курсы пока не разберетесь в бесплатных
Какая математическая база нужна для Python, чем он хорош для новичков и какие задачи можно решить с помощью этого языка программирования
Python часто советуют изучать тем, кто никогда раньше не программировал. Одно из его преимуществ — универсальность, за счёт которой он используется профессионалами в разных областях: от журналистики до продакт-менеджмента. Его можно применять для решения рутинных задач: например, чтобы визуализировать большой объём данных или составлять списки дел и покупок. Автор и менеджер программы «Анализ данных» в Яндекс.Практикуме Анна Чувилина рассказала как оптимизировать свой быт и работу при помощи программирования, какие библиотеки (шаблоны решений) могут использовать новички и как выбрать курс по изучению Python. Материал подготовлен Академией Яндекса
Почему Python советуют новичкам
Одно из главных преимуществ Python — низкий порог входа. Код на нём лаконичный и обычно сходу понятен даже тем, кто изучал другой язык. А подробная документация поможет разобраться в программировании с нуля.
Ресурсы для изучения Python:
- База книг по Python
- Habr
- Бесплатные курсы по Python на Kaggle
- Обучающие видео
Вокруг Python сформировались сообщества энтузиастов, которые пишут на этом языке. Например, в Москве есть группа Moscow Python: они проводят конференции и неформальные встречи и сотрудничают с крупными ИТ-компаниями.
Для Python существует объёмная система библиотек — готовых решений для тех или иных задач. Есть как алгоритмы для базовых математических операций, так и для сложных задач: например, распознавания картинок и звуков.
У языка много понятных приложений: его можно использовать для анализа данных и машинного обучения, бэкенда, веб-разработки, системного администрирования и игр. Конечно, при этом нужен разный набор навыков помимо программирования, но с Python можно начать осваивать почти любую предметную область.
Важно понимать, что для анализа данных язык программирования — это инструмент. Анализ данных можно проводить и в Excel, и на бумажке, а программирование — только один из вариантов того, как можно решать такие задачи.
Одно из распространённых приложений Python — работа с данными для продакт-менеджмента. Анализ данных позволяет менеджерам получать инсайты о поведении пользователей и принимать обоснованные решения. В крупных компаниях должности аналитиков и продакт-менеджеров обычно разделены, но в небольших проектах продактам нужно работать с данными самостоятельно.
Как понять, что вам нужен именно Python
Называть его «убийцей Excel» — некорректно. Многие команды и компании в России ведут весь учёт в обычных таблицах, и им этого достаточно. А Python нужен в тот момент, когда речь идет про действительно большие объемы данных. Например, у Яндекс.Музыки множество платящих пользователей, и их действия ежедневно генерируют какие-то события (лайки и прослушивания) — и терабайты данных. Хранить их в табличке Excel — из разряда фантастики.
В Python проще делать интерактивную и сложную визуализацию или проводить вычисления — для этого существуют библиотеки вроде Seaborn, matplot и Plotly. В Excel есть встроенный аппарат для решения математических задач (например, работы с данными), но для него нужно запоминать много названий операций — и работает он довольно неповоротливо. Кроме того, в Python можно быстрее и с разных сторон посмотреть на данные. Регрессию можно построить и в Excel, но зачем, когда в Python есть для этого готовые библиотеки?
Для статистических расчетов можно использовать R — люди с математическим образованием обычно осваивают его быстрее, чем Python. Однако большинству будет проще начать с Python.
Для разных задач анализа данных существуют коробочные решения. Например, Amplitude (для продуктовой аналитики), Mixpanel (для анализа поведения пользователей) Яндекс.Метрика и Google Analytics. При этом их использование часто платное.
Где применять Python, если вы не разработчик
Помимо анализа данных у языка есть и более простые приложения. Так, в учебниках по Python часто встречается задача с рассылками. В ней нужно создать рассылку, например, для людей, которые не сдали деньги на ремонт — найдя их данные в Excel-таблице. С помощью такого скрипта можно разослать письма по шаблону — и имена будут подставлены автоматически.
Python — про автоматизацию рутинных задач. Например, можно запустить скрипт, который подставляет пароли — и он автоматически откроет запароленные страницы или папки. Есть алгоритмы для того, чтобы автоматически создавать списки покупок или переименовывать фотографии определённым образом.
Люди, которые умеют писать код, придумывают такие вещи «на автомате». Например, маркетологи могут запустить скрипт для построения воронок продаж. А тестировщики — написать алгоритм, который будет подставлять данные в формы и тестировать приложения.
Если говорить про анализ данных, то многие начинают осваивать его из любопытства — чтобы найти инсайты в сфере, которую пока не исследовали. Например, можно определить социальные проблемы своего региона, анализируя опубликованную статистику. А если вы хотите через какое-то время попасть на стажировку или на работу, где нужен анализ данных, то такой кейс поможет вам показать свои навыки. Начать можно с простых, стандартных проектов, которые обычно предлагают тем, кто изучает Python.
Что нужно, чтобы выучить Python
Из математического аппарата кроме базовой арифметики для программирования ничего не нужно. Чтобы придумать, какой алгоритм использовать для решения той или иной задачи, важно структурное мышление — но это не математическая компетенция. Парадокс в том, что и развивать его нужно с помощью регулярной работы с задачами — важно быть готовым просидеть над, казалось бы, тривиальным заданием несколько часов и не отчаяться.
Для анализа данных, помимо школьной математики, понадобятся знания математической статистики и теории вероятности. Начинающему специалисту важнее всего освоить базовые понятия: уметь проверять гипотезы, знать, что такое доверительные интервалы, чем отличаются медиана и мода, понимать, как обозначать события и их вероятности.
Материалы по математике:
- Курс на Coursera
- Видеокурс по алгоритмам
- Статистика. Вероятность. Комбинаторика — Я. С. Бродский
Тем, кто хочет заниматься анализом данных (как профессионально, так и для себя), важно развить критическое мышление. Например, нужно самому выделять критерии для сравнения объектов: тут нет какого-то стандартного решения. Ещё важно сходу видеть закономерности и аномалии в данных.
Изучать программирование и анализ данных можно и самому — я не рекомендую обращаться к платным курсам до тех пор, пока вы не посмотрели бесплатный контент.
Во-первых, он служит для профориентации: чтобы лучше понять, какие приложения есть у программирования или анализа данных для разных профессий. Во-вторых, даёт понять, сколько сил и времени нужно будет прикладывать для изучения.
Преимущества обучения на курсах в том, что на них можно получить чётко сформулированные практические задачи. Также преподаватели могут рассказать о том, как общаться с заказчиком и уточнять у него необходимую информацию.
Как выбрать образовательную программу
Выбирая образовательную программу, важно обратить внимание на преподавателей, которые его ведут или создавали для него контент, — можно посмотреть их профили на Facebook и узнать про профессиональный опыт.
Что касается цены, то по моему опыту, качество курса не всегда с ней коррелирует — поэтому ориентироваться нужно на то, сколько вам комфортно потратить на обучение.
Также стоит чётко сформулировать то, что хочется получить в результате, — и сделать это ключевым критерием для выбора. Бывают случаи, когда студенты приходят на курс по анализу данных для менеджеров и ожидают занятия по программированию — а их учат общаться с аналитиками и рассказывают общие вещи про то, как внедрять анализ данных. Зачастую проблема не в плохой организации или преподавателях, а в том, что человек сам не проверил, соответствует ли программа его задачам. Правило с постановкой целей работает не только на выбор программы, но и на обучение в целом — не стоит осваивать язык программирования, чтобы поставить галочку.
Источник: zeh.media
5 ключевых достоинств и 3 главных недостатка Python
В прошлый раз мы разобрали, почему Python – идеальный язык для входа в Data Science. Сегодня поговорим подробнее про его достоинства и недостатки. Читайте в нашей статье, как принципы PEP делают Python таким удобным для разработчика и почему простота этого языка программирования может обернуться ошибками и разочарованием.
Чем хорош Python: ТОП-5 преимуществ
- Простота. Python – понятный язык, с которым разберется любой желающий. Не требуется знать принципы ООП или сложные структуры данных. Возьмем для сравнения Java. Как на Java вывести в консоль «Hello, World»? Нужно создать класс, в котором объявить публичный статический метод main, принимающий в качестве аргумента массив строк. Далее в этом методе вызывается другой класс, который, наконец, выведет надпись в консоль. Как это делается в Python? Просто пишем: print(‘Hello, World’) и сразу же получаем результат.
- Java:
public class Example < // Класс public static void main(String[] args) < // Публичный статический метод System.out.println(«Hello, world!»); // Статический класс >>
print(«Hello, world!»)
def long_function_name(var_one, var_two, var_three, var_four)
Не приветствуется скомпонованные условия, когда несколько операций лежат на одной строчке:
# Неправильно if foo == ‘blah’: do_blah_thing() do_one(); do_two(); do_three() # Правильно if foo == ‘blah’: do_blah_thing() do_one() do_two() do_one() do_two() do_three()
fruits_l = [«banana», «apple», «lemon»] # список (list) fruits_t = («banana», «apple», «lemon») # кортеж (tuple) fruits_s = # множество (set) fruits_d = # словарь (dictionary)
Что с ним не так: 3 ключевых недостатка
Обратной стороной вышеперечисленных достоинств являются следующие недостатки:
- Низкая скорость. Python – интерпретируемый язык, т.е. выполняется построчно и медленно. Как правило, в небольших проектах это не критично: обычно клиент даже не замечает, что код выполняется на полсекунды дольше. А в масштабных системах с большим объемом данных и сложными вычислениями разница уже заметна.
- Динамическая типизация, которая позволяет писать кратко, не объявляя тип переменной, например int. С одной стороны, это экономит время разработчика, но может привести к ошибкам при попытке выполнить операцию с несоответствующим типом данных. В результате могут появиться ошибки времени выполнения — runtime errors. Чтобы предотвратить это, потребуется дополнительное тестирование кода и добавление проверок на типы.
- Привычка к простоте.Человек быстро привыкает к хорошему: лаконичность и понятность Python-кода приводит к тому, что программист ищет этого же и в других языках. Например, читая Java-программу, питонист может возмутиться от обилия классов, круглых и фигурных скобок, странного объявления переменных и прочих неочевидных особенностей. Однако, мастер не должен зависеть от своего инструмента, а разработчик – от языка программирования.
В следующей статье мы рассмотрим 5 примеров написания Python-кода в одну строчку. А как на практике использовать все преимущества и обойти недостатки языка Python, вы узнаете на практических курсах по Python в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве.
- https://github.com/python/cpython
- https://www.python.org/dev/peps/pep-0008/#indentation
Похожие публикации
24 декабря, 2022
Какие функции отвечают за работу с массивами в Python
29 ноября, 2022
10 вопросов на знание Python: общий комплексный тест для начинающих
2 Comments
Умирающий язык, просто потому что скорость выполнения программы доминирует, а значит надо ждать что-то типа ассемблера, но более простого и портируемого.
Роман Котюбеев 6 января, 2021 в 9:43 дп
Исходя из какой статистики вы предполагаете, что язык умирает? Почти в каждой IT-области Python находится в топ-5 языков. В первую очередь это обусловливается его низким порогом входа, следовательно, больше людей им заинтересовываются. До этого все говорили, что Rust заменит Python, но что-то не видно этого.
Скорость выполнения программ важна всегда, ведь чем она быстрее, тем лучше. Но для некоторых задач не критично, что программа выполняется на 0.5 миллисекунды дольше. А вот для задач где нужно считать каждый бит, то низкоуровневые языки могут пригодиться, но это узкий круг задач.
Кроме того, в Python для увеличения скорости используется Cython, PyPy, Numba, многопоточность и асинхронность, какие-то внутренние реализации в виде генераторов или массивов NumPy. Если мы говорим о ML, то библиотеки TensorFlow и PyTorch предоставляют API для Python, т.е. вы пишете код в Python, но выполняется программа в C++.
Поэтому пока стоит пользоваться чем есть, особенно, когда у Python высокая поддержка. Иначе можно состариться, дожидаясь нового чудо-языка программирования.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Connect with:
Календарь записей
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Рубрики
- Computer Vision
- News
- NLP
- Python в одну строчку
- Анализ данных
- Визуализация данных
- Глубокое обучение
- Основы ML
- Практика Python
- Структуры данных
- Тесты
Свежие комментарии
- Как найти скользящую среднюю в PySpark к записи 5 графиков для Data Science, которые можно построить в Pandas 3 способами
- Функции PySpark SQL для парсинга JSON формата к записи Как сериализовать и десериализовать JSON в Python
- Роман Котюбеев к записи 5 ключевых достоинств и 3 главных недостатка Python
- Роман Котюбеев к записи Решаем задачу численного прогнозирования с помощью линейной регрессии на Python
- Sergey к записи Решаем задачу численного прогнозирования с помощью линейной регрессии на Python
Источник: python-school.ru