metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2011-03-24 10:28 pm

Как Остаться Программистом в 40 и Больше Лет

Все, что должен знать программист, чтобы его после 40 лет не выбросили на Помойку, Где Бомжи.

[identity profile] sharpc.livejournal.com 2011-03-24 11:12 pm (UTC)(link)
Некоторые слова выделены из категорий и книг, потому что они интересны в отдельности или просто хорошо звучат, кое-где указаны не все виды чего-либо, SCU это википедия, все темные углы знать не обязательно, в рамках теормина, на мой взгляд, достаточно знакомства с указанной литературой. Но я бы не отказался составить список темных углов C++, особенно если мне кто-нибудь поможет :)

Сети Петри есть ниже, я перечислил только те проблемы мультитредности, которые иллюстрируются "обедающими философами".

Есть какая-то принципиальная новизна в освоении DSP-процессоров после x86?

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

Можете раскрыть пункт 6 подробнее (куда, что и в каком порядке добавить)?

[personal profile] ex0_planet 2011-03-24 11:31 pm (UTC)(link)
> Некоторые слова выделены из категорий и книг, потому что они интересны в отдельности или просто хорошо звучат
Замечательно выглядящая в отрыве от контекста фраза :-)

Я-то в курсе что такое SCU, непонятно что должен делать кандидат, которому предлагается этот вопрос на изучение. А список темных углов это вообще отдельная схоластика ;-) забиватор вон давеча попробовал - чуть не подрался ;-)

> Есть какая-то принципиальная новизна в освоении DSP-процессоров после x86?
Попробуйте ;-) Как минимум из нового - атипичная арифметика, X/Y data pointers, MACs, hardware loops. Это если экзотику не брать вроде gennum, у которого пара десятков тупых-тупых ядер, заточенных на одну задачу, и программа больше напоминает шейдер для видеокарты.

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

п6. расскажите сначала, зачем вы про u/v pipe написали :-)))))

[identity profile] avnik.livejournal.com 2011-03-24 11:34 pm (UTC)(link)
Кстати устройство шейдеров в GPU какого нибудь r300 хорошо иллюстрирует ;) Я где-то с полгода назад полюбопытствовал

[identity profile] sharpc.livejournal.com 2011-03-24 11:47 pm (UTC)(link)
Повикипедить? :)
Ознакомлению с новыми аппаратными платформами очень мешает отсутствие этих аппаратных платформ :(
Не вся программа составлена мной, но те, кто помогал, клялись-божились, что без Arduino и u/v pipe ну никак :)

[identity profile] nealar.livejournal.com 2011-03-25 08:02 am (UTC)(link)
Это ничего, что "U/V pipe" есть только в 586? В 486- и 686+ их нет. :)

[personal profile] ex0_planet 2011-03-25 09:50 am (UTC)(link)
> Ознакомлению с новыми аппаратными платформами очень мешает отсутствие этих аппаратных платформ
Иными словами, отсутствие возможности применить прочитанное на практике, да? Ровно тоже самое можно сказать и про какой-нибудь метод Патриса Лумумбы из вашего списка по математике, скажем.

> Не вся программа составлена мной, но те, кто помогал, клялись-божились, что без Arduino и u/v pipe ну никак :)
Вот здесь и кроется попадалово. Тот кто вам насоветовал знать про u/v pipe, хорошо пошутил: это была такая частная особенность реализации суперскалярности в Pentium I - он мог параллелить только две инструкции, исполняя одну в u-, а вторую в v- pipe. Там еще были сложные правила одновременного сосуществования этих инструкций, зная которые можно было заметно ускорить код. Уже с появлением Pentium Pro (а тем более сейчас) все это потеряло всякий смысл - появился сильно умный декодер (или даже несколько), кормящий преобразованными в микрокод инструкциями набор execution unit'ов - осмыслению такая конструкция поддается плохо.

Короче говоря, я вас все пытаюсь подвести к мысли, что по каждому пункту нужен некий rationale, хорошо бы еще обозначить необходимый уровень знаний (на уровне "знать что бывает", "уметь настраивать если припрет" итд), иначе это все превращается в курс подготовки человека-оркестра. Это правда, работы дофига, да и внушительно выглядящий список сократится раза в три ;-), так что если целью было именно сориентировать молодого бойца, а не вызвать волну ненависти, гнева, и обожания (иными словами, потроллить) - это придется сделать.

[identity profile] sharpc.livejournal.com 2011-03-25 11:26 pm (UTC)(link)
Спасибо, убрал архаику.
Очень бы хотелось не раздувать каждый пункт в даже отдаленное подобие программы, оставив просто списком ориентиров — и на составление этого ушло несколько месяцев. Что бы я горячо приветствовал, так это названия книг.

[identity profile] nealar.livejournal.com 2011-03-26 08:52 am (UTC)(link)
Самое смешное, что у AMD вообще не было 586 процессоров. 5x86 - это обычный 486, а K5 - уже 686.
/me подозревает, что про необходимость U/V писали какие-то жертвы Cyrixов.

[identity profile] metaclass.livejournal.com 2011-03-25 06:00 am (UTC)(link)
У всякого не-x86 могут быть не фон-неймановские архитектуры, или хуже того - вообще реализовать на FPGA алгоритмы.