Информационный портал по безопасности. Рубрика «философия программирования

Сергей Трофимов

Последнее время, я часто слышу о том, что философия умерла. Что вместе с эпохой Аристотеля, Гегеля, Бердяева ушла и философия, что сейчас умы людей полностью занимают точные науки, а для философии не осталось места. Но философия это в первую очередь мировоззрение, призма сквозь которую человек воспринимает окружающий мир свое место в этом мире, место среди окружающих его людей. Человечество, получив при помощи технического прогресса новые инструменты изучения окружающего мира одновременно получило и инструменты воздействия на этот мир и самого себя как часть окружающего. Люди остро нуждаются в осмыслении своего места в условиях технического прогресса влияния технических новшеств на самого человека, воспитании осторожного обращения с гигантской силой, данной человечеству техническим прогрессом.

Вступление.

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

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

В широком смысле слова под термином “программирование” понимается составление программ для технических устройств. Здесь будут рассмотрены вопросы составления программ для таких программно-управляемых вычислительных устройств как персональные компьютеры, которые наиболее доступны широкому кругу людей и которые достаточно развиты для так называемого “интеллектуального программирования”. Под термином “интеллектуальное программирование” здесь будет пониматься составление таких программ, которые могут соперничать с человеческим разумом или помогать ему в решении интеллектуальных задач.

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

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

Электронное воплощение человеческой мысли.

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

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

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

С развитием науки и техники изменялись и носители знаний. Печатные материалы хотя и вмещали в себя всю накопленную информацию, но требовали для своего хранения все больше и больше места. Найти необходимые сведения среди миллионов томов информации становилось все труднее. Человеческая жизнь требовала не только сохранения накопленных в результате научной деятельности знаний, но и сохранение и переработку специализированной информации, необходимой для повседневной жизни общества. В качестве примера можно привести учет в различных областях коммерческой деятельности, статистический учет.

С появлением электронно-вычислительных машин были предприняты попытки переложить большую часть рутинной работы по сбору и обработке информации на “железные плечи”. Но только в наши дни, когда персональные ЭВМ есть практически в каждом доме, можно с уверенностью сказать, что компьютеры захватили и удерживают пальму первенства в работе с информацией.

Сначала ЭВМ выполняли только рутинные счетные и поисковые операции, далее программы для ЭВМ становились все более сложными, их логика работы стала приближаться к работе человеческого мозга. Уже сейчас компьютерные программы играют в такие высокоинтеллектуальные игры как шахматы лучше человека. Примером тому служит победа программы “Deep Blue” в шахматном матче против чемпиона мира Гарри Каспарова.

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

Программирование - искусство или ремесло?

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

Как только появилось само понятие программирования, у людей стал возникать вопрос: программирование - это искусство или ремесло?

Искусство как эстетическое отображение реальности присутствует и в программе. Программист может моделировать объекты реального мира как он их видит и преобразовывать их по своему усмотрению.Однако просто моделирование объектов реального мира не является достаточным условием создания произведения искусства. Здесь вплотную мы подходим к вопросу, когда собственно некоторая вещь перестает быть простой, утилитарной поделкой и переходит в разряд произведений искусства.

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

Есть своя притягательность и красота в архитектурных ансамблях и даже в механизмах, произведенных человеческим разумом и руками. Не даром не пустеют залы Политехнического музея в Москве, где собраны макеты и “живые” примеры “эволюции” механизмов созданных человеком в разное время и в разных странах.

Компьютерная программа это такое создание человеческого разума, которое впитывает в себя красоту как языка, так и механизма. Внешнее графическое проявление программ воплощается в понятие “компьютерная графика”. Сейчас компьютерная графика заняла достойное место среди таких направлений искусства, как живопись, киноискусство, мультипликация. Человек получил в свои руки инструмент, позволяющий воплотить в реальные картины свои фантазии и показать их широкой аудитории зрителей. Техническая сторона компьютерной графики достигла таких высот, что создаваемые в реальном времени электронно-вычислительной машиной картины человеческий мозг не может отличить от реальных. Однако за каждой картиной, созданной компьютером стоит ее истинный создатель-человек. Компьютер является линзой, которая увеличивает и предает широкой огласке идеи и образы, рождающиеся глубоко в человеческом сознании. Компьютер можно сравнить с мольбертом художника или кинокамерой режиссера.

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

Воплощение индивидуума в программе.

Известно философское понятие - отражение человеческого “Я” в деятельности индивидуума. Как и в любой деятельности, программист вкладывает свои знания, опыт, а хороший программист и душу в создаваемую программу. Каждый индивидуум, приобретя какой-то предыдущий опыт, вкладывает его в создаваемые им вещи. И программист не исключение. В программе воплощается его миропонимание и мироощущение. Компьютер становится как бы продолжением человеческого разума. Действуя по заложенной человеком программе компьютер “говорит” вложенными в него человеком словами и на определенные ситуации отвечает так, как ответил бы человек, его программировавший. Написание программы чем-то сродни воспитанию ребенка. Только воспитание проходит всю жизнь, а программирование все-таки имеет ограниченный срок. Также как маленькому ребенку программист объясняет, что компьютер должен делать в той или иной ситуации. Какие будут последствия на его действия и что нужно будет предпринять для изменения таких последствий. И как воспитание ребенка зависит от личности и примера родителей, так и программа зависит от личности программиста. Хороший человек будет вкладывать в компьютер набор действий, которые будут помогать людям в работе, учебе или отдыхе. Безответственный человек будет “учить” компьютер ломать, крушить, разрушать созданные другими людьми знания. Характерным примером может служить неиссякаемый поток так называемых компьютерных вирусов, программ, которые, копируя себя с компьютера на компьютер, разрушающе воздействуют на компьютерные системы, выполняя заложенный в них разрушающий алгоритм.

Влияние программы на личность.

У человека глубоко развито чувство следования авторитетам, следование за лидером. Эта черта развивается с детства, когда лидером для маленького человека являлся каждый взрослый. Все, что говорили взрослые было непреложной истиной, не подвергающейся сомнению. Взрослея, человек начинает критически относиться к окружающему миру и мнениям других людей. Однако этот критический подход во многом зависит от мировоззрения человека, его образования и жизненного опыта. Просматривается определенная закономерность, что к печатному слову человек относится менее критично, чем к живому. Это обусловлено развитием системы образования человека. Большинство научных знаний индивидуум получает через печатные издания. И по большому счету мировоззрение человека формируется именно в процессе учебы. Именно в эти годы закладывается понимание мира и места личности в нем. Формируется система ценностей и авторитетов. Именно в это время глубоко в подсознание закладывается отношение к печатному слову, как к непреложному авторитету. Можно вспомнить еще недавние времена социалистической цензуры, когда вся информация, выдаваемая через печатные издания, была тщательно отфильтрована и причесана для воспитания так называемого “коммунистического мировоззрения”.

Сейчас авторитет печатных изданий во многом утрачен. Учебники истории переписываются с завидной периодичностью. Газеты и журналы печатают такую информацию, которую в некоторых случаях можно смело отнести в разряд мифов и легенд. Однако авторитет утраченный печатными изданиями был тут же подхвачен электронными изданиями. А с развитием глобальной сети Internet перекочевал в нее. Сейчас услышать фразу “я прочитал в Интернете...” можно услышать чаще, чем “я был в библиотеке...”. Мне лично знакомы люди, обычно старшего поколения, безоговорочно верящего всему, что “сказал” компьютер. Этим широко пользуются недобросовестные торговцы. Еще недавно в самом центре Москвы можно было встретить бизнесмена с переносным компьютером, который за некоторую сумму “спрашивал” у вычислительной машины астрологический прогноз или что-нибудь в этом роде. И выдавал отпечатанные тут же прогнозы. А если присмотреться к рекламным роликам, которые крутятся на телевидении, то трудно не заметить, что в каждом втором из них компьютер играет роль советчика в использовании той или иной вещи. Образ человека в белом халате, нажимающего кнопку компьютера, на экране которого какие-то графики, просто кочует из ролика в ролик.

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

В последнее время в полной мере заявила о себе проблема непонимания истинной ценности вещей и истинных последствий своих действий. А компьютерные программы наряду с низкопробными фильмами, которые нельзя даже назвать художественными, вносят в эту проблему свой не самый маленький вклад. Особенно сильно влияние “электронного гуру” на неокрепшие души подростков. Огромное количество компьютерных программ пропагандируют насилие. Игры, где подростки управляют кровавой битвой все чаще переносятся в действительность. Подросток еще не может понять, что в компьютерной игре можно с размаха ударить противника ногой без всяких последствий, но тоже действие перенесенное в реальную жизнь может привести к трагедии. Подростки не понимают реальных последствий своих действий, они переносятся в виртуальный мир, где все не настоящее, они получают опыт, который нельзя применить на практике, у них формируется искривленное понимание окружающего мира. И чем более реалистично выполнена “виртуальная реальность”, тем тяжелее вернуться в реальный мир, с его реальными проблемами и объективными законами, не перевернутыми электронной техникой. В среде подростков существует такой термин “зависнуть”, который применим в том числе и к игрокам в компьютерные игры. В этом контексте он означает, что человек настолько погружается в “виртуальный” мир, что перестает ощущать объективную реальность, и не может оторваться от монитора, пока не “пройдет” всю игру до конца.

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

Часто человек теряет понимание истинных ценностей и перестает адекватно воспринимать окружающую действительность в связи с этим. Примером такой потери ценностей может служить получившие широкое распространение в настоящее время так называемые “тамагочи” - электронные зверьки. “Тамагочи” представляет собой небольшой электронный брелок с экраном и несколькими кнопками, посредством которых можно управлять заложенной в это устройство программой. Программа сделана по такому алгоритму, что при ее работе создается впечатление, что это устройство живое. Его нужно электронным образом “кормить”, играть с ним, “лечить” и т.п. при правильной последовательности обращения “тамагочи” “растет” и “счастлив”, при неправильной последовательности он может “заболеть” или “умереть”. Таким образом программа не прекращает свой работы ни днем ни ночью, создавая впечатление что “тамагочи” живет. Взрослые с уже устоявшимися взглядами понимают, что это не более чем электронная игрушка, но дети еще не могут отличить живые существа от электронной модели. Это приходит с жизненным опытом. Ведь известно, что при развитии ребенка существует период одухотворения неживых вещей, который с возрастом проходит. Но такая электронная игрушка “ведет” себя как живая, что затрудняет правильную оценку ребенком ее одухотворенности. Известен случай, когда ребенок ударил своего младшего брата, за то, что он “убил” “тамагочи”, причем такие случаи не единичны. Таким образом изначально казалось бы неплохая идея прививать ребенку чувство заботы о ближнем, вырастает в конечном итоге в перекос взглядов и смещение жизненных ценностей. В конечном итоге, я бы не подменял живое существо, о котором можно заботиться и воспитывать в детях любовь к ближнему, на электронный суррогат.

В рассказе Рея Брэдбери “Вельд” живо обыграна именно такая ситуация. Еще до изобретения такого типа электронных игрушек гениальный писатель изобразил последствия подмены истинных ценностей на электронную модель. В этом произведении дети жестоко расправились со своими родителями только за то, что они “убили” голографическое изображение, выключив питание экрана. Здесь я не призываю полностью отказаться от электронных вещей и программ и перейти в каменный век, но к этим вещам необходимо подходить достаточно серьезно, чтобы не допустить пагубного влияния программ на неокрепшую психику.

Интересно, что программы оказывают непосредственное влияние не только на “потребителей” электронной продукции но на “производителей” т.е. программистов. Программист привыкает думать машинными категориями и перекладывает их на окружающих. Даже внешний облик становится легко узнаваемым. Если вы видите перед собой худого, молчаливого очкарика с кругами от бессонной ночи под глазами, то с высокой вероятностью можно предположить, что это заядлый компьютерщик.Программист при достаточно долгом общении с машиной приобретает особый склад ума. Он привык давать точные ответы на вопросы, как он это делает при написании программ. Известна старая история из разряда анекдотов. На улице один прохожий спрашивает у другого “Этот автобус идет до вокзала?” - “Да.”, прохожий не знал, что его собеседник - программист, который точно ответил на поставленный вопрос, но умолчал, что до того, как автобус дойдет до вокзала он сначала доедет до конечной, сделает круг и только потом пойдет в нужном направлении. Если бы прохожий задал вопрос “Как проехать к вокзалу?”и еще уточнил бы, что его интересует наиболее оптимальный путь, то получил бы ответ, что необходимо перейти улицу сесть в автобус номер такой-то и проехать две остановки. Но то, что в обычной жизни кажется смешным просто необходимо при общении с электронной машиной. Ей необходимы точные инструкции по выполнению тех или иных операций и насколько точно программист может сформулировать пошаговый алгоритм действий, зависит его квалификация. Интересно, что военные достигают определенных высот в программировании. Это можно объяснить тем, что военных учат отдавать точные распоряжения и управлять большими людскими группами, строго разделяя полномочия и работу между членами группы. Эту технику легко можно распространить на компьютерные программы, когда необходимо точно описать алгоритм работы каждой части программы, взаимодействие ее различных частей.

Жизнь электронной мысли (мыслят ли компьютеры).

В создании любой вещи рано или поздно наступает момент, когда ее создатель “положит последний мазок”, когда он решит, что сделал все, что мог и пора отправлять свое произведение в “большую жизнь”. И с этого момента программа начинает жить самостоятельной жизнью, независимо от своего создателя. Здесь возникает такое понятие как “искусственный интеллект” , которое напрямую связана с понятием “мышление” и “мозг”. Известно, что электронно-вычислительную машину часто называют “электронным мозгом”. Тогда, проведя аналогию между человеческим мозгом и его мыслями, можно назвать программу “электронной мыслью” именно электронного мозга. Рассмотрим само понятие “мозг” и может ли оно применяться к электронно-вычислительной машине. Естественно, внешне человеческий мозг и компьютер не имеют ничего общего, однако можно найти сходство в деятельности данных объектов.

В работах Павлова М.Г. , Сеченова И.М была доказана рефлекторная деятельность человеческого мозга. У человека усвоение исторически сложившихся форм деятельности происходит в процессе индивидуального развития человека. По этому такие специальные человеческие способности как речевой и музыкальный слух, способность к абстрактному мышлению являются функциями нейродинамических мозговых структур, обладающих относительной устойчивостью. Процесс психической деятельности людей связан с развитием форм человеческого опыта, его хранения, передачи и переработки.

Просматривается прямая аналогия между деятельностью человеческого мозга и работой программы электронно-вычислительной машины. При ее работе используются электрические импульсы, проходящие через миллионы транзисторов (аналогично импульсам проходящим через нейроны). Человеческий мозг также чист при рождении ребенка, как компьютер без программы. Взрослея, человек набирается знаний, так и компьютер получая более сложную программу, “умнеет”. Компьютерные программы уже превосходят человека в такой абстрактной игре как шахматы. Могут выполнять как рутинную работу, так и интеллектуальную, подсказывая человеку, например при проектировании чего либо, готовые решения, выполняя роль экспертов. Но можно ли назвать этот процесс мышлением? Ведь мышление это активный процесс отражения объективного мира в понятиях, суждениях, теориях и т.п. ,связанный с решением тех или иных задач.

Есть интересный пример из серии так называемых самообучающихся систем. Эти системы на основе проб и ошибок получают информацию о правильном решении и в дальнейшем используют ее для принятия решения в аналогичных ситуациях. Программа сохраняет в своей памяти ситуации при которых происходили ошибки и выстраивает алгоритм дальнейших действий так, чтобы эти ситуации возникали с наименьшей вероятностью. Причем эти системы могут быть построены на чисто механических принципах и логических законах. Можно сказать, что эти системы “познают” мир, но могут ли они делать выводы, умозаключения, выводить теории? Определенно нет. Получив какой-то “опыт” эти системы в той же ситуации примут правильное решение, но если ситуации отличается даже незначительно от той в которой они побывали, это поставит систему в тупик. У таких систем нет способности абстрагироваться от конкретной ситуации, нет способности к анализу и какая бы хорошая программа для ЭВМ не была она лишь выбирает решение при помощи логики из набора заложенных ситуаций, а если ситуация компьютеру не знакома это приведет к сбою.

Таким образом, можно с уверенностью сказать, что на данном этапе развития ЭВМ программы, а следовательно и компьютеры мыслить не могут.

Морально - этические проблемы программирования.

Термин “компьютерные вирусы” прочно вошел в нашу жизнь. Любой человек, хотя бы немного знакомый с современными компьютерами, слышал это словосочетание, а кто-то и сталкивался непосредственно с его разрушительными воздействиями. Итак, что же такое “компьютерные вирусы”? Это программы, которые своими действиями нарушают работу других программ, разрушают данные, не дают возможности пользователям компьютера нормально работать. Причем такие программы могут копировать себя с компьютера на компьютер, чтобы захватывать все новые территории для своих “черных дел”.

Если это программа, написанная человеком, то возникает резонный вопрос: кто составляет такие программы? Такой человек должен обладать некоторыми навыками в обращении с компьютерами, особенно в написании программ . Он должен иметь доступ к компьютеру. У него должна быть причина для распространения вируса. Безусловно, миллионы людей обладают навыками, достаточными для того чтобы преднамеренно или случайно написать программу-вирус. Любой студент, изучающий программирование, и множество сообразительных подростков способны на это.

Конечно и специалисты по программированию могут создать программы-вирусы. Но они ценят свой труд и, прежде чем взяться за дело, постараются найти более простой и менее рискованный способ достижения свой цели. Сейчас принят закон, который за умышленную порчу компьютерных данных предусматривает наказание, вплоть до уголовного (статья 273 УК). А компьютерная программа - это воплощение своего создателя, его мыслей и разума. Конечно, если вирус пишет террорист или шпион сопредельного государства, то даже угроза уголовного наказания его не остановит, однако большинство вирусов, как показала практика, написаны вовсе не террористами в полном смысле этого слова, а людьми, которым не дает покоя слава Герострата, варварами, которые не ищут выгоды от своих действий. Они хотят продемонстрировать свое умственное превосходство, показать, что они умеют делать то, чего не умеют другие, причем они вполне работоспособны, но, вместе с тем, маются от безделья . Эти люди из тех, кто бьет стекла, поджигает лифты, обливает кислотой картины в музеях. Ими движет противоречивое желание. С одной стороны они хотят продемонстрировать свое превосходство над другими людьми, а с другой стороны чисто хулиганские, варварские побуждения сделать что-нибудь гаденькое. Если такой человек обладает необходимыми навыками, он может написать компьютерный вирус.

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

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

Заключение.

Вопросы, которые были рассмотрены в данной работе, достаточно обширны, чтобы полностью раскрыть их в ограниченном объеме. Программирование, как совсем молодая наука, нуждается в философском взгляде, в глубокой проработке влияния его на человеческую личность и на человеческое общество в целом. Эти проблемы могут быть рассмотрены как часть философских проблем, связанных с научно- техническим прогрессом, но вопросы, например, искусственного интеллекта далеко выходят за эти рамки. Пока программы не считаются живыми организмами, перед человеком не стоит таких моральных проблем как, например, “убийство” искусственного организма. Эти и многие другие философские вопросы, которые ставит перед нами научно-техническая революция, еще требуют философского осмысления, пристального внимания современных философов.

Список литературы

Философские вопросы кибернетики М. СОЦЭГИЗ 1961 –392с.

Кибернетика. Мышление. Жизнь М. Мысль 1964. – 511с.

Корецкий С. Искусственный интеллект – миф или реальность? Hard’n’Soft #2 1999.

Сеченов И.М. Рефлексы головного мозга. 1863.

Искусство и научно-технический прогресс. М. 1973–461с.

Соловьев В.С. Философия искусства и литературная критика. М Искусство 1991 – 699с.

Выжлецов Г.П.Эстетика в системе философского знания.ЛГУ 1983

Гегель "Эстетика" в 4-х томах, Москва, 1969 г.

Крутова О.Н. Мораль: сознание и поведение. Ин-т философии М.Наука 1986 –207с.

Панцурин В.А. Внутренний мир личности и искусство. Свердловск 1990 –212с.

Файтс Ф. Джонстоун П. Кратс М. Компьютерный вирус: проблемы и прогноз: Пер. С англ. - М. Мир, 1994.- 176с. ил.

Достоевский Ф.М. Преступление и наказание. М. 1974. 542с.

Бодалев А.А. Популярная психология для родителей. М. :Педагогика, 1988 - 256 с.

Брэдбери Р. О скитаниях вечных и о Земле: -М.:Правда, 1987.-656 с., ил.

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

Здесь и далее я буду рассматривать общекнижный пример с сотрудниками предприятия, писать будем на чем-то СИ-подобном. Наследовать класс Сотрудник (Employee) от класса Человек (Person) – прекрасная идея, особенно если хранить данные исключительно в памяти: SQL имеет некоторые проблемы с наследованием таблиц, но речь не об этом - ООП со своим иерархизмом, агрегациями, композициями и наследованиями предлагает идеальный способ организации данных. Проблемы с методами.

За каждым методом бизнес-логики стоит факт мира, который этот метод (чаще не в одиночку) моделирует. Факты программирования – это операции: дальше будем называть их так. Делая метод членом класса, ООП требует от нас привязать операцию к объекту, что невозможно, потому что операция – это взаимодействие объектов (двух и более), кроме случая унарной операции, чистой рефлексии. Метод ВыдатьЗарплату (PaySalary) может быть отнесен к классам Сотрудник (Employee), Касса (Cash), БанковскийСчет (Account) – все они равнозначны в праве владения им. Дилемма о расположении методов сопутствует всему процессу разработки: неловкое ее разрешение может оказаться критичным и даже фатальным.

В книгах по программированию честные авторы стыдливо признают, что «объекты – это как бы не совсем объекты», а ООП – всего лишь способ организации кода, а не механизм моделирования. Но все дело том, что «мир есть совокупность фактов, а не вещей» – отсюда принципиальная неспособность построить адекватную модель, применяя ООП в том виде, как этого требуют писатели учебников. Важно понять: в коде возможно моделировать мир, но атомами модели должны стать факты, а не объекты.

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


В 2015 году вы могли заметить перемены в способе разработки приложений на JavaScript. Разработчики уходят от непредсказуемой архитектуры с мутабельным состоянием в сторону более предсказуемой иммутабельной архитектуры приложений .

С такими фреймворками как Backbone, было принято синхронизировать сами данные и представление данных – для этого приходилось вручную подписываться на нужные события dom. Такой способ был подвержен ошибкам и вынуждал использовать слишком много типового кода. Пришел Angular и исправил это с помощью автоматизированного двустороннего биндинга.

Но сейчас все движется в другом направлении.

… но это нормально. Любое проектирование отстой. И всегда будет отстоем.

Если вы мне не верите, давайте объясню…

Ни один проект не переживает встречи с реализацией

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

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

Это нормально.

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

Недостающие данные могут быть сделаны опциональными или заменены умолчальными.

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

Ограничение уникальности можно

Еще по ходу чтения мне вспомнился Эдсгер Дейкстра с его знаменитой фразой: «Я денно и нощно молю, чтобы как можно больше моих собратьев-программистов нашли способ освободиться от проклятья совместимости» («I pray daily that more of my fellow-programmers may find the means of freeing themselves from the curse of compatibility») из книги Смиренный программист (1972 sic!!!). А позже и Эрик Реймонд с своим Собором и Базаром (1997 год). Но текст Винджа не только о проклятье совместимости, на трех страничках поднят (и в общем то оставлен без ответов) целый пласт вопросов:

  1. Проблема совместимости в широком смысле;
  2. Проблема поддержки старого кода;
  3. Проблема зависимости человеческой жизни «от бесчувственных роботов» (с), к чему мы стремительно приближаемся;
  4. Проблема data mining`а вообще и поиска готового решения в бездонной бочке рецептов в частности (github, stack overflow?);
  5. Проблема «переписывания» старого кода (и плохого, и хорошего) - этот момент так и хочется перечитывать:);
  6. Проблема необъятности ИТ-технологий. Иногда говорят, что последний универсальный физик жил в середине пошлого века, имея ввиду Льва Ландау. Похоже сейчас наступает (или уже наступило) время, когда найти универсального программиста таки уже невозможно;
  7. В тексте нет слова хакер, ни в позитивной, ни в негативной коннотации. Но написано и об исследователях, и о тех преимуществах, которые можно получить зная те или иные backdoor`ы и о том, какую власть это может дать.
  8. и наверное это не все… :)

