Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.09.28;
Скачать: CL | DM;

Вниз

Есть ли абстрактное мышление у программистов ?   Найти похожие ветки 

 
Мимоходом   (2008-08-05 12:50) [0]

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


 
Medbe}I{onok XML ©   (2008-08-05 12:55) [1]

справку приносить или на слово поверишь?


 
Alkid   (2008-08-05 13:12) [2]

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


 
Alkid   (2008-08-05 13:12) [3]

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


 
Игорь Шевченко ©   (2008-08-05 13:13) [4]

Есть ли жизнь на марсе, нет ли жизни на марсе - какая, в сущности, разница ?


 
Мимоходом   (2008-08-05 13:34) [5]


> А вот я всегда думал, что умение абстрактно мыслить - это
> непременный аттрибут хорошего программиста


Ну я тоже так думал.
Но если посмотреть более внимательно - деятельность программиста постоянно вынуждает его мыслить в максимальной конкретике. Даже когда рассматриваются какие-то абстрактные классы, интерфейсы и т.п., для программиста они не имеют ценности  сами по себе, они нужны лишь для того что бы в конечном итоге создать вполне конкретный и определнный класс, отображающий какой-то конкретный объект.
У вас так не бывало, что приходит заказчик, и начинает бормотать что-то невнятное про какую-то там кнопочку, а вы уныло это слушаете, что бы в конце концов спросить "Что собственно Вам нужно сделать"? В итоге, заказчик на вас смотрит как на идиота, и говорит что вы не можете абстрактно мыслить.
Когда это происходит в первый раз, конечно вы воспринимаете это как шутку. Но после n-го раза, действительно начинаешь задумываться: а может я действительно чего-то не понимаю, и не способен понять требования клиента?


 
blackman ©   (2008-08-05 13:37) [6]

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

Заметить нечто общее в группе объектов и выразить это в одном абстрактном понятии. В таких случаях абстракция ведет к поиску общих характеристик в множестве объектов и к игнорированию несущественных различий между ними. Мы можем выразить эти характеристики в виде математического понятия либо класса в объектно-ориентированном программировании и т.д. В этом смысле абстракция представляет собой отношение «многих к одному». Например, иерархия млекопитающих выражает абстракцию, в которой на верхних уровнях различия между животными игнорируются, а на более низких — учитываются. Шаблон проектирования (design pattern) является примером выражения подобной абстракции в контексте программирования.
Для описания конкретного решения выбрать соответствующий уровень абстракции языка. Этот язык не должен базироваться на инструментах, предоставляемых языком программирования, который используется для фактической разработки программ. В данном случае абстракция помогает разработчикам размышлять о проблеме в соответствующих концептуальных терминах, отвлекаясь от специфических терминов языка программирования. Если бы они не использовали подобных абстракций, компьютерные языки вынуждали бы их копаться в несущественных деталях на ранних этапах проекта, «брали бы под контроль» процесс программирования. Абстракция заполняет собой промежуток между естественным языком и языком программирования. Эта идея находит отражение в эволюции языков программирования. На ранних этапах развития они сильно отличались от человеческих, но для выражения своих идей на современном языке программирования уже можно выбрать способ, значительно более близкий к естественному языку.
Применить абстракцию для описания объектов в соответствии с их характеристиками, отвлекшись от их устройства или принципов работы. Энтони Хоар поясняет, что абстрактная команда определяет желаемое поведение компьютера, не расписывая в деталях, как оно достигается. Эту идею можно выразить, например, путем написания единого набора инструкций для манипулирования объектами разных типов, в котором различия в способах воздействия на разные объекты будут определяться нижними уровнями абстракции. Данный подход реализуется путем установки барьеров абстракции
http://www.osp.ru/os/2005/09/380361/

Игорь Шевченко ©   (05.08.08 13:13) [4]
Конечно. Ни в отпуск туда поехать, и закзчиков там нам не искать.  Далековато и инета там нет :)


 
ketmar ©   (2008-08-05 13:41) [7]

>[5] Мимоходом (2008-08-05 13:34:00)
>деятельность программиста постоянно вынуждает его мыслить в максимальной
>конкретике

кактус это, а не программист.

---
All Your Base Are Belong to Us


 
Мимоходом   (2008-08-05 13:51) [8]


> кактус это, а не программист.

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


 
TUser ©   (2008-08-05 13:52) [9]

А что такое абстрактное мышление? Например, "Сколько будет 2+2?" - это абстрактный вопрос, или конкретный? Учитывая, что числа суть математические абстракции, и мы тут не два шарика с двумя кроликами складываем, а просто и абстрактно - два плюс два.


 
TUser ©   (2008-08-05 13:52) [10]

А что такое абстрактное мышление? Например, "Сколько будет 2+2?" - это абстрактный вопрос, или конкретный? Учитывая, что числа суть математические абстракции, и мы тут не два шарика с двумя кроликами складываем, а просто и абстрактно - два плюс два.


 
ketmar ©   (2008-08-05 13:53) [11]

>[8] Мимоходом (2008-08-05 13:51:00)
>вы хотите сказать, что настоящий программист мыслит только абстракциями
где у меня «только»?

алсо, «кодер» и «программист» — вещи очень разные.

---
All Your Base Are Belong to Us


 
antonn ©   (2008-08-05 13:55) [12]


> А действительно, умеют ли программисты абстрактно мыслить?

умеют, но вот иногда всячески подчеркивают - что не умеют, зачем? хз...


 
Мимоходом   (2008-08-05 14:00) [13]


> А что такое абстрактное мышление?

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


 
Medbe}I{onok XML ©   (2008-08-05 14:02) [14]

> А что такое абстрактное мышление?

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


 
Alarm ©   (2008-08-05 14:02) [15]

http://igrology.ru/58083
"А вот если·два человека говорят о методах дедукции и индукции, при этом не теряя·связь в своем уме с теми объектами, которые подчинены законам индукции·и дедукции, то это - правильно работающее абстрактное мышление, совсем·отсутствующее у животных..."
из одного из определений абстрактного мышления


 
Мимоходом   (2008-08-05 14:03) [16]


> алсо, «кодер» и «программист» — вещи очень разные.

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


 
Mystic ©   (2008-08-05 14:05) [17]

Смотря с кем сравнивать. Если сравнивать программистов с мышами, то абстрактное мышление безусловно присутствует. А если сравнивать с физиками, работающими над теорией объединения, то отсутствует.


 
Игорь Шевченко ©   (2008-08-05 14:07) [18]


> алсо, «кодер» и «программист» — вещи очень разные.


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


 
ketmar ©   (2008-08-05 14:12) [19]

>[18] Игорь Шевченко © (2008-08-05 14:07:00)
кодер делает код по готовым спекам. программист эти спеки пишет. %-)

---
All Your Base Are Belong to Us


 
Мимоходом   (2008-08-05 14:14) [20]


> это мышление, способное оперировать абстракциями при решении
> задач

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


 
DVM ©   (2008-08-05 14:15) [21]

Абсолютно все люди умеют абстрактно мыслить в отличие от животных.


 
ketmar ©   (2008-08-05 14:15) [22]

>[20] Мимоходом (2008-08-05 14:14:00)
>просто он смотрит на мир не через "решение задач"

это как, пардон? заказчик — растение?

---
All Your Base Are Belong to Us


 
Игорь Шевченко ©   (2008-08-05 14:17) [23]


> Да нету у заказчика никакого решения задач. Заказчику нужно
> что бы "все работало".


Фиговые у тебя заказчики. Меняй скорее


 
Сергей М. ©   (2008-08-05 14:18) [24]


> Мимоходом   (05.08.08 14:00) [13]


> "Заметить нечто общее в группе объектов и выразить это в
> одном абстрактном понятии" - программист обладает отличным
> абстрактным мышлением


Анекдот про Холмса с Ватсоном на воздушном шаре это отлично иллюстрирует)


 
Johnmen ©   (2008-08-05 14:31) [25]


