Този сайт използва бисквитки (cookies). Ако желаете можете да научите повече тук. Разбрах
Регистрация

Професия: Full Stack разработчик

За професията разказва Росен Симов, ръководител "Разработка на софтуер" във Fanbooster
Share Tweet Share
Снимка

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

[Капитал] Фотограф: Надежда Чипева

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

За разлика от Front-end и Back-end програмистите Full Stack хората могат спокойно да "разговарят" както с интерфейса, така и със сървъра, както и понякога да общуват директно с клиента. От тях се очаква да работят свободно с бази данни, PHP, HTML, CSS, JavaScript и всичко между тях. Това не означава, че Full Stack са спецове по всичко, а по-скоро, че имат поглед върху всички аспекти на софтуерните технологии, непресъхващо любопитство и способност да намират и решават, а често и да предвиждат "бъговете" в системата. По дефиниция няма как да започнете директно от позиция Full Stack – трябва да бъдете търпеливи и да извървите постепенно стъпките до нея, трупайки необходимите знания. За тази цел можете да тръгнете от Back-end разработчик или друга по-тясна дейност. А от своя страна Full Stack позицията ви отваря вратата към CTO (от англ. Chief Technology Officer – главен технологичен ръководител) в голяма корпорация или, защо не, CEO на собствен стартъп.

Повече за професията разказва
Росен Симов, ръководител "Разработка на софтуер" във Fanbooster
Росен Симов има средно техническо образование с направление "Софтуер" в Технологичното училище "Електронни системи" към Технически университет (ТУ) - София. Завършва бакалавър "Компютърни системи и технологии" в ТУ - София, след което разширява знанията си с магистърска степен "Софтуерни технологии" в Софийския университет "Св. Климент Охридски". Започва да работи по специалността си още от първи курс, а в момента е ръководител "Разработка на софтуер" в норвежката IT компания Fanbooster, като работи по технологичното развитие на компанията и на екипа в София.

Моята професия
Най-общо, Full Stack означава да разбираш какво се случва в целия жизнен цикъл на даден софтуер. Когато нещо спре да работи, ти трябва да можеш да откриеш в коя част от веригата e проблемът. Когато пък става въпрос за създаване на съвсем нов продукт от нулата, трябва да имаш визия още от самото начало какъв ще е крайният резултат. Например задачата ти е да направиш сайт. В този случай от Full Stack човека се изисква да знае колко и какви са компонентите, които стоят зад него – бази данни, сървър, сървърен език, Front-end език, приложно-програмен интерфейс (API), външни услуги и прочее, да си наясно как всички те работят като един Stack (т.е. набора от технологии, които изграждат една софтуерна система) и в крайна сметка да ги комбинираш така, че да стигнеш до финалния продукт.

В големите фирми е по-трудно да си Full Stack, защото там всеки си има определена задачка и след като я приключи, я предава на следващия по веригата. За сметка на това професията е много подходяща и търсена в стартъпите, където малко на брой хора трябва да съвместяват много функции, а не да са специализирани само във Front-end (интерфейса на програмата) или Back-end (сървърната част на софтуера). Когато си Full Stack, трябва да мислиш както за сървъра, така и за клиента. От друга страна, колкото повече напредват технологиите, толкова по-трудно е да останеш Full Stack специалист и затова е по-хубаво да се специализираш в дадена технология, като примерно Android или iOS.

Моето образование
Завършил съм Технологичното училище "Електронни системи" към Техническия университет в София. От 8-и клас се занимавам с програмиране, т.е. много преди да стана студент. Хареса ми и след средното продължих в Техническия университет в София със специалност "Компютърни системи и технологии". После записах магистратура по софтуерни технологии в Софийския университет "Св. Климент Охридски". Тя беше много по-различна от бакалавърската, много по-модерна, по-близка до бизнеса и до реалността в софтуерните науки. Учихме процеси, методологии и технологии, дизайн и т.н., които в Техническия не се учеха тогава. Това ми помогна да придобия много ценни знания, които ми послужиха после в работата. Като цяло съм много доволен от образованието си.

Моят път дотук
Започнах да работя в IT фирмата Tara Soft веднага след като станах студент. Там прекарах около 4-5 години. През това време съм работил по над 30 - 40 проекта – правил съм всичко по тях както в браузъра, така и на сървъра. След 1-2 години започнах да разбирам повече. Страшно съм благодарен на тогавашния ми шеф Георги Балджиев - имах голяма свобода да правя много неща, да експериментирам, да се уча и развивам. Именно там се оформих като Full Stack.

По-късно се преместих в Komfo – българско-датска софтуерна компания, която се занимава с разработване на софтуер за маркетинг в социалните мрежи. Работих не точно за тях, а за един от техните партньори – Fanbooster. След време двете компании се разделиха и аз останах да работя за Fanbooster, където съм и до днес. През лятото на 2012 г. стартирах българския офис на Fanbooster заедно с още един мой колега. Бяхме само двамата – представете си програмисти, които нищо не разбират от ръководене на компания. Тук всъщност започна преходът ми от чисто програмиране към придобиване на повече отговорности, включително и управленски функции. Към днешна дата вече сме 10 души, като аз изпълнявам ролята и на CTO, т.е. занимавам се с намирането на най-подходящите технологични решения, но и участвам в развитието на екипа, търсенето на нови хора и т.н.

Моите задачи и отговорности
Като Full Stack разработчик трябва да имаш поглед върху целия софтуерен продукт, върху който работиш - да го тестваш и виждаш какво може да се промени или подобри, какво работи и какво не и съответно да даваш предложения както на другите хора в екипа, така и на клиента. За тази цел е хубаво да се поставяш на мястото на клиента, да имаш бизнес мислене и оттам да изхождат всички твои решения. Много е важно взаимодействието с останалата част от екипа. Full Stack човекът комуникира с по-тесните специалисти в дадените области – примерно дизайнери, Back-end и Front-end разработчици, но и с маркетинга и бизнеса.

Снимка

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

[Капитал] Фотограф: Надежда Чипева



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

Хубаво е и да си малко UX designer (от англ. User Experience – потребителско преживяване), да знаеш какво е и как работи CSS (Cascading Style Sheets – език за описание на стилове, който най-често се използва заедно с HTML) и какво е Less, наследникът на CSS. Нужно е да имаш чувство за дизайн и когато нещо е грозно, то да те дразни и да искаш да го промениш, а не да го оставяш да си съществува просто така. Нужно е да можеш да взимаш отношение, да търсиш помощ.

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

Моето удовлетворение
Чувствам се удовлетворен, когато успея да събера парчетата от пъзела на труда си и виждам, че крайният продукт работи, че други хора го използват и са доволни от резултата, който той им носи. Когато си Full Stack, ти правиш нещо от - до, доста по-креативно е, отколкото да изпълняваш предварително зададени стъпки.

Заплатата
В момента стартовите заплати в IT брашна стават все по-атрактивни. Зависи какво искаш да правиш и колко можеш да дадеш от себе си. В областта на информационните технологии, ако стартовата заплата е 1000 лв., тя може да се увеличи няколко пъти в относително кратък период от време. Това ще стане обаче и ако ти даваш няколко пъти повече. Така или иначе понятие като младши Full Stack не съществува, понеже няма как да познаваш всички технологии от самото начало - трябва да започнеш от нещо специфично (като Back-end например) и да надграждаш, като се учиш и питаш хората около себе си.

Моите източници на информация
Използвам много Twitter за технически новини – той е изключително полезен, защото всички софтуерни продукти, които използваме, си имат профили в мрежата, откъдето е лесно да се запознаеш с нововъведенията в тях. Ходя често на конференции не толкова за да науча нещо конкретно, а за да чуя новини и вече в личното си време да се разровя повече. Много е важно да знаеш, че даден инструмент или технология съществува в пространството и при нужда да можеш да го ползваш.

Използвам много и GitHub (уеб базирана услуга за разполагане на софтуерни проекти и техни съвместими разработки върху отдалечен интернет сървър). Тук стоят изходните кодове (source code), т.е. сборът от инструкции, написани на разбираем за човека език за програмиране. Много чета и документацията на даден продукт, за да разбера повече за него. Не следя блогове, когато търся нещо конкретно – може по веригата на търсене на информация за някоя новост да стигна до дадени блогове, но целенасочено – не. Гледам много клипчета и туториъли в YouTube – по този начин лесно навлизам стъпка по стъпка в начина на употреба на определена технология. Там има много примери с код и си даваш сметка бързо и лесно за какво става въпрос.

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

Моят съвет към бъдещите специалисти
Моят съвет е, когато започнете работа, да слушате колегите ви какво си говорят, да се опитвате да разберете техните проблеми и да им помагате, с каквото можете. Ако са взели някакво решение, питайте ги защо са го взели. Ходете на обяд с тях, досаждайте им, покажете им, че се интересувате и че правите всичко възможно, за да научите повече. В никакъв случай не стойте със слушалки пред компютъра по цял ден.
Търсени умения
- работа със системна инфраструктура – хардуер, операционна система и пр.
- разбиране, създаване, използване и задаване на база данни
- API/Back-end създаване на код на един или повече езици – Ruby, Java, Python или др.
- създаване на Front-end код на един или повече езици – HTML, JavaScript, CSS или др.
- работа с клиенти
- създаване на технически спецификации и описване на архитектурата
- водене на документация по проекта
- управление на времето и сроковете
- владеене на Agile/Scrum/Kanban
- комуникационни и презентационни умения
- лидерски умения

*Статията е част от специалното издание на "Кариери" - "Моята кариера 2017: Непознатите IT & инженерни професии".


Share Tweet Share
още от тази рубрика:

Реклама

Реклама

© 2003-2017 Икономедиа АД съгласно Общи условия за ползване ново. Политика за бисквитките ново . Поставянето на връзки към материали в сайтовете на Икономедиа е свободно. Уеб разработка и дизайн на Икономедиа. Сайтът използва графични елементи от famfamfam + DryIcons. Някои снимки © 2017 Associated Press и Reuters. Всички права запазени.
Действителни собственици на настоящото издание са Иво Георгиев Прокопиев и Теодор Иванов Захов.
mobile Към мобилната версия на сайта

Бизнес: КапиталКариериБизнесРегалГрадът.bgОдитFoton.bg

Новини: ДневникЕвропа

IT: IDG.BGComputerworldPC WorldCIONetworkworld

Развлечение: БакхусLIGHT

На английски: KQuarterly