Заглавието, което сложих, е далеч от оригинално. По него се трудят (някои предполагам доста усилено в момента, че срокът е до утре) няколкостотин участника в софтуерната академия на Телерик като структурата му е предварително зададена по абзаци с насочващи въпроси. Много е трудно да си оригинален в такива тесни граници, за последователност и гладкост на изказа пък е почти невъзможно. С тези уговорки публикувам своето творение. Огромно е за блог пост, но пък е готов материал, който не мога да изпусна да сложа тук. Отделно на всичко може да се окаже полезен като вдъхновение на някой изпаднал в творческа криза колега. Приятно четене!

Моят път към професията “софтуерен инженер”

Автор: Калоян Асенов Асенов, студентски номер xxxxxxx

             Един от любимите ми цитати е: „На най-важните житейски кръстопътища няма никакви пътни знаци.“ Авторът му е Чарли Чаплин, а посланието му безспорно обгръща и избора на професия. Това есе е подробна извадка от мирогледа ми, който ще определи поведението ми на този кръстопът.

Представяне

            Името ми е Калоян, граовец с корен и откъм най-източните части на Шоплука, по образование съм инженер по Комуникации. В момента довършвам магистърската си дипломна работа и закърпвам бюджета си с почасова работа с доста смесени функции в отдела за GPS  проследяване на Датекс.

            Първият ми досег с програмирането беше в гимназията, където работехме с неадекватни машини под ръководството на некомпетентен учител. Спомням си, че пишехме програмчици на Турбо Паскал, с които вграденият високоговорител на компютъра пищеше на различни честоти. Особено ми е мил споменът, когато имахме разногласие с учителката ми по информационни технологии. Тя твърдеше, че не е възможно да се дели в двоична бройна система и да се записват дробни части. Наложи се да показвам противното на дъската пред целия клас, което ми донесе уважение, но за съжаление не и развитие впоследствие. Подтикнат от романтични илюзии се насочих към хардуерно насочена специалност в университета, Телекомуникации, където имах два сериозни курса по програмиране със С първата година. Последваха два бутафорни курса по C++ и Java за украса на дипломата, доста Matlab за развиване на мисленето, никакви пазарно-ориентирани умения и естественият отговор на това в лицето на участието ми в Академията на Телерик. На това си обучение гледам като на рядка възможност да се сдобия с професия, подплатена с реални умения, а мястото му в приоритентата ми таблица е непосредствено след здравето и семейството ми.

Професията на софтуерния инженер

Да си софтуерен инженер означава да си ангажиран с дизайна, създаването, внедряването или поддръжката на софтуерни продукти. Програмистите създават софтуерния продукт; QA инженерите отговарят за тестването му и качествения контрол; софтуерните специалисти по поддръжката обслужват клиентите по време на жизнения цикъл на изделието; front-end специалистите разбират от уеб дизайн и уеб програмиране и вземат предвид при работата си гледната точка на потребителското преживяване; back-end разработчиците създават логиката на уеб приложения като например уеб-инсталатора на DevCraft на Телерик; уеб програмистите имат богато портфолио от статични интернет страници до сложни уеб приложения, като работата им е с предимно технически характер, за разлика от тази на уеб дизайнерите.

            Софтуерните инженери не са само програмисти, защото етапите при разработката са няколко и реализацията, която се осъществява чрез прогрмиране, е само един от тях. Програмистите кодират програмната логика на език за програмиране до изпълнима от компютъра програма. Бизнес аналитиците проучват пазара и задават изискванията за софтуерните проекти. Системните архитекти са програмисти с дългогодишен стаж, които по спецификации за програма избират технологии, с които тя да се реализира, и задават рамките за работа на разработчиците. QA инженерите тестват ръчно програмите или пишат автоматизирани тестове, откриват бъговете в тях и имат грижата програмата да стигне до потребителите максимално изчистена от грешки. Специалистите по поддръжката на софтуера са буфер между разработчиците и клиентите по време на пазарната експлоатация на продукта, обикновено те правят демата за обучение на потребителите. Системните администратори внедряват софтуера в на физическите машини, обслужват хардуера и софтуера, администрират локалната мрежа. Database администраторите администрират бази данни. Ръководителите на екипи разпределят работата в екипа, организират го, следят сроковете и напредъка по проектите, мотивират и амбицират екипа си.

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

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

Моят старт в софтуерното инженерство

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

            Съвсем естествено е да я подплатявам с допълнителни материали от интернет и специализирана литература, за да отговоря на високите стандарти на домашните и изпитите в нея.

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

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