> А действительно, умеют ли программисты абстрактно мыслить?

В F1 смотрел?


 
Мимоходом   (2008-08-05 14:34) [26]


> это как, пардон? заказчик — растение?


А вы думаете все заказчики занимаются решением задач? Вот была у меня программа по фоносемантике. Заказчики - психологи, занимаются составлением слоганов, названий брендов и т.п. Объяснить этим людям что такое "алогоритм" сложнее чем слетать на луну. Так вот, программу я им все таки написал. Используют они ее? Нет. Сказали "она тупая". )


 
ketmar ©   (2008-08-05 14:37) [27]

>[26] Мимоходом (2008-08-05 14:34:00)
>занимаются составлением слоганов, названий брендов и т.п

это не есть «решение задач»? ты, может, не поверишь, но даже простой поход в сортир — тоже решение задач, да.

---
Understanding is not required. Only obedience.


 
Мимоходом   (2008-08-05 14:44) [28]


> это не есть «решение задач»? ты, может, не поверишь, но
> даже простой поход в сортир — тоже решение задач, да.


Поход в сортир имеет алгоритм решения, а составление успешного слогана - нет.


 
Anatoly Podgoretsky ©   (2008-08-05 14:46) [29]

> Игорь Шевченко  (05.08.2008 14:07:18)  [18]

А ты абстрактно мысли.


 
ketmar ©   (2008-08-05 14:46) [30]

>[28] Мимоходом (2008-08-05 14:44:00)
>составление успешного слогана — нет.

O_O
то, что ты его не знаешь — не значит, что его нет.

---
Do what thou wilt shall be the whole of the Law.


 
DVM ©   (2008-08-05 14:47) [31]


> Поход в сортир имеет алгоритм решения

не всегда :)


 
Мимоходом   (2008-08-05 14:58) [32]


> ketmar ©   (05.08.08 14:46) [30]


> то, что ты его не знаешь — не значит, что его нет.


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


 
ketmar ©   (2008-08-05 15:00) [33]

>[32] Мимоходом (2008-08-05 14:58:00)
а я вообще не показатель. у меня двойные стандарты.

---
Understanding is not required. Only obedience.


 
Ega23 ©   (2008-08-05 15:00) [34]


> TUser ©   (05.08.08 13:52) [9]
>
> А что такое абстрактное мышление? Например, "Сколько будет
> 2+2?" - это абстрактный вопрос, или конкретный? Учитывая,
>  что числа суть математические абстракции, и мы тут не два
> шарика с двумя кроликами складываем, а просто и абстрактно
> - два плюс два.


Конечно абстрактный. Система счисления не указана.


 
Ega23 ©   (2008-08-05 15:01) [35]


> DVM ©   (05.08.08 14:47) [31]
>
>
> > Поход в сортир имеет алгоритм решения
>
> не всегда :)


Имеет-имеет.
"Не всегда" - это просто else.  :)))


 
@!!ex ©   (2008-08-05 15:25) [36]

Судя по

> [5] Мимоходом   (05.08.08 13:34)


> [26] Мимоходом   (05.08.08 14:34)

Впору задуматься, а есть ли мышление вообще у данного представителя программистов или нет.

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


 
Alarm ©   (2008-08-05 15:31) [37]


> При чем тут абстрактное мышление?

> @!!ex ©   (05.08.08 15:25) [36]

Абстрактное мышление - это умение переводить информацию о·реальных объектах в символы, манипулировать с этими символами,·находить какое-то решение и это решение опять применять к объектам на·практике.


 
Омлет   (2008-08-05 15:36) [38]

Абстрактно мыслит аналитик. Программист реализует придуманные аналитиком абстракции.


 
Tricky   (2008-08-05 15:39) [39]

Что такое абстракция для программиста?

Э-э.. virtual; abstract;?


 
Ega23 ©   (2008-08-05 15:47) [40]


> Э-э.. virtual; abstract;?


