?

Log in

No account? Create an account
 
 
28 September 2010 @ 09:35 pm
О профессии (вернее 2-х профессиях) программиста  
Нет такой специальности "программист". А если и есть, то не одна а две.

На самом деле эта заметка является запоздалым ответом nepejvoda_n_n - на его статью, адресованную
победителям олимпиад по программированию, которую я раскритиковал, но недостаточно
детально.

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

На самом деле подобные профессии могут различаться по трем признакам:
1. Что дано - постановка задачи.
2. Что требуется получить в качестве результата.
3. Как выполняется работа (метод, инструменты).

1 и 3 на самом деле не слишком заметны со стороны (1 вообще может быть хорошо скрыто, 3 -
трудно определимо по крайней мере, пока работа далека еще от завершения). Поэтому мы, наблюдая
со стороны обычно судим о работе и профессии по 2. Если, скажем, видим человека с лопатой -
это землекоп (что часто недалеко от истины). Если со стетоскопом - врач. И.т.д.

Для меня ярким было детское впечетление - я еще учился в школе и уже увлекся программированием.
А программы писали тогда на "бланках" - напечатанных разлинованных листых бумаги, похожих на бухгалтерские
учетные или денежные ведомости - которые использовальсь повсюду в то, еще в основном, докомпьютерное
время. И вот - я еду в метро и пишу какую-то программу (или "кодирую" - то есть делаю то, что сейчас
задача компайлеров, то-есть заполняю столбцы числами в восьмеричной системе. И соседние старушки
обсуждают: какой прилежный ученик, да еще так увлеченный своей бухгалтерией...

Сейчас, когда инструментом для писания программ стали сами компьютеры стало еще запутаннее (со стороны) -
так много разных совершенно деятельностей состоит в сидении рядом с компьютером и нажиманием на
клавиши. И без рассмотрения 1 и 3 не обойтись. В том числе, даже, если работа состоит в создании програм
на каком-нибуть алгоритмическом языке, это могут быть две разные работы, в зависимости от цели/результата.

Еще один пример из другой области. Представим себе деятельность состоящую в строительстве, скажем, мостов.
Вроде одна профессия - ан нет! По крайней мере две:

1. Военный (кажется это называется сапер, хотя я не уверен) - специалист по переправам. Его результат - обеспечить
переход войск через реку.
2. Инженер по стоительству мостов. Его задача - построить удобный и красивый мост, который будет долго служить.
И надежный. И дешевый. Часто - существенно, чтобы проект можно было и использовать для многих будущих
мостов.

Цели - в значительной степени разные. И методы разные, хотя может оказаться, что лопата (это же упрощенный пример)
и там и там уместна.

Вот я и подошел к программированию - здесь профессии тоже две:
1 - Использование компьтеров (включающее создание програм) для решения задач. Скажем, найти 100000....-ю цифру
десятичного разложения числа пи. Или посчитать какой-нибудь интеграл (последним я зарабатывал 52 рубля 50 копеек
в месяц во время учебы в пединституте - считал интегралы для физиков из того-же института занимающихся
какими-то исследованиями).
2 - Создание программного обеспечения для массового использования. Например компайлера, операционной системы или
библиотеки стандартных (так это в те времена называли) программ.

1 - Исследователь, использующий компьютеры и пишущий программы. До какой-то степени в современном мире масса
прикладных специалистов попадает в эту группу.
2 - Инженер-программист создающий прграммное обеспечение (software).

Абсолютно четкой границы между 1 и 2 иногда нет. Но крайние случаи (то есть наиболее трудные, продвинутые) сильно отличаются.

№1 - в пределе - решение очень трудных задач из какой-то области. Компьютер и программа - только подсобные средства; часто
после завершения они не нужны. Сравнивая с мостами - красота и надежность не нужны - лишь бы полк переправился на другой
берег. Цена строительных материалов также часто не важна - она мала по сравнению с другими затратами.

Идеальный специалист представляется мне как способный математик, натренированный на головоломных задачах, и, конечно,
разбирающийся в проблемной области.

№2 - в пределе - создание программ и подходов к программированию, которые экономны, предназначены для массового применения.
Легко приспасабливаемые для слегка других задач. Легко отлаживаемые и понятные другим. Использующие ограниченные ресурсы, как
при разработке, так и при использовании.

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

На моем опыте люди умеющие хорошо делать и то и другое встречаются не часто (и по моему мнению они представляют особенную
ценность). Большинство программистов тяготеют к №1 - и успех здесь в основном определяется способностями, любопытством и
трудолюбием.

№2 - здесь, скажем, способности типа решения олимпиадных задач не так уж важны. А "инженерное" мастерство обычно требует
обучения и опыта. И с обучением - проблемы, потому что учителя - часто академического тима и либо вообще склоняются к №1,
либо имеют ограниченный опыт.

№1 и №2 - это, ка я себе представляю, ученые и инженеры-конструкторы; подобное разделение, я думаю, существует
и в большинстве других научно-технических областай.

В серьезных проектах нужны и те и другие. Когда созданием software занимаются специалист №1, программы получаются
часто не надежные, не универсальные, дорогие и недолго живущие.

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

И, я бы сказал, подготовка специалистов типа 1 и 2 нужда разная - скажем, так же как классическая подготовка физиков
исследователей и инженеров.

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




 
 
 
Тимофейtimkos on September 29th, 2010 08:09 am (UTC)
Спасибо, очень интересная мысль!
Сам я думал примерно об этом, когда довольно четко осознал себя как программиста "инженерного" склада.
Очевидно, что в более-менее нетривиальном проекте нужны и те, и другие. Вплоть до того, что можно, наверное, применять парное программирование со смешанными парами "ученый" и "инженер".
Думаю, что хорошие менеджеры проектов должны уже применять эту теорию, хотя книжек с изложением этой мысли я не видел.
Misha Furmanmishafurman on September 29th, 2010 09:00 pm (UTC)
Я тоже не видел, хотя идея, конечно, тривиальная.
Надежда Гасановаngasanova on September 29th, 2010 02:09 pm (UTC)
Программисты могут быть конечно прикладник и системщик.
Прикладник может особо не заморачиваться знанием досконально программирования, работает используя языки более высокого уровня.Обычно прикладным программированием занимаются специалисты в какой-то инженерной области. Но есть и универсальные прикладники, которые более углублённо рассматривают само программирование, а в инженерной части могут быть знатоками нескольких направлений.
Системщики, наоборот обычно в своей работе используют языки более низкого уровня, у них более высокий уровень анализа рассматриваемой задачи. Так же более углублённые нужны знания математического аппарата, специального.
А так, что сцществуют два вида программистов в общем подход мне кажется верным.
Misha Furmanmishafurman on September 29th, 2010 02:44 pm (UTC)
Ну от подобных определений на меня пахнуло чем-то ностальгически старым...

Те, кого Вы определяете как программистов - прикладников в современном мире не программисты вообще... Но некоторые из них приходят в софтверную индустрию и становятся прграммистами группы 1. Но при этом плохое знание чего-то или обязательно использование языков высокого уровня доя них совершенно не обязательно.

Системщиками сейчас называют не программистов, а людей "так сказать" сферы обслуживание (IT, administration) - они обычно программирования даже не знают, хотя писать или читать фрагменты кода на разных языках должны уметь.

Группа 2 - это профессиональные создатели программного обеспечения (тогда как 1 - решатели задач) - никакого пристрастия к языкам более низкого уровня у них (вообще говоря) не наблюдается. Да, впрочем, понятие "уровня" относительно...
И уровень может быть самый разный и у тох и у других - и гении и бездарности. О совсем бездарностях, впрочем, говорить не так интересно.

Вся разница во взгляде на постановку задач и - в зависимости от постановки - подхода к методологии, инструментам итд.
Но имеет и компоненту, наверное, близкую к эстетической. Для меня, например (в ипостаси 2) почти невозможно писать програмный код на грязном листке бумаги и плохим карандашом или ручкой :)
Надежда Гасановаngasanova on September 29th, 2010 03:40 pm (UTC)
Ну, во первых, если ночной горшок назвать по новому, например флешвазой, то он всё равно свои функции сохранит.
Давайте говорить на новом языке. Кого я назвала прикладником – это конечно во основном инженеры, изучившие какой-то язык программирования и применяющие его в своей работе. И напрасно Вы говорите, что их не существует, их достаточно много.
В софтверной индустрии работают те же прикладники. Она очень красиво называется.
Но это товарищи, которые разработали тот или иной алгоритм, положенный в основу программного продукта, сертифицировали и запатентовали при возможности (например какой САПР или ещё что-то, типа S1), и теперь они её всё время совершенствуют и продают направо-налево, то-есть обыкновенные программисты- торговцы, ну для современности менеджеры, топ и всякие другие бренды можете повесить. А какого уровня языки они используют, я думаю не низкого, это им ни к чему, колбаситься и изучать сложный язык.
Понятие уровня языка совершенно не относительно, в среде программистов они чётко подразделяются.
Теперь насчёт системщиков. Я подразумевала людей знакомых с теорией управления.
И, во всяком случае хотя бы с машиной Тьюринга и алгоритмами Чёрчя, а не администраторов.
Хорошо, назовём их по современному «профессиональные создатели программного обеспечения». И дело тут не в эстетичности и взглядах на постановку задач, а в системном подходе к теории и автоматизации программирования. То есть у них стоят совершенно другие задачи в этой области.
Misha Furmanmishafurman on September 29th, 2010 08:13 pm (UTC)
Я довольно хорошо знаю все терминологии и не только; первым моим компьютером была М20 - ламповая машино и было это 64 или 65 году...
И теперь вот 45 лет спустя попал в Микрософт... Ничем другим по дороге не занимаясь :)