Складывается впечатление, что писал это человек, на своей шкуре прочувствовавший эти самые проблемы.
Хочу отметить, что «Глубина в небе» была написана в 1999 году, когда многое из того, о чем пишет Виндж еще не было проблемой, или вообще только показалось на горизонте.

В качестве критики хочется отметить, что Виндж прошел мимо ИИ (и сильного и слабого, вообще мимо пробежал, даже нейронные сети не затронул) и свел преимущества ИТ к производительности. Так же в тексте не ощущается присутствие мегакорпораций (хотя конечно «Глубина в небе» не относится к киберпанку), если не считать Кенг-Хо таковой. Нет патентных войн, не затронуты вопрос копирайта и проблема закрытых проприетарных разработок, исходные коды к которым так и не были опубликованы.

Не о программировании, но о стандартах

Дальше в той же главе затронут интереснейший вопрос галактического вещания с целью распространения собственных технологий. Зачем? Стандартизация. Распространение собственного языка и собственных стандартов и технологий, что позволит с одной стороны подтянуть отсталые цивилизации до приемлемого для торговли уровня, а с другой снизить затраты на коммуникацию и обеспечение совместимости и как следствие облегчит торговлю и повысит маржинальность. Интересно, знал ли Виндж на момент написания книги о стандартизации корабельной оснастки английского флота времен великих завоеваний, позволившей снизить затраты на ремонт и обслуживание? А о распространении английского языка в качестве делового, научного и т.д.? Англичане учили (заставляли учить?) местных аборигенов своему языку. Аналогично поступали испанцы и французы. И сейчас английский, испанский, французский, португальский имеют очень широкое распространение. А вот голландцы считали, что аборигенов не нужно учить своему языку. Много ли мест на земном шаре, где говорят на голландском кроме самой Голландии?
Сейчас обучение английскому поставлено на поток по всему миру. Использование стандартизированных методик и учебников, стандартизированных экзаменов и шкал оценок. Только ли частный бизнес?

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

Мой код никого не интересует. Я был повержен в шок, когда осознал это в процессе работы программистом. Я тратил много времени на оттачивание своего кода, пока не понял, что он никого не интересует, ведь в зачет идет не сам код, а продукт. Принятие программистом этого факта приведет к повышению продуктивности и ценности его работы.

Разница между продуктом и проектом в том, что при разработке продукта есть план, а при разработке проекта есть исследования. Если у вас есть какая-то не решённая проблема, скажем вы ещё не решили какую базу данных использовать в своём проекте, то вам понадобится этот вопрос изучать, то есть исследовать. Это называется technology research. Исследование, это вовсе не обязательно, что-то совершенно новое в мировом масштабе, если вы строите мост, то вам надо исследовать грунт в данном конкретном месте, и пока этот грунт не исследован, мост, как продукт, ещё не существует, пока что это - проект. Ещё не известно, какой грунт, а значит не известно из чего делать мост, как его укреплять, невозможно посчитать бюджет и распланировать график работ.

Кто умеет копировать, тот умеет ДЕЛАТЬ. Это сказал Леонардо да Винчи. Видите ли, вы исходите из своих представлений, о том, что такое ХР, винда, операционка. Люди как рассуждают:

Мне было ещё мало лет у меня стояла ХР, вот были золотые деньки, но тепереча не то, что давеча. Новые времена, современное ПО. Не понимаю, зачем копаться в старье? Вы бы хоть делали клон десятой винды, но куда с вашей то скоростью, вы его сделаете лет через 100.

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

Мы привыкли к быстрому доступу к информации и столь же быстрому её поглощению. Мы предпочитаем пятиминутные ролики глубоким лекциям и коротенькие статьи - книгам. Не буду утверждать, что хорошая книга по программированию заменит любую статью, это не так. И уж точно она не заменит практику. Тем не менее, лично ко мне настоящее понимание основ программирования пришло после того, как я, прорешав сотни задач на курсе программирования и прочитав тонну статей, начал параллельно изучать теорию по книгам и хорошо так в них углубился. Я довольно долго искал свой персональный «лучший учебник по Java для начинающих». Ниже - несколько книг, которые мне пригодились в большей или меньшей степени на разных этапах учёбы. «Для самых маленьких» Следующие две книги можно начинать читать на старте учёбы, параллельно с видео или, если учитесь на JavaRush, - вместе с первыми уровнями. Они, особенно первая, подходят людям с нулевым программистским прошлым.

Head First Java

Я начал с этой книги не потому, что она мне больше всего нравится, а потому, что она самая простая. Эта книга, по мнению очень многих программистов, - лучший самоучитель Java с нуля. Причём она по-настоящему и совсем «с нуля», то есть подходит тем, кто только-только начинает и не совсем понимает ещё, что за зверь такой - программирование. Ко мне она попала слишком поздно. Думаю, именно поэтому я не смог её оценить по достоинству. «Просто читать» её было очень приятно, а вот искать что-то конкретное в ней мне приходилось подолгу. Материал там подан живо, но довольно поверхностно (потому что с нуля!) и многих тем и нужных пояснений попросту нет. А вот мой друг, которому она ушла по наследству, был от нее в восторге и кричал, что это не просто лучший учебник по Java для начинающих, а прям мировой шедевр и именно так нужно подавать сложный материал. Достоинства:
  • Лучший самоучитель Java с нуля, для полных чайников, написан живым языком;
  • Прикольные иллюстрации и юмор;
  • Пояснения с жизненными примерами.
Недостатки:
  • Многовато «воды» для тех, кто уже въехал в тему;
  • Не всегда удачные паззлы и упражнения.

Герберт Шилдт. Java 8. Руководство для начинающих