Нет, Variant


 
han_malign ©   (2008-08-05 15:50) [41]


> > > Поход в сортир имеет алгоритм решения
> >
> > не всегда :)
>
> Имеет-имеет.
> "Не всегда" - это просто else.  :)))

- угу, а свернутый на бок унитаз это "Runtime error 216"


 
Мимоходом   (2008-08-05 16:32) [42]


> @!!ex ©   (05.08.08 15:25) [36]

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


 
Ega23 ©   (2008-08-05 16:34) [43]


> ведь очевидно что мышление у меня есть


Ничего личного, но это тебе очевидно. За всех-то не надо...   :)))


 
@!!ex ©   (2008-08-05 16:39) [44]

> [42] Мимоходом   (05.08.08 16:32)

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


 
Мимоходом   (2008-08-05 16:44) [45]


> Ничего личного, но это тебе очевидно. За всех-то не надо.
> ..   :)))


Я знал, что слово "очевидно" кого-нить да зацепит )


 
Юрий Зотов ©   (2008-08-05 16:46) [46]

> Есть ли абстрактное мышление у программистов?

Читая этот форум, я иногда начинаю в этом сомневаться. Вот пример.

Вопрос: как на Паскале сложить А и B?

Ответ: А+В

Другой ответ: Неверно! Переменные надо сначала объявить, потом проинициализировать.

Третий ответ: А если А и B - это файлы или объекты?

И т.д.


 
ketmar ©   (2008-08-05 16:48) [47]

>[46] Юрий Зотов © (2008-08-05 16:46:00)
дык сюда приходят за конкретными советами, а не за абстрактными. а то можно дойти вообще до дзенского «Учитель говорит, что это не надо».

---
All Your Base Are Belong to Us


 
Anatoly Podgoretsky ©   (2008-08-05 17:02) [48]

> Юрий Зотов  (05.08.2008 16:46:46)  [46]

Ну по моему твой пример как раз показывает обратное, сколько народу абстрактно отнеслось к вопросу


 
Мимоходом   (2008-08-05 18:08) [49]


> Ну по моему твой пример как раз показывает обратное, сколько
> народу абстрактно отнеслось к вопросу

Первый ответ более абстрактен, чем последующие два, поскольку в них задаются более кокретные детали (инициализация, тип объектов и т.п.)


 
Украинец   (2008-08-05 18:22) [50]


>
> Мимоходом   (05.08.08 12:50)
>
> Собственно на создание топика подтолкнула фраза "Ну вот
> ты точно программист - не умеешь абстрактно мыслить".
> А действительно, умеют ли программисты абстрактно мыслить?


У программистов абстрактное мышление на совсем другом уровне, который недоступен "простым смертным". Программисты мыслят не абстрактной стратегией, а стратегиями стратегий, которые, в общем то, называются паттернами. Для большинства обывателей этот уровень мышления недоступен, как и для большинства тех, кто все таки называет себя этим гордым словом "программист".


 
blackman ©   (2008-08-05 18:22) [51]

Юрий Зотов ©   (05.08.08 16:46) [46]
Введите уровень абстракции и все придет в норму. Полегчает :)


 
Medbe}I{onok XML ©   (2008-08-05 18:38) [52]

> > > Поход в сортир имеет алгоритм решения

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



Страницы: 1 2 вся ветка

Текущий архив: 2008.09.28;
Скачать: CL | DM;

Наверх




Память: 0.62 MB
Время: 0.023 c
1-1198573833
wipr
2007-12-25 12:10
2008.09.28
Почему выводится сообщение "Отказано в доступе"


2-1219131783
grav
2008-08-19 11:43
2008.09.28
Принцип работы формы по типу "Мастера"


2-1219122526
kate158
2008-08-19 09:08
2008.09.28
сдвиг данных в dbgrid e на 1 вверх


2-1218799140
Nell
2008-08-15 15:19
2008.09.28
Уменьшить JPEG


2-1219139868
pushkin42
2008-08-19 13:57
2008.09.28
Ошибка при выполнении запроса SQL