Как стать автором
Обновить

Комментарии 33

//комикс
как_выучить_с_за_21_день.png
НЛО прилетело и опубликовало эту надпись здесь
работает. на себе проверял
По вашей ссылке лишь придирки в духе «ну 10000 часов — это не точно и вообще у всех по разному». Но порядок-то угадан.
«чтение из кеша L1 0.5 nanosec» не понятно, что считывается с такой частотой?
Бит, байт, слово?
Кэш-линия
Для программиста что считывается?
То, что из быстрого кэша это понятно.
Кэш-линия считывается
Статья по программирование и это скорости операций программных.
Приведите пожалуйста команду считывания кэш-линии. И куда записывается результат и в каком виде.
Нет таких частот ни в одном процессоре.
1. Команд, чтобы сесть и накодить считывание и запись кэш-линии не существует, – прямой доступ к кэшам запрещён by design.
2. Одна наносекунда = два такта, если CPU работает на 2ГГц. Соответственно, в статье действительно написана дичь, если вдуматься. Это, например, идет вразрез с официальной документацией Performance Analysis Guide от Intel, страница 8:
The local copies of the lines that are accessed in this way are kept in the 32KB L1 data cache. The access latency to this cache is 4 cycles.

Кстати, весьма рекомендую это чтиво, чтобы понять, что куда записывается, как читается и как со всем этим жить.
«4 cycles» это на 2ГГц?
Гигагерцы ЦПУ чисто маркетинговые названия и ничего общего не имеющие с реальной тактовой частотой.
Там же КМОП и никаких Гига Гц там нет и не было никогда
Я думаю имеется ввиду, что при чтении из кэша L1 (где уже все хранится в линиях) можно, например, замувать 64 бита в rax, а можно 128 в sseшный регистр. И вопрос в том, будут ли обе эти инструкции выполняться одинаковое время при прочих равных, если данные уже находятся в одной кэш линии? То, что внутрь кэша быстрого из кэша медленного/ram читается кэш-линиями вроде бы и так понятно
Обе инструкции не будут выполняться в одинаковое время. Тем более, что 128-битные SSE операции не атомарны.
всегда считывается строка
Личные наблюдения: при обучении с нуля более-менее осмысленно программировать начинаешь через 2-3 года практики (до того из-под пера выходит почти исключительно говнокод и копипаст). Чтобы программировать действительно хорошо… пожалуй, соглашусь с заголовком статьи — порядок сроков примерно такой.
Отсюда следует вывод: либо люди очень торопятся обучиться программированию
.
Бинго, кеп, подобного рода книги пишутся для тех, кому надо срочно (на вчера) освоить азы языка.
Но да, чтобы глубоко проникнуться, надо курить трехтомник Кнута, желательно не в переводе, а в оригинале. Перемешивая это чтиво с чтением философской литературы и написанием стандартов в каких-то серьезных международных комиссиях.
Ссылку на статью Норвига приходится давать регулярно, свежий перевод будет весьма кстати, спасибо за него. Одно замечание: учебник по Mozart/Oz действительно очень хороший. Но к легкому чтению я бы его не отнёс. Это текст, скорее, для программистов-теоретиков, которые имеют склонность к разработке языков программирования. Поэтому, очевидно, его редко советуют в блогах. При этом в книге имеется действительно масса интересных идей и концепций, которые все еще ждут более доступного изложения и соответствующего инструментального ПО.

Еще вспомнилось:

Он говорил, что знает языки программирования и операционные системы, хотя не имел о них ни малейшего представления, всего лишь прочитав книгу о предмете за несколько часов до интервью. И он умудрялся добиваться места, вешая лапшу на уши.
«Нам нужны специалисты, которые программируют на BAL», — могли сказать ему, упоминая какой-то таинственный язык программирования, а он мог саркастически рассмеяться:
«BAL? Да я программирую на BAL последние три года!»
Затем он немедленно бежал за книгами, потому что он никогда раньше не слышал ни о каком BALe. Но к тому времени когда начиналась реальная работа, он уже доставал всю нужную документацию, обычно представленную в виде тонких, отпечатанных на дешевой бумаге и плохо переплетенных книг, которая была фальшивым доказательством его опыта с BAL, или, по крайней мере, он выигрывал время, до тех пор пока он не добирался до машины и не выяснял что из себя представляет этот BAL.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
>Отсюда следует вывод: либо люди очень торопятся обучиться программированию, либо каким-то сказочным образом программированию выучиться легче, чем чему-либо другому.

Ну, в каком-то смысле так и есть. Только не с нуля. Намного легче выучить язык, похожий на то, что ты уже знаешь, особенно если он уже 10-й или 100-й.
НЛО прилетело и опубликовало эту надпись здесь
Ой бросьте, как мне кажется, нападки на PHP, морально устарели уже лет пять как.
НЛО прилетело и опубликовало эту надпись здесь

Вы сравниваете PHP и Java, но при этом PHP — язык с совершенно конкретной и узкой областью применения (ну во всяком случае изначально, не знаю уж как сейчас), по сути язык-фреймворк. Java же используется в совершенно разных областях и логично, что для простоты использования в конкретной области вам лучше взять некий узко-специализированный фреймворк.


Это как жаловаться на то, что старого доброго браузерного Javascript'a не хватает, чтобы писать бекенды на ноде

НЛО прилетело и опубликовало эту надпись здесь
На самом деле, это актуально для большинства популярных языков программирования. Проблема, как мне кажется, лежит в несколько другой плоскости. Не проблема разобраться с фреймворком и его особенностями, проблема возникает тогда, когда появляются программисты, которые, скажем так, пишут на фреймворке, но столкнувшись с необходимостью что либо написать на чистом языке, впадают в ступор (как пример, была одно время волна jQuery разработчиков).
Что для вас значит быстро освоить? Вот скажем есть такая штука, Hadoop, и подобная вакансия сегодня называется Java Developer. Также, как разработчик под Android, что характерно.

И вы можете сколько угодно хорошо знать Java как язык, но реально от вас еще потребуется много такого, чего в экосистеме PHP нет, не было и вряд ли когда-то будет. Ну т.е. по сути, я говорю о том же, что уже написали — цели Java как экосистемы намного шире, как шире и реальное использование. От того и сложности.
Программистом должен быть каждый!
НЛО прилетело и опубликовало эту надпись здесь
Вот оно как! А я то думаю, что меня как котенка в *** после 2 летнего опыта на новой работе. Оказывается 2 года — это только «начальная школа», а возможно и «садик» программирования.
Красиво изложено. Давно вертелись в голове подобные мысли, но ни как не складывались в столь ясную картину. Спасибо автору. Взял на заметку. При случае буду теперь давать ссылку на данную статью.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории