Loading...

"Добрият програмист се отличава с часовете, прекарани в решаване на проблеми" - Мартин Инджов, Delivery Manager

"Добрият програмист се отличава с часовете, прекарани в решаване на проблеми" - Мартин Инджов, Delivery Manager

IT светът е свят на иновации и неподозирани възможности. Ако се чудиш какво те очаква като специалист в сферата и не си сигурен дали tech-savvy природата ти ще може да се разгърне в тази област, заповядай зад кулисите. В рубриката ни Денят на IT Експерта те срещаме с успешно реализирали се курсисти на СофтУни, които ни споделят какво е да си в техните обувки. Днес тайни от кухнята ще ти разкрие Мартин Инджов:

Здравей, представи се на читателите ни!

Здравейте! Аз съм Мартин Инджов и съм софтуерен инженер. Първото си впечатления от програмирането изградих в 8ми (или 9ти) клас, в часовете по информатика, където си казах, че това е пълна глупост и никога няма да ми е от полза. Уви, няколко години по-късно, когато трябваше да взема решение накъде да поема след гимназията, избрах да се занимавам именно с програмиране. :D

Причините да избера СофтУни бяха две, и много прости – не исках да прекарам 4-5 години в университет, да натрупам тонове теоретични знания и да се намирам в почти същата ситуация както и в началото – безработен, само че с диплома. Втората причина беше, че по това време СофтУни тепърва се разрастваше, съответно NewsFeed-ът ми във Фейсбук беше пълен с техни реклами…

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

И ето ме тук сега. Шест години по-късно, заемам ролята на Delivery Manager (fancy титла, означаваща човек, който се занимава с всичко, свързано със софтуера, и не само :D) в Австралийска старт-ъп компания. Зад гърба ми стоят още 3-4 други компании, за които съм работил, а междувременно успях да допринеса и за модернизацията и дигитализирането на част от учебния процес в българските училища, чрез платформата СмарТест.

През какви обучения премина и как помогнаха на реализацията ти?

Започнах с безплатния курс Programming Basics, още втория срок на 12ти клас. В последствие, веднага след завършването ми, се преместих в София (тогава все още нямаше Ковид и имаше присъствена форма на обучение) и започнах с основната програма. Прекарах цяло лято в учене на масиви и цикли (определено беше лято като никое друго) на 4 различни езика за програмиране – това беше първият модул – Tech Module 3.0.

След него, успях горе-долу да се ориентирам с каква технология искам да се занимавам и продължих с JS Core 3.0 модула. До края на този модул, Наков беше един от основните ни лектори, което вярвам, че до голяма степен успя да запали интереса ми по програмирането още повече. След този модул, изкарах модула C# Databases.

Бях силно мотивиран да си намеря работа колкото се може по-скоро, съответно започнах да карам други 2 курса паралелно с този. Единият беше Java OOP, а другият Data Structures Fundamentals with C#. Седмица след като завърших последния курс, успях да си намеря първата работа, за която кариерният център на СофтУни всъщност ми помогна.

С какво е изпълнен денят на IT специалиста?

Денят на програмиста е много динамичен и, в зависимост от проекта или фирмата за която работи човек, той може да бъде много различен. Забелязал съм, че в продуктовите фирми има по-малко срещи, отколкото в така наречените сървиз-компании (разработват множество продукти за различни клиенти). Съответно моето наблюдение е, че в продуктовите компании програмистите работят повече с код (търсят бъгове, оправят ги, създават нови, добавят функционалности и т.н.).

Комуникацията и координирането с другите членове на екипа (програмисти, project manager-и, product owner-и, и т.н.) е изключително важна за разработката на един софтуер. Има много методологии за осъществяване на успешна комуникация и организация на работата. Ще изредя някои от тях, които вярвам, че могат да бъдат изключително полезни и извън софтуерния свят – Agile, Scrum, Kanban, LEAN.

В зависимост от начина на работа – отдалечено или на място в офис, комуникацията може да бъде в различен формат, но винаги се използва чат (MS Teams / Slack и т.н.) и се разчита на имейли, когато информацията трябва да достигне до повече хора.

Екипните срещи са ключова част от осъществяването на успешна комуникация, но трябва да се има предвид, че не винаги тези срещи са полезни за всички участници. Съответно е важно регулярно да се обръща внимание на важността на срещите и да се адаптират според нуждите на екипа. От друга страна, често има необходимост от срещи само между някои хора от екипа, било то за pair programming, даване и получаване на обратна връзка, менторинг, коучинг и т.н.

Обикновено, преди да се стигне до реалното кодене, трябва да се мине през всичките необходими стъпки за изясняване какво трябва да се ‘накоди’ и изчистване на потенциални пречки. Начина на работа – ремоут/ в офис също до голяма степен опрделя как протича ежедневието на един програмист. Когато си ремоут, имаш свободата (и задължението) да организираш деня си според нуждите и интересите си.

Именно тази свобода, може да създаде много затруднения в комуникацията. Аз самият в момента работя ремоут и не рядко изпитвам трудности да организирам деня си правилно. Смея да твърдя, че за навлизащи в ИТ сферата, работата от офис определено би била по-добрият и по-лесен вариант за развитие.

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

Решаването на проблеми със софтуера често не е свързано само с оправяне на ‘счупен код’. Често, голяма част от решаването на проблеми опира до комуникацията. Забелязал съм, че голяма част от хората в ИТ сферата са много по-толерантни един с друг в сравнение с други сфери.

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

Коя е най-удовлетворяващата част от работата ти?

Коденето е яко! Коденето на функционалност, която в края на краищата също така и работи, е още по-яко!

За щастие (или не, според-зависи човека), работата на програмиста не е само кодене. Често програмистите се занимават с различни извън-проектни дейности, като менторинг и коучинг на други колеги – общо взето тези с повече опит помагат на тези с по-малко опит да стават по-добри, или обратното – новаците помагат на старите кучета да си припомнят откъде са започнали и да преосмислят това, което правят.

ИТ сферата предлага много ‘развлечения’ непряко свързани с работата – тийм билдинги, посещения на офис на клиент (в друга държава), тенис на маса или джага в офиса. А какъв по хубав завършек на деня от успешно деплойната функционалност, която сте сътворили заедно с твой колега, и победа на джага? :D 

Сподели ни за постижение, с което истински се гордееш!

Трудно ми е да откроя конкретно постижение, за което съм супер горд.

Благодарен съм за всичко, което ми е дало програмирането, и на всички мои колеги и приятели, които са ми помогнали да стана по-добра версия на себе си. Смея да твърдя, че израстването на един програмист е изпълнено с множество възходи и падения, някои от които падения дори могат да те накарат да преосмислиш кариерата си и дали изобщо програмирането е за теб.

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

Какви качества притежава добрият IT специалист?

Освен, разбира се, добри технически умения, добрият програмист трябва да има търпение. Мотивацията за създаване на софтуер много често изчезва няколко дни след започването на работа по него. Създаването на софтуерен продукт обикновено е дълъг и сложен процес с много итерации.

Това означава, че преди изобщо да започнат разработка на нов софтуер, екипът от програмисти ще трябва да постави стабилни основи, на които да могат да го изградят – трябва да се уточни каква е целта на продукта, какво точно трябва да се постигне, да се разберат как ще работят заедно, кога и какви срещи ще имат, как ще взимат решения и т.н. Едва след като се установят тези норми, програмистите могат да започнат реалното ‘кодене’.

Понякога, може да отнеме повече от година или 2, за да може някой да използва продукта. Това е доста дълъг период. Именно тази продължителност би могла да накара програмиста да изгуби интерес в постигането на тази далечна цел. Затова е важно добрият програмист да може да намира различни възможности за учене и развитие в дадения проект – било то да менторира и обучава останалите в екипа (или обратното), да използва най-новите технологии, или пък да изпробва нов вид архитектура.

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

Какъв практически съвет ще отправиш към всички младши специалисти?

Обикновено, това което отличава добрия програмист, са часовете, прекарани в решаване на проблеми. Колкото повече проблеми решавате, толкова по-компетентни и сигурни ще бъдете във взимането на бъдещи решения.

Програмата на СофтУни е доста богата от гледна точка на задачи, с които можете да си блъскате главата. Именно тези часове, в които се мъчите да измислите решение на проблема, са най-важните часове за вашето развитие. Веднъж придобили това умение – да не се отказвате и да опитвате, докато не успеете, only sky is the limit.

---

Ако и ти си готов да вложиш часовете си в решаване на проблеми и практически казуси, кандидатствай още днес за програмата по Софтуерно инженерство в СофтУни. Още любопитни моменти от живота на софтуерните инженери ще откриеш в блога, а за да споделим и твоята история там, пиши ни на content@softuni.bg.

Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.