Иван Георгиев: Програмирането е свободата да създаваш

Ivan_Georgiev | New Horizons BulgariaИван Георгиев има дългогодишен опит в разработката на десктоп и уеб приложения. В компетенциите му влизат програмните езици: C/C++, Objective C, Java, PHP, Basic, Pascal, JavaScript, XML/XSL, HTML, SQL, Assembly, Lisp, Prolog; инструменти като XCode, MS Visual Studio, Eclipse, KDE Studio; технологии като Cocoa, Win32, Java Servlets, Java Applets, Macromedia Flash, X-Windows, ActiveX. Иван провежда курсове New Horizons в области като Web програмиране с JavaScript, разработка на мобилни приложения, алгоритми в програмирането, AJAX и др.

Кои са най-успешните проекти, по които си работил?

Бих посочил два коренно различни примера – единият е проект на online и CD каталог (offline), които трябваше да бъдат с еднакъв интерфейс и да могат да използват една и съща база данни. Избрахме графичния интерфейс да бъде разработен на Flash, което ни позволи голяма степен на интерактивност и в online варианта, а за CD варианта, който трябваше да позволява offline работа с каталога, избрахме слабо позната платформа за интегриране на native библиотеки и използването им от Flash. Така получихме desktop приложение с графичен интерфейс, разработен на Flash, използващо native функционалност (разработена на C++) за търсене, заявки и др. Моята роля в този проект беше на проектант и ръководил на разработката.

Вторият пример е за две малки библиотеки, които разработих в контекста на дипломната си работа за магистърската степен по Информатика в Софийския университет – едната за генетични алгоритми (Genetic Algorithms), другата за изкуствени невронни мрежи (Artificial Neural Networks) – и двете на C++, използващи пълните възможности на езика – включително templates, обекти и др. Категоризирам ги като „успешни“, въз основа на времето за проектиране и разработка, както и в лекотата на тяхното използване.

Кои са най-„екзотичните“ (слабо познати в България) технологии, с които си
работил?

Като начало имам резерви към експлозията от нови „технологии“ в областта, защото повечето не са нови, а по-скоро нов прочит на стари такива. Все пак, като малко по-екзотичен пример бих дал отново описания по-горе проект за използване на Flash технология за разработка на самостоятелно desktop приложение, като по-“екзотичното“ в случая е начинът на употреба на иначе добре известна технология. В подобна насока съм правил прототипи на приложения за използване на SVG-базиран интерфейс на desktop приложения и смятам, че това е област с голямо бъдеще.
Експериментирал съм с по-екзотични езици за програмиране, като Lisp и Prolog, но това предимно в контекста на висшето ми образование.

Откъде идва страстта ти към програмирането, какво ти дава то?

Буквалният повод е малко прозаичен, тъй като съм навлязъл в областта на програмирането на около десет годишна възраст – от книгата „Аз, роботът“, която ме ентусиазира да се опитвам да създам „мислещи“ машини.
Към днешна дата, по-точният отговор е, че програмирането ми дава усещането за огромна свобода за създаване, за креативност – област, в която (привидно) няма ограничения за това какво може да бъде направено.

От какво не заспива нощем един разработчик?

Или от нова идея, или от трудно-откриваем проблем (bug).

Какво правиш, за да си в крак с новостите? Кои са за теб надеждните източници на информация?

Основно, като чета новинарски сайтове – включително такива, като dir.bg, BBC или пък KurzweilAI.net, където често се вижда как новите технологии се срещат със света на хората. Когато нещо ми привлече вниманието, търся конкретна и подробна информация за въпросната нова технология, за да разбера какво представлява и какво наистина ново има в нея.

На въпроса „Кои са надеждните източници“ бих казал: „многото“, т.е. единственият начин за търсене на по-достоверна и адекватна информация е тя да бъде търсена и „засичана“ от различни места.

Какви са професионалните ти планове?

В близък и по-конкретен план смятам да инвестирам все повече време в опознаване и разработки на мобилни приложения, предимно малки и фокусирани върху конкретни проблеми, които да използват огромния и все още бегло използван потенциал на новите интерфейси за общуване с компютъра (touch екрани, акселерометри, GPS и др.).
В дългосрочен план ще продължавам да търся начини, и да експериментирам с идеи за усъвършенстване на общуването ни с компютрите по всякакви начини, включително такива, граничещи и навлизащи в областта на изкуствения интелект.

Кои са най-важните качества, които трябва да притежава един разработчик?

Адаптивност и принципност – въпреки привидното наличие на противоречие. Първото се налага от факта, че знанията в тази област твърде бързо остаряват и единственият начин човек да е адекватен на обстановката е да се адаптира заедно с нея.

За второто имам предвид „упование на принципите, а не на изключенията“, тъй като за цялата (кратка) история на софтуерната индустрия, компютрите имат все същите принципи на работа, до колкото и различни „технологии“ да са довели те.
В по-тесен план, когато говорим за разработка на едно конкретно приложение, принципността – в смисъла на „самодисциплина“ – има също така огромно значение – както в процеса на самата разработка, така и в процеса на поддръжка и развитие след това.

Интересувате се от темата? Пишете ни!

    Бързо запитване

    Вашите имена *

    Вашият Email *

    Вашето съобщение *

    captcha

    Добавете коментар

    Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *