Няколко интересни факта за програмирането и защо да учим програмиране
Концепцията за програмиране се е зародила доста преди появата на дигиталния компютър. Ако има нещо по-старо от тази концепция обаче – това е самият компютър. Обърках ли ви? Позволете ми да поясня.
Началото: Аналоговият компютър
Още от древността човек е изпитвал нужда да механизира редица дейности, за да съкрати времето за което ги извършва, в това число и изчисленията, които прави. Тази нужда довежда до създаването на аналоговия компютър. „Компютър“ може да се преведе като „машина, която изчислява“. Предполагам мнозина от вас ще свържат тази дейност с електронните калкулатори или съответните мобилни приложения. Какво обаче представлява аналоговият компютър?
Представете си един механичен часовник – с пружината за навиване, сложната система от миниатюрни, зъбчати колела, които завъртат с точно определена скорост стрелките една спрямо друга (така например, за да се премести стрелката на минутите с 1 позиция, стрелката на секундите трябва да премине през 60 позиции). Представихте ли си го? Чудесно, вие току що си представихте аналогов компютър, чиято цел е да отмерва времето.
Аналоговите компютри са сложни механизми, които се използват за точно определени изчисления – например астрономия, пресмятания и т.н. Най-стария фрагмент от такава машина е т.нар. „Механизъм от Антикитира“, за който се предлага, че е създаден през II-ри век пр. Хр. Аналоговият компютър обаче е с изключително сложен и деликатен механизъм, крайно ограничен до точно определен тип изчисления (например механизмът от Антикитира е бил предназначен за изчисление на движението на небесните тела) и в един момент учените започнали да си задават въпроса дали е възможно да се създаде изчислителна машина, която да може да извършва различни типове изчисления.
„Сметачната машина“ на Чарлз Бабидж
Векове наред въпроса за такъв аналогов компютър оставал нерешен. През първата половина на XIX-ти век обаче британския математик Чарлз Бабидж, след дългогодишно изучаване на математически цикли, създава проект на машина, която да може автоматично да извършва полиномиални функции. Машината можела да послужи на инженери, учени и навигатори и чрез полиномиали можела да извършва различни логаритмични и тригонометрични функции. За съжаление Чарлз Бабидж не успял да построи тази машина, но стотина години по-късно, в края на XX-ти век Алън Бромли (австралийски историк, който се интересува от история на компютрите) успява да конструира напълно работеща сметачна машина, по плановете на Чарлз Бабидж. Днес тя се съхранява в Science Museum, в Лондон.
Първият програмист в историята
През 1840 г. Чарлз Бабидж бил поканен в университета в Тюрин да проведе семинар във връзка с неговата аналитична машина. Луйджи Менабреа (млад италиански инженер и бъдещ министър-председател на Италия) превел лекцията на Бабидж на френски и тя била публикувана в академичния журнал Bibliothèque universelle de Genève. Близък приятел на Бабидж (Чарлз Уийтстоун) упълномощил Ада Лъвлейс (графиня на Лъвлейс, дъщеря на Байрон). Тя добавила свои бележки към работата на Бабидж, които били надписани в азбучен ред от „А“ до “G”. В бележка “G” тя описва алгоритъм, който приложен към аналитичната машина на Бабидж, може да изчисли числата на Бернули.
В своите бележки, тя посочва, че сметачната машина на Бабидж е в състояние да решава много по-сложни неща от обикновени изчисления, а конструкцията ѝ и замисълът ѝ позволяват да решава проблеми от всякаква сложност. Алгоритъма, който тя публикувала се счита за изобщо първият публикуван алгоритъм, предназначен за прилагане върху изчислителна машина и поради тази причина Ада Лъвлейс е считана за първият програмист в историята.
Всички тези сложни изчислителни машини и похвати са останали назад в историята, но принципите, върху които са изградени са дълбоко залегнали в методите на работа на съвременния дигитален компютър. Съвременните технологии ни позволяват без да са необходими десетки години изучаване на математика, да придобием умения за програмиране с лесни за изучаване и използване програмни езици.
Ако искате да тръгнете по пътя на програмирането, направете го сега, като кандидатствате за нашата програма по софтуерно инженерство, която започва с безплатния курс “Programming Basics”. Можете да изберете измежду три перспективни технологии – Java, C# и JavaScript. Кандидатствайте от ТУК още сега!