Защо имаме този глад за програмисти?

After nearly an year without blogging, it is time for a second restart. This time, I am going to write in Bulgarian, because the topic is contextual for what’s happening in Bulgaria.

Programming

Programming

На IT сектора в България не достигат X на брой хора, които да започнат работа.

През последните няколко години, X беше замествано с числа като 5000, 10 000, 20 000 и т.н. За точността на числото може да говорим в изцяло отделна статия.

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

“Познаваш ли някой JavaScript програмист?” е често задаван въпрос.

Обяви за работа за програмисти се появяват по билборди, в метрото, по радиото. Споменаване на няколко ключови думи в LinkedIn ще доведе до буря от HR хора, които ви питат как сте и дали случайно си търсите работа.

В деня преди HackFMI 6, таксиджията, който ме караше, ме попита дали мога да му намеря 1-2 програмистa, за една бизнес идея.

На кратко, има търсене за програмисти, което не намира съответното предлагане.

И тъй като това е бизнесът с една от най-големите добавени стойности в България (и позволява добър стандарт на живот), то въпросът е важен.

Като човек, който се занимава с преподаване и обучаване на програмисти, постоянно си задавам този въпрос – Защо го има този глад?

От наблюденията ми досега, следват няколко идеи, които искам да ви споделя.

И преди да започнем, три много важни disclaimer–а:

  • Статията ще се фокусира върху хората, които вече са завършили училище и са влезли в някакъв университет или пък работят. За учениците ще пиша накрая.
  • Като следващи стъпки, ще се опитам да вляза в повече подробности с референции и данни от нашия опит в Хак България. Сега споделям моето наблюдение.
  • Където се срещне думата образование, имам предвид “IT образование”.

Време

Най-основният проблем, който виждам в момента е времето.

Времето, с което расте един бизнес (нека бъде t1), и времето за което един човек достига “минималната програмистка зрялост” (нека бъде t2) имат съществена разлика.

t2 e в пъти по-голямо от t1.

Нека разгледаме бизнеса

Той има няколко основни варианта за разрастване и търсене на много IT кадри:

  • Идва голяма компания X. Пише се статия в Капитал за нея. Задължително се казва, че ще отворят 100-200 работни места до 1-2 години.
  • Дадена компания Y расте с добри темпове, намира нови/големи клиенти и трябва да расте с между 50 и 100 човека на година.
  • Дадена компания Z взима решение, че има възможност (финансова, най-често) да се удвои. Започва да го прави.

Бизнесът расте с бързи темпове. t1 може да бъде в период от 1 месец до 4-6 месеца. В  една година може да има повече от 1 период на растеж.

Бързите темпове карат бизнеса да бъде по-скоро реактивен в търсенето на талант. Търси се завчера.

От друга страна, нека да разгледаме времето за достигане на “минималната програмистка зрялост” – МПЗ.

МПЗ съответства на ниво стажант / junior.

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

Точно така. t2 може да се случи в минимален срок от 1 година.

За тази 1 година, момичето и момчето преминаха през интензивни курсове, достатъчен брой академии и не спираха да работят у тях. За тази 1 година, момичето и момчето нямаха друга работа, освен да учат и да пишат код. Правеха го всеки ден.

Вече може да забележите една доста сериозна разлика във времето.

Бизнесът се развива бързо с много кратки итерации. Програмист се става бавно и е нужно време.

Това създава “времева дупка” – период, в който хората се обучават, а обучените работят. Но търсенето не спира.

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

Reality Check – Какво обикновено се случва?

Да си програмист е модерно. И освен всичко друго, изкарват се добри пари. С оглед на социалната обстановка в България, това кара доста хора да се пробват.

Бързата проверка на реалността показва една по-различна картина:

  • Да станеш програмист е трудно, изисква постоянство, труд, “блъскане”, упорство и непрестанно учене.
  • Да станеш програмист, когато работиш и друга работа / имаш семейство е като да играеш играта на ниво “hardcore”.
  • Поради разводнения пазар на академии, има огромен шанс човек да попадне на такава с лошо качество и да си изгуби времето.
  • В крайна сметка, човек или се отказва (липса на време или липса на упорство и постоянство), или му трябва повече от гореспоменатата 1 година. В реалността, t2 – времето за достигане на МПЗ – отнема между 2 и 3 години.
  • Бизнесът, в повечето случаи, се “мръщи” на младшите програмисти. Причината е, че на тях им трябва още време, за да стигнат до “billable” позиции или да започнат да носят стойност за компанията. Често няма ресурс, за да им се отдели нужното внимание.
  • Бизнесът се мръщи на “младшите”, защото няма достатъчно “старши”. Те най-често са трансфер, от една компания в друга. Точно както във футбола.

Reality check – Какво иска бизнесът и какво дава образованието?

Всеки път, когато има подобна тема на дискутиране, нещата се представят така:

“Образованието прави безработни. Не си говори с бизнеса и не знае какви са неговите нужди!”

Това изказване обикновено е последвано от “Ама за какво ги учите на глупости – теория и математика? Дайте им практика – PHP, JavaScript, HTML & CSS и за 4-6 месеца са готови!”

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

Тази съществена разлика се нарича “фундаментът”. И каквото и да прави човек, колкото и да се “суче”, той винаги стига до момент, в който му трябва “фундаментът”. (Ще има отделна статия за това.)

Именно този фундамент прави времето за достигане на “Минимална Програмистка Зрялост” 2 и 3 години, а не 3 или 6 месеца. Именно този фундамент прави нещата по-трудни от колкото изглеждат.

Ако човек го прескочи в началото, то в последствие ще трябва да се върне и да го “навакса”.

Или още по-лошо – ще прави пълни глупости в следващите 5 години, докато не попадне на правилния екип, където да го “стегнат”.

Тук има една съществена разлика между “качествен” програмист и “просто” програмист. Тази разлика се изразява в продуктивността, която може да стигне до 5-10x в полза на качеството.

Реалното искане да се скочи директно на практиката ще навреди много повече на IT бизнеса от липсата на каквато и да е практика в университетското образование.

Балансът е нарушен и много хора яхната вълната на “Не ви трябва математика, елате тук да учите PHP и CSS!”.

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

Едно място, където този модел започва да работи, е ФМИ (Факултет по Математика и Информатика към Софийски Университет):

  • Основната програма изпълнява ролята на фундамента.
  • Изборните дисциплини най-често дават хубава практика. Те се водят от “хора от бизнеса”.
  • Това, комбинирано с правилните допълнителни академии, дава на хората много много добра теоретична и практична подготовка.

За 1-2 години, студентите стават готови да носят стойност на бизнеса.

Къде е проблемът и как може да го решим? (TL; DR секцията)

Обобщението за основния проблем за липса на кадри е следното:

  • Времето за “създаване” на 1 програмист е средно 2 години, при правилен подбор на университет и академии.
  • Времето за разрастване на един бизнес е от 3 до 6 месеца. В рамките на 1 година, бизнесът може да расте многократно. Това, от което се интересуваме в случая е моментът, в който спрямо дадения растеж, бизнесът започва да търси талант. От нашата практика, този период е от 3 до 6 месеца.
  • Бизнесът е реактивен в повечето случаи и не предвижда цикъла на обучение на студентите. Иска хора в момента, в който му потрябват.
  • Не всеки младши програмист успява да си намери работа толкова лесно, колкото са му продали идеята в началото. Реално, бизнесът почти винаги търси по-старши и по-опитни програмисти и не наема младшите.
  • Веднъж минал нивото на младши програмист, човек се ротира между компаниите и има нетен ефект от 0. Ако отиде на друго място, то той освобождава своето.
  • Единствено новообучените младши програмисти и хора, дошли от чужбина допринасят за попълването на нужните позиции!
  • Бизнесът не трябва да иска “съкращаване на време” от образованието. Това води до изкривени резултати, много по-малко знания и в крайна сметка – лошо качество.

За да започнем да подобряваме нещата, аз виждам следните точки като особено важни:

  • Тъй като ученето е времеемко, хората трябва да започнат да се интересуват на кого поверяват своето бъдеще. Един грешен избор на академия може да доведе до загубени 6 месеца до 1 година. А само по себе си това е голям демотиватор, за да продължи човек напред.
  • Трябва да се инвестира много в образование – частно и държавно. Ако искаме достатъчно и добри програмисти, то тази инвестиция трябва да дойде от бизнеса. На държавата трудно може да разчитаме, но и там има надежда.
  • Освен, че трябва да се инвестира, трябва да се държи и на качество. Много академии не е равно на много качествени академии. В повечето случаи е точно обратното.
  • Една образователна институция се определя от нейните учители. В момента добрите IT учители в България могат да бъдат изброени на пръстите на ръцете и краката на един човек (<= 20). За да бъдат привлечени повече учители, трябва да им се плаща добре – равностойно на програмистките заплати. За да им се плаща добре, бизнесът трябва да започне да инвестира.
  • Трябва да се наемат повече младши програмисти и да им се дава шанс за израстване. Така ще имаме повече старши програмисти след 5 години. Не се мръщете, ако някой няма опит. Дайте му шанс, да го натрупа!
  • Силно се надявам повече български компании да възприемат идеята за летни стажове. Тогава няма университетски занимания и е перфектното време за натрупване на този така търсен опит и стаж.
  • Трябва да има стипендии, които да позволят на работещи хора, да спрат да работят за 2-3 месеца, за да се отдадат изцяло на учене.
  • “Внасянето” на програмисти от чужбина е прекрасна идея. Това трябва да се докара до край и да започне да се случва. Това може да помогне със старшите програмисти.
  • Бизнесът трябва да остави образованието да се погрижи за фундамента. Нека не “режем” от времето. Това ще ни се върне тъпкано в бъдеще.

Училищата

Ако искаме да вдигнем бройката, то това може да стане най-добре чрез училищата.

Ако от 9-ти до 12-ти клас има интензивни програми, свързани с математика и програмиране (СИП, извън задължителните програми, разбира се), то деца, завършващи 12-ти клас ще са готови да карат стажове.

Ако е по силите ни, трябва да задържаме (или в последствие да връщаме) най-добрите медалисти в България.

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

Write us your thoughts about this post. Be kind & Play nice.
  1. Добра статия, съгласен съм с основната теза в нея – компаниите искат да се разрастват много по-бързо от темпа, с който индустрията може да излъчва качествени кадри.

    Напоследък, обаче, се наблюдава и друга тревожна тенденция. Понеже търсенето расте, възнаграждението също върви нагоре. И понеже да наемеш старши кадър вече е като да откриеш злато, повечето компании започват да се борят и за младшите такива. Това води до необичайно високо текучество не само на старши, но и на младши кадри. Идват младоци, изкарали по един курс от 4-6 месеца, даваш им шанс, и след още 6 месеца в твоята компания, току виж си тръгнали за 2 пъти по-висока заплата друга такава, или за някой звезден нов проект. А ти, без дори да си успял да капитализираш върху малкото опит, който си им дал, си пак на пазара за кадри.

    Това според мен е също много важен фактор за “мръщенето” на бизнеса на неопитни кадри.

    Reply
    • RadoRado says:

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

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

      Според мен това може да се нормализира сравнително бързо, ако започнем да говорим какво искаме за едно “МПЗ” като знания – да има нещо дефинирано за младшите програмисти.

      Reply
      • Todor says:

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

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

        Reply
    • Договор с изпитателен срок и обучение от 6 месеца с преподписване 2 години позволяващи на компанията да си възвърне инвестицията. Принудителното прекратяване на такъв договор би било показно за некоректните намерения на кадъра да инициира такова, което би следвало да се накаже с възвръщане поне на по-големия процент от изплатените възнаграждения. Ако практиката стане картелна некоректните младоци няма да имат избор, освен да се коригират разбира се. Просто, не ?

      Reply
    • Todor says:

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

      Reply
  2. Мартин says:

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

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

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

    Какво означава всичко това за нас конкретно? Коментарът ми стана достатъчно дълъг, затова продължението тук: http://mapto-on.blogspot.bg/2016/01/why-hunger-for-personalities.html

    Reply
    • RadoRado says:

      Съгласен съм с твоят коментар и статията е добра. Ще я споделя към тази.

      Мотивацията е важно нещо. Когато хората имат някаква цел, която да ги държи – те успяват. Много започват с мотивация, но по някое време, по средата на пътя, просто я губят. Липсват достатъчно хора да им кажат, че ще се справят и да им помогнат. Или пък просто самите те не търсят подобна помощ.

      Има голяма доза “обезвереност” с всичко това, което се случва в нашата мила родина.

      Поздрави!

      Reply
  3. “Бизнесът не трябва да иска “съкращаване на време” от образованието.” – Бизнесът винаги ще е в противоречие с качеството или времето което е нужно, за да може да спечели максимално. Може би трябва да се търси някаква среда между двете неща.

    ФМИ + добра академия = the best МПЗ.

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

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

    Reply
    • RadoRado says:

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

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

      Reply
      • Мартин says:

        Не мисля, че заплатите за преподавателите са проблем. Не и за практикуващ ИТ специалист (програмирането е много малка част от работата, която един разработчик върши). От друга страна да си преподавател и да не практикуваш, означава да се превърнеш в подобие на феодалните старчета във ФМИ, което е много по-различно от практиката в академичните институции по света.

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

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

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

        Между другото, споменах ли че търсим трейнъри за международно онлайн обучение по фронт-енд за начинаещи срещу добро заплащане… 😀

        Reply
        • RadoRado says:

          Преподаването има много видни и скрити ползи. Марио Пешев е написал много добър коментар по този въпрос в контекста на заплатите. Ако не се плаща като на програмист, то рано или късно човек стига до някакъв вид социална криза.

          Reply
    • Mario Peshev says:

      Съгласен съм с Радо в случая. Има хора, които преподават за удоволствие, но това удоволствие си има граници. Удоволствие си е да изнесеш някоя лекция на всеки два месеца или да водиш един кратък тренинг от 8 лекции през годината например. Това обаче започва да се отразява изключително много, ако стане по-интензивно, както е редно за водене на цял курс всеки семестър например (или повече).

      Редно е да се отбележи също, че добрите ИТ преподаватели са изключително силни технически (в допълнение с впечатляващи soft skills). Тази комбинация от умения е силно търсена и нишова, което често значи, че добрите преподаватели са много senior (team leaders) или собственици на ИТ фирми – в двата случая отговорни, времеотнемащи и високоплатени позиции. Отделянето на повече време удря едновременно и бюджета, и развитието на дадена фирма (поради разфокусиране на кадъра), а преподаването за прилични суми не е достатъчно разпространено, за да направи разумно инвестирането в нещо такова без нарушаване на бизнес или развиването на ниша от консултанти и R&D специалисти, които да водят редовно обучения.

      Относно junior програмистите, има и още един феномен, който не е пряко засегнат в статията, и той е т.н. Y generation начинаещи програмисти. Поради влиянието на социални медии, местни медии с тръбящи фантастични заплати, грешно възпитание вкъщи и други фактори, огромен брой начинаещи кандидатстват за стажове и начални позиции без никакъв опит с изискване за 4-цифрени суми, като съответните изискват месеци (или близо година) активно обучение, наглеждане и инвестиция от (загубено) време на старши програмист. Като допълнителен ефект немалък брой от въпросните начинаещи непрекъснато се оглеждат за нови позиции, планират емиграция в някой от ИТ титаните в чужбина, някой стартъп от San Francisco с нов офис в София, или фирма, която плаща много солидни заплати поради външни финансирания. Това често довежда и до наемане на начинаещи, отделяне на 7-9 месеца в обучение и плащане на заплата без реално billable време, загуба на много време на старши програмист и краен резултат от напускане от начинаещия при приключване на обучението.

      В Щатите – извън културата в Silicon Valley и цялостно в доста професии – изобщо не е необичайно стажовете да са безплатни и да протичат множество месеци, просто за трупане на опит. Според мен границата между “експлоатацията” и “спонсорирането” на начинаещи е тънка и е тема на съвсем отделен пост, но е важно да се достигне до модел, който да уравновеси очакванията на начинаещите и да позволи на бизнесите да наемат стажанти, без да води до колапс на работната среда.

      Reply
      • Todor says:

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

        Reply
  4. Stoyan says:

    Беше ми много приятно да прочета този пост.

    Особено ми хареса идеята да има стипендии за работещите, които все пак искат да завият към IT. Прекарах 2015 година работейки full-time “по специалността” (Финанси -> Фармация) и паралелно учейки в една от по-известните Академии. Есента вече не се издържаше на комбинираното темпо и напуснах работа, за да съм full-time в Академията. Най-лошото е, че напускайки работа по собствено желание, трябва да караш на спестявания, тъй като от Бюрото по Труда се получава нещо от сорта на 7лв / ден (ако не търсиш “схеми” за повече).

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

    Отново, като страничен наблюдател, сега навлизащ в IT средите – мисля, че си направил отличен обзор.

    Преди минути пуснах първо CV за IT позиция, та ще се надявам компаниите да са по-благосклонни към juniors през 2016 🙂

    Reply
    • RadoRado says:

      Надявам се да имаш успех в търсенето и намирането на хубава Junior-ска позиция!

      Ако имаш нужда от помощ или реална оценка на знанията ти, винаги може да дойдеш до Хак България 🙂

      Поздрави!

      Reply
  5. Ivo says:

    Ами….съгласен съм с твоето виждане по въпроса, но….да видим до колко безсмислено е държавното обучение водено от застарели преподаватели на застаряла компютърна техника по остаряла методика. Та…синът ми си губи времето 1,5 в техническия и…заряза всичко и започна от началото при Светлин Наков в Софтуни….знания подкрепени с много практически занятия и упражнения….с две думи – удоволствие в ученето и 400 часа програмиране срещу само 40 в техническия допълнени с безсмислено техническо чертане с молив на хартия, физика, химия….Абе, похвално е че пишеш за държавния факултет, но реалностите са други….И се допълват и от Академия Телерик….та не знам какъв фундамент имаш предвид….

    Reply
    • RadoRado says:

      ТУ е слаба работа. Аз пиша за ФМИ. Реалността е тази, че там в момента е най-добре. Но не толкова добре, че да не се налага комбиниране с академия.

      Това, което ме съмнява е колко добре ще се научи синът ви при Наков. Ако успее – това ще е супер. Стискам му палци 🙂

      Reply
      • Todor says:

        Карах един семестър във ФМИ, магистърска програма. Ще ме извиняваш, но ФКСУ е много по-добре от ФМИ. Изключително много изостанахте. Да не говоря, че доцентките, които влизаха по лекции, идваха от ФКСУ. Дори и преподавателите вече от там ги вземате.

        Reply
        • RadoRado says:

          Магистратурите във ФМИ са славно слаби и то за огромно съжаление. Бакалавърската програмата е истината.

          Reply
    • Todor says:

      За това съм напълно съгласен с Радо. Преди години, когато ние тръгвахме в професията, такива академии нямаше и все пак ние тръгнахме. За сметка на това, всеки от нас си взе легитимните дипломи за висше образование.

      Когато човек си изостави следването на младини, на старини е много тежко.

      Reply
  6. Todor says:

    Радо, много по-просто е, но се учи във ФКСУ, а не във ФМИ. Недостиг има защото българският пазар е монополизиран, а не е свободен. При свободния пазар, когато има високо търсене цените растат и се достига пазарно равновесие. При монопола заплатите изкуствено се задържат и това води до дефицит на кадри.

    Браво за разсъжденията ти, но си далече от същината.

    Reply
    • RadoRado says:

      Можеш ли да дадеш повече аргументи защо смяташ, че софтуерният пазар е монополиран?

      Reply
      • Todor says:

        Разбира се, ще предложа за начало един аргумент – BASSCOM се договориха за порядъка на заплатите и някои други принципни неща, около “краденето” на кадри.

        Reply
  7. Статията е полезна, очертават се основните проблеми, но според мен акцентите трябва малко да се изместят. Казва се, че добрите учители и университети се броят на пръсти. Да се попадне при тях е трудно, ситото е голямо, изисква се на първо място да си добър математик, а такива са много малко в страната на фона на западащото образование и не всички от тях искат да се занимават с ИТ. Така че тези, които имат този късмет са твърде малко, далеч под необходимата за бизнеса бройка и те безпроблемно могат да си намерят желаната работа. Големият въпрос обаче е останалите, които искат да се занимават с ИТ и са взели примерно някои грешни решения какво да правят и какви мерки са необходими техният брой да намалява в бъдеще? И тези мерки да доведат преди всичко до промени в образователната система.

    Има едно изречение в статията, с което не мога да се съглася. “Трябва да има една съществена разлика между това, което се учи в университетите и това, от което се нуждае бизнесът.” Да, фундаментът е нужен, но в учебните заведения не се предлага нищо освен него. Не се предлага никаква практика, не се придобиват почти никакви практически умения, посочвани като необходимост в почти всяка обява за свободно работно място. Практиката като цяло изглежда трудно достъпна за повечето студенти. Според мен именно този дисбаланс е в основата на проблемите и инициативата за решаването му трябва да дойде преди всичко от държавата, посредством цялостна промяна в концепцията на ИТ образованието. То трябва да осигурява в равни пропорции фундамент и практика (поне 1 година задължителен стаж по време на обучението или курсови проекти с пъти по-висока степен на сложност). Необходимо е също така държавата, бизнесът и образователните институции да седнат на една маса и максимално да се избистри колко специалисти и с какви умения са нужни на бизнеса и кой какво може да направи по този въпрос. Най-лесно могат да се внесат от чужбина, то и ще се стигне до там накрая, това ще се отрази добре на бранша, но няма да реши проблемите от другата страна, които повече ме вълнуват и които се срещат в по-голямата част от отраслите в страната, а именно “производството” на безработни висшисти.

    Reply
    • RadoRado says:

      Прав си, в един ВУЗ практическите и реалните неща трудно се постигат, поради много причини.

      Като изолиран случай, във ФМИ всички cutting edge неща (последо имаше курсове по Go, Clojure, WebGL, Квантови компютри) се покриват като изборни дисциплини. Там нещата са добре.

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

      Може би ще разпиша една статия по тази тема.

      Reply
  8. Martin says:

    Здравей Радо, Благодаря за хубавата статия и насоките в нея.
    Бих искал да те попитам какво точно е нужно, за да бъде един кандидат нает на стаж? Какви минималти качества търсят работодателите? По обявите виждам неща като “1 година опит с X език” и тнт., но как точно да го добием този опит? Занимавал съм се със C++, Arduino, малко C# и Python. Как по-точно протича едно интервю за стажант?

    Reply
    • RadoRado says:

      Здравей,

      Ще ти дам моята гледна точка на работодател.

      Първото нещо, което търсим в кандидатите е “адекватност”. Човек да може да комуникира, да е наясно какво знае (и горе-долу какво не знае) + да е писал няколко домашни проекта, които да са му били интересни (а не по задължение или домашно)

      Разбира се, опит с езика на който ще се пише е нужен. Трябва да може да се изразяваш свободно на него.

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

      В Хака правим пробни интервюта на хора по избор, точно за да видят какво може да ги питат. Ако ти е интересно – пиши на radorado@hackbulgaria.com

      Reply
    • Todor says:

      Изгради си портфолио в Github, от една година и ще го преминеш този праг, поставен в обявите.

      Reply
  9. Gogo says:

    Ако и от жените ставаха програмисти, щеше гладът да намалее на половина 🙂

    Reply
    • RadoRado says:

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

      Reply
      • Todor says:

        Въобще не е мит, не се заблужавай.

        Чиста биология е, че ние мъжете сме с по-добро логичеко мислене и по-голяма мускулна маса.

        Reply
  10. Вен says:

    Понеже спомена математика – учил съм по две математики на семестър – около 6 семестъра. 10 години по-късно (малко уин програмиране, уеб – сървърно и фронт) тази математика не ми е потрябвала нито веднъж. Трябваше ми единствено като се решаваха задачи за олимпиади по програмиране. След 10 години неизползване естествено мога да се похваля само че имам идея какво е повърхнинен интеграл, че същестуват интересни (и критични за някои области) транспортни задачи, теория на игрите и т.н., но естествено каквото и да съм научил тогава, вече е забравено. Сигурно бих могъл да си го припомня по-бързо, от някой, който няма и идеята за тези неща, но ме съмнява да ми потрябва нещо и занапред. Достатъчни бяха 1-2 курса, повече за обща култура и който му харесва да се занимава с алгоритми специално, вече да има свободно избираеми или магистратури. Според моя опит, математиката не е част от фундамента. ООП, шаблони, архитектура, софтуерен процес – това да и според мен е задължително да се учи и да му се отделя необходимите месеци време. Както много добре е казано в статията, ако зазубриш просто един език после трябва да имаш късмет да попаднеш някъде, че да те направят програмист. Или сам чрез часове програмиране и четене да запълниш пропуските. Но няма да е лесно, защото няма да е систематично. Математиката в бакалавърската програма за мен беше загуба на време и ако беше заменена с предмети от магистърската ми програма например това щеше да е много яко и полезно.

    Reply
    • RadoRado says:

      Най-голямата грешка е да очакваш директното приложение на научената математика да дойда само.

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

      Reply
  11. Siol En says:

    1. По-голяма част от компаниите в България бачкат “на ишлеме”/ аутсорсинг. Те нямат силите / компетентностите да се състезават с големите играчи на пазара на know-how.
    2. Хоризонтите на развитие на компаниите стигат до най-далечния проект който е плануван. До там стигат и техните планове за нужните им ресурси / програмисти.
    ЕРГО: В България НЯМА глад за програмисти ! Има глад за хора, които да пишат код на език “ххх” за “ууу” пари на месец.
    3. Ако се втурнем да “произвеждаме” “програмисти”, без да мислим за другите специалисти от ЕКИПА който създава ПРОДУКТ, то ще имаме едни “знайковци”, които ще си мислят че могат да изпълняват всичко, защото на практика не са виждали как се работи КАЧЕСТВЕННО. Това е и болката на повечето фирми в България. И причината за провала им.

    Reply
    • RadoRado says:

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

      Разбира се, има и фирми за “софтуер на ишлеме”. Но замисли се – за един студент, работа в такава фирма (гъвкаво време, гъвкави условия), докато се учи са допълнителни доходи и допълнителни знания. Тези фирми играят своята роля на пазара 🙂

      Reply
  12. Anto says:

    Здравейте,
    Понеже в статията се говори за Практика и преподаване, аз от опит мога да споделя, че идва един момент от практиката, където ако преподаваш (Обясняваш или обучаваш на по-млади) ставаш по-добър в практиката!. Независимо дали тези, които обучаваш са умни или не ти напредваш много по-бързо в областта в която работиш! Това не се осъзнава от много практици не само в БГ но и по цял свят, те така да се каже си “пазят хляба” а това дори понякога води до спад в уменията (дегенерация). Невероятно но Факт!

    Reply
    • RadoRado says:

      Много вярно го казваш.

      Един познат преподавател също го казва добре: “Правя курс по X, за да го науча аз.”

      Reply
  13. Ceco says:

    В БГ няма глад за програмисти. Има прекалено много кадри които стоят безработни в момента. А да не говорим, че 70% от “IT Spec” не стават въобще да се справят с такива проблеми тъй като мисленето им не е на програмист.
    В момента IT Spec. има предостатъчно и ако не се преориентират хората ще стане като сферата на Икономиката 10 000 човека за 1 място.

    Reply
  14. Радо, здравей!

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

    Бих искал да добавя своите “5 стотинки”:
    1. по повод фундамента по математика – някъде в англоязичните простори на интернет ми попадна една мисъл смисълът, на която беше, че математиката от училище/университета формира връзки между отделните части на мозъка.
    Именно тези връзки и помагат на Homo Sapeins в живота.

    2. по повод общата култура – според мен, човек който иска да работи като програмист трябва да има общата култура на високо ниво. Да се стреми на първо място да разбере “какво? защо? “(принципи), а не “как?” (конкретна технология).
    Все пак програмистите не са маймуни: Not Just Code Monkeys • Martin Fowler – YouTube

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

    Reply
  15. Petar Ivanov says:

    Здравей Радо,

    Запознат съм с ФМИ, Хак България и Хак ФМИ, изобщо нещата, с които се занимаваш. Искам да те попитам, теб лично, как успя да станеш добър програмист? За колко време го направи? По колко време отделяше средно на ден? Какви неща можеш/знаеш? Алгоритмите/Big O notation важни ли са за един Application developer? (Няма значение с кой език). Какъв ти е подхода, докато учиш? Как научаваш нова технология? Колко време отделяш за учене на теория/нови неща? Да кажем имаш продукт, стремиш ли се да знаеш как комуникират отделните модули, как работят нещата отвътре в него, или се фокусираш върху бъговете/имплементациите, които ти трябва да извършиш? Питам понеже малко губя баланса между това колко време да учиш как работи даден модул от продукта и колко време трябва да работиш, за да добавиш нова функционалност / оправиш бъг. Какъв път би препоръчал на някой, който иска да стане наистина senior, много добър, и архитектурно, и технически. Питам, понеже знам, че си машина, и искам да стана като теб, сигурен съм, че мога да го постигна 🙂

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

    Поздрави
    Петър

    Reply
    • RadoRado says:

      Здравей и благодаря за коментара.

      В момента разписвам статия провокирана от това, което ти ме питаш. Като я пусна се надявам да ти е полезна.

      Reply
  16. Todor says:

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

    Reply
    • RadoRado says:

      Този коментар е генерализиращ, неверен и доста подвеждащ. Най-малкото – вземи историята на щатите и нашата история. Имаме още път да вървим.

      Reply
      • Todor says:

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

        Историята на САЩ и България нямат нищо общо. В 21 век светът е глобален, а достъпът до ресурси и технологии почти изравнен.

        Reply
    • > Когато гледах биографичните филми за Ситв Джобс се замислих защо мечтата на българските програмисти е да станат старши специалисти в нечия чуждестранна компания, а нямат мечтите на Стив Джобс, те да създадат продукт, екип и компания?

      Добре си се замислил, а какъв е отговорът на въпроса, който поставяш ? Сигурен съм, че има причини (едни или други) да преобладава манталитета да работиш за някого, отколкото сам да създаваш продукт, но пък ми е интересно да науча за тези причини и какво и как бихме могли да променим.

      Reply
      • Todor says:

        Може би като създадем колежи, като Reed College и Harvard College, които хора, като Steve Jobs и Bill Gates, да напуснат.

        Reply

Leave a reply.