Полистав этот учебник, я подумал, что он хорошо подойдёт тем, кому нравится более традиционное изложение материала, нежели в Headfirst, и при этом они ищут самоучитель «с нуля». Местами изложение в книге очень детальное, напоминает расширенную и переведённую документацию с хорошими наглядными примерами. Иногда, как по мне, автор переходит границу, и начинает слишком уж разжевывать, читать становиться скучновато… и вдруг - кульбит - и какое-то довольно сложное место проскакивается почти мгновенно, и ты в полном недоумении пытаешься понять, что и где пропустил. Тем не менее, таких мест в книге не слишком много, и я знаю людей, которые считают, что «Руководство для начинающих» - лучший самоучитель Java для тех, кто ещё ничего не знает. Лично мне он показался не очень ровным. Скажем, начинаю разбирать коллекции, и вместо человеческого пояснения мне подсовывают задачу по самостоятельному созданию Set на основе массивов. Классная задача, но я бы хотел для начала лучше понять, что такое стандартные коллекции! Хотя эта книга, как и предыдущая, считается учебником для начинающих, мой опыт преподавателя подсказывает, что она хороша только в совокупности с другими материалами: гуманитарию-свитчеру будет не всё просто и понятно. Лучше всего "Руководство для начинающих" подойдёт тому, кто худо-бедно учил программирование (например, в универе), давным-давно на него забил, и при этом ему нравится стиль изложения автора. Достоинства:
  • Традиционное вдумчивое изложение основ;
  • Хорошие примеры.
Недостатки:
  • Есть «прыжки» от «слишком разжевано» до «мельком сказано»;
  • Местами скучновато.
Кстати, у Герберта Шилдта есть ещё одна известная книга по программированию - «Java 8. Полное руководство». Это совсем другой учебник, более фундаментальный. К нему и переходим. Справочники и расширенные руководства Книги из этого раздела пригодятся тем, кто уже ввязался в по полной и ищет книги для лучшего понимания теории и практики.

Герберт Шилдт «Java 8. Полное руководство»

Эту книгу я решил загрузить из интернета, чтобы оценить, а потом - купить или не купить. Шутка ли, 1300 страниц текста! Ну и цена впечатляет не меньше объема. Точно так же я поступил и с двухтомником «Библиотека профессионала» Кея Хорстманна (о ней - ниже). Забегая наперед скажу, что я остановил свой выбор на второй. Почему? Потому что в книге «Java. Полное руководство» я узрел те же недостатки, что и в «Руководстве для начинающих». Иногда разжевано, иногда - скомкано, но при этом не просто скомкано, а как-то многословно скомкано. Вероятно, это - авторский стиль и, думаю, кому-то он будет по нраву, а точнее - по мышлению. В целом «Java 8. Полное руководство» - это неплохой справочник по Java. Но лично мне изложение тех же самых тем больше понравилось в другой книге. Достоинства:
  • Полное руководство. Кажется, там есть все темы, которые нужно знать новичку, и не только новичку.
  • Подробные пояснения.
Недостатки:
  • Много воды (но это кому-то может нравиться!);
  • Русский перевод не лучший.

Java. Библиотека профессионала, Кей С. Хорстманн, Гари Корнелл

Книги Шилдта и Хорстманна часто сравнивают друг с другом. И у той, и у другой есть преданные поклонники. Для меня именно двухтомник Хорстманна - лучший учебник по Java. Он же стал для меня настольной книгой на начальных и средних уровнях JavaRush. Когда я не понимал какую-то тему, в основном лез именно в Хорстманна, и тот многое прояснял. В книге рассматривается всё - от синтаксиса до многопоточного программирования, локализации приложений и работы с XML. И пусть вас не пугает название «Библиотека профессионала» (меня именно оно и отпугнуло), основы тут разобраны довольно хорошо. Кроме того, её полезно периодически перечитывать, чтобы освежить и упорядочить знания. Говорят, даже профессионалы находят в ней что-то полезное для себя… Не знаю. Стану профессионалом - расскажу! Достоинства:
  • При впечатляющем количестве страниц - мало воды (в отличие от Шилдта).
  • Содержит всё, что нужно новичкам.
  • Раскрывает Java 8.
  • Хорошая подача тем по коллекциям и дженерикам.
  • Очень хорошо сочетается с JavaRush. Доходите до темы, решаете задачки, в какой-то момент что-то не понимаете - смотрите Хорстманна, пробуете снова.
Недостатки:
  • Кому-то может показаться, что книга суховата;
  • Нет практики;
  • Русский перевод с ляпами.

«Java. Методы программирования». Блинов, Романчик

Когда-то я вычитал на форуме, что есть такая книга «Промышленное программирование», и в ней неплохие задачи. Оказалось - не соврали. Я нашёл её копию в PDF на сайте белорусского EPAM’а. Там издание не самое новое (по Java 6), а написана книга как основательный университетский учебник, то есть местами изложение несколько тяжеловесное, академическое. НО! Там действительно очень хороший сборник задач по программированию на Java, а также тестовые задания. Говорят, по этой книге учатся стажёры EPAM, а также её взяли на вооружение многие оффлайновые курсы по Java.

Там подход к задачам немного не такой, как у JavaRush, то есть, в среднем тут задачи чуть сложнее и каждая из них - что-то вроде… не мини, но микро-проекта. Так что рекомендую даже студентам JavaRush, так как недостатком практической стороны курса я считаю то, что все задачи в нём уже полностью спроектированы и есть слишком много подсказок. Скажем, задачи на ООП из этого сборника помогли мне очень неплохо разобраться в этом самом ООП наряду с книгами «неувядающей классики», о которых я пишу ниже. Книга написана как бы для будущих «гребцов», поэтому в ней описаны технологии Hibernate для разработки распределённых систем, а также основы HTML, XML, JavaScript. «Промышленное программирование» - если не лучший самоучитель Java, то очень неплохое учебное пособие. Но к ней нужно приходить уже подготовленным. Скажем, после десятка-другого уровней JavaRush. Позднее я обнаружил её более новое и переработанное издание, уже под именем «Java. Методы программирования ».

Достоинства:
  • Отличная подборка задач и тестовых заданий;
  • Есть официальная бесплатная версия (я полагаю, что она официальная, поскольку лежит не на каком-нибудь рутрекере, а на сайте EPAM);
  • Сравнение с С++.
  • Возможность понять, что проходят на стажировке EPAM.
Недостатки:
  • Слишком фундаментальное изложение. Но для повторения с практикой - подойдёт.
  • Нет Java 8.
Неувядающая классика Книги, о которых я пишу ниже можно назвать священными текстами для начинающих и продолжающих «джавистов».

Effective Java, Джошуа Блох

