Програмистите, програмирането и пътят към успеха с Ивайло Кенов
Представяме ви Ивайло Кенов – програмист по професия и обучител по призвание, той има сумарно над 1500 часа преподавателско време и е водил лекции на повече от 2500 студенти.
Ивайло е Chief Technical Officer в СофтУни, като от 5 години не спира да преподава на начинаещи и напреднали по най-разнообразни C# и JavaScript технологии. Голяма част от неговите студенти в момента работят като софтуерни инженери в IT индустрията. Повече информация за професионалния му опит можете да прочетете в неговата визитка на този линк.
Ето и отговорите, които той даде на нашите въпроси:
Вече знаем за професионалния ти опит, разкажи ни какво обичаш да правиш в свободното си време?
"Като изключим стандартните и любими на всички хора пътувания по света и прекарване на време с приятели, обичам да се предизвиквам както на физическо, така и на ментално ниво. Тренирам спортна гимнастика и човек редовно може да ме види да стоя на ръце, да скачам в салта, да заставам на мост, да правя силови или разтегателни упражнения. Много е трудно, но пък е интересно, разнообразно и забавно. Когато мускулната треска е много силна и се налага да лежа - обичам да разглеждам решенията на нестандартни математически, логически и програмни задачи в интернет, или пък да се състезавам онлайн в една от най-трудните стратегически игри - StarCraft. Общо взето, занимания, които изискват максимална концентрация, търпение, време и много труд, за да се постига напредък и успех. :) "
Сподели с нас за някой от големите ти професионални успехи
"Най-големият ми професионален успех е свързан с един open-source продукт, който разработвах през свободното си време и ми причиняваше редовно хронично недоспиване, защото времето минаваше неусетно. Неговата стойност е да позволи на програмистите да тестват ASP.NET Core web приложения в рамките на няколко секунди и да спестят значително количество време на работа. Казва се My Tested ASP.NET (https://mytestedasp.net/) и за няколко години е изтеглен над 2 милиона пъти, а Microsoft са го споменавали по световните си блогове и медийни канали.
За съжаление, в момента не ми остава достатъчно време, за да поддържам активната му разработка, но се опитвам всяка седмица да заделям по 10-15 часа в поддръжка, тъй като ми е изключително интересен проект от програмна гледна точка. С това ми странично занимание научих, че ако искаш да постигнеш и направиш нещо голямо и значително, трябва да вкараш огромно количество време и да се опитваш да буташ силно през моментите, в които нямаш мотивация да продължиш напред."
Разкажи ни за някоя забавна случка по време на работа
"Веднъж, по време на една лекция, пред близо стотина човека, ми се наложи да водя от личния си компютър, което криеше определени рискове, защото можеше да “лъсне” нещо, което не трябва. Е, “лъсна” в пълния си блясък. :) Докато ползвах браузъра си се наложи да покажа, че той пази последната затворена страница и мога да я отворя отново, като натисна определена клавишна комбинация. Натиснах я и се отвори песен в YouTube с не особено прилично съдържание и солидно предизвикателно заглавие. Улисан в обяснения, аз не забелязах какво се случва на екрана и прожекторите, а залата започна да избухва в смях.
Появиха се коментари под клипа, свързани с лекцията, а моите оправдания, че приятел ми е пратил точно тази песен, не помагаха особено в ситуацията. Беше голям смях, дори съм сигурен, че ако някой от тогавашните ми студенти чете този пост - веднага ще се сети за комично-трагичната случка. :)"
Какви са перспективите на IT сферата, според теб?
"Постиженията в софтуерната индустрия са многобройни и дори смятам, че толкова са се вплели с ежедневието ни, че вече се възприемат като даденост от хората. Дори за елементарните улеснения в живота ни се е извършило стабилно количество инженерство и голям брой изписан код. Можем да си представим следната елементарна ситуация - отивам на заведение и чувам песен, която ми харесва. С едно натискане на бутон в телефона си, аз мога да разпозная песента, при това още преди да съм се прибрал вкъщи - да я слушам директно в колата си. Не сте впечатлени, нали? Вероятно звучи дори малко скучно?
Средностатистическият човек не би обърнал внимание на тази ситуация, но така ли беше преди 5 години? А преди 10? Или 50? Промяната е огромна всяка година. Имаме на разположение толкова много приятни технологични решения, които са се появили през последното десетилетие, и всяко едно от тях съдържа стабилно количество код. И това са само дреболиите. Ами комуникацията? Достъпвам всеки човек на планетата ни точно за 10 секунди. Пътуванията? Колите могат да се движат автономно, а самолетните билети се купуват за 5 минути. Пазаруването? Поръчвам книга от другия край на света и след около седмица вече разлиствам страниците и вкъщи.
Примерите са безбройни. Целият ни живот се движи от хиляди програми и всеки, който може да разработва софтуер, е част от тази експоненциална човешка еволюция. Ако читателите на този разговор искат да се замислят поне малко за това от къде сме тръгнали и до къде можем да стигнем технологично, бих им препоръчал да прочетат “Последният въпрос” на Айзък Азимов. Сигурен съм, че ще им разчовърка мозъците. :)"
Какви отличителни качества трябва да притежава програмистът?
"Не мисля, че човек трябва да бъде добър в нещо, за да се научи да програмира. Ако вече има изградени качества, като логическо мислене, опит с решаване на задачи по дадена структура или пък задълбочени знания по математика, то пътят му ще бъде със сигурност по-лесен. Тези качества обаче не са задължителни, за да стартираш - те могат да се развият в процеса на обучение. Ще дам подобен пример. Представете си, че искаме да научим двама човека да карат автобус.
Единият е шофирал лек автомобил, а другият - не е. Можем ли да ги научим и двамата? Разбира се, просто в едната ситуация ще отнеме повече време и практически опит, но крайният резултат ще бъде еднакъв. С програмирането не е по-различно. По някаква причина обаче съществува мит, че ни трябва математика, за да програмираме. Не смятам, че това е вярно. Обучил съм хора от най-различни сфери - музиканти, художници, адвокати, спортисти и т.н. Хора, които едва ли са задълбавали в математиката през годините, но всички в момента са топ специалисти. Разбира се, ако разработваме продукт, който има значително количество физика или математика в себе си, няма как да избягаме от тежките формули и задачи.
Такива продукти обикновено са компютърните игри и приложенията с изкуствен интелект, но те са само малка част от IT индустрията. Какви тогава са важните качества, които са нужни, за да се научим да пишем код и да сме добри програмисти? Според мен - търпение и отдаденост. Прави ми впечатление, че хората забравят за тези две важни човешки характеристики. Живеем във времена на мигновеното задоволство (instant gratification) и хората забравяме, че не всичко става бързо и лесно. Добре платената професионална квалификация изисква години. Качествените умения също. И не само в програмирането. Два от често срещаните въпроси по време на моя лекция са “мога ли да започна работа след 2 месеца обучение” и “защо не ни решаваш повече задачи”.
Първият е относно търпението. Бихте ли управлявали самолет след 2 месеца обучение? Бихте ли построили сграда след 2 месеца обучение? Бихте ли се включили в елитен професионален MMA мач след 2 месеца тренировки? Едва ли. С програмирането не е по-различно - трябва да инвестираме стабилно количество време! Вторият въпрос е относно отдадеността. Аз мога да решавам задачи за начинаещи програмисти, без да се замислям особено, защото имам години практика. Но това съм аз. Гледайки ме, тази практика няма да се прехвърли автомагически в мозъците на студентите. Те трябва да изминат същата практика сами и да си блъскат главите с най-разнообразни проблеми, за да стигнат до моето ниво.
Именно поради тази причина учителите трябва само да показват къде е пътят на качественото развитие, но учениците са тези, които трябва да го преминат, заедно с всичките му трудности и перипетии. Пример - ако аз никога не съм вдигал тежести и си поставя за цел да изпълня мъртва тяга с 200 килограма, бих ли се научил, ако отида при професионален атлет и го гледам по цял ден как тренира, без аз да си мръдна пръста? Едва ли ще има особен ефект върху моите силови умения и само ще съм си изгубил времето.
Това, което мога да направя обаче, е да отида при него, за да ме научи как да се подобрявам, да се пазя и да се развивам постепенно, след което да започна да изпълнявам тежката работа сам, а той само да дава насоки - с търпение и отдаденост. При програмирането не е по-различно. “If you put in the work, the results will come!” - Майкъл Джордан."
Сподели нещо впечатляващо, което са направили твои студенти
" През годините съм виждал стотици изпипани индивидуални и отборни проекти. В програмирането трябва да се проявява така наречената “логическа креативност”. Човек може да използва максималното си въображение, за да създава проекти, но работата трябва да бъде структурирана по такъв начин, че да има напълно завършен смисъл. Сигурен съм, че за някои хора да седиш и да пишеш редове код, под формата на текст, не звучи особено забавно, но крайните резултати могат да бъдат зашеметяващи и именно в тях се намира красотата.
След като си се трудил часове наред върху приложението си, емоционалната награда да го видиш как работи и се използва от много потребители е невероятно чувство, което съм сигурен, че ще допадне на почти всеки. И това си личи по хъса на студентите ни в СофтУни, които създават невероятни и забавни проекти. Игри, подобни на Heroes III,социални мрежи (като Instagram) и сайтове за изгубени домашни животни са само малка част от това, което съм виждал като преподавател.
Най-различният проект е може би един, в който всеки потребител въвежда номерата на банкнотите в портфейла си и локация, в която ги е изхарчил, след което за всяка една от тях се изобразява на карта маршрут, чрез който се вижда през къде е минала банкнотата, какво е изминатото и разстояние и за какво време. :)"
Какво, според теб, е отличителното в цялостната програма по софтуерно инженерство, заради което си струва хората да се запишат в нея?
"В цялостната програма по софтуерно инженерство създаваме специалисти от кръглата нула, развиваме ги и им помагаме да стартират кариерата си в IT сектора, чрез намиране на подходяща за тях работа. Работим с най-последни и модерни технологии, като студентите имат право да изберат в различни направления, в които да специализират. Обучението е силно практически насочено и хората трябва да решават изключително много задачи, за да достигнат задоволителното ниво, което професията изисква.
На финалната права дори се създават големи проекти, които могат да се пуснат в експлоатация и да се ползват от реални потребители. Не е лесно, но определено е забавно и предизвикателно. Ако човек никога не се е докосвал до света на програмирането, смятам че ще е му полезно да пробва поне първия безплатен курс от програмата на СофтУни. Може би имате съмнения и колебания дали ще се справите и дали тази работа е подходяща за вас? Това е напълно нормално.
Аз се чувствах по абсолютно същия начин, точно преди половин десетилетие - не знаех дали да се запиша и дали няма да си загубя времето, но всъщност резултатът беше повече от изненадващ. Ако аз мога, значи можеш и ти! :)"
Ако историята на Ивайло ви е вдъхновила и си мечтаете и вие да направите първата стъпка в посока постигане на мечтаното професионално развитие в IT сферата – присъединете се към някой от предстоящите модули по софтуерно инженерство! Обучението е с изключителна практическа насоченост и имате възможността да получите кариерно съдействие за над 70 от най-добрите технологични компании в света!
Модули и пътеки в цялостната ни програма: