17 септември, 2019

Красимир Цонев е програмист, който има какво да сподели като знания и го прави в блога си, в подкаста си, в книгите си, а понякога и на конференции, на които е поканен като гост лектор. Вижте какви са неговите основни правила за добра работа и успешно презентиране на сложни технологични теми.

Кога за първи път се запали по програмирането?

Тук може би ще изненадам доста хора, но не съм от тези, които на пет години са си играли с Правеца на татко и са писали dirver-и за принтера вкъщи. Бях в гимназията, когато прекарах няколко седмици, четейки как да сменя background цвета на уеб линк. Оказа се, че през цялото време съм чел за Java, а не за JavaScript. Та предполагам това е първият код, който съм писал. HTML ми се стори доста интересно нещо. Малко по-късно същата година с един съученик направихме сайта на гимназията. Още помня колко много научих от него (от съученика, не от сайта) и това като цяло ме запали по програмирането.

Какви програмни езици и технологии предпочиташ да използваш?

Обичам да работя по потребителски интерфейси. Харесва ми да пиша и back-end код, но като цяло работата в browser ми е по-интересна. Писал съм доста години ActionScript2/3 в Flash/Flex среда, тъй като навремето това беше платформата за по-сложни и интерактивни неща. След това бавно всичко премина към JavaScript и в днешно време ползвам преди всичко този език. Отчитам като минус, че през годините не прописах повечко езици. Работил съм с C#, VisualBasic и добре познатото PHP, но не съм се занимавал с Python или Ruby например.

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

„Hype“-ът по коя технология не можеш да си обясниш?

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

По какво работиш в момента? Какви езици и технологии използваш?

Всъщност тук ще използвам възможността да споделя един от проектите върху които работя в свободното си време. Казва се IGit и е клиент за менажиране на GitHub pull request-и. Написах го защото code review-тата са много важна част от ежедневието ми, а интерфейса на GitHub не помага много, когато броят на pull request-ите е голям. Беше ми много трудно да следя дискусии, случващи се на различни места. Самият процес на code review изисква итерация върху предложеното решение. Пишат се нови коментари, пускат се нови commit-и и ми беше трудно да вляза в правилния контекст, за да оценя работата на колегите ми. Отделно исках да експериментирам с GraphQL и новото React hooks API. GitHub имат точно това голямо GraphQL API, с което исках да работя, а проектът е достатъчно сложен за да задълбая по-дълбоко в React hooks.

Android или iOs? Защо?

iOS. Защото нещата просто работят. 🙂 Шегата настрана – не съм ползвал Android досега и не знам как е. Първият ми smart телефон беше iPhone 4, който още пазя и ползвам за едни конкретни цели (зомбиране на децата в 3-часов полет например).

Как се появи NADCAST и кои епизоди определяш като най-силни?

Идеята за подкаста дойде след една малка конференция, на която бях поканен. Карайки обратно към Варна се замислих, че времето прекарано с хората на това събитие хич не ми беше достатъчно. Реших, че трябва да намеря начин да си говоря с тях по-често. Подкаст формата ми позволява да правя това и мисля, че има някаква обществено-полезна функция. Затова и повечето епизоди са на по meta тематика т.е. споделяне на опит по конкретни въпроси, а не толкова фокус върху технология. Има много канали за подобни дискусии. А относно това кой епизод е най-силен, ще избера политически коректния отговор и ще кажа, че всички до един си заслужават слушането!

Слушат ли дивелъпърите подкасти?

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

Какво се промени в метода ти на разработка днес спрямо първата ти работа през 2007 г.?

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

Ти си презентирал не само у нас, но и в Италия, Латвия, Румъния, Великобритания, Испания, Турция, Швейцария, Австрия. Кой е твоят ПРО тип за успешно презентиране на тема, независимо от сложността й?

В Лондонския градски транспорт от година-две върви една кампания, която се казва „See it Say it Sorted“. Опитват се да накарат хората да съобщават за съмнителни хора, предмети или въобще ситуации докато пътуват. Тези три фрази за мен са донякъде отговор на вашия въпрос. Ако човек ще прави презентация, трябва да отдели достатъчно време на слайдовете си. Да се запита те как са като брой, текстът чете ли се, трябва ли да има текст въобще, дали пък не прекалява с анимираните гифове. Слайдовете не се правят в последния момент. Има адски много неща за които да мислите преди да излезете на сцената. Това е „See it“ частта. Тоест добре е да видите слайдовете си направени и да ги изпипате докрай.

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

Как се породи нуждата от книгите, които си написал до този момент? Планираш ли нова?

Това с книгите стана малко случайно. В смисъл, че преди да напиша първата никога не съм си мислел да пиша книга. Предложението от издател, обаче, дойде и реших да опитам. Проблемът на първите ми две книги е, че много бързо остаряха и станаха безполезни. Те са на тема Node.js, а самата технология се промени адски бързо за много кратко време. За третата книга наистина имах какво да кажа. Тя е сравнително актуална и днес понеже се отнася за design pattern-и. Имам идея за следващата ми книга – темата,  която съм замислил се върти около работата от разстояние и съпътстващите я предизвикателства.

Да очакваме ли нови проекти от теб?

Рядко оставам без идея. Почти винаги работя по нещо, та ако на някой му е интересно, може да ме следи в Twitter (@KrasimirTsonev). Там обикновено пиша за нещата, които публикувам.

Интервюто проведе Вяра Стефчева.

Тагове: , , , , , ,