Это просто сокровище, а не книга, и посвящена она базовым принципам языка от одного из его авторов Джошуа Блоха. Скорее всего, вы уже пользовались его библиотеками (в Java Collection, например). Сразу оговорюсь: полнейшим новичкам, кроме каких-нибудь вундеркиндов-спидлёрнеров книга Effective Java не нужна. Сначала лучше усвоить синтаксис, и получить хоть какую-то практику программирования, так сказать, «набить шишки», а затем уже - браться за творение Джошуа Блоха. Книга пригодится тем, кто хочет по-настоящему понимать Java, сформировать правильный подход при программировании на этом языке, понять не только как нужно делать, но прочему нужно делать именно так. А ещё тем, кто хочет глубоко познать ООП (в принципе, это взаимосвязанные вещи). Эта книга - лучший учебник по Java в разрезе объектно-ориентированного подхода к программированию. Достоинства
  • Блестящее изложение материала по теме ООП.
  • Приведены лучшие практики программирования.
  • Автор очень хорошо знает Java изнутри.
Недостатки
  • Пока что отсутствует перевод самого нового издания книги (третьего).

Философия Java, Брюс Эккель

Название этой книги говорит само за себя. Это ещё одна «альфа и омега» для всех, кто хочет знать Java! В этой книге вы найдёте хорошие и внятные примеры, и из них будет понятно, как работает Java. Мне сложно сказать, какая из двух книг - «Философия Java» или «Эффективное программирование» - лучше. Я бы сказал, что Эккель несколько лояльнее к новичкам, в то время как Блох требует какого-никакого опыта. Впервые я прочитал главу из «Философии Java», когда только начинал учиться на JavaRush (кажется, на одном из ранних уровней она значилась в рекомендованных). Тогда она мне не пошла. Зато после 10 или 12 уровня - это была песня! И, я скажу, очень полезная песня. Я возвращался к ней и позже, уже когда пришёл к «Эффективному программированию». Скажу так: Блох и Эккель пускай говорят об одном и том же, но по-разному, и примеры приводят разные. Достоинства
  • Глубокое изложение принципов Java от профессионала;
  • Хорошо зайдет тем, кто переходит с других языков - много сравнений с С++, например.
  • Как мне кажется, её можно начинать читать уровня с 10-го, а вот Эккеля - чуть позднее.
Недостатки
  • Очень неудачные русские переводы;
  • Отсутствие нового издания книги на русском.

Краткие выводы

  1. Лучший самоучитель Java с нуля для тех, кто совсем ничего не знает - Head First Java;
  2. Лучший справочник-учебник по Java и настольная книга - «Библиотека профессионала». И, конечно, документация Oracle.
  3. Лучший сборник задач по программированию на Java - JavaRush. Ну а среди книг - «Java. Методы программирования».
  4. Лучшая неувядающая классика - «Философия Java» и «Effective Java». Это must read для всех, кто решил разобраться во всем по-настоящему, для глубокого понимания. Но лучше их читать постепенно и с расстановкой.
  5. Дополнительный вывод: есть возможность - читайте на английском. Русские переводы в основном очень слабые.

Всё чаще люди стали говорить, что философия утратила себя, как наука. Что время Аристотеля, Демокрита и Сократа, было концом развития философии, и что сейчас люди заняты точными науками, а для философии не осталось места. Но ведь философия – это взгляд на окружающие вещи и определение себя в этом мире. В следствии технического прогресса Человек получил новые способы изучения окружающего мира, а также новые способы воздействия на мир и самого себя. Нам – людям необходимо понимать, какое место мы занимаем среди технического прогресса, ведь технологии открывают новые возможности в развитии всего человечества, а также скрывают в себе большую опасность.

Программирование часто сравнивают с искусством. Обоснованно это тем, что с повышением сложности программ появилась нужда в людях со специальной подготовкой, что ещё важнее с особым образом мышления, который сможет «вдохнуть жизнь» в становящийся всё более сложным электронный мозг. Понятие «информация» играет важную роль для осмысления глубоких процессов программирования. Информация – это знание, которое человек переложил из своего мозга на вещественный или электронный носитель.

Также тяжело не брать во внимание и обратное влияние ЭВМ на человеческое мышление. Как изменяется жизнь человека и его духовные ценности под воздействием технического прогресса.

Интересный факт – программы оказывают влияние не только на нас с вами – потребителей электронной продукции, но также и на самих программистов. Создатель программы во время работы думает машинными категориями и начинает перекладывать это на людей, которые окружают его. У программиста при длительном обращении с ЭВМ складывается особое мышление. ЭВМ нужны точные указания для исполнения указанных операций.

Мышление компьютера

При написании картины, у художника возникает такой момент, когда он накладывает последний мазок, тем самым заканчивает написание картины. Так и при написании программы. И с того момента, когда программист отправляет программу в «большую» жизнь, она начинает жить самостоятельно. Тут можно привести такое понятие как «искусственный интеллект», оно связано с понятием «мозг», а также «мышление». Конечно, головной мозг человека и компьютер внешне ничего общего не имеют, но сходство найти можно. .

Уникальные человеческие способности, такие как речевой и музыкальный слух, способность к абстрактному мышлению являются функциями нейродинамических мозговых структур, обладающих относительной устойчивостью. Виднеется полная схожесть между работой человеческого мозга и деятельностью программных процессов ЭВМ. При работе ЭВМ, используются электрические импульсы, проходящие через миллионы транзисторов (также как и импульсы, проходящие через нейроны). Но можно ли назвать этот процесс мышлением? Ведь мышление - это активный процесс отражения объективного мира в понятиях, суждениях, теориях и т.п., связанный с решением тех или иных задач.

Существует хороший пример из рода именуемых самостоятельно обучающихся систем. Эти системы методом проб и ошибок собирают информацию о положительном решении и в последующем оперируют этой информацией для правильного выхода из аналогичной ситуации. Можно сделать вывод, что самообучающиеся системы «познают» мир, но свойственно ли им делать умозаключения? Конечно нет. Система оперирует полученным опытом, и если ситуация хоть чуть-чуть отличается от той, в которой они были, то она «зайдёт» в тупик. У них нет возможности уклониться от определённой ситуации, и как хорошо программы не была бы написана, она всего лишь выбирает решение, а если ситуация компьютеру не знакома это приведет к сбою.

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

Моральная сторона программирования

Словосочетание «компьютерные вирусы» прочно вошел в нашу жизнь. Человек, который сталкивался с компьютером, слышал этот термин, а кто-то и сталкивался непосредственно с его разрушительными воздействиями. И всё же, что же такое эти компьютерные вирусы? Это специально написанные программы, которые изменяют алгоритм работы других программ, стирают данные, и не дают пользователю нормально работать.

