Всеки от вас ще каже, че живота е несправедлив, че понякога на добрите хора им се случват лоши неща и че това колкото и да е гадно е факт и няма как да се преодолее.
Това винаги ми се е искало да не е така и винаги съм се борил, физически, умствено или емоционално, за да го променя. Защото вярвам, че какъвто код посееш такава програма ще пожънеш (ако въобще се компилира), какъвто колбек извикаш, такъв ще се обади и сговорна програмистка дружина ражда само слепи програми (последното не е по темата, де).
Та, в какво се изявява моята болка и защо пиша тази статия.
От известно време насам се мъча да живея спазвайки един цитат (не ме питайте как го намерих):
Don’t waste your time on jealousy. Sometimes you’re ahead, sometimes you’re behind. The race is long, and in the end it’s only with yourself.
С всяка клетка от съществото си (днес е денят на клишираните изрази) вярвам, че това твърдение, този цитат е абсолютно верен. Напълно го осъзнавам, но продължавам вътрешно да завиждам – завист породена, не от това че някой има повече от мен или знае повече от мен, а от това че някой който знае по-малко от мен или с нищо не ме превъзхожда получава повече. Тъй като тази завист май май повече ми вреди от колкото ми е помогнала (освен да ме амбицира от време на време, което не е малко, де), всячески се опитвам да я потисна и всячески не успявам, а и как да успея?! Вярвам в равенството, в справедливостта, но понякога всички тези убеждения биват брутално опровергавани и това ме вбесява.
Деф. 1 (дефиниция на Стефан за добрия програмист)
Всяко съществуване, което се изявява в спане, ядене (казва се “хранене”) и кодене се нарича Програмистка форма на живот.
Според тази дефиниция, човек, който иска да се нарича добър програмист и да води програмистки живот, трябва да се отрече от всичко и да се съсредоточи върху подобряването на кодерските си скилове, научаването на нови кодерски неща и нищо друго освен това.
Аз лично съм разширил тази дефиниция по следния начин:
Деф. 2 (дефиниция на Лъчо)
Всяко съществуване, което се изявява в спане, хранене, занимаване с разни други неща от време на време и кодене се нарича Програмистка форма на живот.
Това значи че даже и да сте претрупани с други неща трябва поне един път седмично да пишете някакъв красив код или да четете как да пишете красив код. Ако имате повече свободно време – повече красив код (през останалото време може да ходите на работа, например, където не винаги се случва да е възможно да пишете красив код).
Деф. 3 (дефиницаия на нисша форма на Програмистки живот)
Всяка форма на живот, която не се покрива от дефиниця 1 или дефиниция 2, но се числи към IT бранша се нарича нисша форма на Програмистки живот.
Например тестъри или некадърни дивелъпъри…
Та представете си следната картинка – двама души, единият сте вие – човек, който води своето битие по дефиниция 1 или 2 и друг, който не го прави – дефиниция 3. Сега си представете, че вторият взима по-висока заплата от вас или пък че получава по-добри отзиви за работата си (противоречиво, но възможно), макар и да я е свършил супер зле, но това няма как да се види от шефовете естествено. Представете си, че втория получава повишение, а вие – не, или даже че ви става шеф. Незнам кой би се примирил с подобна несправедливост или би се направил на скромен и би го преглътнал… аз немога. Лошото, е че немога да преглътна и по-леки несправедливости.
Немога да преглътна, когато съм се готвил една камара време за даден изпит и някой отиде и препише и накрая аз имам 4, а той 6.
Немога да преглътна, когато някой който неможе да напише името си без 3 правописни грешки, получи по-добра оценка от мен.
Немога да преглътна, когато някой представи проект, който очевидно не е писан от него, но е 10-12 пъти по-дълъг от на всички останали и получи потупване по рамото и овации.
Немога да преглътна, когато по-нисшестоящи форми на Програмистки живот, като например тестери или лелки които седят по-цял ден на бюро и нищо неправят (HR) и други получават заплата близка до моята (опазил ме бог да е по-висока).
Немога да преглътна, когато някой “мениджър” или “шеф” (това трябва да са много големи кавички), реши че на всеки програмист, трябва да се падат по 1.8 тестера, 1.3 HR-а, 2.4 аналисти и още една камара баластни нисши форми на Програмистки живот.
Немога да преглътна, когато по-нисшестоящи форми на Програмистки живот, ги пращат в командировка по няколко пъти годишно без видима причина, а аз се боря с бъгове или технически проблеми.
Всичко това за мен е несправедливо. Несправедливо е спрямо мен, спрямо усилията които съм положил и това ме изкарва от релси!
Не ме разбирайте погрешно, тестъри (наричани още QA), HR и останалото ИТ излишество са нужни – да, няма спор, но в други количествени пропорции и би трябвало да им се обръща доста по-малко внимание, имайки предвид, че програмистите създаваме нещото, от което фирмата печели. Програмистите и архитектите са тези, които реално правят баницата. Другите я опитват, за да проверят дали сиренето е достатъчно или я продават/договарят с някой клиент. Някой даже и това неправят, бтв.
Нехайството към тези, които правят баницата рано или късно ще бъде наказано, разбира се, може само да се надяваме, че ще е рано. Също и тези, които са се забили на дадено ниво и нямат желание да просперират рано или късно ще ядат калая, защото бранша и технологиите не са статични като тях, просто. Точно за това малките фирми са “good”, а големите “evil”. Малка фирма с 10-20 програмиста означава, че се внимава, кой се наема. Също така в нея не си малко зъбно колелце, без което машината ще продължи да работи – там ти си някой и съществуването ти е важно за абсолютно всеки в нея. В големите компании ти си никой, никой не знае за теб, има една камара административни глупости, с които те занимават. Освен това 80% от хората са некадърни, защото по някое време се е наемало на килограм, повечето са без мотивация или са “скатавки”, което е несправедливо спрямо останалите 20%. Процента на нисша форма на Програмистки живот е по-голям от колкото трябва и още един куп неща, които обричат всички процеси в компанията на неефективност. За съжаление това работи, работи защото се ползва масово и с успех, но както в природата, така и в IT индустрията има еволюционни модели и това означава, че след време всичко неефективно ще е умряло… след доста време за съжаление, така че ни остава само да чакаме и да наблюдаваме.
Ето заради подобни “ниски страсти” се ядосвам и завиждам и ако някой смее да ме осъди, нека го направи. Така само ще покаже овчедушието си или нечовешката си търпеливост към случващите се глупости в тоя свят. Да – ще продължа да не се примирявам и да опитвам да направя света малко по-справедлив. Не – няма да има полза от това, но се надявам, че както има приливи и отливи, така и кармата ще раздаде справедливост и ще “накаже” тези, които заслужават.
До тогава гледайте “Мойто име е Ърл” и не се примирявайте с нищо, което не е справедливо!
June 9th, 2009 12:54
Не одобрявам първата дефиниция да е моя. Никога не съм казвал нищо такова 🙂
June 9th, 2009 13:51
Мисля, че една зала хора могат да те опровергаят, Стефане 😛
August 28th, 2009 21:31
За да разбереш как да преодолееш някаква част от ‘несправедливостите’ на програмисткия свят, законите на природата изискват да си наясно кое точно ги поражда. Ще се опитам да ти дам някои мои свети по нещата от твоите дефиниции
1) доколкото внимателният читател разбира, Програмистката форма на живот, включваща ядене, спане и добър код трябва да е нещо като идеал на добрия софтуерен инженер – right? Тогава, интересно ми е как дефинираш био-робот и доколко вижданията ти за социален живот са по-различни от тези на робокоп и терминатор 15?
Социалният живот е нещо не по-малко необходимо от инженерните умения и е изцяло в твоя полза да го разбереш навреме, за да не си задаваш на 35 въпроси, които други хора ще са решили на 25 и на теб ще ти се струват късмет.
ИТ бизнеса е млада индустрия и по тази причина ценностите и имат още много да се развиват и да улягат. Искам да те попитам – намираш ли лекарската професия за по-лесна от твоята? А забелязал ли си, че въпреки натовареността, лекарите са хора с по-широка обща култура от ИТ-тата. Това е, защото имат по-балансирани ценности по отношение работа-странични неща.
2. Наричаш QA и бизнес-аналистите низша форма на Програмистки живот. А длъжни ли са тези хора да пишат код и как следва че да? И ако приемем(изцяло хипотетично, разбира се), че да – кой тогава ще върши тяхната работа да намира бъговете, които и най-Висшите програмисти, извинявай, допускат. Или кой анализира изискванията на клиентите, за да получиш ти спецификация, която, вероятно си забелязал, отнема доста мислене и усилия да се напише
За останалите неща – че HR и БГ-университети не са на ниво – да, така е, уви. Но-има опции и за измъкване от тях, повярвай ми, пиша ти точно от тази страна на нещата. Просто трябват малко повече опит, контакти и инициативност.
Желая ти успех:)
August 28th, 2009 23:23
В тази статия вложих доста от негативната енергия, която бях насъбрал тогава и съм си обещал вече да пиша само конструктивно (и по-малко емоционално)!
Основният акцент, който исках да покажа (но неуспях) е че софтуерните фирми, без значение дали са огромни или апартаментни, трябва да имат преобладаваща бройка кадърни програмисти, а не QA, аналисти или hr-и, поради простия факт, че те пишат софтуера все пак, а писането на софтуер е основната работата заради, която фирмата съществува. Когато програмистите са малцинство, значи нещо не е както трябва в софтуерния процес.
Не намирам нито една професия за по-лесна или по-трудна, намирам хора, които си вършат работата добре или зле. Освен това не мисля, че трябва да се придава огромно значение на социалния живот в офиса, вярно че там отива около 1/3 от деня, но за разлика от приятелския кръг, в офиса си задължен да си с други хора, които може и да не ти допадат – за това не е мястото за социализиране просто.
И за финал, нещо на което бях наблегнал – QA, аналисти и HR-и са нужни за всяка по-голяма фирма, но не трябва да са мнозинството в нея… иначе просто може да я наречеш Quality Assurance House или HR Agency или Business Analysis Agency.