-
Собственно на создание топика подтолкнула фраза "Ну вот ты точно программист - не умеешь абстрактно мыслить". А действительно, умеют ли программисты абстрактно мыслить?
-
справку приносить или на слово поверишь?
-
А вот я всегда думал, что умение абстрактно мыслить - это непременный аттрибут хорошего программиста, ибо на управлении абстракциями строится современное программирование. :)
-
А вот я всегда думал, что умение абстрактно мыслить - это непременный аттрибут хорошего программиста, ибо на управлении абстракциями строится современное программирование. :)
-
Есть ли жизнь на марсе, нет ли жизни на марсе - какая, в сущности, разница ?
-
> А вот я всегда думал, что умение абстрактно мыслить - это > непременный аттрибут хорошего программиста
Ну я тоже так думал. Но если посмотреть более внимательно - деятельность программиста постоянно вынуждает его мыслить в максимальной конкретике. Даже когда рассматриваются какие-то абстрактные классы, интерфейсы и т.п., для программиста они не имеют ценности сами по себе, они нужны лишь для того что бы в конечном итоге создать вполне конкретный и определнный класс, отображающий какой-то конкретный объект. У вас так не бывало, что приходит заказчик, и начинает бормотать что-то невнятное про какую-то там кнопочку, а вы уныло это слушаете, что бы в конце концов спросить "Что собственно Вам нужно сделать"? В итоге, заказчик на вас смотрит как на идиота, и говорит что вы не можете абстрактно мыслить. Когда это происходит в первый раз, конечно вы воспринимаете это как шутку. Но после n-го раза, действительно начинаешь задумываться: а может я действительно чего-то не понимаю, и не способен понять требования клиента?
-
Рефлексивный и абстрактный способы мышления играют ключевую роль в обучении программистов и в практике разработки программного обеспечения. ..... Абстракция может быть выражена разными способами, но все они ведут к преодолению когнитивной сложности путем игнорирования несущественных деталей на определенных стадиях решения проблемы. Основываясь на [1], мы выделяем три способа выражения абстракции. Заметить нечто общее в группе объектов и выразить это в одном абстрактном понятии. В таких случаях абстракция ведет к поиску общих характеристик в множестве объектов и к игнорированию несущественных различий между ними. Мы можем выразить эти характеристики в виде математического понятия либо класса в объектно-ориентированном программировании и т.д. В этом смысле абстракция представляет собой отношение «многих к одному». Например, иерархия млекопитающих выражает абстракцию, в которой на верхних уровнях различия между животными игнорируются, а на более низких — учитываются. Шаблон проектирования (design pattern) является примером выражения подобной абстракции в контексте программирования. Для описания конкретного решения выбрать соответствующий уровень абстракции языка. Этот язык не должен базироваться на инструментах, предоставляемых языком программирования, который используется для фактической разработки программ. В данном случае абстракция помогает разработчикам размышлять о проблеме в соответствующих концептуальных терминах, отвлекаясь от специфических терминов языка программирования. Если бы они не использовали подобных абстракций, компьютерные языки вынуждали бы их копаться в несущественных деталях на ранних этапах проекта, «брали бы под контроль» процесс программирования. Абстракция заполняет собой промежуток между естественным языком и языком программирования. Эта идея находит отражение в эволюции языков программирования. На ранних этапах развития они сильно отличались от человеческих, но для выражения своих идей на современном языке программирования уже можно выбрать способ, значительно более близкий к естественному языку. Применить абстракцию для описания объектов в соответствии с их характеристиками, отвлекшись от их устройства или принципов работы. Энтони Хоар поясняет, что абстрактная команда определяет желаемое поведение компьютера, не расписывая в деталях, как оно достигается. Эту идею можно выразить, например, путем написания единого набора инструкций для манипулирования объектами разных типов, в котором различия в способах воздействия на разные объекты будут определяться нижними уровнями абстракции. Данный подход реализуется путем установки барьеров абстракции http://www.osp.ru/os/2005/09/380361/Игорь Шевченко © (05.08.08 13:13) [4]Конечно. Ни в отпуск туда поехать, и закзчиков там нам не искать. Далековато и инета там нет :)
-
>[5] Мимоходом (2008-08-05 13:34:00) >деятельность программиста постоянно вынуждает его мыслить в максимальной >конкретике кактус это, а не программист.
--- All Your Base Are Belong to Us
-
> кактус это, а не программист.
Ээ, то есть вы хотите сказать, что настоящий программист мыслит только абстракциями? ИМХО тогда бы до сих пор ни одной работающей программы не было бы создано.
-
А что такое абстрактное мышление? Например, "Сколько будет 2+2?" - это абстрактный вопрос, или конкретный? Учитывая, что числа суть математические абстракции, и мы тут не два шарика с двумя кроликами складываем, а просто и абстрактно - два плюс два.
-
А что такое абстрактное мышление? Например, "Сколько будет 2+2?" - это абстрактный вопрос, или конкретный? Учитывая, что числа суть математические абстракции, и мы тут не два шарика с двумя кроликами складываем, а просто и абстрактно - два плюс два.
-
>[8] Мимоходом (2008-08-05 13:51:00) >вы хотите сказать, что настоящий программист мыслит только абстракциями где у меня «только»?
алсо, «кодер» и «программист» — вещи очень разные.
--- All Your Base Are Belong to Us
-
> А действительно, умеют ли программисты абстрактно мыслить?
умеют, но вот иногда всячески подчеркивают - что не умеют, зачем? хз...
-
> А что такое абстрактное мышление?
Хе хе, так вот именно в этом я и пытаюсь разобраться. Безусловно, в смысле "Заметить нечто общее в группе объектов и выразить это в одном абстрактном понятии" - программист обладает отличным абстрактным мышлением. Но мне кажется, что у остальных(не программистов и не математиков) понятие об абстрактном мышлении несколько другое. А то что вам кажется абстракцией, для других может казаться совершенно конкретным объектом, и наоборот.
-
> А что такое абстрактное мышление?
это мышление, способное оперировать абстракциями при решении задач
-
http://igrology.ru/58083"А вот если·два человека говорят о методах дедукции и индукции, при этом не теряя·связь в своем уме с теми объектами, которые подчинены законам индукции·и дедукции, то это - правильно работающее абстрактное мышление, совсем·отсутствующее у животных..."из одного из определений абстрактного мышления
-
> алсо, «кодер» и «программист» — вещи очень разные.
совершенно не согласен. хороший программист должен видеть проект на всех уровнях абстракции, в том числе и на уровне кодирования. Иначе мы получим мечтателей со сферическими конями.
-
Смотря с кем сравнивать. Если сравнивать программистов с мышами, то абстрактное мышление безусловно присутствует. А если сравнивать с физиками, работающими над теорией объединения, то отсутствует.
-
> алсо, «кодер» и «программист» — вещи очень разные.
если не секрет, перечень общепринятых различий в студию
-
>[18] Игорь Шевченко © (2008-08-05 14:07:00) кодер делает код по готовым спекам. программист эти спеки пишет. %-)
--- All Your Base Are Belong to Us
|