Калин Костов е JavaScript програмист в българската софтуерна компания Tick42. Завършил е „Европеистика“ в УНСС. В края на обучението си осъзнава, че това, което учи, не е неговата страст и се ориентира към ИТ сектора, който винаги го е привличал. Първоначално създава свой стартъп, а по-късно се насочва към програмирането и записва Телерик Академия.
„През цялото това време ми липсваше едно нещо. Имах идеите и визията, но нямах техническите умения, за да ги реализирам. Затова след дълго отлагане реших, че е крайно време да ги придобия“, разказва Калин. Само ден, след като е завършил Телерик Академия, става част от екипа на Tick42 и директно започва да работи в екипа на продукта Glue42. Като част от компанията, Калин създава JavaScript приложение, което улеснява и ускорява изпълняването на интеграционни тестове за Glue42 – основният продукт на Tick42.
Срещнахме се с Калин Костов, за да ни разкаже повече за работата си. Какви са основните отговорности, какви умения и качества са нужни, как се поддържа квалификацията и кои са най-големите заблуди за програмистите.
Какво е да работиш като Java Script Developer в Tick42?
Какви са основните ти отговорности на тази позиция? Компанията се разделя на две звена – продуктово и проектно. Продуктовото разработва нашия основен продукт Glue42, а проектното – софтуерни продукти за клиенти на компанията, които използват продукта, предимно от финансовата индустрия. Аз съм в продуктовото звено, в Glue42 екипа. Основното ми задължение е да разработвам тестова рамка. Тя позволява да тестваме нашия продукт, който е изключително комплексен. Причината, поради която създадохме тази рамка, е, че не съществува инструмент на пазара, който да ни позволи да тестваме нашите компоненти. Затова се наложи аз да създам нещо такова от нулата.
Как типично протича един твой работен ден? Работният ден при нас е плаващ, което е доста често срещано в софтуерната индустрия. Започва между 9:30 и 10:30 ч. Първото нещо, което задължително правя, е да си прегледам пощата и различните комуникационни канали. Проверявам какво трябва да направя, отговарям на имейли и планирам какво трябва да се случи. След това обикновено идва класическата scrum среща с екипа. Събираме се и всеки обяснява какво е свършил и какво му предстои, за да може да се стиковаме по-добре. След това продължавам да действам по задачите за деня.
Какви умения и качества са необходими за тази професия? Мога да ги разделя на три групи. Първото нещо, което според мен и според компанията е най-важно за един JavaScript Devloper, e той да има солидна основа в програмирането. Т.е. да познава основните концепции и парадигми за програмиране и да умее да решава проблеми. Когато един човек има добра основа в програмирането, независимо от езика или технологията, които използва, може да бъде гъвкав и да се адаптира бързо в нови технологии. А това е от ключово значение, тъй като нашата индустрия е много динамична и непрекъснато излизат нови неща. Програмисти без базови познания или такива, които са забравили как се решава проблем, могат да станат много добри в една технология, но трудно ще преминат в друга и ще се адаптират към бъдещи промени.
Второто изключително важно нещо според мен е желанието да учиш. Защото колкото и да е динамична и разнообразна една работна среда, ти използваш определени технологии и програмни езици в ежедневието си. И независимо дали искаш, или не, се специализираш в тях. Това обаче с годините започва да те прави все по-тесен и по-тесен специалист. Но ако имаш желанието да се учиш извън работа, започваш да добиваш една по-широка представа за цялата екосистема от различни технологии и езици около теб. Това те изгражда като по-цялостен програмист.
И третата група са т.нар. меки умения, т.е. да можеш да работиш с хора. Не е вярно, че програмистите седят в една тъмна стаичка, щракат по клавиатурата и нещата се случват. В реалния живот комплексните софтуери се разработва от екипи. И способността да можеш да се разбираш с хора, да бъдеш ръководен и ако се наложи, да можеш да водиш хора, е изключително важна. Защото само отборната работа ражда сериозния софтуер.
Как поддържаш знанията и квалификацията си? Аз имам много просто правило. И то е всеки ден, независимо дали е делник, или празник, да отделям от 30 минути до 1 час извън работа, за да уча нещо. Гледам видео курсове, чета статии, книги или просто разработвам някаква моя идея. Така бавно и напоително изграждаш допълнителни знания и го превръщаш в навик. Това според мен е основният ключ да се развиваш като всестранен програмист, без да прегаряш. Но за да се случи, трябва желязна дисциплина.
Какви са възможностите за развитие? Ще ги адресирам в две насоки – в Tick42 и като програмист. В Tick42 разнообразието е изключително голямо. Предвид двете звена, за които споменах по-горе, аз мога да избера да работя по вътрешен продукт, но мога да премина и към проектите. Друга голяма възможност за развитие при нас и нещо, което ме впечатли много, е размерът на компанията. Ние сме около 80 души, което за ИТ индустрията е нищо, но в моите очи това е един перфектен размер. Защото, ако се стараеш и влагаш много от себе си, ти позволява да получиш поле за изява. Същевременно мениджмънтът е по-близко до теб. Винаги има кой да те чуе, ако искаш да споделиш нещо. Това е огромен плюс, защото всеки професионалист обича да казва своето мнение.
А като програмист, възможностите също са огромни. Ако като човек предпочиташ сигурността на работното място в голяма или не чак толкова голяма корпорация, супер – качествените разработчици винаги ще бъдат ценени. Ако си по-скоро креативен и искаш да създаваш свои неща, този сектор ти дава и такава възможност. Ако пък искаш да си някъде по средата, можеш да станеш фрийлансър, който работи за външни клиенти и има свободата да го прави откъдето пожелае, без да има шеф.
Кои са най-големите заблуди за тази професия? Може би на първо място е, че трябва да си математически гений, за да бъдеш добър програмист. Всеки, който не се занимава с програмиране, а същевременно се интересува какво е това нещо, си го мисли. Което е голяма грешка, защото в реалния свят да пишеш код, означава да решаваш проблем на реални хора. И много рядко се налага писането на сериозни алгоритми и математически формули. А ако се наложи, те вече са измислени. Нужно е само да знаеш кога какво ти трябва и винаги можеш да го намериш. Вторият мит, който забелязвам, е свързан с хората, които имат малко повече опит в сферата. Заблудата е, че щом си научил нещо в началото, имаш някакво образование и 5 години опит, значи си много добър програмист. Не е така. Програмистите, които не се развиват и специализират само в една технология, забравят, че в основата на програмирането стои умението да решаваш проблеми. И големият мит е, че няма нужда да учиш извън работа, защото така или иначе го работиш 8 часа.
Как си почиваш? След работа обичам да гледам филм или нещо, което да разтовари мозъка ми и да не ме напряга мисловно. Много обичам планината, да катеря върхове, а зимата да карам ски. Може би ските най-много ме разтоварват от всичко. Когато си в планината, трябва да си концентриран в момента и ако не внимаваш, последствията са фатални. Също така много обичам да плувам и да тичам. Като цяло се старая да бъда активен.
Формулата за успех не е упорита работа и след това щастие. Обратното е - вижте интервюто със Силвия Гарсия, бивш Глобален директор на Института за щастие на Кока-Кола, която участва в първото събитие на Jobs.bg, Tech.bg и Economy.bg - EconomyForum
Вижте какво прогнозираха световни визионери и български бизнес лидери по време на първото събитие, част от EconomyForum, организиран от Economy.bg, Jobs.bg и Tech.bg