Моето професионално развитие

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

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

            Най-голямата стъпка в тази посока е включването ми в Академията на Телерик, а в подкрепа на горните ми думи е успехът ми в нея. Отпреди това единственото нещо, което има стойност са десетките хиляди редове код, които съм изписал преди да се включа в нея.

За мен е важно да стана успешен софтуерен инженер и ще дам всичко от себе си

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

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

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

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

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

            Периодът на интензивно обучение в Академията на Телерик е една година. Постоянните занимания са предпоставка за успешното ѝ завършване и осъзнавам добре това. Кампанийното учене преди изпит и ударното правене на домашните в последния момент е често срещана грешка, но и нещо, което ми е чуждо. Смятам, че е оправдано да се пропуска ден или два без занимания само при положение, че предварително е свършена работата за тези дни.

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

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

            В днешно време не се сещам за ултраконсервативна професия, където ученето през целия живот да не е застъпено. При софтуерните инженери динамиката е по-ясно изразена. Смятам че съм в състояние да я следвам, още повече че почти целият си съзнателен живот се образовам (17,5+ години) и повишавам квалификацията си.

            Ще си позволя да цитирам един много популярен афоризъм на Конфуций: „Избери работата, която обичаш, и тогава няма да бъдеш принуден да работиш и един ден през живота си.“. Ето защо не смятам, че ще ми тежи овладяването на нови технологии и осведомяването за новостите и тенденциите на развитие в професията.

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

За мен е важно да стана изключително добър софтуерен инженер, супер професионалист

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

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

            Не по-малко трагично е застиването във времето с придържането към познатото. Пазарната логика не позволява на субекти, които не се развиват и не са иновативни в работата си, да се задържат в реалната икономика. За един софтуерен инженер това означава да изпробва новостите в професията си и да ги следи непрекъснато.

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

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

За мен е важно да съм кадърен и отговорен и на мен да може да се разчита

            Отново ще прибегна до помощта на по-мъдрите в лицето на Конфуций: „Мъдрият човек не прави на друг това, което не желае да бъде сторено на него.“. Това е добре известната истина, че трябва да се отнасяш с другите така, както очакваш те да се отнасят към теб. Ето защо е от фундаментална важност да се спазват уговорки и часове, да се изпълняват ангажиментите и да се подхожда отговорно към междуличностните отношения. Това не е запазено убеждение единствено за софтуерните инженери и е нещо, което смятам да прехвърля и в бъдещата си работа.

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

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

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

За мен е важно каквото правя, да го правя качествено

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

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

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

            Изпитването на детайлите в един код е резултат от вътрешна нагласа и мотивация от една страна, много стаж и рутина от друга. Във властта ми са и двете, като по мотивацията не виждам поле на действие, а мога активно да работя по трупането на опит.

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

За мен е удоволствие да работя в екип и да помагам на другите

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

            От добрите междуличностни взаимоотношения произтича и завиден работен синхрон, а те се постигат на основата на взаимното уважение и разбирателство.

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

            Последното съждение може да се прехвърли и върху обществото като цяло. То изживява своя информационен ренесанс, където широкоят достъп до информационни ресурси революционизира производителността на човечеството. Смятам, че свободното споделяне на данни и ноу-хау е катализатор за един по-рационален и комфортен за живеене свят. А помощта по принцип – „ключов камък“ за благото на обществото.

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

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

Заключение

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

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

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

            Имам един голям недостатък, а той е че иамм склонността да тълкувам думите на останалите не спрямо техният първоначален замисъл, а спрямо собствениете си разбирания. А обикновено съм силно самокритичен и доста максималистичен. Ето защо за мен супер професионалист на световно ниво означава да бъда в топ 1000 (примерно) на софтуерната индустрия. А това е нереалистична цел. Познавам обаче достатъчно софтуерни инженери, с които сме съученици, колеги от университета и си знаем както се казва и кътните зъби, работещи в най-сериозните софтуерни компании в България. Знам как са се справяли те и аз с едни и същи предизвикателства, работили сме екипно. От това, което знам, мога най-отговорно да твърдя, че бих се справил не по-зле от тях със задълженията си, а защо не и по-добре. И това смятам е по-добър отговор на въпроса от каквито и да е празни декларации, замаскирани със кухи фрази.

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

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

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

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

 

Leave a Reply

Your email address will not be published. Required fields are marked *

7 + 3 =