Комментарии 38
Так вот. Книги у него длинные, скучные и во многом бестолковые, и я бы их никому не рекомендовал.
Например, я интересовался парсерами, достаточно глубоко, вплоть до истории разных техник и приемов. Так вот. В теории компиляторов все основные техники, и даже саму классификацию парсеров по классам разбираемых грамматик, додумался использовать именно Кнут.
И в том проблема его книг, что автор — ученый, а не преподаватель, а не в том, что он болтун.
А вы, похоже, с этими алгоритмами не знакомы, и это кое-что говорит о ваших познаниях в области теории от программирования.
Повторяю: Кнут заложил основы современной теории алгоритмов (нотация большого О, например, в приложении к алгоритмам — его идея), основы теории компиляторов (предложил классификацию парсеров и ключевые базовые алгоритмы). И это только то, что я могу вспомнить, не заглядывая в список его работ.
Меня удивляет, что вы говорите что-то о Кнуте, не зная, что именно он сделал, это помимо просто знаменитых книг и программ. Конечно, он был не один, но был одним из первых, и этих остальных первых вы тоже, думаю, не особо знаете.
Уже третья статья, наверное пора спросить автора: уважаемый, а где философия-то? Сколько еще статей ждать?
/* java/util/Random.java
* An instance of this class is used to generate a stream of
* pseudorandom numbers. The class uses a 48-bit seed, which is
* modified using a linear congruential formula. (See Donald Knuth,
* <i>The Art of Computer Programming, Volume 2</i>, Section 3.2.1.)
*/
/* java/util/IdentityHashMap.java
private void closeDeletion(int d) {
// Adapted from Knuth Section 6.4 Algorithm R
Object[] tab = table;
int len = tab.length;
...
}
/** java/lang/ThreadLocal.java
* Expunge a stale entry by rehashing any possibly colliding entries
* lying between staleSlot and the next null slot. This also expunges
* any other stale entries encountered before the trailing null. See
* Knuth, Section 6.4
*/
/** java/math/MutableBigInteger.java
* Calculates the quotient of this div b and places the quotient in the
* provided MutableBigInteger objects and the remainder object is returned.
*
* Uses Algorithm D in Knuth section 4.3.1.
* Many optimizations to that algorithm have been adapted from the Colin
* Plumb C library.
* It special cases one word divisors for speed. The content of b is not
* changed.
*
*/
MutableBigInteger divideKnuth(MutableBigInteger b, MutableBigInteger quotient, boolean needRemainder) { ... }
Ада Лавлейс смотрит на вас с укором.
В каких же областях тогда, как вы выражаетесь, «лежит скилл» у женщин? И как это сочетается с тем фактом, что в фотографии (которая по типу мышления чрезвычайно близка живописи) доля известных женщин существенно выше? Или с тем фактом, что я лично знаком с одной женщиной-физиком, двумя математиками (и все они существенно сильнее меня в этих областях), композитором, двумя писателями, а уж среди знакомых художников и поэтов женщин просто больше, чем мужчин.
Может, стоит все-таки задуматься о том, что общество весьма сильно влияет на развитие личности, и в обществе, которое не одобряет женские занятия «серьезными науками», не может вырасти значимого числа женщин-специалистов в этих науках, вне зависимости от их «врожденных способностей».
PS вы пользуетесь bluetooth или wifi? А про Хейди Ламарр вы слышали?
Интереса ради — назовите, пожалуйста, хотя бы один преимущественно умственный род деятельности, где вам известно больше успешных женщин, чем мужчин.
Глядя правде в глаза, между словами "по настоящему" и "могут только единицы" можно вставить что угодно и это будет верное утверждение.
Ну и как отметили выше — поливание людей грязью.
манеры, вежливость, умение себя вести, говорить по делу, вести дискуссию, держаться в обществе, держаться вместе, и много других прекрасных названий
Ну, а теперь всерьез. В статье я (со своей весьма скромной колокольни) углядел несколько вполне очевидных фактов (сразу даю с моими комментариями, ок?):
* Некоторые IT-шники — откровенные гики и не от мира сего, а некоторые нет. Автор почему-то говорит об этом так, как будто это что-то плохое. Комментировать тут привязку «Россия — Запад» не хочется (противно, простите).
* Никто не читал «Искусство Программирования». Мне… э… гм… ну я очень надеюсь, что большая часть авторов хабра таки читала. Ведь правда, ребята? :)
* Примат Учителя над Книгой. Это весьма спорный и недоказанный тезис. Мне кажется, что это неверно, и что лучше учиться по книгам гениев, чем у посредственных учителей.
* Программисты — новый социальный слой (класс по Марксу). Это неверно. В чем принципиальная (классовая!) разница между программированием и инженерией?
*Наука, это переписка сумасшедших учёных.* Гениальная подмена понятий! Да, наука, как и любая сфера деятельности, РОЖДАЕТСЯ как «клуб по интересам», но не далее. Например, физика XX века к «клубу по интересам» не имеет никакого отношения (хорошо это или плохо — отдельный вопрос).
А еще в тексте есть трудноуловимая зависть к «пацанам типа Дурова, которые пришли к успеху». Ну, что тут можно сказать… зависть — плохое чувство, но если уж кому и завидовать — так Кнуту и компании (за то что у них такие клевые мозги), а не Дурову (за то, что у него так дофига бабла).
* Программисты — новый социальный слой (класс по Марксу). Это неверно. В чем принципиальная (классовая!) разница между программированием и инженерией?
В чем принципиальная (классовая) разница между программистом и токарем? Никакой.
Что касается спора computer science против математики, то надо просто вспомнить, что даже в новое время математики занимались в основном поисками алгоритмов, например поисками решений уравнений степени n или там квадратурой круга. Даже сейчас какие-нибудь исследования по теории функций непонятно куда относить — то ли это математика, то ли логика, то ли программирование.
Но похоже, наиболее фундаментальные открытия в программировании были совершены в 60-е. Тут тебе и P/V операции Дейкстры и Хоара (привет обедающим философам) или тот же Черч с лямбдами.
В полной мере на протяжении многих лет - испытываю весь комплекс проблем описанный автором =)
Общаться решительно никто не умеет, не хочет и не воспринимает это, как проблему, как нечто, что нужно решать, для чего нужно стараться. Ниже плинтуса не только интеллектуальный уровень, не только умение понимать контекст и чувствовать поступательное движение разговора, но и душевный - сведённый к формальности, к разговорам о погоде.
Выцепляя периодически людей из социума, действуя при этом, конечно, по наитию - пытаясь просто шестым чувством почувствовать что (тут, возможно, будет толк) я пока не могу похвастаться, что нашёл хоть одного человека, который хоть на половину бы соответствовал моим ожиданиям - моему представлению о качественном общении.
. . .
Чорт дёрнул меня написать "философия программирования" в Гугле, и вот я читаю уже третью статью Якова и тут прямо - синхрон - вот прямо то что и и как думаю я, и вот - оказывается об этом и также думает кто-то ещё! Мой внутренний воробышек трепещет! =)
Философия программирования 3 — Чичиков и программиат