Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет yigal_s ([info]yigal_s)
@ 2012-05-17 11:26:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
мой теоретический недоминимум
Несколько лет назад в ЖЖ появился замечательный список теоретического минимума программиста.

Список небезынтересный, но какой-то очень навороченный по объему знаний в каждом разделе. Посмотрим, например, что, согласно ему, полагается знать о С++, который я знаю не так чтоб средне:

стандарт - открывал неоднократно за последние 14 лет. Но не так чтоб эксперт.
Comeau - что это?
1TBS - что это?
Страустрап - общались )))
D&E - читал
Джосаттис - кажется, не попадался вообще. это плохо?
Вандервуд - кажется, это про быстрые вычисления, но практически не помню и скорее всего не знаю. Надо б пересмотреть. (упс, перепутал Вандервуда с Todd Veldhuizen)
Дьюхэрст - кто это?
Мейерс - хороший писатель для начинающих. Ну и вообще светлая голова.
Саттер - а как же
RAII - было
copy-on-swap - не знаю такого термина
правило трех - не знаю такого термина
exception-safety - куда ж без него
Александреску - читал
Абрахамс-Гуртовой - очень не сильно вник, увы мне. Но представление имею... Впрочем, не уверен.
type erasure - что это?
CRTP - что это?
NVI - что это?
SFINAE - знаю, ура! хотя, сходу на бумаге могу воспроизвести с ошибками
Koenig lookup - ну да. Ежегодно перечитываю )))
Duff's device - что???
Boost - поверхностно ознакомился, немного использовал
Сик-Ламсдейн/Карлссон - што это?
TR1 - проглядывал, но уже всё забыл
TR on C++ performance - проглядывал, но уже всё забыл. Нет, вру, не проглядывал дальше обложки и первых страниц. Пролистывал - так вернее.
ABI - что это?
тест Степанова - что это?
forwarding problem - сталкивался. но ни разу не читал, пока об этом не заговорили в связи с C++11
SPECS - что это?
C++0x - ознакомился.

Т.е. практически на троечку.

Теперь, я прошу прощения, но если я изучу детально этого самого Гуртового, выхода из этого практически будет ноль. Гуртовой - это, конечно, экстрим, но, скажем, forwarding problem - это такая вещь из серии "меньше знаешь - крепче спишь". Т.е. если вы собрались писать крутую темплейтную библиотеку, вам это всё может пригодиться, в противном случае, тысяча раз увы, всё это так и останется мёртвым грузом. Как было для меня мёртвым грузом в течении десятка лет знание partial template specialization, которые, увы, сначала не были доступны на том компиляторе, которым я пользовался, а потом уже просто было не до них.

ИМХО, этот список интересен для академической среды, там где люди могут увлеченно копать фичи языка вглубь, а не практически что-то реализовывать. Т.е. безусловно, для практики нужны хорошие знания и теория, в том числе и знание эзотерических деталей пригодится, но как-то тут всё черезчур смещено в сторону эзотерики, ИМХО. Это не минимум, это скорее уж максимум. В конце концов, круче boost и Гуртового я уж и не знаю что можно предложить в этой области для изучения. Разве что FC++.


(Добавить комментарий)


[info]mediant@lj
2012-05-17 14:27 (ссылка)
1TBS - что это?
"One True Brace Style". Это ж не просто пробел, прям бездна в образовании. Таким не место в академии...

(Ответить) (Ветвь дискуссии)


[info]yigal_s@lj
2012-05-18 00:28 (ссылка)
а вот увы мне, я даже и в расшифрованном виде не знал что это такое.

Т.е. если по каким-то аббревиатурам я еще что-то по сути и знаю, хоть их и не слышал, то тут просто полный облом, со скобочными стилями-то.

(Ответить) (Уровень выше)


[info]kot_begemot@lj
2012-05-17 18:19 (ссылка)
Странный список. Я бы сказал, пугающий.
Потому что человека, освоившего/знающего ВСЁ в этом списке нужно не на работу брать, а принудительно госпитализировать в психушке.
Программирование давно настолько узко специализировалось, что составить сколько-нибудь всеобъемлющий список "необходимых знаний" просто нереально.

(Ответить) (Ветвь дискуссии)


[info]yigal_s@lj
2012-05-17 23:33 (ссылка)
я думаю, что с хорошими (очень хорошими) мозгами, с хорошим изначальным образованием, с хорошей внутренней мотивацией и организованностью и при удачных обстоятельствах это всё можно изучить.

Тем более, если всё это учить по книгам, а не выискивать по журналам и форумам, где оно изначально и появлялось.

Но всё же это невозможно воспринимать как норму, даже как норму для гения.

(Ответить) (Уровень выше)


[info]yatur@lj
2012-05-17 23:39 (ссылка)
А по дискретной математики вы все пункты изучили? Сможете собрать/разобрать на скорость недетрминированный конечный автомат или определить язык, принимаемый автоматом Калашникова? :)

(Ответить) (Ветвь дискуссии)


[info]yigal_s@lj
2012-05-18 00:01 (ссылка)
не, с автоматами у меня совсем плохо, я их совершенно поверхностно учил, а про Калашникова - и не слышал даже.

Мне-то было интересно именно что взять что-то, что я знаю относительно неплохо. А найти там еще десяток пунктов, где мои знания похуже, чем С++ - так это запросто. "Диофантовы уравнения Матиясевича"... блин... ну ГДЕ это нужно программисту, ГДЕ???

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]yatur@lj
2012-05-18 00:09 (ссылка)
> а про Калашникова - и не слышал даже.

Ничего страшного, я вас представлю. Знакомтесь, автомат Калашникова:
Image

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]yigal_s@lj
2012-05-18 00:15 (ссылка)
а, ну да, в ФМШ же мы это проходили, как я мог забыть?!

(Ответить) (Уровень выше)


[info]akor168@lj
2012-05-18 03:15 (ссылка)
Со стороны это выглядит как "программа Вербицкого" для CS... Принцип составления по всей видимости: "я знаю дзюдо, карате и много других страшных слов". То есть автор либо слышал что-то, либо был в одной комнате с тем, кто слышал.

Хотя само по себе такие списки стоит составлять и конкретизировать, интересно ведь как оно бывает, чем люди занимаются.

(Ответить) (Ветвь дискуссии)


[info]yigal_s@lj
2012-05-18 11:32 (ссылка)
Список безусловно полезный. И, при всех оговорках, ВСЕ указанные пункты по С++ (лишь для примера) небезынтересно изучить, а не изучив, интересно иметь представление, что они существуют.

Сравнить со списком Вербицкого? Интересная идея. Не знаю, правильная или нет, но интересная очень )))

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]akor168@lj
2012-05-19 02:13 (ссылка)
Самое забавное, что я после почитал там комменты, и увидел несколько реакций про "список Вербицкого" и "я знаю дзюдо..." То есть реакции типические.

Проблема всех этих списков, в том что автор туда вписывает то, что он знает, и что слышал, поскольку не пропадать же добру, раз выучено. А вот скажем мне как желающему (пока на уровне Манилова) изучить программирование, как раз ценны советы, что не изучать, критику концепций, и что для чего оптимально. Впрочем это относится к любой науке.

(Ответить) (Уровень выше)