LINUX.ORG.RU
ФорумTalks

Руки в масле, попа в мыле - мы работаем на ЗИЛе

 , ,


2

1

Расскажите о том, как повышались ваши профессиональные навыки. Были ли переломные моменты, т. н. озарения? Как справлялись с трудными, тяжело поддающимися решению задачами? Помните самый ужасный день или даже целый месяц, когда не жить, не быть, но нужно было реализовать некую фичу, но опыта не хватало и вы рвали волосы на пятой точке? Оглядываясь назад, можете сказать, что вы быстро освоили тот или иной пласт знаний?

Дискасс, самоучки :)

Были ли переломные моменты, т. н. озарения?

— Когда в ~1991-м я понял, наконец, что такое объекты в Си++ (вся доступная на тот момент литература была туманна).
— Когда я прочитал «Thinking Forth» Лео Броуди в переводе Дмитренко. 1994-й.
— Когда я проникся утверждением Андрея Черезова «за то время, что я пишу новый механизм, который позволит оптимизировать продукт, ускоряя его на 10..15% выйдет новый процессор Intel, который ускорит систему вдвое без всяких усилий с моей стороны». Что-то в районе 1998-го.
— Когда я понял, что преждевременная оптимизация — зло (пару-тройку лет назад).
— Когда я понял, что множественное наследование не нужно (2007).

Наверняка не всё. Первое, что в голову пришло.

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

Когда я проникся утверждением Андрея Черезова «за то время, что я пишу новый механизм, который позволит оптимизировать продукт, ускоряя его на 10..15% выйдет новый процессор Intel, который ускорит систему вдвое без всяких усилий с моей стороны». Что-то в районе 1998-го.

Вот это знание пора опять забывать

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

«за то время, что я пишу новый механизм, который позволит оптимизировать продукт, ускоряя его на 10..15% выйдет новый процессор Intel, который ускорит систему вдвое без всяких усилий с моей стороны».

Нечто подобное утверждается в предпоследнем издании Лутца по питону (если не ошибаюсь, 2008г.), согласись, не прокатывает :) Как тормозило - так и тормозит, что на первых корках 5 лет назад, что на i5/i7 сейчас.

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

Когда я проникся утверждением Андрея Черезова «за то время, что я пишу новый механизм, который позволит оптимизировать продукт, ускоряя его на 10..15% выйдет новый процессор Intel, который ускорит систему вдвое без всяких усилий с моей стороны». Что-то в районе 1998-го.

поэтому мощность процов выросла дико, а софт как тупил, так и тупит.

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

— Когда я проникся утверждением Андрея Черезова «за то время, что я пишу новый механизм, который позволит оптимизировать продукт, ускоряя его на 10..15% выйдет новый процессор Intel, который ускорит систему вдвое без всяких усилий с моей стороны». Что-то в районе 1998-го.

Сейчас это уже не верно :)

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

Умиляешь тем как врываешься своим откровением в странные треды.

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

— Когда в ~1991-м я понял, наконец, что такое объекты в Си++

И что же это такое? Я до сих пор не понимаю!

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

Кстати, поддерживаю насчёт объектов. До сих пор помню, как ехал в электричке и читал про ООП (правда, в паскале). И то чувство полного непонимания, зачем всё это вообще нужно. А потом оп! и вдруг всё понятно.

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

А потом оп! и вдруг всё понятно.

Поделитесь, пжлста. Вот мне до сих пор не понятно, зачем эта хернь нужна.

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

Вот это знание пора опять забывать

Да. Уже несколько лет, как оно вполне очевидно, что экстенсивный путь развития завершается.

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

Нечто подобное утверждается в предпоследнем издании Лутца по питону (если не ошибаюсь, 2008г.), согласись, не прокатывает :)

Конечно, не прокатывает! Он опоздал на 10 лет :)

...

Хотя суть там немного глубже. Не конкретика оптимизации, а конкретика _неоправданной_ оптимизации. Вариация на тему того же утверждения, что преждевременная оптимизация — зло.

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

поэтому мощность процов выросла дико, а софт как тупил, так и тупит.

Ты счастливый человек, который не застал времена, в которые загрузка примитивной ОС за минуту считалась нормальной, браузеры нормально стартовали за 10..30 секунд, а открытие нового документа в редакторе за 10 секунд считалась крутизной :D

Как раз в то время, когда звучало то утверждение, быстрый набор текста в Word'е на средней машине приводил к периодической подтормозке со скроллингом, когда тезаурус отрабатывал. Поэтому те, кто набивал быстро, его отключали нафиг :)

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

только перед каждым пунктом следует добавить «Я пыхнул и понял, что...»

Я не пыхал, я бухал. В бухом виде строил весьма интересные программные проекты, но никаких откровений не получал :D

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

вполне очевидно, что экстенсивный путь развития завершается

Это очевидно, не очевидны методы оптимизации. Подсчёты числа тактов выпонения команды не канают, других методов не предложено.

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

а какая литература по C++ была доступна в 91-м?

Совершенно не помню, появился у меня Страуструп до того, как я понял, что такое объекты или после. Так что я даже не помню, понятно он писал или нет. Но даже если и после — то примерно в тот же год.

А так, на имеющейся в то время литературе, я долго искренне не мог понять, что такое объекты и нафига они нужны. То есть код воспроизвести мог, а понять, что это такое по сути — нет. Пока в книжке, не помню ни названия, ни автора, помню только что это женщина была :D не была до меня донесена простая мысль. Что объекты в Си++ — это те же самые структуры, что в Си (который я к тому времени знал отлично), только с приватными свойствами по умолчанию :D С внутренней стороны (а я, выросший из машкодов подходил тогда только с ней) стало всё сразу понятно, после этого соединились знания и с «внешним» удобством такого подхода. Сразу стали понятны три основные парадигмы.

Вообще, наверное, напутал я с датой. Скорее всего это не 1991-й был, а 1992-й. В 1991-м я ещё активно мучил Фокал на БК-0010 и осваивал Форт.

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

И что же это такое? Я до сих пор не понимаю!

Как я написал чуть выше в более длинном сообщении, объекты в Си++ — то же самое, что структуры. Только с приватными методами по умолчанию :D

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

Как я написал чуть выше в более длинном сообщении, объекты в Си++ — то же самое, что структуры. Только с приватными методами по умолчанию :D

Юмор хорош, но у структур в С нет наследованиния. Внутреннее прдставление не надо путать с философией. И смайлик тут непричём.

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

Поделитесь, пжлста. Вот мне до сих пор не понятно, зачем эта хернь нужна.

Для троллинга на ЛОРе, конечно :)

...

А так, забавно, но _активно_ применять объекты, делая свои системы полностью объектными я стал 15 лет спустя после знакомства с ООП. Хотя до этого, конечно, практиковал их использование. Но как вспомогательного инструмента для удобства разработки. Комплексные числа, там, строки... Но объекты всегда использовались в не-объектных по сути приложениях.

Лишь в ~2005-м я понял, насколько всё удобно, логично и единообразно получается в моём PHP-фреймворке, если его каркас из процедурного переделывать на объектный. А в 2006-м я плотно влез в Java-проект и, имея уже ООП головного мозга, наконец понял, насколько Java удобна :D До этого-то я знаком был с ней аж с ~1997-го, но вызывала где-то недоумение.

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

Юмор хорош, но у структур в С нет наследованиния.

Чтобы понять, зачем нужно наследование, нужно уже знать, что такое объекты и зачем нужны они.

Внутреннее прдставление не надо путать с философией.

Это были годы, когда внутреннее представление и философия шли рука об руку. И смайлик потому тут к месту :)

Это сейчас можно программировать, не представляя, что творится внутри машины. Тогда — даже Бейсик требовал знания о внутренних представлениях.

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

— Когда я проникся утверждением Андрея Черезова «за то время, что я пишу новый механизм, который позволит оптимизировать продукт, ускоряя его на 10..15% выйдет новый процессор Intel, который ускорит систему вдвое без всяких усилий с моей стороны». Что-то в районе 1998-го.

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

Да и само утверждение ущербно, ибо интел-то новый проц выпустит, но не будет его нахаляву менять владельцам старых. Появятся новые классы устройств, куда ставятся далеко не топовые ЦП, а потребность запускать данное ПО может возникнуть. Да и конкурренты могут взяться оптимизировать то, на что автор положил, и уйти вперед.

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

Для троллинга на ЛОРе, конечно :)

Если я начинаю свои проекты, то использую чистый С. По возможности :) К сожалению, есть проблема в GUI фреймворках, без которых сейчас никак, и приходится переходить на C++, даже если проект был зачат на C.

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

И то чувство полного непонимания, зачем всё это вообще нужно. А потом оп! и вдруг всё понятно.

Да, когда встречаешься с проектами, где оно действительно нужно. А то после просмотров примеров использования ООП из учебного пособия у меня тоже такой вопрос возник.

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

Чтобы понять, зачем нужно наследование, нужно уже знать, что такое объекты и зачем нужны они.

Просветите убогих, или не считаете нужным делать это ?

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

Это очевидно, не очевидны методы оптимизации.

Это уже частности. Вопрос же более общий.

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

Когда я понял, что множественное наследование не нужно (2007).

У меня что-то наоборот вышло. Мне одиночное наследование представляется чем-то бесполезным. Для того чтобы реализацию не копипастить нужна композиция а не наследование скорее.

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

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

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

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

И причём здесь то, что рост мощности одного ядра прекратился?

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

а где я казал что «прекратится»?

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

Да. Уже несколько лет, как оно вполне очевидно, что экстенсивный путь развития завершается.

Не завершается а включается новая передача. Экстенсивно теперь будет не частота а количество ядер. Конечно поначалу многие несмогут - но только поначалу. Потом устаканятся единые интерфейсы к параллельному программированию компутеров общего назначения - и вот он, экстенсивный путь никогда не прерывался.

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

Экстенсивное развитие сейчас тоже есть, но в сторону параллелизма.

Такое развитие уже требует переписывания и оптимизации имеющегося софта. То есть ни разу не экстенсивное на нынешнем этапе :)

А ускорения работы одного ядра не происходит уже пару лет, если верить интеловцам.

Больше. Со времён P4 прибавки скорости одного ядра практически нет.

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

Со времён P4 прибавки скорости одного ядра практически нет

4.2. Эффективность на мегагерц у современных интелов раза в 3-4 (это даже не считая тех случаев, когда компиляция под новые инструкции даёт ускорение в несколько раз) больше, чем у последних P4, при том, что топовые интелы по частоте уже приближаются к ним.

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

Эффективность на мегагерц у современных интелов раза в 3-4 (это даже не считая тех случаев, когда компиляция под новые инструкции даёт ускорение в несколько раз) больше, чем у последних P4

Да ладно. Что, они до 6..8 инструкций за такт выполняют?

А всякие SIMD — это уже снова вопрос оптимизации и неэкстенсивный путь :) Целочисленка же на том же уровне уже довольно давно. ИМХО.

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

Со времён P4 прибавки скорости одного ядра практически нет.

Смотря на каких задачах. Тактовая частота перестала расти, но как минимум увеличивались кеши (латентность памяти, как правило, куда сильнее влияет на производительность, чем скорость ALU) и оптимизировались конвейеры. А SIMD-инструкции особо считать считать не нужно, поначалу их делали только для того, чтобы пиковую производительность побольше нарисовать в бумажке.

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

Что, они до 6..8 инструкций за такт выполняют?

Не исключаю. Просто мой небольшой набор тестов показывает, что Celeron 420 (Core) 1.6GHz во всех тестах на 10-30% быстрее Celeron D 345 (Prescott-256) 3.06GHz. При этом в однопотоке сам 420 проигрывает почти в два раза E3300, который только в полтора раза гигагерцовее. E3300 с i3 в однопотоке я не сранивал, но в многопотоке i3 опять намного быстрее на гигагерц. Ах, да - тестировалось всё на Debian i386, т.е. никаких тут новых инструкций.

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

Мне, собственно, было не понятно не зачем нужны объекты, а что это вообще такое.

queen3 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.