LINUX.ORG.RU

Посоветуйте книгу по python для «заканчивающих»

 


5

2

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

Повторять то что и так всем известно для меня смысла уже нет, как и просто «руководство по программированию» для меня тоже бессмысленно, а вот что-нибудь эдакое, например про работу с ast, внутреннее устройство и тд и тп я бы почитал. Есть что-то такое?

В результате:

Anthony Shaw - CPython Internals: Your Guide to the Python 3 Interpreter
Dive into Python
docs.python-guide.org/
Effective Python
Fluent Python, Luciano Ramalho(«Python. К вершинам мастерства»)
oreilly.com/library/view/python-beyond-the/9781771373609/
realpython.com/
Лутц - дотошное скучно чтиво, не советую.
Effective Computation in Physics
★★★★★

Ответ на: комментарий от pawnhearts

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

Я передаче на YouTube смотрел, интервью с дедами, которым по 60-70, в совке писали на Basic, C, Pascal. Чет она ничего не в состоянии была придумать. Только какую-нить шизу типа тупо сделать ключевые слова на русском

tz4678 ★★ ()
Ответ на: комментарий от tz4678

Батенька, Вы просто тролль, лжец и возможно девственник:)

По факту, советское по работало только на оборонку. В оборонке все было на уровне. Эти ваши ракеты и прочее. Но вот с железом да, была печаль беда, всегда. Ну, не шмогла…

anonymous ()
Ответ на: комментарий от tz4678

На уровне процессоров IBM, выпускаемых по лицензии, и пиратских Z80

Я про софт. Ракеты все таки летали заданным курсом. А вот железо всегда было ниже плинтуса. Сейчас уж точно номенклатуры не вспомню, но те же ламповые брэо на мигах, имели такую массу, что никуда не годилось. Когда у конкурентов уже работали полупроводники. Радиоэлектронной промышленности у нас не было никогда. Хотя под жто дело даже город основывали - Зеленоград. Сейчас там ситроникс штампует билетики в метро и рфид метки. Вроде даже амуде 90нм производственный конвейер закупали. Где оно сейчас, не знаю.

anonymous ()
Ответ на: комментарий от anonymous

Инженеры были хорошие и в плане железа и софта. Но что поделать если элементная база была ужасной. Даже рассыпуха. И там где у IBM уже были интегральные схемы, в ЕС ЭВМ делали аналоги чудовищной сложности.

Ну и даже военная/космическая приемка и т.п. там просто отбирали очень жестко, процент брака и стоимость такой продукции была чудовищной.

pawnhearts ★★★★★ ()
Ответ на: комментарий от pawnhearts

Тем что ты даже название elixir написать правильно не можешь, куда уж о коде говорить. Нету на нём на рынке разработчиков. Вот язык программирования D шикарен, лучше С++, но он опоздал и потому не имеет смысла его учить и использовать если результат какой-то конечный продукт который должен жить независимо от жизни своего разработчика.

peregrine ★★★★★ ()
Ответ на: комментарий от peregrine

Да, а я вот щас открыл hh.ru и в ДС 27 штук есть. Причем всякие домклик, lenta.ru, wargaming. Зарплаты неплохие(плюсовикам такие не платят). Да и там всё на инфраструктуре erlang, а это серьезная технология.

pawnhearts ★★★★★ ()
Ответ на: комментарий от anonymous

А вообще СССР клепал клоны да, но с небольшим отставанием(по мерках тех лет тем более) и самой переводой техники. Сейчас такое немыслимо, Китай что-то такое не тянет.

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

pawnhearts ★★★★★ ()
Ответ на: комментарий от pawnhearts

Справедливости ради, клоны в ту пору делал китай. Вспомните устойчивый символизм, китаец на вднх обязательно с фотоаппаратом.

Во многих отраслях в совке были передовые решения. Это факт. Мы сейчас не касаемся того, какой ценой. И как «платили» творцам. Это совсем другая история, как сейчас говорят. Обидно только то, что всякие кирины у китая сейчас есть, а у нас…

anonymous ()
Ответ на: комментарий от anonymous

Там, кстати, эффект даже интересней:

In [1]: q={}

In [2]: q[1.0]='foo'

In [3]: q
Out[3]: {1.0: 'foo'}

In [4]: q[1]='foo'

In [5]: q
Out[5]: {1.0: 'foo'}

In [6]: q[2]='foo'

In [7]: q
Out[7]: {1.0: 'foo', 2: 'foo'}

In [8]: import dis

In [9]: def f():
   ...:     q = {}
   ...:     q[1.0] = 'foo'
   ...:     q[1] = 'bar'
   ...: 

