Чудите се дали си струва да опитате с програмирането? Ще се опитам да ви отговоря. Тази Дигитална история не е като другите. Ако имате опит в тази област или пък тя ви е безинтересна, не губете време със следващите редове. Те са за хората, които се чудят дали пък не си струва да опитат с тази толкова перспективна (и яка!) професия.
Айти секторът изживява разцвет, особено на фона на икономиката ни като цяло. Откроява се не само с доходите, които осигурява, но и с условията, с огромното търсене, със средата, която създава. С възможността да работиш над проекти от глобално значение. Да, понякога му е трудно да си „говори“ с останалите части от обществото. И все пак той е магнетично място за бъдеща кариера.
Аз реших, че ще ставам програмист на 33, вече имах сериозен опит в друга професия. Има толкова много неща, които бих се радвал някой да ми каже в онзи момент, когато взех решението да се пренасоча. Именно тях сега ще се опитам да събера тук.
Струва ли си да опитате в тази професия? Дали програмирането е за вас? Какви знания и умения ви трябват, за да започнете? Кога е късно? Какви са основните решения, които трябва да вземете в началото? Как да изберете език за програмиране? Къде да го учите? Как да си намерите първа работа? Кои са другите професии в тази сфера, към които може да се насочите?
Ще ви дам личните си, честни отговори. И ще съм безкрайно щастлив, ако отговорите са полезни дори само на един читател, който да се реши на голямата крачка…
Нямам претенцията на абсолютна истина, всичко, което ще споделя, е моят опит до момента и през него ще се опитам да дам своите отговори. Със сигурност много от тях зависят от гледната точка на всеки, когото ще попитате.
За мен ли е програмирането?
Казано откровено, най-важната причина да напиша тази тема е отговорът именно на този въпрос. И само в него съм напълно и безусловно сигурен:
Няма как да знаеш, ако не опиташ.
Казвам ви го като човек, който цял живот се е занимавал с журналистика и е бил воден от хуманитарни увлечения. Който до доста напреднала възраст се е държал далеч от математиката, а и тя от него. За първи път се докоснах до програмен код на 33, а на 34 започнах първата си работа като програмист след 14 години в напълно различна сфера.
И като споменахме математиката… Да, наистина, обратно на интуицията, човек може да работи успешно в тази сфера и без да има познания по нея над нивото от 5-и клас. Разбира се, има специфични проекти, в които тя е важна, области от програмирането, за които е незаобиколима. Но тя далеч не е задължителна и дори нужна за огромна част от работните позиции.
За разлика от две други неща, които обаче не са области на познанието, а качества. Желанието непрестанно да учиш нови и нови неща, което е задължително в толкова динамичен свят като този на информационните технологии.
А освен него – и логическото мислене, умението да вникваш в проблемите, да ги разделяш на по-малки и да ги решаваш.
И ето, парадокс: оказва се, че не математиката, а езиковите знания са тези, които са задължителни. Защото всичко в тази сфера се случва на английски и е важно да го владеете, за да започнете. Разбира се, не се очаква да сте прочели целия Шекспир в оригинал, нито да познавате терминологията в сферата, достатъчно е да умеете да комуникирате и четете с разбиране на базово ниво.
Познавам немалко архитекти и юристи, преминали към тази професия, дори тенис инструктор и музикант. Хора, които дори над 50 за първи път са видели компютърен код. Чувал съм за бивш пилот на самолет, лекари, бивши полицаи.
Как да разберете дали е за вас? Единствената възможност е да опитате – онлайн има много въвеждащи, базови курсове, чиято идея е именно да ви покажат какво е програмирането. По този начин започна и моето приключение – с едномесечния базов курс на СофтУни, подобни начинания можете да откриете на много места.
Как да започна?
Решили сте да опитате именно с професията на софтуерното инженерство? Поздравявам ви, аз не я практикувам чак толкова отдавна (опитът ми е около 4 години), но искрено си я харесвам.
Наистина, за да не сте разочаровани, определено ви препоръчваме да отделите известно време за някакви начални курсове, с които да проверите дали това е за вас. Важно е и да случите на човек, който ще ви запали, както е с всяко друго ново знание. Затова, ако нещата не потръгнат, помислете дали проблемът не е в преподавателя, курса, начина на преподаване или нещо друго.
Но щом се убедите, че е интересно, пътищата са много. Най-вече зависят от това колко време може да отделите и как учите най-добре. Много от софтуерните специалисти, които са минали по моя път, ще ви кажат, че висшето образование в тази сфера не е необходимо, всичко нужно може да се научи с курсове. И това е вярно, но само отчасти. Ако искате да се чувствате уютно, да напредвате по-бързо в непозната материя. Да имате по-широка база, над която да градите, със сигурност висшето в тази посока е богатство (особено от достатъчно качествен университет).
Само че… уви, не всеки може да си позволи 4 години учене. Оттук нататък прекрасно решение са академиите.
Колко време ще ми отнеме?
Моят път започна в СофтУни, където има 4 основни пътеки за програмисти, в зависимост от технологията, с която ще се занимават (ще стигнем и до разликите между тях). Така или иначе, пътеките отнемат средно година и половина, след което може да се каже, че имате професия и достатъчно знание, за да започнете.
В школата на Телерик например, пътеките са много по-интензивни, някои са от само 6 месеца. Ще научите много за по-кратко, те са прекрасно решение, но ако можете да си позволите да отделите време само и единствено за учене. Което в СофтУни поне по моя опит не е задължително, доколкото онлайн курсовете изкарах, работейки по същото време като журналист с току-що родено бебе на ръце.
Все повече са и другите академии, които дават начален старт, със сигурност си струва да проучите добре, да разпитате приятели и да усетите коя е вашата. Или просто да импровизирате.
Ако ви притеснява липсата на диплома, немалко от академиите вече са лицензирани като центрове за професионално обучение, така че документите им притежават и напълно формална, официална страна.
Вероятно има и хора, които са напълно самоуки, подготвяли са се само с онлайн курсове, но аз поне все още не съм срещал такъв програмист. Да, онлайн видеата са изключително ценна възможност бързо да навлезеш в определена технология, но за самото начало и базата не ми се струват добра идея.
Курсовете в академиите, ако са направени както трябва, дават необходимите знания, за да си намерите първа работа. Разбира се, това не е краят на ученето. На мен например ми беше доста неуютно да се озова в нова сфера с толкова малко базови познания и през следващите години „си причиних“ още над 30 курса в същата софтуерна школа, включително и в области, в които знанието ми беше абсолютно ненужно.
Бъдете готови да продължите да учите и след като намерите първа работа. В този случай вече видео уроците в големите платформи могат да се окажат полезен и достатъчен ресурс. С цялата условност в зависимост от това в каква посока смятате да продължите.
Какво е нужно да знам преди това?
О, това ще е доста кратък отговор. Единствено, че човек не бива да се предава лесно. Всяка от формите на обучение, за които стана дума, е подготвена така, че да приеме човек, започващ наистина от нулата.
Кой език за програмиране да избера?
Много хора отделят доста време, за да изберат конкретната технология, която ще учат. В това има резон, но и не е чак толкова важно, доколкото базовите познания от първите курсове на учене в много сериозна степен се припокриват, особено при най-разпространените решения.
Така или иначе, изборът на език за програмиране е задължителен, все с нещо трябва да се започне. Със сигурност класическо решение, особено ако искате да учите по-бързо, са 5-те най-разпространени езика днес на българския пазар – JavaScript, C#, Java, Python и PHP. Който и от тях да изберете, няма да сбъркате, неслучайно те са най-широко застъпени в програмите, които предлага академиите. Изборът на всеки от тях е доказано добра идея, защото пътят е утъпкан, школите имат сериозен опит с тях и търсенето е дългосрочно. Всички те произлизат от общо семейство – на езиците, базирани на C, така че доста си приличат като логика и дори като външен вид.
Имаме късмета да работим във времето на езици за програмиране, които са толкова разбираеми, че почти „говорим“ на компютъра на английски на фона на решенията от преди десетилетия, те наистина не са били благосклонни към програмистите.
Разбира се, не е грешка да се спрете на някое по-рядко срещано решение, например доказаните C и C++ или по-новите, като Go или Swift. Много е вероятно това да ви се изплати, но със сигурност за тях се изискват малко повече усилия и специфични курсове.
Така или иначе, добре е да се уверите, че езика, който ще изберете, е достатъчно търсен. Добро решение според мен е да погледнете на таблото с обяви за работа на dev.bg.
Ако продължавате да се чудите, винаги можете да намерите онлайн ресурс, който да сравни основните плюсове и минуси на езиците. Важно е и дали вече сте се насочили към конкретната област, в която мечтаете да работите. Ако например искате да създавате уебстраници, сложни приложения, каквито днес са сайтовете, логичното решение е JavaScript. Така се насочвате към професията на фронтенд специалист. Ако ви влече по-скоро светът на изкуствения интелект, то Python е очевидният избор.
Прекрасно е и ако успеете по някакъв начин да се насочите към област, в която имате личен интерес или предходен опит, дори да няма нищо общо със самия софтуер – нещата се получават най-добре тогава, когато работата срещне удоволствието.
Аз например избрах фронтенд технологиите поради две причини – от една страна това беше най-кратката пътека за учене, а не можех да си позволя друго. От друга – харесва ми, че във фронтенда създаваш нещо, което виждаш. И което по логика доста прилича на създаденото на хартия.
Как да уча?
Нека отново кажа, че моят опит е от СофтУни, в университетите общо взето нещата са класически, независимо дали става дума за софтуерно инженерство или която и да е друга дисциплина.
След ковид част от академиите върнаха присъствените възможности, други са все още изцяло онлайн. За мен лично онлайн ученето имаше много предимства, защото можех да гледам видео уроците в удобно време вечер, да пускам на по-бърза скорост частите, които са ми ясни и да повтарям тези, които не разбирам.
Според много хора пък ценност е личният контакт, възможността във всеки момент да прекъснеш и питаш лектора за неяснота, да потърсиш помощ. Правилен отговор и тук няма, но си струва да помислите коя възможност е за вас.
Програмирането е изключително приложна област, която обаче изисква немалко базови знания, преди да започнеш. И все пак, нека това не ви подвежда, че ученето ще се изразява в слушане на лекции и зазубряне. Нищо подобно! Във всеки момент, всяко ново знание би трябвало да минава през практиката. Да опитвате и да повтаряте това, което се показва, да решавате задачите. Понякога допълнителна мотивация дава състезателният елемент с другите от курса ви.
Именно знанията и уменията ви са важни и именно тях ще оценяват хората, които ще ви наемат на първото ви работно място. Сертификатите съвсем не са най-важни, но пък изпитите са хубава възможност човек да се мотивира, да се подготви. А и човек никога не знае кога някой успешно решен изпит няма да се окаже полезен.
Ще си намеря ли лесно работа?
Стига да се справяте добре – абсолютно! Търсенето е огромно и не спира да расте, секторът се нуждае от програмисти. Да, със сигурност по-добре платени и ухажвани са хората с повече опит, но те са ограничен брой – първо защото пазарът расте. И второ – защото професията е такава, че в естествения път на развитие често след няколко години програмиране хората се насочват към следващи стъпки – например стават мениджъри или архитекти.
Така компаниите, особено по-далновидните, винаги са отворени за стажанти или младши специалисти, популярни като джуниъри.
Почти всички софтуерни академии имат практиката да насочват най-успешните си курсисти към конкретни фирми. Немалко са и компаниите, които имат някаква форма на своя школа.
Така или иначе, две са важните неща, нужни за да си намерите първа работа: самочувствие и… покритие на това самочувствие.
Добре е да имате поне учебни проекти, които да покажете, да изпипате CV-то си така, че да изглежда добре, независимо че в него не е отбелязан опит конкретно в тази област.
Никой не очаква, отивайки на интервю за първа работа, да имате знанията и уменията на опитен специалист. Но е важно да сте подготвени и да имате какво да покажете. В бордовете с обяви за работа често се появяват и такива за стартови позиции. Мнозина дори не изчакват края на обучението си, преди да започнат истинска работа и в това няма нищо лошо.
А намерите ли добра първа позиция, попаднете ли на подходящото място… нататък е лесно. Работата ще ви увлече, а търсенето на хора с опит прави така, че кадърният специалист наистина може да избира между добри предложения.
Програмиране, или…?
Айти сферата у нас се развива и разраства с все още невероятни темпове, виждаме го всички. И с програмирането далеч не се изчерпват кариерните възможности.
Ако например нямате достатъчно времеви ресурс за по-дълга подготовка – налага ви се да намерите работа по-бързо, или пък самият компютърен код не ви се е сторил толкова изкусителен, като разумно решение идва кариерата сред специалистите, които тестват софтуерните продукти. QA е съкращение от „осигуряване на качество“ (Quality Assurance) и включва в себе си доста интересни посоки – всичко, свързано с това да се гарантира, че даден софтуерен продукт работи според очакванията.
Една от страните му е т.нар. ръчно тестване, при което QA специалистът влиза в ролята на потребител и търси грешки в това как работи апликацията. Именно това е и подходяща начална роля, за която сте готови след доста по-кратки курсове. А после винаги можете да продължите нататък, например в посоката на автоматизираното тестване, където се изисква и програмиране.
Разбира се, покрай всичко това има и много професии, които никак не са свързани с кода. Ако умението ви е да организирате хората или да сте медиатор, можете да се насочите към роли като продуктов мениджър или скръм мастер – те не изискват непременно познания по програмиране.
Hello, world!
И така, надявам се не съм бил дидактичен, а по-скоро полезен с идеи. Много от отговорите, които дадох, сами виждате, са субективни, ще чуете доста различни от моите от хора с повече или по-различен опит в бранша.
Моята цел е друга – освен да ви дам скромен начален ориентир, и да ви убедя, че ако програмирането ви увлече като занимание, си струва да продължите. Защото ще си подарите един нов и интересен свят, който само може да продължи пътя ви дотук. За мен например програмирането беше и пътят да се върна обратно към журналистиката с този сайт. В който говоря за технологиите, но вече от първа ръка и с опита на човек от „хуманитарния свят“…
Всеки курс по програмиране започва с прословутото изречение „Здравей, свят!“. Стискам палци и за вас да се отвори нов свят в областта на софтуерното инженерство. А ако се случи така, ще се радвам после да ми пишете, за да се похвалите и да разкажем заедно вашата Дигитална история!
А дотогава, ако мога да бъда полезен с допълнителни отговори, съм изцяло насреща. Пишете ми на me@karamanev.me
Историята за това как аз се насочих към програмираето ще разкажа скоро на онлайн събитието Career show.
Ще се радвам да поговорим на 30 ноември (сряда) от 9,00 ч.
Секторът на информационните технологии е повече от привлекателен за кариерно развитие през последните години. Но дали от всеки може да излезе програмист? Късно ли е някога да се насочиш към тази професия? Какви качества и умения трябва да имаш, за да успееш? Кога знанията от айти света могат да се окажат полезни и във всяка друга област?
Събитието е безплатно, но изисква предварителна регистрация.
Повече информация – тук.