tanzani.
Поэтому решил поспрашивать на форумах, так в чем состоит вопрос, а точнее их два: стоит ли изучать Python как первый язык? и востребован ли он в данный момент на рынке?
На рынке больше востребована картошка, так что если так думать, то лучше заниматься изучением агрономии и тракторизма. К нам недавно со Сколково приезжал молоденький агент, вот они набирают компании, которые будут разрабатывать им приложения для повышения удоев, для экономии энергии, для просчитывания гос. закупок, помогать им, короче, поменьше работать и при этом говорить, какие они ударники пятилетки. Таким образом дошло до того, что агенты ездят по стране и ищуть хоть кого-нибудь.
Хочешь научиться программировать, не равняйся на рынок, иначе станешь говнокодером, вечно ждущим зарплаты от доброго хозяина.
Какая разница между “начинать с C” и “начинать с питона”. Это оба хорошие языки, но от первого языка зависит твоя дальнейшая культура. Когда не было питона ещё, стоял вопрос, начинать с C или Паскаля. При этом у паскалистов всегда были сложности с дикой средой. Для них было проблематично переходить потом на C++ (промышленный язык), из-за того что они резко попадали в дикую среду, где вся ответственность за действия любого оператора в коде лежит на тебе, а не на дяде Васе, который компилятор написал. Если ты вылез за границы массива, тебя никто, как сопливого щенка, носом в это тыкать не будет, просто будет тихий баг, который вылезет потом уже при работе программы где-то на серьёзном предприятии. То же самое и с питоном: если с него начинать, сформируешь безалаберную культуру у себя и потом будет сложно после него заняться чем-то серьёзным. Если же начинаешь с C, то там ты сразу приучиваешься думать, иначе никак, иначе там всё выпадет. Таким образом у тебя появляются полезные навыки, которые потом работают и с более простыми в плане использования языками.
Что касается дикого мира. Настоящее программирование - это абсолютно дикий мир. В нём нет никаких удобных кодов, удобных задач. Когда ты хочешь что-то изменить и открываешь исходники этого, там абсолютно ничего не понятно, нет никаких ясных комментариев, объясняющих что-либо, ты всё должен понять сам. А как ты поймёшь, если за тебя всегда думал невидимый дядя Вася в компиляторе? Я вот недавно хотел изменить плагин к Firefox'у, в нём ошибка при просмотре YouTube (в некоторых условиях невозможно смотреть комментарии при одновременном проигрывании ролика). Скачал исходники этого плагина, распаковал, а там просто говнокода на несколько мегабайт, даже не найдёшь, где это место с этой ошибкой, потому что один говнокод вызывает другой говнокод через функции в виде говнокода, записанные иногда вообще в одну строку. Так и сижу с этой ошибкой, потому что JavaScript не так хорошо знаю, чтобы анализировать говнокод (был бы питон или C, там бы нашёл всё). Вот это реал, дикая природа.
Что касается Java. Видал я недавно пацана, который пишет код со всеми ООП шаблонами, абсолютно никакой в процедурной части. То есть алгоритмически он даже не может просмотреть все пути в программе, потому что этому никакое ООП не поможет, из-за чего он код сразу пишет с логическими ошибками, которые потом полезут скопом. Видимо, он ударился в Java или около того, тоже ориентируясь на рынок, в итоге у него код в трусах и шляпе - с ООП шаблонами и глупыми логическими ошибками вроде циклов с неточными границами.
Так что лучше C для начала ты ничего не найдёшь. Он устойчивый во времени (в отличие от Go, в котором многие вещи через одно место сделаны и всё это меняется и дальше), он маленький с видимыми границами (в отличии от C++, где обычно куча ненужной фигни, по которой никак не поймёшь, что она ненужная), он близок к системным внутренностям компьютера (с которыми ты всегда будешь иметь дело в реальном мире) и он очень грамотно сделан (в отличие от питона, где очень много ошибок и несогласованностей одних частей языка с другими).
С Java'ы не начинай, иначе будешь дураком с умным видом, их очень много и хорошо видно на всяких тостерах и хабрах. Какой-нибудь простой алгоритм записывает тремя тоннами кода и такое умное лицо делает, потому что даже не понимает, как пропёрся, потратив кучу времени на изучение ненужного, а примитивное что-нибудь написать не может, только рассказывает, что вот завтра напишет, сегодня времени нет. Естественно, это завтра у него не наступает никогда, потому что он даже не понимает, что не умеет нифига. Когда берётся за что-то, оно просто валится из рук и сыпется, и он возвращается к своим “умным” кодам, которые можно только показывать кому-нибудь (тётькам бухгалтершам).