Эти программы пишут люди, но вот в чём вопрос: что движет этим человеком?

Большее количество вирусов, основываясь на практике, созданы совсем не террористами, это люди, которые хотят продемонстрировать свое превосходство, показать, что они могут сделать то, что не смогут другие. Эти люди способны работать, но зачастую, они делают это от безделья. Эти люди из рода тех, кто занимается вандализмом. Ими движет противоречивое желание. Если у этого человека есть нужные навыки, то он вполне может написать компьютерный вирус.

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

Заключение.

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


Библиографический список

  1. Варфоломеева Т.Н., Овчинникова И.Г. Учебное пособие по программированию. [Текст]: учеб. пособие / Магнитогорск: МаГУ, 2005. Под грифом УМО. – 104 с.
  2. Варфоломеева Т.Н., Овчинникова И.Г., Платонова О.И. Методологии программирования. [Текст]: учеб. пособие / Магнитогорск: МаГУ, 2007. – 204 с.
  3. Варфоломеева, Т.Н. Лабораторный практикум по объектно-ориентированному программированию. [Текст]: учеб. пособие / Т.Н. Варфоломеева, И.Ю. Ефимова – Москва, 2014. (2-е издание, стереотипное)
  4. Варфоломеева, Т.Н. Лабораторный практикум по структурному программированию на примере языка PASCAL [Текст]: учеб. пособие / Т.Н. Варфоломеева, С.А. Повитухин. – Магнитогорск: МаГУ, 2013. – 123 с.
  5. Варфоломеева, Т.Н. Пособие для подготовки к ЕГЭ и ЦТ по информатике [Текст]: учеб. пособие в 2-х частях, Том. Часть 1. Алгоритмизация и программирование / Т.Н. Варфоломеева, И.Г. Овчинникова. – Магнитогорск: МаГУ, 2006. – 128 с.
  6. Варфоломеева, Т.Н. Учебное пособие для подготовки к централизованному тестированию по информатике [Текст]: учеб. пособие / Т.Н. Варфоломеева, И.Г. Овчинникова, Н.Г. Корнещук Магнитогорск: МаГУ, 2002. – 205 с.
  7. Варфоломеева, Т.Н. Учебно-методическое пособие для подготовки к вступительным экзаменам по информатике [Текст]: учеб. пособие / Т.Н. Варфоломеева, И.Г. Овчинникова, Е.Н. Гусева Магнитогорск: МаГУ, 2002. – 116 с.
  8. Ефимова, И.Ю. Компьютерное моделирование [Текст]: сборник практических работ 2-е издание, стереотипное / И.Ю. Ефимова, Т.Н. Варфоломеева. – Москва: ООО «Флинта», 2014. – 67 с. ISBN: 978-5-9765-2039-4
  9. Ефимова, И.Ю. Методика и технологии преподавания информатики в учебных заведениях профессионального образования [Текст]: учебно-метод. пособие 2-е издание, стереотипное / И.Ю. Ефимова, Т.Н. Варфоломеева. – Москва: ООО «Флинта», 2014. – 41 с. ISBN 978-5-9765-2040-0
  10. Мовчан И.Н. Инновационные подходы в преподавании информатики в вузе // Современные научные исследования и инновации. – 2014. – № 5-2 (37). – С. 45.
  11. Мовчан И.Н. Некоторые аспекты информационной подготовки студентов вуза // Сборник научных трудов Sworld. – 2008. Т.18. – № 1. – С. 34-36.
  12. Мовчан И.Н.Педагогический контроль информационной деятельности студента вуза в процессе профессиональной подготовки: дис. … канд. пед. наук/Мовчан Ирина Николаевна; Магнитогорский ГУ. – Магнитогорск, 2009, – 205 с.
  13. Овчинникова И.Г. Оценка эффективности образования личности [Текст] / И.Г. Овчинникова, В.А. Беликов, Л.В. Курзаева // Социальное партнерство в профессиональном образовании Материалы Всероссийской научно-практической конференции. ФГОУ СПО «Магнитогорский государственный профессионально-педагогический колледж», Лаборатория исследования проблем управления качеством начального и среднего профессионального образования УрО РАО: сб. науч. ст. Магнитогорск, 2010. – С. 178-187.
  14. Овчинникова, И.Г. Задачник- практикум по программированию [Текст]: учеб.-метод. пособие. / И.Г. Овчинникова, Т.Н. Варфоломеева. – Магнитогорск: МаГУ, 2009. – 77 с.
  15. Сахнова Т.Н., Овчинникова И.Г. Алгоритмы поиска в курсе информатики средней школы [Текст] // Информатика и образование. – 2010 – № 11 – С. 79-83.
  16. Сахнова Т.Н., Овчинникова И.Г. Алгоритмы сортировки при решении задач по программированию [Текст] // Информатика и образование. – 2011. – № 2 – С. 53-57
  17. Сахнова, Т.Н. Основы алгоритмизации [Текст]: учеб. пособие, 2-е изд., перерабо. и доп. / Т.Н. Сахнова, И.Г. Овчинникова. – Магнитогорск: МаГУ, 2002. под грифом УМО. – 131 с.
  18. Сахнова, Т.Н. Педагогические условия формирования профессионального информационного мышления студентов университета [Текст] : дис. …канд. пед. наук: 13.00.08 / Т.Н. Сахнова. – Магнитогорск, 2003.
  19. Сахнова, Т.Н. Пособие для подготовки к ЕГЭ и ЦТ по информатике [Текст]: учеб. пособие в 2-х частях, Том. Часть 2. Базовый курс / Т.Н. Сахнова, И.Г. Овчинникова. – Магнитогорск: МаГУ, 2006. – 128 с.
  20. Чусавитина, Г.Н. Разработка модели управление рисками, порождаемыми применением дистанционных образовательных технологий в вузе [Текст] / Г.Н. Чусавитина, М.О. Чусавитин, Т.Н. Варфоломеева // Совершенствование подготовки IT-специалистов по направлению «Прикладная информатика» для инновационной экономики: сб. науч. тр. Москва, 2008. – С. 216-218.
Количество просмотров публикации: Please wait