|
|
  |
Диссертации связанные с чистым программированием. Возможно ли такое? |
|
|
|
Jan 15 2010, 18:12
|

Гуру
     
Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312

|
ПРЕАМБУЛА Задумался тут. Развелось в наше время так называемых программистов (как большинство из них думают), хотя на деле по большей части это "специалисты" недалеко ушедшие от машин - для реализации прикладной , скажем, технической задачи к ним нужно приставить "няньку в теме", которая разжует алгоритм, который надо тупо закодить (на форуме это не раз уже обсуждалось). Естественно, при поиске ошибок начинается муторная работа общения на разных языках "няньки" и "программиста". ИМХО, проще и эффективнее "няньке в теме" научиться программировать, чем "программисту" въехать в тему, т. к. многие из них просто на корню пресекают данный совет и искренне верят, нарекая себя громким словом - ПРОГРАММИСТ. Хотя у меня имеется по этому поводу несколько иное скромное мнение...
Так вот собственно задумчивость моя. Сам не программист, поэтому хочу спросить у сообщества - существуют ли какие-то области программирования, в которых можно задаться НАУЧНОЙ работой именно с точки зрения, например, методов программирования. Или же все основные принципы давно сформулированы, языки созданы и всё это является ИНСТРУМЕНТОМ при решении прикладных задач, который может просто как-то модернизироваться, не имея под собой истинно научных исследований. Или же в данной области есть чем заняться и с точки зрения науки? Просто наблюдаю такую картину, что некоторые "программисты" думают, что занимаются какой-то близкой к научной работой, при всем при этом умея только практически кодить разжеванное "нянькой в теме" алгоритмизированное решение задачи и ни в какую не хотящих хотя бы на качественном уровне вникать в суть задачи, что намного бы повысило эффективность отладки программы.
--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать! Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
|
|
|
|
|
Jan 15 2010, 21:27
|

Профессионал
    
Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955

|
Я думаю, есть и будут диссертабельные темы, связанные с математической обработкой (да и той же цифровой обработкой - ближе к электронике), с нечеткой логикой - непаханное (в нашей стране) поле, с оптимизацией программ и программирования, с системами реального времени, просто с новыми операционками - туча тем, тесно связанных с программированием. На Ваковском сайте можно посмотреть перечень специальностей, требования (программы) кандидатских экзаменов и уточнить и расширить вышеприведенный список.
Сообщение отредактировал V_G - Jan 15 2010, 21:28
|
|
|
|
|
Jan 15 2010, 22:37
|

Гуру
     
Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312

|
Цитата(V_G @ Jan 16 2010, 00:27)  Я думаю, есть и будут диссертабельные темы, связанные с математической обработкой (да и той же цифровой обработкой - ближе к электронике), с нечеткой логикой - непаханное (в нашей стране) поле, с оптимизацией программ и программирования, с системами реального времени, просто с новыми операционками - туча тем, тесно связанных с программированием. Так в этом случае программирование и выступает таки в роли только инструмента, реализующего математические и прочие исследования.
--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать! Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
|
|
|
|
|
Jan 16 2010, 09:53
|

Гуру
     
Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312

|
Цитата(V_G @ Jan 16 2010, 12:17)  Матобработка - да, а оптимизация кодов, СРВ и операционки - чистое программирование. А оптимизация не инженерная работа? Цитата Под программированием я понимаю не только чисто кодерскую работу по заданию и алгоритмам начальника-инженера-технаря. Вот фраза " по алгоритмам технаря" и есть главная проблема "программиста" при написании программ, не связанных с мобилами и проими гаджетами - такой "специалист" никогда не будет ценен, что видно из текучки кадров подобных контор, в которых работают бОльшей частью студенты. Для начала может и неплохо, но чем дальше оставаться на том же месте, тем хуже. Цитата У микрософта кодер - одна из низших должностей. А вот большинство программистов считают наоборот, как бы их не критиковали. Цитата А сверху сидит Блин Гейтс - архитектор, или как он там себя называл. Вот архитектор - весьма научная, диссертабельная (зачастую) область. У этого архитектора, ИМХО, диссертабельности больше в области экономики, по крайней мере сейчас. Цитата И вообще грань между программированием и непрограммированием весьма размыта - см. нечеткую логику и нечеткие множества. Та к вот, собственно, и задумался.
--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать! Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
|
|
|
|
|
Jan 16 2010, 17:10
|

Гуру
     
Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312

|
Цитата(ASN @ Jan 16 2010, 14:11)  Возможно, применение автоматизация выбор алгоритма реализации какой-либо функции (к примеру приёмника фазоманипулированных сигналов) в зависимости от целевой платформы и требований по качеству реализации (помехоустойчивости). Опять таки необходимо комплексное знание инструмента-программирования и соответствющего раздела техники. Цитата(dxp @ Jan 16 2010, 16:26)  Существует два программирования: 1. описание алгоритмов на языках программирования; 2. то, что у буржуев называется Computer Science (точнее, ее часть) - изучение и разработка как ЯП целиком, так и отдельных аспектов ЯП. Второе вполне научно. Первое - нет, как уже сказали выше, это по сути своей ремесло. Так вот собственно то по второму направлению что-то делается или там практически всё сделано (по крайней мере при существующей парадигме)?
--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать! Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
|
|
|
|
|
Jan 16 2010, 21:23
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(EUrry @ Jan 16 2010, 12:53)  А оптимизация не инженерная работа? Никак нет. Это конкретная математика. ИМХО программирование это вообще не наука, а ремесло. А наука, на которой базируется программиирование - дискретная математика (например в ней теория алгоритмов, теория автоматов, графы, кодирование, теория функционального программирования, и т.д.). И вот там тем есть. И любая разработка ЯП, оптимизаторов, и т.д., базируется на теоретических принципах, построенных при помощи дискретной математики. программирование это что - это описание алгоритма при помощи ЯП, и ничего более. А сам алгоритм - голимая дискретная математика.
|
|
|
|
|
Jan 17 2010, 08:10
|

Гуру
     
Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312

|
Цитата(SM @ Jan 17 2010, 00:23)  Никак нет. Это конкретная математика. Мне казалось, что автор в том случае имел в виду именно оптимизацию кода кодером, который хорошо знает принципы и возможности языка и при этом может применить более эффективную реализацию задачи с использованием того, чего не знает новичок. При этом программы специалиста и новичка будут работать с одинаковым результатом на выходе, но с разной эффективностью. Так вот это я и назвал хорошей работой квалифицированного инженера-программиста. А так, нисколько несомневаюсь в том, что Вы пишете ниже. Так вот уже начинает вырисовываться какая-то картина обоснованной ненаучности программирования с точки зрения, даже виртуозного, владения языками программирования. За рамки высококачественной (и то при условии, если программируются прикладные технические задачи и программист хотя бы на качественном уровне владеет сутью этой задачи) инженерной работы это не выходит. Осталось это как-то донести до зазвездившихся "программистов".
Сообщение отредактировал EUrry - Jan 17 2010, 08:25
--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать! Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
|
|
|
|
|
Jan 17 2010, 10:31
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(EUrry @ Jan 17 2010, 11:10)  Осталось это как-то донести до зазвездившихся "программистов". "зазвездившийся программист" может быть на самом деле хорошим специалистом в дискретной математике, сам того не зная. Или зная, но не считая эту сторону вопроса определяющей. И вот если такой программист на самом деле придумает что-то новое в этой области математики - то это вполне научная работа, даже в том случае, если он не знает, что сделал на самом деле. Но большинство таких программистов, думая, что что-то новое делают в науке, на самом деле изобретают там велосипед, давно описанный и доказанный. Т.е. просто делают одну из реализаций чего-то, описанного сто лет назад математически. А вот описав что-то новое математически - да, бесспорно, научная работа, но при этом вовсе не обязательно этот алгоритм (автомат, граф, другую мат. сущность) запрограммировать/закодировать для выполнения на той или иной вычислительной машине. Цитата(EUrry @ Jan 17 2010, 11:10)  Мне казалось, что автор в том случае имел в виду именно оптимизацию кода кодером, Возможно. Я подумал про оптимизацию кода оптимизатором по заданному программистом критерию, и работы по разработке оптимизаторов кода.
|
|
|
|
Guest_@Ark_*
|
Jan 17 2010, 11:19
|
Guests

|
Предлагаю автору топика следующую тему для диссертации: "Разработка "безглючных" приложений под ОС семейства Windows. Теоретические аспекты и методы практической реализации".  IMHO, очень актуальная тема...
|
|
|
|
|
Jan 17 2010, 11:36
|
Профессионал
    
Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960

|
Цитата(EUrry @ Jan 17 2010, 11:10)  Так вот уже начинает вырисовываться какая-то картина обоснованной ненаучности программирования с точки зрения, даже виртуозного, владения языками программирования. За рамки высококачественной (и то при условии, если программируются прикладные технические задачи и программист хотя бы на качественном уровне владеет сутью этой задачи) инженерной работы это не выходит. Так я про то же уже говорил. Токарь может быть виртуозом своего дела и придумывать весьма нетривиальные "приспособы" для работы (которые, кстати могут быть вполне патентуемы но абсолютно недиссертабельны). Диссертабельность (кандидат все-таки либо технических или физико-математических наук в нашем случае) предполагает исследовтельский характер работы. То есть как пример "Исследование алгоритма верификации программ под WIN" может быть темой диссера, а "как писать безглючные программы" - скорее всего нет. Вообще-то на тему диссертабельности лучше всего разговаривать с теми, кто в курсе требований ВАК к диссертациям. Абстрактные рассуждения на эту тему лишины смысла по причине, что степени присуждает ВАК согласно своим требованиям.
|
|
|
|
|
Jan 17 2010, 11:49
|

Гуру
     
Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312

|
Цитата(@Ark @ Jan 17 2010, 14:19)  Предлагаю автору топика следующую тему для диссертации... Я не из этой области. Цитата(vvs157 @ Jan 17 2010, 14:36)  Вообще-то на тему диссертабельности лучше всего разговаривать с теми, кто в курсе требований ВАК к диссертациям. Абстрактные рассуждения на эту тему лишины смысла по причине, что степени присуждает ВАК согласно своим требованиям. Так вот и спрашиваю, может кто в курсе из здешних посетителей, т. к. я всё-таки как раз бОльшей частью как раз таки только абстактно в теме.
--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать! Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
|
|
|
|
Guest_@Ark_*
|
Jan 17 2010, 11:51
|
Guests

|
Цитата То есть как пример "Исследование алгоритма верификации программ под WIN" может быть темой диссера, а "как писать безглючные программы" - скорее всего нет. Почему же? Исследование вопросов надежности работы программ - разве не тема для диссера? Неоднократно сталкивался с утверждениями, что, мол, начиная с некоторого объема кода, надежность работы в 100% уже невозможно обеспечить. Хотелось бы получить теоретическое подтверждение или опровержение...
|
|
|
|
|
Jan 17 2010, 14:59
|

Профессионал
    
Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955

|
Цитата(SM @ Jan 17 2010, 22:04)  Только эта тема, опять же, будет не из области программирования, а чистой воды математика. Для продолжения подобных споров следует дать определение программированию. Те, кто считает, что это просто кодирование, также считают это недиссертабельным ремеслом. Те, кто понимают программирование чуть шире, и видят тут элементы диссертабельности. Я лично склоняюсь ко второй группе, более того, думаю, что программирование можно отнести к одному из разделов математики. Если цель темы - опустить кодеров на землю и приземлить их заоблачные амбиции, то и тут есть рациональное зерно, особенно в нашей области радиоэлектроники. Я думаю, программирующий радиоинженер часто может выдавать на-гора продукты гораздо более качественные, чем связка радиоинженер+программист. Насмотрелся конструкций, где программеры фиксируют скорость компорта на уровне 115200 для передачи 3 байт в час и требований постановщиков задач из программеров по объему памяти девайсов 2-16 МБайт и процессора класса ARM, когда для решения задачи достаточно 2 кБайт и младших процев PIC или AVR.
Сообщение отредактировал V_G - Jan 17 2010, 15:01
|
|
|
|
|
Jan 17 2010, 15:25
|

Гуру
     
Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312

|
Цитата(V_G @ Jan 17 2010, 17:59)  Для продолжения подобных споров следует дать определение программированию. Те, кто считает, что это просто кодирование, также считают это недиссертабельным ремеслом. Те, кто понимают программирование чуть шире, и видят тут элементы диссертабельности. Я лично склоняюсь ко второй группе, более того, думаю, что программирование можно отнести к одному из разделов математики. Хорошо, дайте свое определение программирования и дессертабельность в этой области, исходя из данного определения. Цитата Я думаю, программирующий радиоинженер часто может выдавать на-гора продукты гораздо более качественные, чем связка радиоинженер+программист. О чем и речь была во многих ветках.
--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать! Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
|
|
|
|
|
Jan 17 2010, 15:42
|
.NET developer
  
Группа: Свой
Сообщений: 218
Регистрация: 20-10-07
Из: Новосибирск
Пользователь №: 31 532

|
мое мнение - кодер - не имеет право на диссертабельность... инженер, архитектор, радиотехник, разработчик цифрового приемника - запросто. Но, как человек, который пишет и на ассемблере С55хх и на C.# .NET приложения с БД, я считаю кодеров чисто механическими сотрудниками... сотрудников выше, ага... А кодеры... Лишь единицы кодеров, которые шарят в кодинге на порядок выше меня, могут написать диссер.
P.S. это с точки зрения выпитых 0.5л рома.
Сообщение отредактировал Andron_ - Jan 17 2010, 15:44
|
|
|
|
|
Jan 17 2010, 16:15
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
С вашим подходом философы вообще наверно будут дармоедами. А наука о принятии решений - лженаукой. В программировании есть куча проблем не формализрованных и требующих эмпирических методов познания. Каждый программер по сути ученый. Они решают великую проблему нахождения наилучших абстракций и наиболее эффективных описаний семантических функций. Чего стоят функциональное программирование или экспликативное программирование! Программеры переводят бестолковый язык технарей в упорядоченный набор правил. Это не дается им даром, как это сделать наиболее эффективно является наукой из наук. И на современном этапе одна из тяжелейших проблем прогресса. Потому как рост производительность программеров сильно отстает от роста производительности железа. Что приводит к информационным пузырям как "пузырь доткомов". Тут еще нашел такую инфу, что три четверти программеров вообще ничего не пишут - они системные аналитики. Можно сказать ученые в чистом виде. Цитата(EUrry @ Jan 15 2010, 20:12)  .. Развелось в наше время так называемых программистов (как большинство из них думают) ...
|
|
|
|
|
Jan 17 2010, 16:51
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(V_G @ Jan 17 2010, 17:59)  более того, думаю, что программирование можно отнести к одному из разделов математики. Я с этим согласен, но частично. Теорию программирования не то, что можно отнести к математике, а она де факто и де юре давно есть раздел математики, уже говорил - некая совокупность разделов дискретной математики, а математика, как известно, это вполне диссертабельный раздел. Но ведь диссертации получатся по математике, в частности по дискретной, а не по программированию. А практический аспект программирования - это ремесло, хотите - искусство. Цитата(AlexandrY @ Jan 17 2010, 19:15)  что три четверти программеров вообще ничего не пишут - они системные аналитики. Аналитик (не только системный, а вообще) - это ни в коем случае не программер. За такое сравнение и морду набить могут  Это тот, кто рождает алгоритм в результате анализа задачи. Это, в общем, математик. Так было еще со времен первых ЭВМ, и так оно есть до сих пор. Другое дело, что он может быть по совместительству программер.
|
|
|
|
|
Jan 17 2010, 17:16
|

Гуру
     
Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312

|
Цитата(AlexandrY @ Jan 17 2010, 19:15)  Программеры переводят бестолковый язык технарей в упорядоченный набор правил. Вот и чистый прогер появился!!! Т. е. Вы называете математику бестолковым языком? Ну-ну! А вот с некоторыми программистами, с которыми приходилось работать, как раз наоборот всё было - упорядоченный набор правил приходилось объяснять им (долго и мучительно), а уж они переводили это в код. Оптимальное сравнение здесь - перевод книги с одного языка на другой, причем, качество зависит от опыта и знаний переводчика в переводимой теме. Вы никогда не читали переводы технических текстов переводчиков с гуманитарным образованием? Советую, может многое проясниться.
--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать! Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
|
|
|
|
|
Jan 17 2010, 17:22
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(SM @ Jan 17 2010, 20:13)  Математика - наука, причем точная наука. Она изучает... Как бы своими словами сказать... Количественные взаимоотношения во всех остальных областях науки. Любой последующий постулат в математике базируется на доказанных предыдущих, если они не аксиомы. В искусстве ничего подобного не наблюдается  Математика - не наука. Так мне один (не один) математик говорил. В том то и дело, что базируется на аксиомах. И доказывается все на базе некоторой логики. И теории множеств. В которых имеются парадоксы. Вы в курсе, что доказано, что можно придумать некоторое утверждение, которое нельзя ни доказать, ни опровергнуть? В рамках математики. А Вы говорите - точная наука...
|
|
|
|
|
Jan 17 2010, 17:25
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Аналитик это программер в обязательном порядке, только он может позволить себе не знать синтаксиса языков поскольку их уже забыл. Во времена первых ЭВМ аналитиков не было. Вы очень хотите все привести к математике. Математика здесь не причем. Аналитики не рождают алгоритмы. Они разрабатывают стратегические планы и архитектуры на основе своих эвристических методов. Эти методы результат научных изысканий. Основой для них служит знание методов программирования. Это все равно как нейросети в теории управления. Никто не знает как их правильно строить, но научные исследования вовсю проводятся. Цитата(SM @ Jan 17 2010, 18:51)  Аналитик (не только системный, а вообще) - это ни в коем случае не программер. За такое сравнение и морду набить могут  Это тот, кто рождает алгоритм в результате анализа задачи. Это, в общем, математик. Так было еще со времен первых ЭВМ, и так оно есть до сих пор. Другое дело, что он может быть по совместительству программер.
|
|
|
|
|
Jan 17 2010, 17:36
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Tanya @ Jan 17 2010, 20:22)  Математика - не наука. Так мне один (не один) математик говорил. В том то и дело, что базируется на аксиомах. И доказывается все на базе некоторой логики. И теории множеств. В которых имеются парадоксы. Ну я тоже не сам придумал, что говорю. Это пусть математики и доказывают, наука это или не наука. Пока же ни то, ни это не доказано, можно считать так, как кому нравится  Я же отношусь к тем, кто считает математику наукой, и основой всех основ. Цитата(Tanya @ Jan 17 2010, 20:22)  Вы в курсе, что доказано, что можно придумать некоторое утверждение, которое нельзя ни доказать, ни опровергнуть? В рамках математики. А Вы говорите - точная наука... В курсе, конечно. Не только в рамках математики, а, и как следствие, в рамках всех остальных разделов технических наук, в большинстве из которых все процессы описываются именно математикой. Но это не отменять ее точности  Цитата(AlexandrY @ Jan 17 2010, 20:25)  Во времена первых ЭВМ аналитиков не было. В этом Вы сильно заблуждаетесь. Была такая должность. Этот человек анализировал задачу, разрабатывал алгоритм ее решения и передавал программистам, которые превращали этот алгоритм при помощи программирования в набор входных данных, включая код программы, для ЭВМ. И он (аналитик) совершенно не обязан был знать языков программирования, которых тогда еще особо и не было. Он выше всего этого. Другое дело, что теперь часто эти должности совмещаются, и поэтому такие программисты возомнили научность программирования. А вся научность кончается на анализе задачи и разработке алгоритма ее решения, и это не программирование. Дальше - чисто инженерная работа программиста, ремесло. Это - уже программирование.
|
|
|
|
|
Jan 17 2010, 17:40
|

Гуру
     
Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312

|
Цитата(AlexandrY @ Jan 17 2010, 20:25)  Во времена первых ЭВМ аналитиков не было. Были физики и прочие, кто программировал свои задачи. Цитата Вы очень хотите все привести к математике. Математика здесь не причем. Аналитики не рождают алгоритмы. Они разрабатывают стратегические планы и архитектуры на основе своих эвристических методов. Эти методы результат научных изысканий. Основой для них служит знание методов программирования. Отлично! Вы ушли от математики (отвергнув за ненадобностью), основываетесь на эвристике, в которую входит и так называемый "метод научного тыка", а затем говорите, что нужно знание методов программирования, которые на данный момент, как уже упоминалось, целиком и полностью основаны на математических методах. Давайте-ка разберитесь с такими доводами.
--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать! Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
|
|
|
|
|
Jan 17 2010, 17:56
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(AlexandrY @ Jan 17 2010, 20:47)  Поэтому современный аналитик обязательно программист. Да не обязательно. Математик, не знающий программирование ни на йоту, может выдать такой алгоритм, который был бы достоен не то, что диссертации, а и нобелевской премии, если бы такую давали. А уже зная алгоритм - любой программист его "уложит" на любую архитектуру, обладающую достаточной производительностью. программист не идиот. он может быть виртуоз своего дела, умея уложить тот или иной алгоритм туда, куда он с виду вроде как и не может уложиться. Как и схемотехник может быть виртуозом, реализовав данный алгоритм в устройстве. НО! Разработка алгоритма - это не программирование и не схемотехника. Другое дело, что программист может быть и аналитиком по совместимости, делая и его работу. Но и разрабатывать алгоритм (например сжатия речи или видео, а вообще любой), может человек, совершенно далекий от программирования, зато в совершентсве владеющим мат. моделированием этих процессов.
|
|
|
|
|
Jan 17 2010, 18:03
|

Гуру
     
Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312

|
Цитата(AlexandrY @ Jan 17 2010, 20:47)  А, ну понял вашу логику. Найти идиотов, назвать их программистами. После чего говорить что программисты и есть те идиоты.  Никак нет. Что Вы в крайности кидаетесь? надо же в вопросе как-то разобраться, а уж доказать "программистам" их не совсем компетентность тоже можно. И отнюдь не только можно программистов найти, которые считают себя ВСЕЯ, мало в чем понимая, но и в других областях таких хватает. Просто в свете масштабного появления именно "программистов" и возникает вопрос. Цитата Т.е.аналитики это подмножество программистов Сложный вопрос. По иерархии главенства вроде как не подходит, но и по-другому как-то не очень... Цитата(SM @ Jan 17 2010, 20:56)  Разработка алгоритма - это не программирование. А по-моему всё-таки как раз это и есть программирование задачи, а кодинг - реализация на каком-то языке - заключительный этап программирования (ну, если не считать дебага и еще чего-нибудь). Есть же алгоритмический язык. Но опять же где научность в создании алгоритма? Я вижу только инженерную часть.
--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать! Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
|
|
|
|
|
Jan 17 2010, 18:22
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(EUrry @ Jan 17 2010, 21:03)  а кодинг - реализация на каком-то языке кодинг - это непонятное новомодное словечко, типа клининг, мерчендайзинг, бодибилдинг и т.п., призванное запутать русскоязычную терминологию. Во времена ЕС ЭВМ и БЭСМ было все четко определено, кто делает алгоритмы, а кто их потом программирует. И я не вижу смысла что-то менять в этой системе, вводя какие-то лишние сущности. научность в создании алгоритма - а в процессе его создании применяется научный подход (анализ задачи, выбор пути ее решения, теоретическое решение, и, окончательно, реализация его в виде набора действий), и зачастую разработка алгоритма - это не один год научной работы.
|
|
|
|
|
Jan 17 2010, 18:33
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Если вы хотите познакомиться с проблематикой смежной области то так и скажите, а не наезжайте на программистов как класс! Могу легко привести несколько научных горячих прикладных тем в программировании скажем для микроконтроллеров с которыми лично приходилось сталкивать в недавнее время. Например: Проблема выравнивания износа FLASH памяти во встраиваемых файловых системах. Математики там на самом деле кот наплакал. Никто даже не берется за создание математических моделей. Модели только имитационные. Ну да там для анализа результатов применяют статистику из школьного курса, но не больше. Вся наука в исследовании и нахождении оптимальных структур данным и операций над ними. Проблемы оптимального управления heap-ами. С наибольшим продлением ресурса без смертельной фрагментации. Аналогичный подход к исследованиям что и в предыдущем пункте. Проблемы шедулеров в условиях неопределенности и максимизация пропускной способности системы при большом количестве разных потоков данных из асинхронных процессов, эффективная маршрутизация. Тоже никаких внятных формул математика преподнести не может, потому что хочет исчерпывающих исходных данных. Решается перебором и изобретением новых структур данных с проверкой на моделях. Разработка архитектуры софта для гетерогенных мультипроцессорных систем. И вот с такими проблемами сталкиваются "кодеры" непрерывно. Большинство конечно не берутся их решать, гораздо проще собачиться с технарями. Но кто решает тот реальный ученый. Цитата(EUrry @ Jan 17 2010, 19:40)  Давайте-ка разберитесь с такими доводами.
|
|
|
|
|
Jan 17 2010, 18:39
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(AlexandrY @ Jan 17 2010, 21:33)  Решается перебором и изобретением новых структур данных с проверкой на моделях. Вот это, как раз, первый признак ненаучного подхода. Научный подход изначально предполагает теоретическое обоснование того или иного метода, и без этого таковым являться не может. Хотя, возможно, что если подвести такую теорию, что перебор в данном случае самый эффективный метод, и доказать это, и выработать наиболее оптимальную методику перебора, и доказать, что она оптимальна - и потянет на научную работу.
|
|
|
|
|
Jan 17 2010, 18:43
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Ну это беда ваших понятий о науке а не самой науки. Вы еще скажите что Бога нет, а человек в состоянии познать все. Вот потеха будет. Цитата(SM @ Jan 17 2010, 20:39)  Вот это, как раз, первый признак ненаучного подхода. Научный подход изначально предполагает теоретическое обоснование того или иного метода, и без этого таковым являться не может. Хотя, возможно, что если подвести такую теорию, что перебор в данном случае самый эффективный метод, и доказать это, и выработать наиболее оптимальную методику перебора, и доказать, что она оптимальна - и потянет на научную работу.
|
|
|
|
|
Jan 17 2010, 18:47
|

Гуру
     
Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312

|
To AlexandrY: Ну, вообще то, что Вы привели в качестве примеров - чистой воды математические методы оптимизации. Или же я что-то не понял. Кстати, V_G поговаривал об определениях. Дабы не уйти в офтоп, нужно дать определения всем терминам, на основе которых строить все дальнейшие выводы. Называется - договориться о терминах прежде спора. Так что же такое программирование? Кто даст определение? А быть может узаконенное есть?
--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать! Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
|
|
|
|
|
Jan 17 2010, 21:28
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(AlexandrY @ Jan 17 2010, 23:40)  Мне кажется это чуток отклонение в психике. А можно как нибудь без оскорблений обойтись? Агностицизм касается исключительно Бога, т.е. мне все равно, есть он или нет, докажут что есть - значит есть, докажут обратное - значит нет, недоказуемо - ну и ладно, мне все равно. Это, скорее всего, и есть то самое математически доказанное существующее недоказуемое утверждение. Во всем остальном же доказательная база скорее всего существует, и доказать верность или ошибочность той или иной теории, после того, как подвести ее под серию экспериментов, или наоборот - выработать теорию, и проверить экспериментально - это основа научного движения вперед, и с религиозными взглядами ни на йоту не связано. Цитата(AlexandrY @ Jan 17 2010, 23:40)  А наука на мой взгляд это просто утверждение опыта, его фиксация и не больше. А на взгляд остальных - это подведение теоретических основ, а опыт - не более чем подтверждение правильности (или ошибочности) теоретических выводов. Чтобы было что-то научно, должна быть лаконичная теория. А иначе все это алхимия.
|
|
|
|
|
Jan 18 2010, 00:33
|

Профессионал
    
Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955

|
Цитата(EUrry @ Jan 18 2010, 04:47)  Дабы не уйти в офтоп, нужно дать определения всем терминам, на основе которых строить все дальнейшие выводы. Называется - договориться о терминах прежде спора. Ну, и еще надо дать определение науки и диссертабельности. Тут все почему-то рассуждают о "высокой" науке и диссертабельности на уровне докторской. А реально подразумевается диссертабельность все-таки кандидатская. А она (кандидатская) все же ближе к инженерии, к ремеслу, и кандидатских в области чистого программирования можно наваять тучу. По докторским - да, я сильно сомневаюсь, что у нас в стране есть доктора из этой сферы. А кандидатские часто по уровню чуть выше диплома (что прискорбно вообще-то)
Сообщение отредактировал V_G - Jan 18 2010, 00:33
|
|
|
|
|
Jan 18 2010, 07:50
|

Знающий
   
Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237

|
Цитата(EUrry @ Jan 17 2010, 21:47)  Так что же такое программирование? Программирование - это в первую очередь формализация поставленной задачи, т. е. разложение задачи на множество подзадач, каждая из которых уже имеет решение. Например, задача - измерить площадь произвольной плоской замкнутой геометрической фигуры с заданной точностью. 1. Вписываем целевую фигуру в квадрат с уже известной площадью. 2. Заполняем этот квадрат случайными точками, считая отдельно точки попавшие внутрь целевой фигуры. 3. Отношение кол-ва точек внутри фигуры к общему количеству будет стремиться к отношению искомой площади к площади квадрата с увеличением общего количества точек. Человек, придумавший такой алгоритм был, безусловно, программистом.
--------------------
Сделано в Китае. Упаковано в России.
|
|
|
|
|
Jan 18 2010, 15:14
|

Гуру
     
Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312

|
Цитата(SM @ Jan 18 2010, 00:28)  А на взгляд остальных - это подведение теоретических основ, а опыт - не более чем подтверждение правильности (или ошибочности) теоретических выводов. Чтобы было что-то научно, должна быть лаконичная теория. А иначе все это алхимия. +1 Безусловно научная теория должна предсказывать какие-то новые эффекты, которые проверяются на практике. Хотя и обратный процесс тоже был и есть, когда выводу новой теории подсказывают практические опыты (например, при отклонении результатов опыта от принятой ранее теории или выявления нового эффекта, не объяснимого теорией). На стадии зарождения науки опыт превалировал над теорией, но в настоящее время всё-таки превалирует теория над опытом. Наглядный пример - таблица Менделеева - создана, исходя не из какой-то выстроенной теории, а частично случайно из обобщения опытных знаний. Но при этом это открытие помогло предсказать многие другие. Квантовая теория еще более формализована и предсказала множество новых частиц, которые были экспериментально обнаружены только через десятки лет (а бозон Хиггса до сих пор ловят под Женевой). Хотя и в ней есть изъяны, физическая теория, как известно, находится в кризисе противоречий. Цитата(V_G @ Jan 18 2010, 03:33)  А кандидатские часто по уровню чуть выше диплома (что прискорбно вообще-то) Даже очень прискорбно, и боюсь будет хуже с такими тенденциями. Цитата(Demeny @ Jan 18 2010, 10:50)  Программирование - это в первую очередь формализация поставленной задачи, т. е. разложение задачи на множество подзадач, каждая из которых уже имеет решение. Ну, вообще, это не программирование, а принцип решения любой задачи, хоть аналитически, хоть численно, хоть еще как (ну, кроме эвристики, конечно, с ее методом научного тыка - там всё просто  ).
--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать! Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
|
|
|
|
|
Jan 18 2010, 17:45
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(EUrry @ Jan 18 2010, 18:14)  Хотя и обратный процесс тоже был и есть, когда выводу новой теории подсказывают практические опыты Я собственно хотел сказать, что научный подход - это тандем из теории и практики. А что первично - не важно. Бывает, что и теория, которую при текущем уровне развития вообще непонятно, как и зачем к практике приложить (потом когда нибудь приложат), а бывает и наоборот - то, что считалось раньше необъяснимым, но стабильным эффектом, получает наконец-то теоретическое объяснение. Главная суть - что теория это неотъемлемая часть научного подхода.
|
|
|
|
|
Jan 18 2010, 19:45
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Как бывает и дураку понятно. Я бы сказал что все науки идут от психологии и к ней сводятся. Самое глубинное знаниее в том почему " так бывает" Вот агностики на него даже боятся отвечать. А почему бояться? -Слабая психика! Что математика точная наука - я просто под столом. Прикольно слышать математические обоснования допустим алгоритмов оптимального поиска. Типа может сойдется, а может не сойдется. А вот этот вот типа алгоритм лучше сходится, а вообще смотрите сами и вовремя нажмите кнопочку стоп если перестанет сходится. Т.е. математика полагается на психику. Или вот скажем стойкость криптоалгоритмов. Серьезные математики сидят и гадают, ну насколько же сложно ломануть их криптозащиту. Может года хватит, а может 10 лет. Все зависит от вероятности появления некого гения. Опять на психику свалили проблему. Дальше больше. Откуда вообще все эти математические разложения? Только для того чтобы разгрузить психику. Но хреново разгрузили. Пришлось придумать текстовые языки программирования. Ведь есть же проги типа Mathcad работающие в математической нотации, а фигу на этом языке никто не программирует. Теперь вот отыскался технарь претендующий на знание математики (не доказанное впрочем), и отказывающий в этом знании программистам. Типа это им даже не надо. Фишка в том что программисты вполне себе могут многие проблемы перевести в численные модели и иммитационные, а не программисты либо юзают уже сделанные им программистами численные модели либо вынуждены ковырять аналитические неадекватные модели. Все в равной степени применяют математичексую нотацию , но программисты еще могут применить и текстовую и графическую. В этом у них преимущество перед непрограммистами. Цитата(SM @ Jan 18 2010, 19:45)  ... а бывает и наоборот ...
|
|
|
|
|
Jan 19 2010, 08:40
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(AlexandrY @ Jan 18 2010, 22:45)  и отказывающий в этом знании программистам. Типа это им даже не надо. Не надо передергивать. Я не отказывал им в этом знании. Я изначально говорил, и до сих пор говорю, что программист имеет право по совместительству быть и аналитиком, и математиком, и хоть кем еще, и эти знание ему полезны. Как и токарь может быть по совместительству хорошим специалистом в металловедении, но при этом диссертации по токарному делу не может быть априори, а по металловедению - сколько угодно. Цитата(AlexandrY @ Jan 18 2010, 22:45)  Самое глубинное знаниее в том почему "так бывает" Вот агностики на него даже боятся отвечать. Вас кто-то очень жестоко обманул и дезинформировал. Единственное и основное у нас - "что доказано, то либо не существует, либо не существует, смотря что именно доказано. Что не доказано - то может существует, а может и нет, и слепо верить во что-то из двух крайностей недопустимо". А ответ на вопрос "почему так бывает" - стремление объяснить явление, и доказать, что это объяснение верно, это святое - это вообще основная цель.
|
|
|
|
|
Jan 21 2010, 13:16
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434

|
Цитата(@Ark @ Jan 17 2010, 14:51)  Почему же? Исследование вопросов надежности работы программ - разве не тема для диссера? Первый год учусь в аспирантуре. Начинаю писать диссертацию на тему "Исследование методов тестирования и отладки ПО встраиваемых систем реального времени". В этом направлении есть где развернуться, и на докторскую хватит. Цитата(EUrry @ Jan 17 2010, 21:03)  А по-моему всё-таки как раз это и есть программирование задачи, а кодинг - реализация на каком-то языке - заключительный этап программирования (ну, если не считать дебага и еще чего-нибудь). Есть же алгоритмический язык. Но опять же где научность в создании алгоритма? Я вижу только инженерную часть. вот как раз таки "дебаг" и "еще чего нибудь" и есть самая трудоемкая и длительная часть "кодинга". Разработать алгоритм - непросто, написать ПО- пара пустяков. Сделать же написанное ПО корректно работающим - далеко нетривиальная задача. А добиться устойчивой работы в любых условиях в которые только может попасть плод трудов - недостижимый идеал. Редкий современный программист в своем деле использует какие-либо другие инструменты кроме пошагового выполнения программы и очень долгого и очень-очень пристального взгляда на исходный код. Вот вам и не паханное поле для научной деятельности. Я уже больше года занимаюсь поиском трудов на эту тему, все что есть - написано американцами, а переводить и внедрять в учебный процесс никто не торопится. Неудивительно почему у нас отношение к программистам как к токарям. Но ведь токарю не приходится тратить 95% рабочего времени на пошаговое усовершенствование и вылизывание уже выточенной детали.
|
|
|
|
|
Jan 21 2010, 14:15
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434

|
Цитата Нау́ка — особый вид человеческой познавательной деятельности, направленный на выработку объективных, системно организованных и обоснованных знаний об окружающем мире. Основой этой деятельности является сбор фактов, их систематизация, критический анализ и на этой базе синтез новых знаний или обобщений, которые не только описывают наблюдаемые природные или общественные явления, но и позволяют построить причинно-следственные связи, и как следствие — прогнозировать. Взято с википедии, т.к. под рукой нет ни книжек ни конспектов по философии. Вот я сейчас и занимаюсь сбором фактов о существующих методах (инструментах) отладки и тестирования, их систематизацией, критическим анализом. Когда буду готов приступлю к синтезу новых методов или просто усовершенствованием старых. Создание абсолютно новых теорий или открытие принципиально новых направлений - удел докторских диссертаций. А в этом направлении открыто совсем немного, ибо программирование наука (не побоюсь этого слова) совсем молодая.
Сообщение отредактировал Ko4egap - Jan 21 2010, 14:20
|
|
|
|
|
Jan 21 2010, 16:02
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Ну так обобщение будет? Цитата(Ko4egap @ Jan 21 2010, 16:15)  ... Когда буду готов приступлю к синтезу новых методов или просто усовершенствованием старых. ...А в этом направлении открыто совсем немного, ибо программирование наука (не побоюсь этого слова) совсем молодая... Можете хоть одну теорию в программировании назвать? Люди ж просят. Как можно обобщать если нет теориии и нет доказательств? Что доказательствами будет? Ваш личный опыт по поиску багов тем или иным способом? Агностики вас поднимут на смех. Ваш пост совсем не в поддержку программистов.
|
|
|
|
|
Jan 21 2010, 19:52
|

Гуру
     
Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312

|
Цитата(Ko4egap @ Jan 21 2010, 16:16)  Неудивительно почему у нас отношение к программистам как к токарям. Но ведь токарю не приходится тратить 95% рабочего времени на пошаговое усовершенствование и вылизывание уже выточенной детали. А причем сравнение с токарем? Программист - это инженер, но большинство всё-таки токари, т. к. настойчиво требуют от и до описать, что нужно сделать, а дебаг сравним с тем, что дорабатывают напильником и то под пристальным вниманием и руководством к действию мастера. Цитата вот как раз таки "дебаг" и "еще чего нибудь" и есть самая трудоемкая и длительная часть "кодинга". Это и есть самая-самая инженерная работа. Цитата Начинаю писать диссертацию на тему "Исследование методов тестирования и отладки ПО встраиваемых систем реального времени" Ну вот уже что-то, хотя не понятно, как это относится к программированию, т. к. его определение так никто и не дал.
--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать! Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
|
|
|
|
|
Jan 21 2010, 20:25
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(EUrry @ Jan 21 2010, 22:52)  Это и есть самая-самая инженерная работа. Это смотря отладка чего. Если при разработке алгоритма была допущена ошибка, то это ошибка не программирования, а разработки алгоритма (не следует забывать, что программа - это лишь один из вариантов реализации алгоритма, и в общем случае разрабатывает алгоритм никак не программист. Другой ввриант например реализация его схемотехнически), то один вопрос. А если ошибка была в процессе программирования, т.е. программа работает не так, как положено по алгоритму - второй вопрос... IMHO. Кстати - схемотехника - брат программирования, только в части разработки аппаратной части, а не программной. И по схемотехнике что-то диссертаций не наблюдается. Хотя там тот же дебаг, называемый наладкой, и вообще очень много общего.
|
|
|
|
|
Jan 21 2010, 20:39
|

Гуру
     
Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312

|
Цитата(SM @ Jan 21 2010, 23:25)  Это смотря отладка чего. Если при разработке алгоритма была допущена ошибка, то это ошибка не программирования, а разработки алгоритма (не следует забывать, что программа - это лишь один из вариантов реализации алгоритма, и в общем случае разрабатывает алгоритм никак не программист Ну, наверное, вы правы, но сути это не меняет - всё-равно работа инженерно-наладческая.
--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать! Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
|
|
|
|
|
Jan 22 2010, 07:43
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434

|
Цитата(AlexandrY @ Jan 21 2010, 19:02)  Можете хоть одну теорию в программировании назвать? Люди ж просят. Как можно обобщать если нет теориии и нет доказательств? Что доказательствами будет? Ваш личный опыт по поиску багов тем или иным способом? Агностики вас поднимут на смех. Да взять хотябы огромный раздел численных методов. Насчет доказательств, я пожалуй не буду раскрывать свои мысли  Цитата(EUrry @ Jan 21 2010, 22:52)  Это и есть самая-самая инженерная работа. Абсолютно согласен. Само по себе программирование работа инженерная. В том то вся и разница между инженером и научным деятелем, что инженер пользуется плодами научных трудов. Процесс программирования - труд инженерный, а разработка каких либо методов-инструментов - уже научный. Цитата(EUrry @ Jan 21 2010, 22:52)  Ну вот уже что-то, хотя не понятно, как это относится к программированию, т. к. его определение так никто и не дал. Самым прямым образом относится. Отладка - посути, и есть программирование, т.к. написание кода и составление алгоритмов занимает ничтожно малую часть разработки по сравнению с отладкой и тестированием. Цитата(SM @ Jan 21 2010, 23:25)  Кстати - схемотехника - брат программирования, только в части разработки аппаратной части, а не программной. И по схемотехнике что-то диссертаций не наблюдается. Хотя там тот же дебаг, называемый наладкой, и вообще очень много общего. Опять же жалко что со мной сейчас нет литературы, которую я мог бы процитировать. В одной книжке годов 70х автор доходчиво объясняет, почему работа программиста значительно труднее чем схемотехника. Если кому-то интересно вечером могу опубликовать цитату (если она окажется достаточно короткой) и предъявить имя автора и название книги. Цитата(SM @ Jan 21 2010, 23:58)  Я к тому - если проблема в алгоритме - то это может быть проблема в корне, а не просто ошибка - т.е. в неверной теоретической его подоплеке. И куча научной работы. Но я хочу уточнить - что этот случай к программированию-то уже не относится. А так - согласен - вся отладка именно в программировании, при априори правильном алгоритме, это чисто инженерный труд. Работа программиста это и составление алгоритмов, и моделирование их, и описание их на ЯП, и подробнейшая отладка и тестирование. В редких случаях для разработки отдельных алгоритмов привлекается помощь со стороны. И в еще более редких случаях фирма-разработчик имеет специальный отдел верификаторов.
Сообщение отредактировал Ko4egap - Jan 22 2010, 08:08
|
|
|
|
|
Jan 22 2010, 08:25
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Ko4egap @ Jan 22 2010, 10:43)  Опять же жалко что со мной сейчас нет литературы, которую я мог бы процитировать. В одной книжке годов 70х автор доходчиво объясняет, почему работа программиста значительно труднее чем схемотехника. Если кому-то интересно вечером могу опубликовать цитату (если она окажется достаточно короткой) и предъявить имя автора и название книги. В 70-е года схемотехника не была на том уровне, где сейчас. Сейчас львиная доля схемотехники делается путем описания схем языками описания аппаратуры с последующим синтезом, что ни на йоту не проще программирования. Цитата(Ko4egap @ Jan 22 2010, 10:43)  Работа программиста это и составление алгоритмов, и моделирование их, и описание их на ЯП, и подробнейшая отладка и тестирование. Это не работа программиста. Это значит, что программист совмещает кроме собственно программиста, еще и аналитика, математика, верификатора, а может еще и электронщика и физика. Формально работа программиста - только описание алгоритма при помощи ЯП и отладка до полного соответствия одного другому.
|
|
|
|
|
Jan 22 2010, 09:51
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Нуу.., эт прокол. Цитата(SM @ Jan 22 2010, 10:25)  Сейчас львиная доля схемотехники делается путем описания схем языками описания аппаратуры с последующим синтезом, что ни на йоту не проще программирования. VHDL, Verilog, System C и т.д. есть языки программирования. И это уже не схемотехника, а чистое программирование. Ход мыслей вообще интересен. Программирование захватывает все большую часть электроники. Некогда области бывшие схемотехникой становятся программированием. Цитата(SM @ Jan 22 2010, 10:25)  Это не работа программиста. Это значит, что программист совмещает кроме собственно программиста, еще и аналитика, математика, верификатора, а может еще и электронщика и физика. Работа же программиста - только описание алгоритма при помощи ЯП. Это работа именно программиста. Ничего программист не совмещает это все его прямые обязанности. Вернее это обязанности эмбеддера-программиста. На моем опыте при принятии на работу программиста встраиваемых систем от него всегда требуется аналитика, численные методы, навыки отладки и схемотехника. Это все и проходят программисты в универе. Для программиста PC и систем позволительно и не знать схемотехнику потому что ему надо бороться с гигантскими API и абстракциями и патернами ООП. Я бы даже то что тут называют математикой отнес бы к программированию. Ну никогда бы так называемый "технарь-математик" не придумал бы алгоритм CORDIC. Просто потому что технари совершенно не в курсе ограничений вычислительных платформ и не могут их учесть. Более того технари не в состоянии предоставить алгоритм в истинном понимании этого слова. Алгоритмы может составить только программист знающий как можно представить данные (типы, структуры) и что с ними можно сделать (набор либ, API, и т.д.) и как обеспечить отлаживаемость и надежность. Программисты вынуждены вежливо слушать "технарей" чтобы потом все сделать по другому, это подтвердит любой программист. Теже DSP алгоритмы. С плавающей точкой на ура, любой дядя Вася из учебника Скляра может тыкать формулами. А на деле программист должен кондиционировать сигналы, привести к тем типам данных которые есть, обеспечить быстродействие кода который бы еще и не конфликтовал с другим кодом на платформе, а еще подумать и о переносимости, а еще побороться со средой разработки и т.д.
|
|
|
|
|
Jan 22 2010, 10:13
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(AlexandrY @ Jan 22 2010, 12:51)  VHDL, Verilog, System C и т.д. есть языки программирования. НИКОГДА! Это языки описания аппаратуры (hardware description language), ни коим образом языками программирования не являются. Цитата(AlexandrY @ Jan 22 2010, 12:51)  Ну никогда бы так называемый "технарь-математик" не придумал бы алгоритм CORDIC. Просто потому что технари совершенно не в курсе ограничений вычислительных платформ и не могут их учесть. Круто... По-вашему Бриггс был программистом в 1624-ом году (когда была первая публикация этого метода, тогда еще не носившего название CORDIC) ? Да и обобщение метода Бриггса на комплексные числа, сделанное Волдером, тоже не является работой программиста. Можно взять и другой пример "алгоритм" G.726 - его придумали именно "технари-математики" для реализации в железе. Для программирования он конкретно неудобен ни на одной из платформ. Так что Ваш тезис о том, что алгоритм всегда разрабатывается программистами и только ими некорректен. Он может ими разрабатываться, но вовсе не обязан. Или например RSA - эта тройка все закоренелые математики. А не программисты. Как ни крути - программист может быть и математиком, и аналитиком, но не обязан, т.е. может им и не быть. Это лишь вопрос его развития и квалификации. Но не надо мешать в кучу мух и котлет, исследование в области математики с программированием получившегося в результате исследования алгоритма. Цитата(AlexandrY @ Jan 22 2010, 12:51)  Теже DSP алгоритмы. С плавающей точкой на ура, любой дядя Вася из учебника Скляра может тыкать формулами. А на деле программист должен кондиционировать сигналы, привести к тем типам данных которые есть, обеспечить быстродействие кода который бы еще и не Это должен сделать не программист, а математик, которому программист должен дать расклад по ограничениям в точности и быстродействии. Который должен построить матмодель системы исходя из этих данных и проанализировать ее на соответвие всем требованиям, после чего отдать матмодель программисту в виде алгоритма. Другое дело, что есть программисты, способные сделать эту работу сами, но эта работа - не программирование, и в круг непосредственных обязанностей именно программиста не входит.
|
|
|
|
|
Jan 22 2010, 11:12
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434

|
Аха, пошел программист к математику, и сказал, разработай ка мне алгоритм, скажем, фильтра Батерворта для чисел с фиксированной запятой в формате 1:23 и чтобы выполнялся не дольше 0,5 мкс на частоте 4 МГц на микроконтроллере ATtiny. Потом за пять минут написал программу, и отдал верификатору на проверку. Внимание вопрос, зачем нужен такой "программист"? И посмотрите самый первый пост, об этом автор темы и повествует.
А как насчет алгоритмов функционирования? Например алгоритм записи на флеш карту, или прорисовки на дисплей (математики уйма). Их тоже математики должны разрабатывать? Да они понятия не имеют (а с какой стати должны?) о том как устроена FAT32 или что делать с дисплеем чтобы тот показал прямоугольник в нужной позиции.
Между прочим язык Си тоже язык описания алгоритмов функционирования.
Сообщение отредактировал Ko4egap - Jan 22 2010, 11:22
|
|
|
|
|
Jan 22 2010, 11:56
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
Цитата(Ko4egap @ Jan 22 2010, 14:12)  Аха, пошел программист к математику, и сказал, разработай ка мне алгоритм, скажем, фильтра Батерворта для чисел с фиксированной запятой в формате 1:23 и чтобы выполнялся не дольше 0,5 мкс на частоте 4 МГц на микроконтроллере ATtiny. Вероятно, я соглашусь с тем, что и области деятельности и определения несколько размыты и не совсем ясны, не то чтобы определены. Но давайте спросим себя, а кто был этот самый Баттеворт или Нейман или Хаусхолдер, или Воеводин или Тихонов. Конечно, Баттерворт не думал о ATtiny, но их тогда и не было, было что-то другое. А вот о фиксированной точке он точно думал и ещё куча численных математиков. И много ли "чистых" программистов работает, например, в задачах CFD, квантовой химии или ещё какого численного моделирования? :) (P.S. Прятная дискуссия, читаю с удовольствием, особенно SM)
Сообщение отредактировал AndrewN - Jan 22 2010, 12:07
|
|
|
|
|
Jan 22 2010, 12:27
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434

|
Цитата(AndrewN @ Jan 22 2010, 14:56)  Вероятно, я соглашусь с тем, что и области деятальности и определения несколько размыты и не совсем ясны, не то чтобы определены. Но давайте спросим себя, а кто был этот самый Баттеворт или Нейман или Хаусхолдер, или Воеводин или Тихонов. Все они были ученые, которые создали методы/инструменты для программистов. В то же время без мало-мальского представления той математики, программист не сможет реализовать тот же фильтр. Так же как без представления о программировании тот же Баттерворт никогда не создаст свой фильтр. Как-то так
|
|
|
|
|
Jan 22 2010, 13:00
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Да вот после таких ребят Брюс Шнаейр и был вынужден выпустить "Практическая криптография" и еще кучу книг по криптографическим протоколам. Цитата(SM @ Jan 22 2010, 12:13)  ... Или например RSA - эта тройка все закоренелые математики. А не программисты... Поскольку эта братия сумела создать только малопригодную схему. А вся сила то в реализации! Сам RSA алгоритмик от силы пару килобайт занимает. А реализация IPSec с SSL может занять под мегабайт. Чтож там программисты то намутили а? Ну и я уж молчу что у Дональда Кнута книги содержат слово "программирование", а не скажем "математика для кодеров" http://ru.wikipedia.org/wiki/%D0%9A%D0%BD%...%B2%D0%B8%D0%BDТо что Кнут ученый наверно никто отрицать не станет. И он ученый в области программирования, "разработчик нескольких известных программных технологий" Дело в том что его математика порождена программированием, без компьютеров ее бы не было.
|
|
|
|
|
Jan 22 2010, 13:05
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Ko4egap @ Jan 22 2010, 15:27)  В то же время без мало-мальского представления той математики, программист не сможет реализовать тот же фильтр. Сможет, и легко. Точно также, как и токарь сможет по чертежу со всеми указанными размерами выточить деталь, так и программист по грамотно описанному алгоритму (с точностью до точности представления той или иной переменной, правил округления, и т.д.) составить программу. А вот наоборот - далеко не каждый токарь сможет разработать грамотный чертеж детали, которая выполняла бы свою определенную функцию допустим в двигателе, он для этого должен быть еще и конструктором, и физиком, и ..., так и не каждый программист сможет разработать, к примеру, алгоритм сжатия речи с потоком в 1200 бит/с, заданным SNR и разборчивостью, он для этого должен быть еще математиком, и еще тем же физиком (чтобы разработать нужную модель тракта от гортани до уха), и ..., а не только программистом. Что касается, допустим, файловой системы, это классическая математическая задача оптимизации размещения. А вот как ее, уже формализованную и расписанную вплоть до всей структуры, реализовать на той или иной платформе - это да, это задача для программиста, так как тот, кто разрабатывал файловую систему, совершенно не знал и не предполагал, что реализована она будет при помощи средств такого-то микроконтроллера, он лишь совершенно абстрагированно от конкретной платформы решал задачу оптимизации по определенному набору формальных обобщенных критериев, обеспечивающих как оптимальность параметров, так и удобство для программистов. Да, возможно часть критериев ему подсказали программисты, да, возможно он и сам программист, но выполняя эту работу он работал не программистом. Цитата(AlexandrY @ Jan 22 2010, 16:00)  Дело в том что его математика порождена программированием, без компьютеров ее бы не было. Сильно спорный вопрос из оперы куриц и яиц. Так как сам компьютер целиком и полностью порожден математикой - необходимостью помощи человеку в решении математических задач.
|
|
|
|
|
Jan 22 2010, 13:14
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Насчет файловых систем это пальцем в небо. Если бы цель была именно такая, то всем бы хватало одной файловой системы. Цитата(SM @ Jan 22 2010, 15:05)  ...Так как сам компьютер целиком и полностью порожден математикой - необходимостью помощи человеку в решении математических задач.... Об истории вопрос не стоит, есть человек и он занят наукой называемой "программирование" Но если вернуться к сценарию с которого началась ветка, то очевидно что "технарь" идет к программисту именно за такой наукой. Поскольку не владея программированием он не может владеть и вычислительными алгоритмами и той математикой.
|
|
|
|
|
Jan 22 2010, 13:48
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(AlexandrY @ Jan 22 2010, 16:14)  Поскольку не владея программированием он не может владеть и вычислительными алгоритмами и той математикой. А я вот имею абсолютно противоположную точку зрения, что он (ученый) может владеть вычислительными алгоритмами и той математикой в совершенстве, а программированием - не владеть. И получив от программиста информацию о том, сколько есть операций в секунду, сколько памяти, какие разрядности и может еще что-то - очень быстро и грамотно сваять вариацию своего алгоритма для решения задачи на такой платформе, если решение возможно. Но... Запрограммировать не сможет. Так как не умеет. А программист - может пыхтеть над оптимизацией месяц, и ничего не решить, всего лишь из-за какой-то мелочи, что например вместо одного матпреобразования можно было применить другое, и его результат обработать третьим, не меняя сути происходящего, а изменив метод решения, о котором он мог не знать вообще. Что касается файловых систем - это именно так. Была бы задача решена однозначно - была бы одна ФС и все бы ей пользовались. Но наборы критериев оптимальности у всех разные, и решения разные, и, наверняка, еще не совсем оптимальные. Там науки (математики) еще мама не горюй, в задачах по оптимальному размещении данных на носителях. Цитата(AlexandrY @ Jan 22 2010, 16:14)  он занят наукой называемой "программирование" В том и дело, что я не спорю, что он занят наукой, я утверждаю лишь то, что название у этой науки другое. А программирование это лишь ремесло, процесс, может быть искусство, но не наука. Оно полностью от начала и до конца описывается другой наукой, а именно математикой, и соотв. все научные изыскания на тему программирования должны быть из области математики. Хотя кое какие сдвиги в онаучивании программирования действительно есть - например теория функционального программирования это полноценный раздел дискретной математики.
|
|
|
|
|
Jan 22 2010, 14:24
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434

|
Хорошо, но как называется тогда эта наука? Вот некоторые аспирантские специальности: 05.13.11 Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей 05.13.15 Вычислительные машины, комплексы и компьютерные сети 05.13.17 Теоретические основы информатики (кстати о теории) 05.13.18 Математическое моделирование, численные методы и комплексы программ источник http://aspirantura.spb.ru/other/spec.htmlКак можно заметить, Российская Академия Наук, все же считает программирование наукой, причем наукой тесно связанной с математикой.
Сообщение отредактировал Ko4egap - Jan 22 2010, 14:24
|
|
|
|
|
Jan 22 2010, 14:35
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Ko4egap @ Jan 22 2010, 17:24)  Хорошо, но как называется тогда эта наука?
Вот некоторые аспирантские специальности: 05.13.11 Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей 05.13.15 Вычислительные машины, комплексы и компьютерные сети 05.13.17 Теоретические основы информатики (кстати о теории) 05.13.18 Математическое моделирование, численные методы и комплексы программ Все, кроме 15 - чистая голимая математика. 15... тут не уверен. Но программирование - это лишь один из инструментов для реализации той или иной математической сущности, описывающей какой-то процесс, а не сама сущность. Инструмент - это не наука. Наука это теория, согласно которой этот инструмент действует, это в данном случае математика.
|
|
|
|
|
Jan 22 2010, 14:42
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434

|
Цитата(SM @ Jan 22 2010, 17:35)  Все, кроме 15 - чистая голимая математика. 15... тут не уверен. Пойдите почитайте паспорта этих специальностей прежде чем делать такие громкие заявления. Для примера 05.13.11 Цитата Область исследования: 1. Модели и методы проектирования и анализа алгоритмов и программ, их эквивалентных преобразований и верификации. 2. Синтаксис и семантика языков программирования, построение и оптимизация трансляторов, создание и реализация языков программирования. 3. Организация баз данных и знаний, построение систем управления базами данных и знаний. 4. Управление вычислительными процессами, создание и исследование операционных систем. 5. Разработка и исследование человеко-машинных интерфейсов, программных средств распознавания образов и визуализации, мультимедийного общения. 6. Организация распределенных и параллельных систем, разработка и исследование эффективных алгоритмов для управления параллельными процессами, создание языков и инструментальных средств параллельного программирования. 7. Программные средства защиты программных систем. 8. Создание и исследование новых технологий проектирования, анализа, оценки качества, стандартизации и сопровождения программных систем.
Сообщение отредактировал Ko4egap - Jan 22 2010, 14:43
|
|
|
|
|
Jan 22 2010, 14:46
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Ko4egap @ Jan 22 2010, 17:36)  Объясните теперь всем этим людям, что то, чем они занимались - не наука Да почему же не наукой ?! Самой натуральной наукой! Кто-то математикой, кто-то педагогикой. Опять же токарное дело приведу для примера... Диссертаций на тему токарной обработки - море морское. Но наука - металловедение, а не "токарное дело". Так и тут - диссертаций по программированию много - но наука - математика. Цитата(Ko4egap @ Jan 22 2010, 17:42)  Пойдите почитайте паспорта этих специальностей прежде чем делать такие громкие заявления. И что - каждый пункт - практически 100%-ный раздел математики, применяемый в частности и в описании процесса программирования.
|
|
|
|
|
Jan 22 2010, 14:50
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434

|
Цитата(SM @ Jan 22 2010, 17:35)  Инструмент - это не наука. Наука это теория, согласно которой этот инструмент действует, это в данном случае математика. Медицина тоже инструмент для излечения людей. Но с другой стороны сколько исследований для усовершенствования этого инструмента. У вас повернется назвать медицину не наукой? Цитата(SM @ Jan 22 2010, 17:46)  И что - каждый пункт - практически 100%-ный раздел математики, применяемый в частности и в описании процесса программирования. я видимо читать разучился "Синтаксис и семантика языков программирования, построение и оптимизация трансляторов, создание и реализация языков программирования." - вообще ни капли программирования, сплошные математические формулы.
|
|
|
|
|
Jan 22 2010, 14:54
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Ko4egap @ Jan 22 2010, 17:50)  я видимо читать разучился
"Синтаксис и семантика языков программирования, построение и оптимизация трансляторов, создание и реализация языков программирования." - вообще ни капли программирования, сплошные математические формулы. Не читать, а понимать, о чем речь. Синтаксис и семантика, как и язык - чисто математические термины, а именно из ее раздела дискретной математики, а именно из ее раздела математической кибернетики, а именно из ее раздела математической информатики. Построение и оптимизация - это чисто математические процессы - рассказать откуда? Или сами найдете? Ну и т.д.
|
|
|
|
|
Jan 22 2010, 19:16
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Ха, опять неувязочка. Цитата(SM @ Jan 22 2010, 16:46)  И что - каждый пункт - практически 100%-ный раздел математики, применяемый в частности и в описании процесса программирования. Читаем: http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%...%B8%D0%BA%D0%B0и понимаем что программирование - математическая наука. Все, вопрос надеюсь закрыт? Теперь перейдем к исходному. Раз "технарь" не может освоить эту математическую науку, хотя математику кое в чем знает, то это программисты должны давать задания технарям как более квалифицированные в среднем специалисты чем технари. Что собственно и есть. Эти программисты называются аналитики. В отсутствии ставки выделенного аналитика и при необходимости разработки ПО, право решения следует отдавать тем кто занимается программированием.
|
|
|
|
|
Jan 22 2010, 19:50
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(AlexandrY @ Jan 22 2010, 22:16)  Читаем: http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%...%B8%D0%BA%D0%B0и понимаем что программирование - математическая наука. Все, вопрос надеюсь закрыт? Во первых в википедии можно написать что угодно. Но это не тот случай. Во вторых там про программирование нет ни слова, что и понятно, и естественно, так как программирование не наука, а лишь способ, как ту или иную математически описанную сущность реализовать на отдельно взятой платформе отдельно взятым методом - программным. Т.е. простая инженерная работа - переписывание исходного алгоритма с использованием языка программирования с целью его реализации на вычислительном устройстве. И это ВСЁ определение программирования. Ни капли научной деятельности. Просто труд. Если вдруг любая переделка алгоритма по ходу дела - это уже отвлечение от программирования, и занятие аналитикой/математикой. А предпочтение всегда отдаем - математику и аналитику. Ну а если нет выделенной ставки аналитика-математика, то ищем такого аналитика, который бы умел программировать, и был бы согласен на этот неблагодарный труд за приемлемую плату, установленную для должности программиста  Программист в чистом виде - тот же обыкновенный технарь, и ничего более. А программист, выполняющий работу аналитика, и говорящий при этом, что он программирует - это просто человек, не ценящий себя, что еще ничего, или не понимающий, что делает, что хуже. ЗЫ. И совсем оффтопик. По собственной статистике, когда из программистов с поверхностным знанием схемотехники приходят в проектирование схемотехники заказных ИМС или конфигураций FPGA, то это очень тяжелый случай в 90% случаев. Ну никак не могут они понять, что это такое HDL и как на нем писать, и делают огромное количество одинаковых ляпов в основном в написании такого, что физически не может быть синтезировано, или синтезируется крайне не оптимально. Приходится их сначала заставлять рисовать схему того, что от них требуется, а потом описывать ее на HDL. И только пройдя через долгое битье головой об стену они начинают сразу, без схем, делать грамотные HDL-описания. А вот если наоборот, разработчик схемотехники такого уровня (ASIC/FPGA) с поверхностным знанием программирования уходит в программисты - то это получается практически сразу ас в оптимизации программ, так как он лучше многих понимает, что и как вычисляет процессор, как он устроен, как обменивается с памятью, с внешними устройствами, и т.д. А если он еще и математик - то и в оптимизации алгоритмов на заданную архитектуру.
|
|
|
|
|
Jan 23 2010, 06:43
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434

|
И еще раз. У каждой науки есть теоретическая (научная) и практическая часть. Написание программ - деятельность инженерная. Создание и усовершенствование методов и инструментов программирования - научная. Если я решаю квадратное уравнение я занимаюсь наукой? А если я решая это квадратное уравнение придумал такое понятие как корень из минус единицы? В первом случае я занимаюсь инженерной деятельностью, во втором я создал новый инструмент математического аппарата, занимаясь научной деятельностью. Вы, SM, как будто ни единого раза не прочитали мои остальные подобные высказывания, и по прежнему твердите что написание программ деятельность ненаучная (да кто же спорит-то).
Насчет связи с математикой видимо все же истина где-то по середине. Все те специальности что я перечислял РАН относит к технической и физико-математической отрасли науки. О чем это говорит - математика - огромная отрасль науки. И вашими, SM, рассуждениями к математике можно свести практически любую техническую науку. К чему я собственно клоню - программирование как наука лежит на стыке технических и физико-математических отраслей, грубо говоря подраздел математики.
Кроме того, в программировани есть такой огромный аспект как психология программиста. Как программисту не допустить, или легче найти собственную ошибку. Как ему переключить собственное сознание чтобы он был способен легко обнаружить собственные ляпы. Каким инструментом программисту проще и эффективнее пользоваться и почему, что ему в нем не хватает. Тут совсем математикой не пахнет. Почему программист допускает ошибки, почему допускает именно эти ошибки, почему ему тяжело их найти? И много-много других вопросов.
ИМХО, занимаясь любой наукой приходится задействовать множество других наук.
Поддерживая офтопик. В университете нас сначала учили программировать в традиционном понимании этого слова (галимый паскаль), на четвертом курсе потребовалось изучить VHDL. Ни для кого в группе не составило труда переключиться. Нет ничего в этом сложного. Я понимаю что сейчас говорю о учебных задачах. Но если к вам, SM, попадают программисты только что из университета, и вы хотите от них владения HDL, естественно что для них будет это задача непростая. Для них принципе любая реальная задача будет непростой, ввиду отсутствия необходимого опыта. А судя по вашему, SM, подходу, вы в программисте просто убиваете все творческие начала, не давая ему самостоятельно разработать тот же математический алгоритм. Я в таких условиях долго на работе не задержусь - факт. Не буду заниматься работой от которой не получаю удовольствия. Вот и остаются у вас ребята, которые довольны тем что просто повторяют на ЯП разжеванные решения.
|
|
|
|
|
Jan 23 2010, 09:01
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434

|
Естественно сложные математические алгоритмы, программист сам составить не в состоянии. Для этого ему потребуется помощь чистого математика, но это крайние случаи. Кроме того математическая обработка - лишь одна из задач, которые программист должен выполнить при разработке приложения. Разработать программу, обеспечивающую адекватное поведение прибора, адекватный юзер-интерфейс, безсбойный обмен по внешним интерфейсам, адекватное отключение при низком уровне батареи и много-много-много других мелочей, на которые в итоге уходит куда больше времени чем на ту же мат обработку.
|
|
|
|
|
Jan 23 2010, 10:22
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Ko4egap @ Jan 23 2010, 12:01)  математическая обработка - лишь одна из задач, которые программист должен выполнить при разработке приложения. Разработать программу, обеспечивающую адекватное поведение прибора, адекватный юзер-интерфейс, безсбойный обмен по внешним интерфейсам, адекватное отключение при низком уровне батареи и много-много-много других мелочей, Так в том и дело, что "отключение при низком уровне батарей" это тоже матобработка, только математика в данном случае не ТФКП к примеру, как в большинстве задач по ЦОС, а теория автоматов, о чем большинство "программистов" забывают. Программисту остается лишь описать этот автомат на ЯП. Просто каждой (и любой) задаче, которую можно решить с использованием программирования как инструмента для решения, существует свой матаппарат, которым она решается прежде, чем будет запрограммирована. И именно поэтому я отделяю программирование как чистое ремесло от математики - как науки (в данном случае) о решении задач и разложении этой задачи на алгоритмы. Программист, решая любую зазачу и составляя, пусть даже в уме, алгоритм, работает аналитиком и математиком, после чего вспоминает, что он программист, и программирует только что разработанный им алгоритм с использованием ЯП. И еще один признак, что программирование это не наука, а ремесло по преобразованию одного вида алгоритма в другой - то, что любой алгоритм, который можно реализовать программно, можно также реализовать и аппаратно, без привлечения программиста вообще. Будут все те же математические сущности, автоматы, выражения, и т.д., просто реализованные на практике другим методом. Да, а что одним из видов практической части применения математики является программирование, т.е. программирование это одна из "практических частей" математики - факт однозначный и бесспорный. Именно практических, и чисто практических, без своей собственной теории, коей является исключительно математика, покрывая собой все теоретические аспекты программирования поголовно. Как, вспомню любимую аналогию, и токарную обработку можно вполне считать одной из "практических частей" металловедения. Цитата(Ko4egap @ Jan 23 2010, 12:01)  Естественно сложные математические алгоритмы, программист сам составить не в состоянии. Для этого ему потребуется помощь чистого математика, но это крайние случаи. Вот именно - чтобы составить простые математические алгоритмы (любой алгоритм всегда математический), как то "если питание упало ниже нормы, то сделать то и это и отключиться" - программисту обычно хватает собственных знаний математики. Я думаю, что любой более-менее опытный программист владеет, к примеру, умением использовать конечные автоматы. Но, к сожалению, почти любой программист, используя их, даже себе и не представляет, что конечный автомат - это чистейшая математика, и "гнет пальцы", что это отдельно взятая наука, конечный автомат в программной реализации. Никакая она не отдельная, все сто лет как описано математикой.
|
|
|
|
|
Jan 23 2010, 10:51
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 17-09-09
Пользователь №: 52 434

|
Цитата(SM @ Jan 23 2010, 13:22)  И именно поэтому я отделяю программирование как чистое ремесло от математики - как науки (в данном случае) о решении задач и разложении этой задачи на алгоритмы. Здесь математика тоже ремесло. Ничего научного в разработке математического алгоритма нет.
|
|
|
|
|
Jan 23 2010, 11:03
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Ko4egap @ Jan 23 2010, 13:51)  Здесь математика тоже ремесло. Ничего научного в разработке математического алгоритма нет. Ну это естественно, если человек не делает ничего принципиально нового в этой области, не описанного до него, то ничего научного в этом и нет. Но там, в тех же алгоритмах, или в теории автоматов, есть поле деятельности для научных работ. А в программировании, как в переписывании алгоритма в другую форму с использованием уже существующего ЯП, быть ничего научного не может априори. Так как пока идет просто перекладывание алгоритма на ЯП - это программирование. Как только хоть малейшее изменение самог алгоритма - то математика. Даже собственно разработка нового ЯП - это чисто математическая задача, крутящаяся внутри таких разделов математики, как математическая кибернетика и математическая информатика.
|
|
|
|
|
Jan 23 2010, 11:09
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Не согласен ни с чем  Цитата(SM @ Jan 23 2010, 12:22)  ... И еще один признак, что программирование это не наука, а ремесло по преобразованию одного вида алгоритма в другой - то, что любой алгоритм, который можно реализовать программно, можно также реализовать и аппаратно, без привлечения программиста вообще....
...Да, а что одним из видов практической части применения математики является программирование, т.е. программирование это одна из "практических частей" математики - факт однозначный и бесспорный...
... Но, к сожалению, почти любой программист, используя их, даже себе и не представляет, что конечный автомат - это чистейшая математика, и "гнет пальцы", что это отдельно взятая наука, конечный автомат в программной реализации. Никакая она не отдельная, все сто лет как описано математикой. Программирование - математическая научная дисциплина. За этим мнением как минимум википедия. Покажите хоть одного достойного авторитета кто бы придерживался вашего мнения. Т.е. это не исключительно раздел прикладной математики. Про эквивалентную аппаратную реализацию эту байку от вас слышим давно. Ну реализуйте Windows CE аппаратно! Даже если и попроще все равно будете использовать программирование на Verilog, а еще и в тихаря RISС прикрутите и будете его на ассемблере програмить. Теперь открываем толстенный справочник по математике от Г. Корн- Т. Корн претендующий на всеохватность и не видим там никакой теории автоматов, также не видим теории манипуляции с битовыми полями, никакой теории сжатия, накакой теории исправления ошибок, подавно нет теории лексического и синтаксического анализа и т.д. А теперь открываем книгу "Математика для программистов игр". И видим там что должен знать программист из математики. Там почти весь Корн и еще физика с оптикой в придачу. Или открываем книгу "Построение интерпретаторов и компиляторов". На протяжении всей книги нет ни слова "математика" ни одного математического знака! Кто учился по Корну не признает здесь математики. Это просто другая математика, компьютерная. Цитата(SM @ Jan 23 2010, 13:03)  .... А в программировании, как в переписывании алгоритма в другую форму с использованием уже существующего ЯП, быть ничего научного не может априори. ... Ну ведь понятно же что вы описываете только свою узкоспециальную бизнес модель. И сами придумали определение программированию. Кадровые агенства с вами абсолютно не согласны, да и большинство работодателей.
|
|
|
|
|
Jan 23 2010, 11:32
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(AlexandrY @ Jan 23 2010, 14:09)  Теперь открываем толстенный справочник по математике от Г. Корн- Т. Корн претендующий на всеохватность и не видим там никакой теории автоматов, также не видим теории манипуляции с битовыми полями, никакой теории сжатия, накакой теории исправления ошибок, подавно нет теории лексического и синтаксического анализа и т.д. Так откройте другую книгу. По дискретной математике. По математической кибернетике и математической информатике (это разделы дискретной математики). И увидите там все это. И про кодирование, и про лексический/синтаксический анализ, и про все остальное, связанное с програмированием. Возможно откроете для себя много нового. Если Вы ее никогда не открывали, это не говорит о том, что ее не существует. Да и во всеобъемлющие справочники по математике я не верю, это IMHO невозможно, чтобы один человек охватил всю ее целиком... Цитата(AlexandrY @ Jan 23 2010, 14:09)  Кадровые агенства с вами абсолютно не согласны, да и большинство работодателей Ну это-то понятно, что им (как и мне, когда я выступаю в роли работодателя), это не выгодно, платить отдельно за программирование, а отдельно за математику в части разработки алгоритмов, а выгодно обозвать все в куче одним программированием, и если надо, это еще и доказывать. Но к науке это отношения никакого не имеет, это только бизнес. Цитата(AlexandrY @ Jan 23 2010, 14:09)  Программирование - математическая научная дисциплина Пока что, насколько мне известно, научной дисциплиной является только теория функционального программирования. Остальное же программирование - это лишь практическое применение различных сфер математики, и не более того. Насчет Win CE аппаратно - это ВОЗМОЖНО и без встраивания RISC. Т.е. некий аппаратный блок, реализующий все ее API через какой либо интерфейс. (попробуйте доказать обратное). Я, естественно, этого делать не буду, так как вряд-ли это кому-то нужно, и вряд-ли это будет пользоваться спросом. Но, главное, что это ВОЗМОЖНО. И программирование на Verilog я использовать не буду, так как это невозможно. Еще раз, на любом HDL описывают устройства вцелом, но не программируют их. "Программирование на HDL" это наиболее распространенная ошибка у начинающих освоение HDL, и ничего более.
|
|
|
|
|
Jan 23 2010, 15:17
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Речь о признаных авторитех. Ученые прежде всего оцениваются по своим публикациям. Цитата(SM @ Jan 23 2010, 13:32)  ... Да и во всеобъемлющие справочники по математике я не верю, это IMHO невозможно, чтобы один человек охватил всю ее целиком... Может имеете свои книги? Нет? Тогда извините ваша вера не в счет. Я привел уже порядочно названий источников. А в книгах которые вы назвали гарантирую будет все забито текстами программ (хоть и на виртуальных языках), а не формулами классической математики. Цитата(SM @ Jan 23 2010, 13:32)  Но к науке это отношения никакого не имеет, это только бизнес. С обсуждения бизнес процесса обсуждение и началось. В этом бизнесе этих ученых называют программистами Цитата(SM @ Jan 23 2010, 13:32)  Пока что, насколько мне известно, научной дисциплиной является только теория функционального программирования. Как интересно. Оказывается там теория есть какая-то. Вот вам журнал по практическому функциональному программированию http://fprog.ru/ Найдите там теорию. Наверно вы спутали термины и не о том хотели сказать. А то тогда придется признать наличие теории и у языка Basic Цитата(SM @ Jan 23 2010, 13:32)  Насчет Win CE аппаратно - это ВОЗМОЖНО и без встраивания RISC. Т.е. некий аппаратный блок, реализующий все ее API через какой либо интерфейс. (попробуйте доказать обратное). ALU в вашем блоке будет? Думаю будет. Память вообще обязательно. Микрокод выполняемый тож будет. Значит будет и программирование (неважно что в ROM или даже перемычками), а следовательно это не будет аппаратным решением. Вот и все доказательство. Самое то забавное что эта система сама в процессе работы может создавать программы. (скрипты там, промежуточный код и проч.) и вы никак не превратите ее в чистый жесткий аппарат иначе это будут не винды.  Да и вообще в широком смысле любой алгоритм это программирование. Даже ввод принципиальной схемы с кучей однообразных блоков в современных средах разработки превращается в программирование. В Altium-е нормальный спец уже должен знать как минимум язык разработки скриптов.
|
|
|
|
|
Jan 23 2010, 18:19
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(AlexandrY @ Jan 23 2010, 18:17)  Как интересно. Оказывается там теория есть какая-то. Вот вам журнал по практическому функциональному программированию http://fprog.ru/ Найдите там теорию. Наверно вы спутали термины и не о том хотели сказать. А то тогда придется признать наличие теории и у языка Basic  Во первых теоретическая подоплека есть у любого языка. И вообще "язык" это вполне четко определенное понятие из одного из разделов математики. Во вторых искать в журналах по практическому программированию теорию - бессмысленно, они же по практическому программированию, а значит для тех, кого расширение кругозора в сторону теоретических основ не интересует, и, как прямое следствие, научная работа, без теории невозможная, тоже.. В третьих - незнание теории никак не говорит о ее отсутствии. И термины я не перепутал. У функционального программирования есть полноценная теория. Изучили бы для начала хотя бы азы дискретной математики, например "азбуку" "Т. С. Соболева, А. В. Чечкин "Дискретная математика", Академия, 2006 г.", и потом главу 6 в "А. Филд, П. Харрисон Функциональное программирование: Пер. с англ. — М.: Мир, 1993.". И окажется, что "оказывается там теория есть какая-то", без которой, кстати, рассматривать что либо вообще как науку нельзя. Может быть, заинтересуетесь теорией. Но судя по Вашим высказыванием - врядли, так как Вы, похоже, убежденный практик, считающий теоретические основы этой практической деятельности лишним и ненужным знанием. В общем - я свое мнение высказал, что наукой является что угодно, связанное с программированием - математика, информатика, кибернетика. Но не само программирование, которое лишь один из методов применения той или иной области науки к практике, а именно преобразование алгоритма в код (его кодирование) для вычисления на каком либо вычислительном устройстве. И все. И у меня нет особой цели переубедить кого-то, столь же убежденного в своем мнении, поэтому спор заканчиваю как бесперспективный, не могущий привести всех участников к единому мнению. А насчет того, что знание программирования облегчает многие работы в смежных отраслях, как то при разработке плат, устройств, - так это факт, и его никто не отрицал. Но вот насчет "алгоритма в широком смысле" как программирования - в корне не согласен. В широком (общем) смысле - это чистая математика. А вот в узком, применительно к его реализации с использованием вычислительного (вообще исполнительного) устройства - да, это и есть программирование.
|
|
|
|
|
Jan 23 2010, 18:25
|

Гуру
     
Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312

|
Цитата(AlexandrY @ Jan 22 2010, 12:51)  Я бы даже то что тут называют математикой отнес бы к программированию. Ну никогда бы так называемый "технарь-математик" не придумал бы алгоритм CORDIC. Просто потому что технари совершенно не в курсе ограничений вычислительных платформ и не могут их учесть. Более того технари не в состоянии предоставить алгоритм в истинном понимании этого слова. "технарь-математик"- это кто такой??? А вообще, как я понимаю, Вы выделяете программистов в отдельную группу? Т. е. программисты не технари? Возможно, доля истины в этом и есть, но по-моему пока всё-таки они близки к технарям. Цитата(Ko4egap @ Jan 22 2010, 14:12)  Аха, пошел программист к математику, и сказал, разработай ка мне алгоритм, скажем, фильтра Батерворта для чисел с фиксированной запятой в формате 1:23 и чтобы выполнялся не дольше 0,5 мкс на частоте 4 МГц на микроконтроллере ATtiny. Потом за пять минут написал программу, и отдал верификатору на проверку. Внимание вопрос, зачем нужен такой "программист"? И посмотрите самый первый пост, об этом автор темы и повествует. Я спрашивал о научности именно программирования (хотя так тупо и спорим без его определения). И описал случай инженерной работы и возникающих при этом проблем в связи с абсолютной неосведомленностью программиста в решаемой задаче. Вопрос был в том, что некоторые такие "программисты" искренне думают, что занимаются научной работой. Цитата(AlexandrY @ Jan 22 2010, 16:14)  Об истории вопрос не стоит, есть человек и он занят наукой называемой "программирование" Но если вернуться к сценарию с которого началась ветка, то очевидно что "технарь" идет к программисту именно за такой наукой. Поскольку не владея программированием он не может владеть и вычислительными алгоритмами и той математикой. Извините, но математикой то он как раз и владеет, но вот в уме или карандашом на бумаге эту математику уже не реализуешь. Требуется карандаш с бумагой другого уровня - ЭВМ. Но для того, чтобы овладеть этими новыми карандашом с бумагой уже требуются довольно значительные затраты времени, сравнимые с занятиями по основному направлению, потому и произошло отпочкование программистов от специалистов иных областей техники, науки,... Цитата(SM @ Jan 22 2010, 16:48)  А программист - может пыхтеть над оптимизацией месяц, и ничего не решить, всего лишь из-за какой-то мелочи, что например вместо одного матпреобразования можно было применить другое, и его результат обработать третьим, не меняя сути происходящего, а изменив метод решения, о котором он мог не знать вообще. Именно аналогичный этому пример я и приводил. Цитата(Ko4egap @ Jan 22 2010, 17:50)  Медицина тоже инструмент для излечения людей. Но с другой стороны сколько исследований для усовершенствования этого инструмента. У вас повернется назвать медицину не наукой? Медицина - отдельная песня. Это наука изначально экспериментальная и исследования там проводятся в большинстве своем экспериментальные, хотя и теоретические направления в настоящее время активно развиваются. ИМХО, не стоит сюда мешать медицину. Цитата(AlexandrY @ Jan 22 2010, 22:16)  и понимаем что программирование - математическая наука. Все, вопрос надеюсь закрыт? Мы не увидели определения программирования, поэтому все наши споры бесполезны. Цитата(Ko4egap @ Jan 23 2010, 13:51)  Здесь математика тоже ремесло. Ничего научного в разработке математического алгоритма нет. На этом этапе может возникнуть исследование, а на этапе программирования (если понимать под ним просто описание) такое невозможно. Цитата(AlexandrY @ Jan 23 2010, 18:17)  А в книгах которые вы назвали гарантирую будет все забито текстами программ (хоть и на виртуальных языках), а не формулами классической математики. А Вы не думали о том, что формула это по сути и есть программа какого-то процесса? А виртуальный язык всё-равно сведется к математике. Цитата(Ko4egap @ Jan 22 2010, 17:24)  Хорошо, но как называется тогда эта наука?
Вот некоторые аспирантские специальности: 05.13.11 Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей 05.13.15 Вычислительные машины, комплексы и компьютерные сети 05.13.17 Теоретические основы информатики (кстати о теории) 05.13.18 Математическое моделирование, численные методы и комплексы программ Как можно заметить, Российская Академия Наук, все же считает программирование наукой, причем наукой тесно связанной с математикой. А где Вы нашли там программирование? Здесь именно говорится о реализации задач программирования - математической, аппаратной... Резюмируя, программирование - это процесс описания уже известного языком, понятным исполнителю (ЭВМ), не вносящий ничего нового и неизвестного в человеческое знание. Реализация же программирования (создание языков, например) - область, в которой возможны и необходимы исследования (соответственно есть почва для диссертаций) для оптимизации процесса программирования, выполнения, отладки программ и т. д.
--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать! Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
|
|
|
|
|
Jan 23 2010, 18:29
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(AlexandrY @ Jan 23 2010, 18:17)  С обсуждения бизнес процесса обсуждение и началось. Обсуждение началось с диссертаций, которые к бизнесу отношения не имеют вообще, разве что в части использования денег в целях ее защиты  Цитата(EUrry @ Jan 23 2010, 21:25)  Резюмируя, программирование - это процесс описания уже известного языком, понятным исполнителю (ЭВМ), не вносящий ничего нового и неизвестного в человеческое знание. Реализация же программирования (создание языков, например) - область, в которой возможны и необходимы исследования (соответственно есть почва для диссертаций) для оптимизации процесса программирования, выполнения, отладки программ и т. д. Абсолютно верно, я с этим полностью согласен. Именно новые иследования в кибернетике, информатике, математике приводят к созданию чего-то нового, что можно использовать при программировании.
|
|
|
|
|
Jan 23 2010, 19:31
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(SM @ Jan 23 2010, 20:19)  ... и потом главу 6 в "А. Филд, П. Харрисон Функциональное программирование: Пер. с англ. — М.: Мир, 1993.". И окажется, что "оказывается там теория есть какая-то" ... Ну мое мнение во первых, что наука может обойтись и без теории. И тут как раз тот случай. Лямбда-исчисление которое вы там увидели вовсе не теория, а нотация. Да, там применяются символы из классических учебников математики, что вас и сбило с толку видимо. Но таких абстракции в ООП тоже пруд пруди. И если ребята захотят они вам вооще 3-х этажные формулы нарисуют которые якобы описывают их абстракции. Такой теории даже больше в учебниках по построению обычных процедурных языков. Почитайте "Компиляторы" от A.Ахо, Р.Сети, Д.Ульмана Только это не та теория типа квантовой. Это просто свод правил и методов. Их тоже надо было открыть и изобрести и исследовать поэтому это наука. Но не теория, на основе этих методов новую парадигму программирования не создать. Это уже созданная и устаревшая парадигма, решавшая проблемы тогдашних неэффективных инструментов создания программ. Посмотрите когда книга была написана. Цитата(SM @ Jan 23 2010, 20:19)  ...В общем - я свое мнение высказал, что наукой является что угодно, связанное с программированием - математика, информатика, кибернетика. Но не само программирование... Ваше мнение понятно. Но оно не общепризнано и, скажем, непрогрессивно.
|
|
|
|
|
Jan 23 2010, 19:42
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(AlexandrY @ Jan 23 2010, 22:31)  оно не общепризнано и, скажем, непрогрессивно. Оно как раз то в научных кругах и общепризнано. Но не призано среди программистов, принципиально не желающих изучать теоретические основы их деятельности, так как "опускает их ниже плинтуса". А те, кто изучил дискретную математику, сами понимают, что к чему, и что из чего произрастает. Насчет "свод правил и методов" - а вся математика и есть "свод правил и методов". И меня ничего ни на грамм с толку не сбило - вся дискретная математика, с ее теориями о теориях, об алгоритмах, алгебрами высказываний, логикой высказываний и т.д. очень далека с виду от той математики, которую знают все, и "программисты" в том числе. Но она - все равно математика, и именно она есть наука о программировании.
|
|
|
|
|
Jan 23 2010, 19:55
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Вы безосновательно навязываете свое определение области в которой сами признали, что не разбираетесь. Цитата(EUrry @ Jan 23 2010, 20:25)  Резюмируя, программирование - это процесс описания уже известного языком, понятным исполнителю (ЭВМ), не вносящий ничего нового и неизвестного в человеческое знание. Тут выше было приведено достаточное количество примеров научности проблем в программировании. А то что программисты изменили мир это и так всем ясно. Информационные технологии рождаются исключительно благодаря программистам. Да программисты умные и умеют эксплуатировать все остальные науки, но количество всегда переходит в качество, как говорили диалектики. Ну так вот программирование уже нельзя разделить на математику и психологию или там пидагогику Программирование это конкретное искусство и наука в общем случае.
|
|
|
|
|
Jan 23 2010, 22:53
|

Пользователь забанен
    
Группа: Свой
Сообщений: 1 138
Регистрация: 9-08-05
Пользователь №: 7 492

|
..Математика всего лишь одна из специфических форм, в которые отливается постижение мира человеческим сознанием. Не менее и не более. Свет клином на математике не сошелся. И мир и сознание шире и богаче её.. ..ея.. ..Физика остается физикой, несмотря на применение матаппарата. Он только инструмент. И география остается географией, хотя, километры и градусы может использовать.. Из того факта, что математика широко используется в различных видах деятельности, совсем не следует, что она их собой подменяет. Или составляет их суть. ..Известна математика, скажем, обратноходовых ИИП. Зачем, спрашивается, отдельные инженеры и целые коллективы каждый год разрабатывают все новые конструкции..? Ведь все просто – пришел математик, сформулировал давно известный алгоритм.. ..инженеру остается тупо реализовать математические формулы.. ..Видимо, все-таки, программирование и инженерная работа – занятия, отчасти творческие. Как и наука. То есть, не сводятся к теоремам, аксиомам и формулировкам. Которые есть, что? Правильно, только инструмент.. И не один, а в числе других. А общее решение есть только общее решение.. ..Не помню случаев, когда программист идет к математику и просит его выдать алгоритм для написания программы. Ну, мне не встречались. Написание программы подразумевает то, что называют составлением алгоритма. Это можно назвать пониманием задачи в деталях. И это делает один человек, которого называют программистом. Далеко не всегда, программист, при этом, судорожно листает математические справочники.. Он может совсем не знать, что нечто, что он использовал, может быть, интуитивно, кто-то, математически, описал триста лет назад. А может и покопаться в талмудах. Если сочтет нужным. Ну и что..? ..То есть, программирование шире ремесла, которое целиком определяется математикой. Программу можно написать лучше или хуже. Программа может быть красивой и не очень.. ..Что касается, наука или нет, программирование. В строгом понимании, наверное, нет, не наука. Но и не безмозглое ремесло, как пытаются представить. ..Грозоотметчик Попова, это факт науки или тупая поделка ремесленника..? Герц с Максвеллом, все, ведь, математически, описали, кажется..
--------------------
It's me
|
|
|
|
|
Jan 24 2010, 10:02
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Опосредовано проблемы делают любую деятельность наукой. Цитата(SM @ Jan 23 2010, 22:22)  Наличие научных проблем в ремесле не делает ремесло наукой  У того же токаря тоже есть куча научных проблем в его токарном деле, и их успешно решают ученые-металловеды. Так же и тут, в программировании у программиста есть куча научных проблем, и их решают ученые-математики, кибернетики... Тот же токарь если поставит перед собой цель добиться нереальной точности деталей или нереальной чистоты обработки или нереальной производительности или нереальной геометрической сложности сразу же станет ученым. При этом он привлечет к работе на себя не только металловедов, но и математиков, программистов, менеджеров и проч. Но учеными выступать будут не они, а токарь, т.к. он будет целепостановщиком и исследователем, а те будут под его руководством. Вот смотрим например свежую вакансию от Самсунга: http://jobview.monster.com/GetJob.aspx?JobID=85751588Что мы видим. Для программирования жалких мабил им нужен программист ученый(Doctor of Philosophy (Ph.D.))! Я более чем уверен что недостатка там в кандидатах не будет. Потому что каждый опытный программист уже почти ученый.
|
|
|
|
|
Jan 24 2010, 15:02
|

Гуру
     
Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312

|
Цитата(AlexandrY @ Jan 23 2010, 22:55)  Вы безосновательно навязываете свое определение области в которой сами признали, что не разбираетесь. А основу так никто и не предложил (в виде определения терминологии), потому я и сделал свои выводы. А уж соглашаться с ними остальным или нет не мое дело. Я ни на что не претендую. Цитата(AlexandrY @ Jan 23 2010, 22:55)  А то что программисты изменили мир это и так всем ясно. Ну, уж таких громких заявлений делать не стоит. Если они изменили мир и не считают остальных за людей, то пусть истребят всех и живут сами по себе. Можно провести эксперимент, отделив группу программистов от остальных людей (даже с начальными условиями в виде компьютеров). Я думаю, что при этом они в скором времение вымрут, как вид. Цитата(AlexandrY @ Jan 23 2010, 22:55)  Программирование это конкретное искусство и наука в общем случае. Вообще да, искусство, как и инженерная деятельность, что отмечает и уважаемый Wise, но "бучу" я поднял из-за того, что большинство называющих себя программистами (коих теперь выпускают практически целыми факультетами) никаким искусством заниматься абсолютно не хотят, а хотят только сразу кучу бабок. Вопрос - за какие заслуги? Да я лучше сам разберусь с кодингом, за время, которое приходится тратить на разъяснения решения задачи "программисту". Из всего выпуска факультета с несколькими потоками нормальных программистов можно по пальцам перечесть, за которых будет держаться работодатель, а остальные бегают из одной мобильной конторы в другую и никто за них не цепляется, т. к. таких и под такие задачи можно всегда без проблем найти среди студентов. Для начала карьеры во время студенчества это нормальный опыт, но не стоит там задерживаться. Вообще, нежелание творческого подхода снижает статус инженера до техника. Инженер имеет право заняться исследованиями в аспирантуре или податься в соискатели, техник - нет. Цитата(Wise @ Jan 24 2010, 01:53)  Свет клином на математике не сошелся. И мир и сознание шире и богаче её.. ..ея.. Бесспорно. Цитата ..Видимо, все-таки, программирование и инженерная работа – занятия, отчасти творческие. Как и наука. То есть, не сводятся к теоремам, аксиомам и формулировкам. Выше объяснил отношение к творчеству. Цитата И это делает один человек, которого называют программистом. Далеко не всегда, программист, при этом, судорожно листает математические справочники.. Ну, если он что-то знает, хоть и интуитивно, то это уже очень хорошо. Другое дело, когда вообще ничего не знает и более того, попросту не хочет знать. Цитата ..Что касается, наука или нет, программирование. В строгом понимании, наверное, нет, не наука. Но и не безмозглое ремесло, как пытаются представить. Представления такие складываются на фактических наблюдениях бестворческого подхода. Цитата(AlexandrY @ Jan 24 2010, 13:02)  Опосредовано проблемы делают любую деятельность наукой. Опять же, если подходить творчески. P. S. Таким образом, вижу проблему большинства современных, называющих себя программистами, в нежелании творческого подхода к решению поставленной задачи в областях, не связанных, например, с написанием программ для телефонов.
--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать! Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|