Може би най-актуалната тема в момента в Софийската долина (а и в Силициевата) е образованието в ИТ сферата на всички нива – от гимназията и обучението по информатика, през университетите, до алтернативното образование чрез академии, хакер училища, алтернативни университети, курсове в образователни центрове – присъствени и онлайн. Информационно обслужване АД дори се включи в Europe Code Week международната програма за обучение по програмиране.

Интересен момент в последно време беше и поредната “социална бомба” на правителството за намаляване на часовете по информатика в гимназията. Точно обратното на това, което се случва по цял свят – все по-сериозно застъпване на обучението по информатика в училищата. Сериозно впечатление направи изказването на президента на САЩ Барак Обама – “Don’t just play your phone, program it.” (Не си играйте само на телефона, а го програмирайте). Ние, разбира се, имаме по-добри идеи, като например да премахнем информатиката от учебната програма (предполагам в Северна Корея не се учи информатика също…). Но нека оставим настрана тези социални експерименти. Образованието по информатика в България има и един друг сериозен проблем (както и другите дисциплини).

Проблемът е, че учениците и студентите не знаят “Защо да го учат това“.

Информатика в гимназията

Аз и по-голямата част от приятелите ми завършихме математическа гимназията с профил “Информатика”. Това означаваше, че прекарвахме доста часове в изучаване на, познайте какво, информатика. За съжаление обаче, програмата и учителите в гимназията могат наистина много лесно да те откажат от програмирането. На теория нещата, които учехме, бяха супер. Нещо повече, доста от нещата, които на работа ползвам и в момента, до една или друга степен, сме ги учили още в гимназията. Например научихме:

  • Основите на няколко езика за програмиране (Pascal и C/C++);
  • Основните типове данни;
  • По-сложни структури от данни – стекове, опашки, листове, графи и т.н.;
  • Как да решаваме сложни задачи като използваме основни (а и по-сложни) алгоритми;
  • И много други интересни неща, свързани с информатиката и програмирането.
Супер якия син екран на Borland C++.
Супер якият син екран на Borland C/C++ editor.

Но! Не научихме нещо много, ама много важно. Не научихме защо го правим всичко това! Никой не ни казваше защо изобщо трябва да правим тези неща. Кой в реалния свят се интересува от графи, указатели, матрици и сортиране на масиви? На кой му пука, че можем да принтираме измислена матрица по някакъв изчанчен начин? Това, което виждахме, беше, че правим някакви “неща” на един син екран (невероятният Borland C/C++ editor). След което тези неща показваха (след малко сметки, разбира се) на един още по-ужасен екран (конзолата) разни числа… Но никой, или поне малко хора, разбираха защо изобщо го правим това нещо. Никой не ни обясни защо светът изобщо има нужда от това. Това незнание отказа много, ама много хора от програмирането. Нещо повече, малкото, които не отказа, бяхме до известна степен “просветени” от други ученици, които просто бяха чули или видели какво може да направиш с програмирането. Трудно е да си мотивиран да правиш нещо, без да виждаш какъвто и да било смисъл в него,  без да виждаш нищо от реалния свят в него.

Апел към всички, които преподават информатика и програмиране под една или друга форма – ако искате да откажете някого от програмирането – дайте му да смята указатели, да върти цикли и да принтира матрици на конзолата. Успехът ви е гарантиран. ;)

Тази тенденция продължава и в първи курс в Университета. Отново беше важно да се научим да принтираме матрици, да боравим с указатели и други “важни” гимнастики – например да напишеш цяла програма на един ред, така че никой да не може да я прочете. ;)

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

А как да запалим някого

Оказа се обаче, че като започнеш работа (като програмист) и започнеш да решаваш реални проблеми и да пишеш реален софтуер, тези всички неща, които си учил, започват да влизат в употреба. Нещата започват да се навързват и да имат смисъл. Започваш да виждаш светлината в тунела и да си казваш “брей, добре че ги въртях тези цикли и добре че научих рекурсията…”. Но до този момент вече повече от половината хора, които са искали да учат информатика, отдавна са се отказали. Просто защото не са виждали смисъла в цялото нещо. Не са виждали реалната стойност, реалното приложение на тези знания.

Да запалим някого по програмиране не е толкова трудно. Просто можем да му обясним какво може да направи с технологиите. Като обясниш на един ученик/студент, че с тези технологии може да направи всичко. Дори повече от всичко – от любимото му приложение/игра за телефона, през любимия му сайт, до най-яката игра или управлението на автомобила на баща му, а защо не и управлението на ракета. Нещата биха били доста по-различни. След което, като му дадеш подходящите среда и средства за обучение, този ученик ще е запален по програмирането за цял живот.

Естествено няма да мине без указателите, рекурсията и решаването на понякога хамалски задачи.

Но виждайки голямата цел пред себе си, е друго. Знаейки, че с тези умения ще можеш да направиш каквото пожелаеш с технологиите, е доста по-различно. Виждайки реалния продукт, който би могъл да направиш, е по-мотивиращо от това да гледаш синия екран и да се чудиш на кого точно му трябва “това“. Още по-интересното за програмирането е, че то е на границата между занаят, изкуство и инженерна дисциплина. Инженерните знания, които ни дава образованието, заедно с нашето креативно мислене и потенциал, могат да доведат до невероятни решения, които да променят целия свят.

Angry Birds
Играта “Angry Birds”

Информатиката не е бъдещето. Информатиката е настоящето. Така че, драги преподаватели, не отказвайте младите хора от програмирането и света на високите технологии още преди да са го видели. Просто им го покажете. Покажете им реалния свят на високите технологии и те сами ще се запалят и с удоволствие ще научат всичко. Ще експериментират и ще създават нови интересни продукти.