Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.09.28;
Скачать: [xml.tar.bz2];

Вниз

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

 
Мимоходом   (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



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

Форум: "Прочее";
Текущий архив: 2008.09.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.066 c
2-1218791914
vegarulez
2008-08-15 13:18
2008.09.28
Вопрос про поток при POST запросе.


2-1218665013
начинающий
2008-08-14 02:03
2008.09.28
DateTimePicker


15-1218131612
Nic
2008-08-07 21:53
2008.09.28
Накрылся вентилятор блока питания ПК


2-1219215836
ReYo
2008-08-20 11:03
2008.09.28
Как узнать какое windows - окно активно?


15-1217299919
Slider007
2008-07-29 06:51
2008.09.28
С днем рождения ! 29 июля 2008 вторник





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский