Востребованость Python'а
В даный момент нахожусь в "поисках себя")
Пробовал всего по-немногу. От веб-дизайна и верстки до C++ и Delphi.
Профессионалом НЕ являюсь(но хочу им стать), просто знаю на уровне "продвинутого студента" всего по чуть-чуть.
Хочу изучать python, так как слышал и читал много хорошего о нем.
Но интересует вопрос востребовани ли он? Можно ли найти работу python-программисту? И с чего следует начать изучение? + Что еще нужно знать в дополнение к самому языку (инструменты,библиотеки,технологии) ?
В даный момент нахожусь в "поисках себя")
Пробовал всего по-немногу. От веб-дизайна и верстки до C++ и Delphi.
Профессионалом НЕ являюсь(но хочу им стать), просто знаю на уровне "продвинутого студента" всего по чуть-чуть.
Хочу изучать python, так как слышал и читал много хорошего о нем.
Но интересует вопрос востребовани ли он? Можно ли найти работу python-программисту? И с чего следует начать изучение? + Что еще нужно знать в дополнение к самому языку (инструменты,библиотеки,технологии) ?
востребован. но там где требуется python - общий уровень требований, как правило, выше. поэтому помимо знаний языка - будут требовать хорошее знание программерской "матчасти".
с "матчастью" вроде дружу
но всегда есть куда расти
Но интересует вопрос востребовани ли он?
Да. В основном, как понимаю, в веб-программировании.
Что еще нужно знать в дополнение к самому языку (инструменты,библиотеки,технологии) ?
Т.к., как уже сказал, python востребован для веб-программирования, хорошо бы освоить Django, SQL, HTML, ajax и т.п.
Во первых, Python очень хорошо подходит для учебных целей. Например, то, что в C++ делается с помощью функторов через алгоритмы stl - в Python выглядит вполне просто. Так же и с указателем на функцию в объекте, и с кучей других вещей. То есть можно быстрее понять суть всяких программистских штучек, не утопая в запутанном синтаксисе.
Во вторых, его удобно использовать для прототипов, для исследования возможностей некоторых библиотек. Например, удобно изучать возможности wxWidgets или Qt с помощью Python. Тут экономим на строках кода, на времени, которое требуется на компиляцию и т.п. Я уж не говорю, что тут проще определять связи между объектами во всяких ООП-шных структурах. Потом, если потребуется, можно перенести созданную структуру в C++.
В третьих, удобно Python использовать для вычислений, обработки данных. Особенно с NumPy, SciPy. Хотя, честно говоря, сам я NumPy применил только пару раз.
Спорно. Очень спорно. ;)
Некоторые алгоритмы переносимы с теми еще танцами шаманскими. Это касается способа работы с памятью - сборка мусора дает кучу свободы.
Тут видимо имеется в виду обертка к существующим библиотекам (недавно на хабре статья была на подобную тему), потому как скорость исполнения программ на самом Питоне оставляют желать лучшего?
Если спорно, то приводят аргументы. На самом деле, аргументы в основном могут быть, если мы утверждаем, что в C++ (C#, Java и т.д.) не нужны Unit-тесты, что они компенсируются статической типизацией и компиляцией. И вот это спорно :)
Но в любом случае, я говорю тут о Python, как о вспомогательном средстве, как об инструменте для создания прототипов и обучения. В данном случае особой надёжности не требуется (если был намёк на то, что статическая типизация и компиляция добавляет надёжности), так как программы будут относительно небольшими и не пойдут эксплуатацию.
Я говорил не про алгоритмы, а про ООП, про проектирование.
Сборка мусора ещё больше облегчает создание прототипов. Но это не актуально для C# или Java, потому я не стал об этом говорить.
Да, обёртки. То же есть и для Ruby и для других языков.
Для прототипов обычно скорость не важна.
И скорости вполне для GUI хватает. Например, такие программы, как MyPaint, редактор кода UliPad, разные простые IDE на моём стареньком компьютере работают так, что я не испытываю никакого дискомфорта. Так что всё зависит от конкретного приложения, конкретной задачи.
Компиляция небольших программ занимает считанные секунды (максимум), ООП структуры на любых ООП языках занимают примерно одинаковый размер в строках.
При использовании техники маленьких шажков и это раздражает.
Если не ссылаться на то, что в одну строчку на некоторых языках можно всю программу написать, то это не так. Ибо утиная типизация позволяет сэкономить на абстрактных классах, на хитроумных иерархиях.
Если одному объекту надо воспользоваться функцией другого, то в Python ему не обязательно знать какого класса этот другой объект: берём ссылку на функцию и пользуемся. В C++ такое возможно только со статическими функциями. Или приходится применять финты. А это - дополнительные строки.
Ну и понятно, что не только в строках экономия, но и в символах.
Я понимаю. Поэтому сразу предупредил.
То есть, для автора темы скорее всего наиболее актуален совет от Green-a. Но темы создаются не для одного человека. По этому заголовку тему может найти кто-то, кто не так прямолинеен. Для него мои добавления могут пригодиться. Например, мне никто не платит за то, что я использую Python, но его использование помогает делать мою работу быстрее.
Т.к., как уже сказал, python востребован для веб-программирования, хорошо бы освоить Django, SQL, HTML, ajax и т.п.
А мы его используем для некоторых инфраструктурных вещей.
1. Написание кастомизированных тулов к Perforce.
2. В связке с Ant + Ivy для управления конфигурацией, билдом и зависимостями.
1. Написание кастомизированных тулов к Perforce.
2. В связке с Ant + Ivy для управления конфигурацией, билдом и зависимостями.
ааааа... ну эт понятно))
2. В связке с Ant + Ivy для управления конфигурацией, билдом и зависимостями.
У наст оже в связке со Scons система сборки и версионности и зависимостей на нем. Развиваем помаленьку.
На прошлой работе кстати, все вебные проекты в основном питоновские были. Несколько дружественных организаций тоже его активно использовали. Так что востребованность то все равно есть. Но в основном в веб. :)