Програмування, мистецтво. Програмісти, митці

04.08.2015

Програмування — мистецтво. Програмісти — творці

26 вересня 2005 року

Серйозне мистецтво, як і всяке

справа серйозна, вимагає всього життя.

І. А. Гончаров

Hallo, я радий, що ви вирішили прочитати цю статейку, значить ви не байдужі до програмування! А що на ваш погляд значить програмування. По-моєму — це творчість, а творчість-це свого роду мистецтво. Значить програміст це «творець», людина мистецтва. Але чи всі програмісти такі, звичайно ж, немає. Більшість програмістів використовують вже готові напрацювання його попередників. Але це все легко пояснити, для цього давайте зануримося в екскурс минулого.

Комп’ютери, спочатку створені для вузькоспеціалізованих військових завдань, були сприйняті як платформи з воістину безмежними можливостями. У той далекий час математики займалися виключно гіпотетичними машинами, які мали дуже віддалене відношення до дійсності. Втілені в металі, інженерні ідеї обігнали на десятиліття вперед навіть знаменитих математиків. Запропонована дискретна архітектура була досконала і існує до цих пір, привівши до розвитку відповідної дискретної математики, здебільшого описує те, що інженери давно втілили в життя. Так спочатку практичні комп’ютерні технології залишили позаду математичні моделі.

Сьогодні важко уявити, що був час, коли комп’ютери обслуговувалися технічною елітою, вирішувала рутинні, »спущені зверху» завдання. Втім, для начальства не було секретом, що вільний (і не тільки вільний) машинний час використовувалося для особистих потреб і досліджень персоналу. Так і зароджувалася субкультура людей, які відкрили в грохочущем монстрі другу Всесвіт, своє друге Я.

Жахливе відставання нашої країни, в той час ми входили в СРСР, в області обчислювальної техніки, жорстка дисципліна, постійні репресії привели до того, що субкультура програмістів, виникла в стінах лабораторій США і вже звідти поширилася на весь світ. Як наслідок, ця сфера здебільшого американизирована, особливо у нас, на тлі масового використання американської, а не «рідний» програмно-апаратної бази.

Ну ось, ми і підібралися до мети цієї статті — навчити читача самостійно добувати необхідні йому знання і навички, часом, не маючи відповідної літератури та інформації, а також розповісти про програмістів і програмуванні.

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

Тепер давайте розберемося з існуючими типами програмістів і пояснимо поставлене твердження на початку цієї статті. На мій погляд, існує два типи програмістів, кардинально відрізняються один від одного. Перший тип це як раз «творці», які створюють нове, їм цікаво вирішувати найскладніші завдання, часом витрачаючи на це величезна кількість часу. Другий тип — комерційні програмісти. Комерційний програміст, якими б не були його нахили, має дуже мало шансів стати генієм своєї справи, навіть будучи професіоналом. Працюючи на замовлення, оточеного жорсткими тимчасовими рамками, він просто не в змозі заглиблюватися в нетрі коду або ціною трьох безсонних ночей скорочувати вже до межі оптимізовану програму на один байт.

У 60-х роках темпи розвитку обчислювальної техніки істотно відрізнялися від сьогоднішніх і на розробку ЗА приділялося досить багато часу, так що пізнавальні експерименти не були недосяжною розкішшю. Особливо хотілося б відзначити, що оптимізація тоді була не тільки показником «крутості» програміста, але і необхідністю. При існуючих обмеженнях пам’яті, швидкості і можливостей периферії на тій техніці могли програмувати лише генії.

Мова визначає спосіб мислення, тому мислення програміста поступово перетворюється під впливом використовуваної архітектури в образ мислення її творця. Чим мені подобається програмування в далекому минулому, ще, коли програмування лише початок зароджуватися, — критично низькі ресурси служили потужним поштовхом до глибокого вивчення команд процесора і змушували програмістів проводити безсонні ночі в пошуку потрібних комбінацій розташування сотень байт в убогою оперативної пам’яті. На великих машинах це було просто непотрібно: ресурсів вистачало навіть для виконання досить «кривого» і необдуманого коду.

До кінця шістдесятих років програмістів можна було зіставити з античними майстрами. Програмування асоціювалося з найвищим професіоналізмом і випливає з нього культурою поведінки. Картина до кінця шістдесятих років була наступна — в умовах повної замкненості й відсутності будь-якого зв’язку між комп’ютерними центрами країни кожен програміст повинен був отримати необхідні йому знання САМ. Це був довгий і тернистий шлях. Інформатика тоді лише зароджувалася, і навіть ефективні алгоритми та прийоми ще не були канонізовані і широко відомі. Як би не був очевидний деревовидний пошук або лінійна сортування, але до них треба було додуматися самому і, — на жаль, — далеко не один раз. Як наслідок, всі алгоритми десятки раз відкривалися заново, перш ніж інформація про них встигала дійти до адресатів «природним» шляхом — через книги і університети.

