Developers 16.02.2006 TeodorGig 1045 прочитания

Защо младите хора участват в състезания по програмиране?

Често чета поредното компютърно списание и виждам поредната алгоритмична задача (най-често комбинаторика или някой NP сложен проблем) и се питам, за какъв дявол хората правят такива състезания, а пък други хора вземат участие в тях?
 
Няма да скрия, че програмирането е предимно хоби за мен. Никога не съм имал успехи в споменатите състезание, но за сметка на това винаги ме е учудвало каква е ползата да се участва в тях.
 
В един хубав ден, един мой преподавател ми обясни, че върхът на алгоритмичните задачи е в динамичното програмиране. Там се използва определена рекурентна зависимост (най-трудният момент от решението), на база на която се спестяват голяма част повторни изчисления. Въпреки завидните способности на моя преподавател аз така и не разбрах как мога правилно да съставям тази зависимост и да я прилагам за задачи, които не сме разглеждали в час.
 
Но дали програмирането е само алгоритми и дали състезанията по програмиране трябва да акцентират върху детерминистични задачи, за които е известно, че съществува оптимално решение? Не съм съвсем убеден! Реших да разгледам това, което предлагат ACM. Всички задачи които ми попаднаха бяха от вече споменатия тип.
 
И все пак, какъв е смисълът от състезанията по програмиране? Да се покажеш колко си велик? Да покажеш колко по-зле са останалите около теб? Не вярвам! Може би точно състезанията по програмиране са старта на една блестяща кариера в областта на професионалното програмиране! Определено бих предпочел да си мисля, че става въпрос точно за тази, последно споменатата, алтернатива. Странно, защо тогава състезанията по програмиране толкова много се различават от реалната работна практика в софтуерните фирми? Въпреки, че в някои състезания се залага на екипната работа, в българските състезания никъде не се предлага възможност отделните екип да преминат през един цялостен процес за разработка на софтуер. Къде остава анализа на заданието? Къде е мястото на проектирането? Тъй като не можем без кодиране, то винаги присъства. Защо не се отделя достатъчно внимание на документирането? Ами последващата поддръжка на продукта? Всяка софтуерна фирма би ви обяснила, че това са етапите през които преминава тяхната работа.
 
Иска ми се да вярвам, че в най-скоро време в България ще се появят състезания по програмиране, които ще дават възможност за съревнование между напълно завършени продукти, написани от същите тези състезатели, които в момента решават алгоритмичните задачи на ИТ списанията в страната. Вярвам, че това би било много важна стъпка в развитието на българската софтуерна индустрия, защото ако се замислим колко български open source продукта са налични в световната мрежа, с чиста съвест може да се срамуваме, сравнявайки се с далеч по-малки държави от България, които имат смайваща продукция в областта на софтуера с отворен код.
 
Апелът ми, а вярвам и апелът на всеки състезател по програмиране, към българските фирми, организатори на конкурси по програмиране, е да се насочат към спонсорирането и финансирането на състезателни екип, които извършват цялостна разработка на малки, но смислени, софтуерни продукти.
 
Ще се радвам, ако всеки един от вас сподели мнението си и заяви своята съпричастност към тук изложената идея, като напише своя коментар към темата.
 
Тодор Балабанов

Реклама

Коментари

BULCORE
BULCORE преди 20 години и 2 месеца

Основната причина да участвам в подобни състезания е наградния фонд , макар че честно казано досега не съм печелил нищо особено.

Иначе ако има състезания в които се включва проектиране и анализ на цялостен софтуерен продукт ,определено шанса за добро класиране ми се увеличава доста. 

Идеята за спонсориране на отбори е много добра, обаче не ми харесва сравнението за open source-а. Това не е никакъв критерий. България разполага с много и качествени програмисти които не си губят времето да пишат код от който няма да спечелят нищо освен може би слава и лично удовлетворение. Само че тези неща се ценят в държави където не се бориш за преживяване. Май трябва да напиша отделен пост в което да споделя мнението ми за отворения код.

Terkoto
Terkoto преди 19 години и 11 месеца
Тодоре, да те питам аз тебе , защо се провеждат турнирите по шах ? защо има световно първенство по футбол ? защо смяташ че при програмистите не може да има competition? Защото Тодоре, хората дето ходят по такива състезания показват че имат подходящ начин на мислене, могат за кратко време да решават проблеми от познат характер... и после отиват да работят за мс или гугъл например , а ти стоиш тука и хабиш байтове да пишеш глупости. ВИНАГИ ТРЯБВА ДА ИМА СЪРЕВНОВАНИЕ! Какви са тези състезания които предлагаш ? Какво ще сравняваш там? Представи си се направи един такъв конкурс и се появят два отбора , едните са седели 3 месеца и са писали мощен редактор на изображения (използвали са c# например), а другите са писали писали уеб приложение (използвайки ruby например). Айде ходи ги сравнявай ... състезанието си е състезание , то е за тези които са по-добри от другите ... както един може да ходи да рита мач в парка с другите лумпени , така друг може да се занимава професионално ... а ти Тодоре , ти дори топка май не си виждал :-Д