През изминалия уикенд имах възможността да разговарям с някои току-що завършили студенти. Сега те търсят първата си работа в областта на разработването на софтуер. По време на разговора с тях разбрах, че те имат доста погрешна представа за тази работа.
Причината за това е, че реалността за тези новобранци е много изкривена. Те виждат само високи заплати, дистанционна работа, изграждане на екип и партита с пици
Всичко това са хубави екстри, но никой не им казва какво всъщност ще трябва да правят в работата си.
Благодарение на богатия ми опит в бранша успях да им покажа каква е суровата реалност. Разказах им за хубавите неща, но споделих и някои неприятни истини.
След като прочетат тази статия, някои може да кажат, че съм твърде негативен, но аз вярвам, че всички тези аспекти са неразделни от професията на програмиста и трябва да бъдат приети.
1) Висшето образование няма да ви подготви за тази работа
Това е първото нещо, което обясних на тези момчета.
За да опиша точно как висшето образование ви подготвя за работа, представете си, че се учите да плувате.
Инструкторът отделя много време, за да ви каже какви движения да правите. Той ви кара да повтаряте всички тези действия, задава ви въпроси за тях и провежда изпити. Но през цялото това време вие нито веднъж не сте влизали във водата.
След пет години получавате лист хартия, който доказва уменията ви по плуване. Идва денят, в който трябва да започнете да плувате. Момчетата в басейна просто ви бутват във водата.
Вие се давите и се борите за живота си. Може би ще се удавите, а може би ще успеете да изплувате.
Така изглеждат първите шест месеца за един току-що завършил студент по програмиране.
Учебното заведение ще ви подготви за основните неща, но повечето от това, което се преподава в университетите, е твърде далече от ежедневната работа. Повечето преподаватели в университетите не са много добри програмисти.
Само малък процент от тях дори са работили като софтуерни разработчици. Освен това образователната програма е много остаряла. Тя изостава с години от нуждите на пазара за разработване на софтуер.
Когато учите във висше учебно заведение, трябва да положите допълнителни усилия. Пишете проекти извън домашните работи и семинарите. Работете като доброволци. Научете повече за тематичните области на бизнеса, за да се подготвите за работата, която ви очаква.
Повечето студенти не правят това. Те изчакват, докато получат дипломата си, и едва тогава започват да работят върху портфолиото си.
2) Рядко ще работите по проекти от нулата
Във висшето образование и в стажантските програми ви се дават множество малки задачи, които трябва да свършите от нулата. Имате пълната свобода да изразявате себе си. Можете да приложите готините неща, които сте научили, като различните алгоритми и шаблони за разработка.
За изпълнението на тези задачи ще отделите най-много няколко седмици, а обикновено това са само няколко дни. Обикновено тези задачи се състоят от не повече от петстотин реда код.
Само че в ежедневната си работа ще работите с проекти, които съдържат много слоеве и хиляди редове код. По тези проекти работят много хора едновременно. Свободата ви е ограничена; трябва да се адаптирате към проекта. Обикновено прекарвате от половин до две години в един проект.
Понякога прекарвате цяла седмица, за да отстраните особено вреден бъг, а начинът за отстраняването му е само няколко реда код. Питате колегите си, споделяте информация за проекта, работите съвместно с тях, за да бъде одобрено вашето решение.
Новите проекти са рядкост у обикновено работите по вече съществуващи проекти. Можете да се смятате за големи късметлии, ако получите нормален проект, а не някой стар наследен проект.

3) На никой не му пука за чистия ви код
Не си и помисляйте, че мениджърът ви ще каже: „Благодаря ви, че пишете толкова елегантен и чист код, ще ви повишим!„. Ще бъде точно обратното: никой не се интересува от чистия ви код.
Не ме разбирайте погрешно: хората ще очакват добър и чист код от вас, но рядко ще ви похвалят за това. Може би само понякога, когато кодът ви ще бъде проверен от колегите ви.
Това може да порази някои начинаещи, но е абсолютно логично. Основната задача на един софтуерен разработчик е да генерира добавена стойност към проекта на потребителите. Писането на код е само една от стъпките за постигане на тази цел.
Можем да си го представим като следния цикъл:
- Програмистът пише код;
- Потребителите получават нови функции;
- Все повече хора започват да използват вашите продукти;
- Компанията печели пари от продуктите.
С други думи, кодът е просто инструмент за реализиране на печалба.
Виждал съм толкова много гробища на проекти с наистина ужасяващи наследени и стари кодови бази. Тези проекти обаче все още са успешни заради красивите си интерфейси и факта, че решават проблемите на потребителите. А потребителите с удоволствие плащат, за да ги използват.
Потребителят не знае как изглежда кодовата база, той вижда само функциите, които предоставя продуктът. Така че не се привързвайте прекалено много към чистия и елегантен код. Съсредоточете се върху своевременното пускане на функции без бъгове.
4) Понякога ще работите с некомпетентни хора
Повечето хора вярват, че в ИТ индустрията, особено в областта на разработването на софтуер, работят само умни и компетентни хора. Но това е далеч от истината.
Както при всяка работа, понякога около вас ще има некомпетентни хора. Работата с тях е много досадна. Те губят много време и създават токсична работна среда. Освен това са изключително непродуктивни. Всичко това се отразява на крайните срокове и води до закъснения. Това струва на компаниите пари и ресурси.
За съжаление съм имал привилегията да работя с такива хора. Трябва да призная, че те са изпитвали търпението ми толкова много, че съм прекарвал много време в измисляне на начини да компенсирам тяхната некомпетентност.
Няколко съвета:
- Опитайте се да бъдете възможно най-ефективни и продуктивни, фокусирайте се върху себе си, а не върху тях;
- Опитайте други варианти/решения, които не включват тези хора в процеса;
- Документирайте всичко, което правите; ако нещо се обърка, ще имате доказателство за тяхната некомпетентност;
- Обърнете се директно към лицето, бъдете професионалисти, неагресивни, кажете му как и къде може да се подобри.
5) Свикнете с дългите оперативки
Оперативките са важна част от работата на програмиста. Някои от тях са полезни, но повечето от тях се оказват чиста загуба на време.
Има оперативки, които са регулярни, ежедневни или седмични. Повечето от тях са непродуктивни. Повечето от тях са организирани, защото това е единствената „работа“, която върши техният организатор.
Това е просто празна формалност, с която да докаже неговата полза за компанията.
От друга страна, има и продуктивни оперативки. Тези срещи дават възможност за обмен на информация между членовете на екипа или между различните екипи.
Повечето програмисти мразят оперативките, но не забравяйте, че една от отговорностите на вашата работа е да говорите открито и активно за нейните аспекти.
Обменът на информация е от решаващо значение за придвижването на проекта напред. Когато споделяте информация, това може да помогне на другите екипи да по-ясно да разберат какво правите вие и обратното
6) Често ще ви питат за приблизителните срокове.
Бизнесът се гради върху числа. Всеки проект има цена, а за да я изчисли, мениджмънтът трябва приблизително да прецени колко време ще отнеме създаването на дадена функция.
Всичко се свежда до това, че разработчиците на софтуер трябва да оценяват работното си натоварване. Обикновено тези оценки се изразяват във време, но понякога те са и оценки на сложността.
В много ситуации няма да имате представа колко време ще отнеме създаването. Трябва да прочетете изискванията, да направите проучване и да дадете число.
7) Бъговете ще бъдат най-големият ви враг за цял живот
Колкото повече пишете код, толкова повече ще осъзнавате, че грешките в кода се крият буквално навсякъде. Когато започнете да учите програмирането, навярно си мислите, че ако напишете даден код, той ще работи добре и това ще е краят на историята.
Но реалността е различна. Съществуват безброй източници на грешки вашият собствен сорс код, външните програмни библиотеки, хардуерни сривове, след които програмата отказва да работи и т.н.
Просто приемете, че всичко може да има или да доведе до бъгове. Бъдете готови за това.
8) Несигурността ще бъде вашият токсичен приятел
В тази работа много често ще се чувствате несигурни.
Вече обясних това с примера за изчисляването на приблизителните срокове. Това е само един от случаите, в които може да се почувствате несигурни. Опитвате се да бъдете възможно най-точни, но не сте напълно сигурни, че ще успеете да завършите работата в рамките на дадения срок.
Хубавото на несигурността е, че тя ви мотивира да се усъвършенствате като програмист. Трябва непрекъснато да се развивате и учите, за да останете в играта.
9) Ще ви е почти невъзможно да се откъснете от работата си
От време на време се улавям, че мисля за работата, задачите и бъговете. И вместо да си почивам и да се отпусна, мисля за задачите, които трябва да свърша утре.
Понякога студеният душ ми позволява да се разсея от мисълта как ще оправя онзи упорит бъг, върху който работих вчера. Имал съм безброй караници с приятелката ми заради факта, че когато сме на плажа, аз седя в Slack.
Затова трябва открито да призная, че ми е трудно да се изключа от работата.
Особено трудно е, ако работите от вкъщи. Лаптопът е включен, така че винаги можете да проверите електронната поща или съобщенията в Slack.
За да избегна всичко това:
- След като приключа работа, изключвам лаптопа;
- Включвам безшумен режим на телефона си за имейли, свързани с работата;
- След приключване на работното време спирам на пауза известията в Slack и ги изключвам за уикенда;
- Когато умът ми навлезе в цикъл от мисли за работа, се опитвам да го прекъсна веднага. Напомням си, че почивката и релаксацията са важни за продуктивността;
- Правя дълги разходки след работа. Понякога спортувам, например тенис на корт или футбол;
- Продължавам да общувам колкото е възможно повече, като избягвам да гледам в екрана след работа.
- Въпреки това, въпреки че правя всички тези неща ежедневно, често пъти не успявам.
Заключение
Разработването на софтуер не е работата мечта.
Често тя е свързана с голямо претоварване. Най-често сте залепени за екрана на компютъра си и балансът между работата и личния живот е силно нарушен.
Работата изисква да сте онлайн, понякога дори след края на работната смяна. Това често води до стрес и намаляване на времето, което си давате за почивка.
Освен това монотонните задачи често пречат на удоволствието ви от работата. В някои ситуации перспективите за кариера са ограничени. Когато работите от разстояние, съществува възможност за изолация. А поради бързо развиващите се технологии винаги съществува риск от загуба на работната позиция.
Но има и положителни аспекти.
Разработването на софтуер насърчава постоянните иновации. Програмистите могат да създават атрактивни приложения и да решават интересни проблеми.
В много браншове има голямо търсене на програмни продукти и специфични софтуерни решения, което означава, че винаги има търсене на качествени разработчици. Кариерата в областта на разработката на софтуер осигурява гъвкавост, като позволява работа от разстояние.
Перспективата да работите от всяка точка на света е голямо предимство. Гъвкавостта ви позволява да спите сутрин, без да се събуждате с будилник. Можете да работите от вкъщи в удобната си пижама. Освен това не се налага да губите ценно време и пари за ежедневно пътуване до работното място.
Всичко важно от света на технологиите, директно в пощата ти.
С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.
Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!