In [10]: dis.dis(f)
  2           0 BUILD_MAP                0
              2 STORE_FAST               0 (q)

  3           4 LOAD_CONST               1 ('foo')
              6 LOAD_FAST                0 (q)
              8 LOAD_CONST               2 (1.0)
             10 STORE_SUBSCR

  4          12 LOAD_CONST               3 ('bar')
             14 LOAD_FAST                0 (q)
             16 LOAD_CONST               4 (1)
             18 STORE_SUBSCR
             20 LOAD_CONST               0 (None)
             22 RETURN_VALUE

STORE_SUBSCR

Эта функция интересно работает

int PyObject_SetItem(PyObject *o, PyObject *key, PyObject *v)

Пример магии:

In [11]: q = {1: 'Foo'}

In [12]: q[True] = 'Bar'

In [13]: q
Out[13]: {1: 'Bar'}

1, 1.0 и True с точки зрения питона один и тот же ключ

А разгадка в функции хеширования:

In [14]: hash(1)
Out[14]: 1

In [15]: hash(1.0)
Out[15]: 1

In [16]: hash(True)
Out[16]: 1

Словарь - это просто хеш-таблица.

tz4678 ★★ ()
Последнее исправление: tz4678 (всего исправлений: 1)
Ответ на: комментарий от crutch_master

а мне нравится python, я его за две недели выучил в 2009 после php, но надо было учить ruby, так бы я может и свалил из рашки еще давно. я могу даже таблице написать что мне не нравится в том или ином языке:

ЯзыкНедостатки
PHP100500 функций в глобальной области видимости, нет модулей; косплей Java; не было пакетного менеджера; проблемы с областью видимости; шаблонность: как бы похапешники не старались пихать всюду паттерны, но из уродливой метамфетаминовой проститутки не выходит сделать мисс мира; доллары, доллары, везде доллары
JSнепонятное прототипное наследование; не было модулей в браузере; не было нормального ООП; асинхронность до того как я ее принял; лапша из коллбеков; замыкания до введения let/const; контекст this; ублюдский JQuery; который везде требовали; добавили 100500 различных глобальных объектов в браузере вместо изначальных 300; TypeScript, который придумали для ублюдков до этого превративших PHP в Java; нет специального типа для работы с байтовыми строками, а с типизированными массивами либо буферами работать неудобно
Pythonнизкая производительность по сравнению с PHP и Node.js ; датасаенс - меня бесит, что для эффективных менегеров сабж стал синонимом статистики, я ее не знаю и нахер она мне не нужна, прекратите мне предлагать поработать датасаентистом; pip не умеет чистить хвосты, поэтому используем альтернативы (было актуально до pipenv и poetry); область видимости работает неправильно, поэтому чтобы не использовать global городим ООП; Django - это такое же говно как Jquery и оно в каждой второй вакансии
Goнет шаблонов/дженериков; неудобный перехват ошибок: либо просто их игнорим, либо паникуем
tz4678 ★★ ()
Последнее исправление: tz4678 (всего исправлений: 1)
Ответ на: комментарий от tz4678

математика ‒ это наука о числах

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

madcore ★★★★★ ()
Ответ на: комментарий от tz4678

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

crutch_master ★★★★★ ()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от madcore

Математика - писечка, мимими. Там еще пространственные формы, отношения между обьектами и много всего сложного и интересного. Но это для взрослых яп актуально. Пистончик все сделает сам. Там инженеры за погроммиста все решили…

anonymous ()
Ответ на: комментарий от alysnix

навыки кодинга - это ерунда, не определяющая его уровень

Да, и наверное потому во всем мире есть только несколько тысяч человек, которые по-настоящему хорошо умеют в кодинг.

byko3y ★★★ ()
Ответ на: комментарий от tz4678

Но ведь песонажи, которые не понимают чем асинхронность от многопоточности отличается, задеть так и норовят плак-плак

И чем же она отличается? Ты в курсе, что в отдельных ЯП эти два понятия неразделимы?

byko3y ★★★ ()
Ответ на: комментарий от pawnhearts

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

Это мантра, которую каждый старый пердун из учебного заведения повторяет, чтобы оправдать околонулевую эффективность обучения. Вторая мантра «мы учим учиться» — это когда эффективность не околонулевая, а вообще нулевая или отрицательная, то есть, после обучения студент имеет меньше способностей к продуктивному труду, чем до обучения. Естественно, все эти старые пердуны сдуются от следующего же уточняющего вопроса, вроде «каким образом выполнение бессмысленных инструкций и получение оценки от человека, который сам с трудом понимает смысл этих инструкций, помогает лучше учиться новым вещам?». Как правило, в этот момент препод начинает съезжать с темы и кидаться говном — не в последнюю очередь потому что прекрасно понимает, что средний сторонний наблюдатель не имеет ни малейшего представления о принципах обучения и не разбирается в педагогике.

Это примерно как Жириновский, который хоть и хорошо разбирается в политике, но осознает, что 99% избирателей абсолютно ничего не понимают в политике, и голосовать будут за того, кто громче и чаще кричит.

