Ивайло Кенов е програмист с богат опит с разнообразни програмни езици, един от топ преподавателите в Софтуерния университет и технологичен трейнър
Какво е важно да знае всеки начинаещ програмист, който иска да успее в индустрията?
Ето кои са 9-те най-важни съвета на Ивайло Кенов – програмист с богат опит с разнообразни програмни езици, един от топ преподавателите в Софтуерния университет и технологичен трейнър, който има над 1500 часа, прекарани в преподаване, а в лекциите му са участвали повече от 2500 студенти. Сред тях има както начинаещи в областта на програмирането, така и напреднали в C# и JavaScript технологиите. Ивайло е създател на open source библиотеки за ASP.NET, които в GitHub събират повече от 1000 звезди и над 2 милиона тегления от различни точки на света. Проектът му се радва на голямо внимание и е споменаван неколкократно в официалните канали на Microsoft.
Неговите съвети са:
Открийте ментор, който да ви помага по пътя на развитието ви
Решаващо за успешното развитие на всеки професионалист е да стартира своя път с човек, от когото да попива опит и знания, да получава подкрепа в моментите, в които кодът не работи или излизат каквито и да е грешки и затруднения. Независимо какво правим, винаги има много нови неща, които бихме могли да научим във всеки етап от професионалния ни растеж. Затова подкрепата от добър ментор има основополагащо значение за успешната кариера на един начинаещ програмист.
Не спирайте, когато кодът работи
Възможно е да си мислите, че след като кодът вече работи – работата ви е завършена. Но всъщност е точно обратното – същинската част едва тогава започва. Работещ код невинаги е равно на добре написан такъв. Стандартно работата по проектите включва участието на много хора, именно затова е важно по какъв начин изглежда финалният продукт - чете ли се добре, лесно разбираем ли е както за останалите хора в екипа, така и за самите нас? Можем да считаме работата си за приключена, единствено след като сме минали отново през целия написан код и се уверим, че всичко по него е изрядно.
Вникнете в дълбочина в програмните похвати
Обикновено програмистите навлизат в дълбочина в изучаването на използваните от тях инструменти. Добре е да сме наясно, че различните програмни езици също са инструменти. Изключително важно е обаче да се разбере и принципът на работа - как се програмира на теория, какво стои зад софтуерното инженерство. В противен случай развиваме знанията си в посока отделните езици, без да знаем как работят те и какво се случва вътре, зад тяхната работа. Добро метафорично сравнение е да опитаме да градим къща, без преди това да сме положили стабилни основи. В този смисъл не е важно какви езици владеем, ако не сме наясно със самите похвати. При изучаването на всеки следващ нов инструмент (програмен език), тези похвати често са сходни, така че познаването им може да ни спести големи количества време и усилия.
Използвайте грешките си като средство за подобрение и придобиване на нови умения
В повечето случаи новите програмисти се страхуват от възможността да допуснат грешка. Притесняват се да не объркат нещо и да не „развалят“ цялата система. Само че не трябва да е така, защото истинското обучение на програмиста започва именно когато се изправи пред даден проблем.
В преподавателската си практика харесвам тези моменти на малки неочаквани счупвания, защото те карат студентите ми да помислят как да разрешат възникналия проблем, да потърсят решение. Затова препоръката ми към всички прохождащи в този бранш е да не се плашат от грешките си. Именно те ни помагат да израстваме по-бързо. Обезпокоителният момент настъпва единствено когато не се учим от тях или поемем голям проект, без да сме подготвени за възможните бъгове, които биха могли да възникнат.
Работете върху комуникационните си умения
Работата от вкъщи е лесна и удобна, а може би и често предпочитана от немалка част от джуниър програмистите. Но реално няма проекти, които да се реализират само от един човек и да носят реална стойност на бизнеса. Зад добрите решения стоят големи екипи от хора, където всеки има своята роля. Ето защо умението за ефективна комуникация с останалите членове на екипа е толкова важно. В практиката си съм срещал гениални програмисти, които в даден момент „засядат“ в развитието си, само защото не умеят да общуват с останалите. Вероятно именно това е част от уменията, които отличават професионалистите от успешните професионалисти.
Изучете в дълбочина минимум два езика
Препоръчително е един програмист да умее да работи добре с няколко програмни езика. Това умение е полезно с оглед похватите, за които вече стана дума. Работейки с повече езици, разполагаме с повече решения и познания върху похватите, които стоят зад инструментите. Колкото повече технологии познаваме, толкова повече виждаме, че нещата функционират по сходен начин. Това е решаващо за бързото усвояване на всеки следващ нов език.
Участвайте в open source проекти или създавайте сами такива
Включвайки се в оpen source проекти, от една страна, създавате ресурс, който другите като вас да използват за обучение и вдъхновение, а от друга – стимулирате себе си да направите възможно най-добрия код. Работещите по такива проекти се подкрепят взаимно, споделят обратна връзка и обменят знания и умения. Това представлява много ценен обучителен процес за всички.
Знаейки, че много хора могат да видят написания от вас код, се стараете да го направите четим и лесно разбираем. В хода на работата вие развивате и силно търсени на пазара на труда умения, които ви носят големи плюсове пред потенциални бъдещи работодатели. Наред с това получавате възможността да контактувате и комуникирате с хора на високи позиции, а така изграждате изключително ценни контакти. Познавам програмисти, които се присъединяват към водещи компании в индустрията в резултат от работата си по такива проекти.
Приемайте критиката като възможност за подобрение
Програмистите понякога имат склонност до такава степен да харесват кода, който са създали, че да се затварят за мнението на по-опитни програмисти и градивна критика. Само че именно тя често е единственият начин, по който можем наистина обективно да погледнем на грешките си и местата, на които можем да нанесем значителни подобрения.
Това прави код ревютата много важни за създаването на възможно най-добър краен продукт. Ако някой разработчик с повече опит от вас ви даде обратна връзка, е добре да ѝ обърнете внимание. Не се обиждайте от нея, а използвайте ситуацията да научите нещо ново и да подобрите вашата работа.
Опознайте бизнес страната на продукта
Понякога софтуерните инженери се вглъбяват в работата по кода и трудно успяват да излязат от собствената си рамка. Това не е добра практика. Програмистът трябва да познава добре продукта, който разработва. На първо място, следва да си отговорите на въпросите – защо е необходим този продукт, каква е компанията, която ще го използва, и как реално той ще допринася за нейната работа. Познавайки бизнеса, за който създавате проекти, можете да бъдете още по-полезни както за компанията и сферата, в които работите, така и за самите вас. Важно е да сме наясно защо правим дадено нещо и за какво ще служи то.