Взгляды на жизнь, конечно могут быть разные - я излагаю свои:

- Кого Вы назвали прикладниками - не программисты. Сейчас (в отличии от тех давних лет) программированию учат всех - как в наше время, кого счетам, а кого калькулятору. Я не говорю, что таких не существует - они просто теперь не относятся к категории программистов.

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

- Уж поверьте, уровень языка понятие очень относительное - по сравнению с тем, что было 30-40 лет назад.

- Теория управления ничего общего с программированием не имеет.

- Машина Тьюринга и тезис (а не алгоритм) Черча - это из теории алгоритмов - к программированию имеет отношение, но не очень близкое - это раздел математики изучающий алгоритмическую разрешимость и подобные вещи.

Простите за авторитетный тон, но Вы попали по хорошему адресу, чтобы его услышать...:)

Но - если интересно, спрашивайте. В моем журнале я время от времени пишу размышления - воспоминания об истории программирования и моей собственной - эта заметка была и той серии.

Надежда Гасановаngasanova on September 30th, 2010 09:52 am (UTC)
Может действительно инженеры - программисты, это не программисты. Ну некоторый себя считают ими, некоторые нет. На уровне развития общего в СНГ, это не Америка, они относятся к программистам, но это действительно проходит. Согласна полностью.
Вы оставляете для программирования только софтверную индустрию. Но Вы не даете определения этой индустрии. Мне кажется, если на пальцах, это обыкновенные прикладные программы. Ну только решающии большие (глобальные) вопросы . Или это что-то другое? Вот и не могу понять что здесь делать программистам второго класса по Вашему определению.
Уровень языка - это конечно не принципиально. Я сама не программист, но знаю программистов, которые для решения какой-то задачи вынуждены были лезть чуть ли ни в коды, иначе не получалось. Но это уже зависит от класса самого программиста - чем и как он пользуется и для чего.
Вы правы - тезис Чёрча, с пылу жару написала.
То-есть Вы отделили программистов в развитии самого программирования и, может быть его коренной реорганизации, а это может быть не за горами. Вот в этих вопросах и должны быть программисты высокого класса (я назвала их системщиками может быть неправильно, можно как-то по другому), работающии совместно с постановщиками таких вопросов.
Misha Furmanmishafurman on October 1st, 2010 12:39 am (UTC)
Ну, мы залезли в какие-то терминологические дебри.

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

Аналогично, программистом я называю человека, результатом прфессиональной деятельности которого являются программы. Здесь именно они называются инженерами - программистами - software engineers. Инженеры химика или физики токовыми не являются.

Софтверная индустрия - не совсем точно. Например, кроме софтверных компаний я работал в компаниях, делающих:
- радары для подземных исследований.
- телефоны и телефонные комутаторы.
И всюду я писал программы - начего другого я толком не умею.

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

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

Последний абзац тоже не очень-то понимаю. Что не за горами? Я вообще-то работал в СССР примерно с 1966 по 1991 - это было за горами? Высокого или не высокого класса может быть специалист (в нашем случае - инженер или исследователь) любой специальности...

Впрочем, я думаю пора остановиться. Я здесь уже немало написал, что из себы представляет эта провессиия.
Misha Furmanmishafurman on September 29th, 2010 08:18 pm (UTC)
Наверное Вы вспоминали алгоритмы Маркова (вернее, "алгориФмы", как он их называл). Были также машина Поста и рекурсивные функции. А тезис Черча - о том, что все эти теретические определения алгоритмов эквивалентны...
От реального программирования эти теоретические построения прежде всего отличаются тем, что они абсолютно безразличны к ресурсам - если их сравнивать, память компьютера будет бесконечной, и время никого не интересует: важно только, закончится ли программа за конечное время (любое!) или будет бесконечно циклится!
b_n_eb_n_e on October 1st, 2010 06:31 am (UTC)
По моему все проще можно написать
По моему все проще можно написать (не сочтите за обиду - так видится)

1) Одни программируют для приложений
2) Другие программируют чтобы делать инструменты программирования для приложений
3) Третьи программируют чтобы делать инструменты программирования 2-го уровня для изготовления инструментов программирования 1-го уровня

Подмывает писать и про 4-й уровень, но это IMHO уровень близкий к философии и теории программирования

Но я бы выделил теперь в отдельный класс еще и дизайнеров форм
Misha Furmanmishafurman on October 1st, 2010 03:24 pm (UTC)
Re: По моему все проще можно написать
Можно, но, на мой взгляд, не очень плодотворно...

То что я хотел сказать, лтносится совсем не только к программированиюю Есть два типа творческой личности, что-ли (говорю, конечно, о технике и науке имеющей отношение к технике):

Ученый (в широком смысле) - цель которого некоторый результат, часто знание или действие, то есть нечто совершенно динамическое.

Инженер (конструктор) - цель которого инструмент или методика - то есть нечно статическое.
b_n_eb_n_e on October 1st, 2010 03:46 pm (UTC)
У меня ощущение, что различие тут в описании
У меня ощущение, что различие тут в описании
Статика появляется тут IMHO искусственно
Статика в таких случаях часто лишь ответвление (сброс) от динамики

Где-то АСК проводил различие между теоретиками численных методов и практиками
Даже частушку приводил:
"Меня милый не целует
Не садится близко
Я мол чистый математик
Ms же программистка"
Misha Furmanmishafurman on October 1st, 2010 11:05 pm (UTC)
Re: У меня ощущение, что различие тут в описании
Надо сказать, что во времена Кронрода, вернее времена написания "бесед о программировании", где он привел эту частушку в качестве эпиграфа, инженерного программирования почти не было - по крайней мере в СССР.

Различие совсем не в описании:
В одном случае результат (продукт) - программа.
В другом - что угодно другое.
b_n_eb_n_e on October 3rd, 2010 02:06 pm (UTC)
Все равно не понимаю мысль, но проще прекратить
И у ученого и у конструктора одна задача (проблема) обычно не занимает всю жизнь
Но и тот и другой постепенно накапливают себе нечто вроде инструментария
Принципиальная разница в том, что инструментарий конструктора обычно не помогал ученому
Если рассуждать с околофилософскими обобзениями сейчас это не так (результаты работы конструкторов компьютеров могут помогать и ученому)

Что касается программирования то наверное ранее 70-х активного использования как метода почти не было
Помню видел в 72 на ВДНХ все тогдашние советские компы (начиная от Урала), но толком мало что считалось еще

С другой стороны библиотеки программ, которые могли использовать и другие уже существовали и даже поставлялись как стандартные
Да и трансляторы уже были (и ТА1М и ТА2М и АЛЬФА)

А вот насколько все ж различные стили работы ученого и коструктора (чтобы не употреблять единого слова исследователь) надо по разному воспитывать и по разному обучать толком мне неясно

На мой взгляд хороший конструктов в расширенном смысле должен и уметь решать нестандартные задачи и иметь кругозор и заниматься самообразованием
Именно такой стиль и вырабатывался в МИФИ, МВТУ, МФТИб а шло это еще из Питерского Высшего Политехнического (кстати, недавно прочел, что именно Витте приложил руку к его созданию)
Misha Furmanmishafurman on October 3rd, 2010 05:08 pm (UTC)
Re: Все равно не понимаю мысль, но проще прекратить
Ну в общем-то все более или менее так - эти две мета-профессии, конечно, свызаны. Конструктор пользуется результатами ученого и наоборот - иначе и быть не может.
Да - в программировании это было - с фортрана (навегное середина-конец 50-х) - и в СССР - позже, 60-е -Ершов(А.П.) Шура Бура, Лавров, Любимский ... Но работы быди гораздо слабее, что, скажем с ядерными проектами или часто прятавшимися рядом проектами основанными на энтузиазме (скажем, шахматы в Итефе и Энеэуме или узнавание в ИППИ).
А вот насчат обучения инженеров в области программирования - плохо и до сих пор.

Но - я собственно не очень понимаю из Ваших слов, что Вы не понимаете или против чего возражаете?

Основное мое высказывание гробо в том, что существует два типа людей - исследователи и конструкторы, работающие в общих (в значителиной стопени) областях. И подход к работе у них разный, хотя иногда (скажем, в программировании) кажется, что они делают одно и тоже и взаимозаменяемы.

Действительно, программисты конструкоры или элементы конструкторского мастерства бывают нужны в исследовтельских проектах, особенно больших.

И, именно в программировании, часто разница эта не так очевидна снаружи...

b_n_eb_n_e on October 4th, 2010 06:00 am (UTC)
Просто создается впечатление
Просто создается впечатление, что за словами стоит немного "предметного шовинизма"
Одни творят, а другие складыват кубики
В такую позицию можно свести очень многое
Скажем можно сказать, что физики конструируют из открытое математиками ;-))
А доводя до абсурда можно приписать философу высказывание, что все используют его открытия в области философии
На самом деле прикладная работа часто включает в себя кучу вещей вне чистого программирования (притом вопросы изыска и организации и правильного структурирования данных и процедур для комфортной работы и визуализации и дизайна и кучи всего еще часто крайне важны для успеха)
А по сложности это не уступает ряду вопросов системного программирования
Скажем при разработке АЛЬФА идея перейти на русский была на мой взгляд абсолютно бредовой
Столь же безобразой была и отладка в нем и немногим лучше в ТА-1М
Работая немного и на БЭСМ-6 я обратил внимание что большая часть стандартных программ была просто передрана из САСМ алгоритмов
А в ИС-2 возведение в степень было сделано не максимально экономно (помню как переписывал)
АСК вообще к Шура-Бура IMHO относился весьма негативно

Симпатично мне рассуждение Парето о комбинаторном мышлении
Думаю по этой оси делить на творцов-конструкторов не правильно
Но комбинаторности мало - есть еще различие по оси абстрагирование-конкретика
И вот тут могут быть нюансы (не исключено что по линии интраверт-экстраверт)

Но мы тут IMHO ни до чего не договоримся ;-)
Misha Furmanmishafurman on October 4th, 2010 01:32 pm (UTC)
Re: Просто создается впечатление
Мы говорим совершенно о разном и я не могу понять, как сказанное Васи относится к тому, что Высказал я... По тону, кажется звучит как возражение. По содержанию - стараюсь, но связи не вижу...
b_n_eb_n_e on October 4th, 2010 02:58 pm (UTC)
Кажется таки циклимся - пора сворачиваться
Вот цитата из Вашего первого постинга

"И, я бы сказал, подготовка специалистов типа 1 и 2 нужда разная - скажем, так же как классическая подготовка физиков исследователей и инженеров"
==========
Насколько я понимаю в Физтехе и МТИ (перечень наверное расширяется) пытались готовить специалистов применимых и там и там
Да, чистых математиков ФИЗТЕХ не выпускал, но и тут об этом речь не идет

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

На самом же деле есть у меня ощущение, что часто проблема кроется в мотивации

Misha Furmanmishafurman on October 4th, 2010 03:23 pm (UTC)
Re: Кажется таки циклимся - пора сворачиваться
Пытаюсь вникнуть :)

1.
- Про подготовуку физиков в Физтехе мне судить трудно. Только косвенно - один из очень уважаемых профессоров Физтеха был моим довольно близким родственником - и я знаю, насколько о не был инженером...
- Про программирование знаю больше - сам преподавал спецкурс в течении пары лет. Инженерией там и не пахло - в прочем в те времена (70-е) этим не пахло почти нигде. В 60-х роме Брукса и Кронрода-Брудно(at all) даже и источников-то не знаю. Чуть позже появились работы Дикстры, Хоара и еще нескольких. Из првктических описаний сделанных больших проектов - тоже немного - помню сборник Ершова.

Короче - да, готовят и готовили вместе - и, я думаю, это не совсем правильно - именно с этим я и спорю.

2. Конечно, по крайней мере отчасти, в мотивацию. Что именно ты считаешь главным результатом работы и есть мотивация.

Так что опять, как возражения, я Ваши слова принять не могу.
-я не утверждал, что в Физтехе не старались готовить и тех и других. Основное мое утверждение как раз и состоит в том, что это непрасно смешивают и не очень различают.
- я ничего не говорил о несущественности мотивации...

b_n_eb_n_e on October 5th, 2010 05:40 am (UTC)
Кажется мне яснее становится
1) В принципе физтех и ЛФТИ отнюдь не новинка
И даже не начинание Витте в Питере
Проблема в потребности
И в этой связи уместно вспомнить различие Университета и Политехнического института
Наверно уместно анализировать его начиная с противопоставление Сорбонны и Политехнического института
Но в целом это противопоставление не столько по методам, Сколько по предметам и ценностям
И если быть немного марксистом (вернее материалистом), то диктуется это интересами промышленности - ее потребностями
Неспросто и сейчас бизнес платит больше

2) Наверное приходится согласиться, что различие ЕСТЬ
Но я бы искал его в соответствии с Вашим намеком про мотивацию
Разная система ценностей и важности и это разные школы

3) Но если вернуться к АСК то он IMHO именно ориентировался на синтез и рассматривал прикладника как человека способного на высоком профессиональном уровне решать прикладные задачи с учетом их специфики

4) Нелепо было бы отрицать, что школ и профи в 60-е практически не было
Я застал только 70-е и помню безумный учебник Ляшенко (еще по фотокопии), в чем-то напоминающий армейский устав
Думаю просто и машин и людей и сетей коммуникации и форм коммуникации было мало
Нужно было пройти точку сингулярности

Misha Furmanmishafurman on October 5th, 2010 07:28 pm (UTC)
Re: Кажется мне яснее становится
Мне кажется, что Вы мои замечания/рассуждения срараетесь воспринять как некоторую всеобщую картину или теорию, тогда как я, напротив люблю выделять какую-то относительно независимую компоненту...

Интересы промышленности играют, конечно, роль, но я думаю, многое здесь из психологии, возможно, даже врожденное - соотношение удовольствия от разных результатов - или "весомых" артифактов или достижений каких-то целей (бывает еще удовольствие от совершения успешного действия)... [Фрейд тут бы... Впрочем у него, кажется, что-то про такое есть].
Но школы, конечно, могут развивать и то и другое.

Для Кронрода "инженерная" часть программирования - то есть созданее скорее инструментов, чам достижение какой-то окончательной цели, была на втором плане. И его окружение - было в основном из ученых. Помню Адельсон Вельский даже несколько раз уговаривал меня бросить то, чем я занимался... Отчасти играла роль еще и война с другим "кланом" (Шура Бура, Ершов, Лавров и др.).

Було несколько книг - самые яркие - "Программирование в Содержательных обозначениях" Брудно и "Практика программирования" Гутера, Арлазарова и Ускова...

Ляшенко был скорее справочником по М20.

b_n_eb_n_e on October 6th, 2010 04:57 am (UTC)
Да, конечно, любое утверждение
Да, конечно, любое утверждение хочется соотнести с его областью применимости
И потому с одной тема (ось): чистое-прикладное
С другой - интраверт-экстраверт
Мне нереально судить о интересах АСК в разное время
Но собственно программировала IMHO Галя Полетаева уже по заданным алгоритмам
Хотя на моей памяти АСК ходил на отладку на М-222

Обе книжки Брудно (в известной серии, кажется Библиотека Программиста) я дома имел, но практически не читал
У Гутера IMHO самое интересное были "Правила Кронрода"
Конечно, я бы предпочел видеть совсем иные тексты для начинающих
Я два года преподавал пресловутую "информатику" (в тяжелые 92-93 годы) и потому видел, что и как народ воспринимает (хотя и время иное)
Но сейчас вообще многое иное, включая программирование, и легкость напечатать и распространить текст и рисунки и полиграфия... ;-)
Misha Furmanmishafurman on October 6th, 2010 05:14 am (UTC)
Re: Да, конечно, любое утверждение
Попробую еще - не ради того, чтобы возразить, а чтобы уточнить мою мысль :)

- Это не чистое/прикладное. Исследователь вполне может заниматься чем-нибудь прикладным. А инженер - наверное, может строить вавилонскую башню :)

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

Книжки эти две - замечательные, намного предвосхитившие свое время.


b_n_eb_n_e on October 6th, 2010 06:08 am (UTC)
Я пытаюсь найти оси ;-)
Пусть и не абсолютные оси
Скажем абстрактное/конкретное как одна из них

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

У Брудно в книжке есть замечательные места и шутки (в частности про цены мышечной энергии в киловатт-часах), но она лично мне была неудобна как путеводитель при работе (ориентирована на больше на абстракции)
А с АЛГОЛОМ даже в прекрасном для того времени трансляторе ТА1М были свои тараканы
Там был какой-то хитрый фокус кажется с лишней ";" которая проглатывала оператор так что обнаружить это я смог только анализируя сгенерированный транслятором код
Про ТА2м и АЛЬФА даже вспоминать не хочется
Да и вообще переходить после кодов на АЛГОЛ было сложно и неудобно

Собственно я видимо шел из-за всего этого методом проб и ошибок
Вот идею Кронрода с собиралками и маленькими по размеру модулями я прекрасно воспринял - она очень технологична

Но это все субъективно