Так вот, возвращаясь к твоей фразе

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

Фундаментальными знаниями не обладает подаваляющее большинство преподов в ВУЗ-е. Если бы обладали — уже бы зарабатывали свои $10k/месяц, а не сидели бы читали лекции тем, кому их не хочет слушать.

Главный плюс же паскаля в том, что в нем оператор тождества не применяется в роли оператора присваивания, и потому не приходится целую лекцию с практическими занятиями отводить только для того, чтобы пояснить, почему в Си-подобных языках «2 = 3».

byko3y ★★★ ()
Ответ на: комментарий от byko3y

Ok. Старые пердуны уходят. Что дальше? Что молодое поколение ппс прежложит студентоте? Просматривать туториалы пистона на ютубчике, сомнительного качества, пяля строграммчик в процессе?

Это эффективно? Чему вообще это учит? И что со всем этим делать?

anonymous ()
Ответ на: комментарий от peregrine

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

Какой из языков D? Не последнюю очередь закопали его сами разработчики, потому что не могли окончательно решиться с тем, в какую нишу метят — хотя бы даже просто сказать «у нас язык только с GC, мы метим в нишу Go», или «у нас низкоуровневый язык со строго ручной обработкой сложных структур аля Swift».

byko3y ★★★ ()
Ответ на: комментарий от anonymous

Старые пердуны уходят. Что дальше? Что молодое поколение ппс прежложит студентоте? Просматривать туториалы пистона на ютубчике, сомнительного качества, пяля строграммчик в процессе?

Прежде всего, преподавание в институте в формате «от звонка до звонка» в принципе не может быть эффективным — какой бы гений этим преподаванием не занимался. Читай «Фабрика марионеток. Исповедь школьного учителя» Джона Гатто. А прошаренные ребята, у которых можно много чему научиться, водятся в том числе тут, на LOR-е.

byko3y ★★★ ()
Ответ на: комментарий от byko3y

Прежде всего, преподавание в институте в формате «от звонка до звонка» в принципе не может быть эффективным — какой бы гений этим преподаванием не занимался.

Ахахах, да что Вы знаете о преподавании?)

anonymous ()
Ответ на: комментарий от byko3y

Прежде всего, преподавание в институте в формате «от звонка до звонка» в принципе не может быть эффективным

Вот не от того ли зумерки не способны к действиям, когда «что-то идет не так». Сперва им «неэффективно» от звонка до звонка. Ибо это напрячься надо. Потом им неэффективно решать проблему. Надо взять старое ядро и ржавым все перепилить. Хорошо пока не на пистоне…

Что для Вас есть эффективно? Что Вы можете предложить/предложили миру?

anonymous ()
Ответ на: комментарий от anonymous

Ахахах, да что Вы знаете о преподавании?)

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

Ну то есть, да, СКЛОННОСТЬ к обучению с годами падает, но она совершенно никуда не девается, в 40 лет можно выучить новый иностранный язык так же, как в 4 года. Проблема скорее в том, что для этого придется ПЕРЕучиваться, и что само по себе, за просмотром телевизора с сиськой пива, это не случится — учиться нужно осознанно, запуская программу обучения вместо программы лежания на диване.

byko3y ★★★ ()
Ответ на: комментарий от byko3y

Когда-то я боялся, что вот я повзрослею, щелкнет какой-то рубильник в мозгу — и я навсегда потеряю способностью учиться.

Когда человек перестает учиться, он стареет. В том числе биологически. Никогда не забуду одного деятеля науки из мат института ран, в 104 года он выступал на конференции. Говорил связно, активно. Вот что значит думать головой.. Да и в прикладном смысле, в наше время учиться нужно постоянно. Иначе окажешься за бортом. Под учиться я не подразумеваю курсы с корочками. Инторнет в руки…

anonymous ()
Ответ на: комментарий от peregrine

Вот этот

Я еще раз повторюсь, что «этих» есть несколько:

«D2 introduced breaking changes to the language, beginning with its first experimental const system. D2 later added numerous other language features, such as closures, purity, and support for the functional and concurrent programming paradigms. D2 also solved standard library problems by separating the runtime from the standard library»

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

byko3y ★★★ ()

Тут всегда бесполезный срач от тупых мудаков которые думают што развитие айти остановилось 800 лет назад? Про какие-нибудь линейные типы я так понимаю они не в курсе, ну а что самое главное чтобы новая идея доехала нужно потратить иногда кучу времени. Например файберам на бумаге сто лет в обед, а прям массово внедряться везде где только можно они стали относительно недавно, ну примерно лет 10-15 как. Так может и какие-нибудь из современных, никому не известных разработок доедут до реализации примерно лет через 20-40.

e7z0x1 ★★★★★ ()