Кінець 60-х — початок 70-х років — роки безперервного вдосконалення технологій програмування та апаратного забезпечення. Зростала обчислювальна потужність ЕОМ, ємність периферійних накопичувачів і швидкодія центрального процесора. Власне кажучи, у той час швидше за все впиралося в гроші, ніж в технології. Якщо клієнт хотів вирішувати за допомогою комп’ютера серйозні завдання, то отримання необхідної машинної потужності залежало тільки від його гаманця. Виробники комп’ютерів помітно випереджали в ті роки потреби клієнтів. І необхідність в високопрофесійних програмістів і ретельно оптимізованому коді мало-помалу почала відпадати. Могли програмісти уявити таке марнотратство хоча б пару років тому? Сі (мова програмування) став першою цеглиною у фундаменті швидких засобів проектування, на якому сьогодні побудовані такі суто візуальні системи як Visual Basic і Delphi.

Час навчання програмістів різко скоротилося, і колишні професіонали ставали в багатьох місцях просто не потрібні. Було безглуздо оплачувати їх кваліфікацію, коли безліч людей погоджувався працювати на значно гірших умовах.

І тут почалося найцікавіше. Якщо перш, відсутність конкуренції, час, відведений на розробки, було, як правило, практично не обмежено, а кінцева вартість не критична, то тепер кожен прагнув обігнати іншого. Це змагання не проходило безболісно. І в першу чергу страждав код, вірніше його якість. Якби цим все і обмежилося, то було б півбіди, і врешті-решт справжній художник проявив себе і в таких умовах. І код, написаний навіть в умовах цієї сумбурною поспіху справжнім програмістом, все одно б ніс у собі частку оригінальності і власного «я».

Однак, прагнучи максимально ефективно використовувати працю людей, керівництво розділяло колектив на невеликі групи з трьох-п’яти чоловік, кожний з який вирішував свою локальну задачу, тісно затиснутий її рамками.

Творити і показувати свою індивідуальність в цих умовах стало просто неможливо. І професіонали почали потихеньку розбігатися. Красиві рішення вже нікому не були потрібні і нікого не цікавили. Можливості комп’ютерів того часу були вже достатньо, щоб «недбало» написаний код задовольняв замовника за всіма параметрами (швидкості, обсягом). «Залізо» дешевшало куди швидше програмного забезпечення. Легше було купити вчетверо більш потужний комп’ютер для недбало написаної дешевої програми, ніж купувати для дешевої машини оптимізований до останнього байта код. Дуже шкода, що ніколи не повернути того часу, тих машин, той дослідницький дух, коли комп’ютери були ще суто наукової, але ніяк не комерційної іграшкою. А як шкода, що не вдалося пожити в той час!

Ось так, поступово ми переходимо в нинішній час. На даний момент за вікном століття інформаційних технологій, революцій в обчислювальній техніці і програмному забезпеченні. Зверніть увагу, як швидко комп’ютер увійшов в життя практично кожної людини. Зараз комп’ютер це не розкіш, а необхідна річ майже в кожному закладі і будинку, для деяких це навіть засіб існування. Сьогодні можна творити і створювати нове, хоча це і здається дуже складним, адже все вже винайдено, але ви тільки спробуйте, і тоді ви зрозумієте, що вся суть в процесі творчості, створення нових програм.

Я думаю, що тепер зрозуміло, що професіоналами не народжуються, ними стають. І якщо ви займаєтеся програмуванням, то я сподіваюся, що ви будете не просто комерційним програмістом, а творцем!

Короткий опис статті: програмісти Hallo, я радий, що ви вирішили прочитати цю статейку, значить ви не байдужі до програмування! А що на ваш погляд значить програмування?! По-моєму — це творчість, а творчість-це свого роду мистецтво. Значить програміст це "творець", людина мистецтва. Але чи всі програмісти такі, звичайно ж, немає. Більшість програмістів використовують вже готові напрацювання його попередників. Але це все легко пояснити, для цього давайте зануримося в екскурс минулого. евристичний пошук,золоте,перетин,кінцеві,автомати,побудувати,лабіринт,алгоритм,зображення,ліній,алгоритм,QSort,Алгоритм,сортування Шелла,Алгоритм,порозрядної,цифровий,сортування,3D,Алгоритм,Z-buffer,Алгоритм,Плаваючий,горизонт,Зафарбування,Гуро,Фонга,Алгоритм,побудови,безлічі мандельброта,Оціночна,функція,для,хрестиків-нуликів,Обертання,растрової,картинки,Пошук,масці,Код Шеннона,Знаходження найкоротших,шляхів,графі,Зворотна,польська,нотація,Ефект,що розвивається,прапора

Джерело: Програмування — мистецтво. Програмісти — творці

Також ви можете прочитати