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

Взех първото, което ми предложиха
Когато учиш да пишеш код самостоятелно или завършваш обучение в университета, получаването на първа работа по специалността става една от основните цели. Нещо като светлина в края на дълъг тунел.
И да намериш работа, междувременно, не е лесно. Хората, които кандидатстват за позиции на джуниори, стават все повече. Приходи се , да преминаваш през цяла серия интервюта, и често целият този процес се проточва. Като се има предвид всичко това, не е изненадващо, че всяко предложение за работа предизвиква желание да се хванеш за него и с двете ръце.
И все пак това може да се окаже лоша идея. Първата ми работа далеч не беше идеална, нито в професионалния напредък, нито в удоволствието от процеса. Разработчиците следваха девиза "и така става", и не беше прието да се напрягат особено. Всички се опитваха да прехвърлят вината на другите, и често ми се налагаше да скъсявам ъглите, за да се впиша в много кратки срокове. Но най-лошото — аз абсолютно нищо не учех.
На интервютата пропусках всички знаци, така увлечен бях от перспективата да се устроя на работа. Ако се появяваха някакви съмнения, те мигновено ми излитаха от главата, щом чух, че ме приемат! И то на добра заплата!
И това беше голяма грешка.
Първата работа има огромно значение. Тя предоставя обща представа за това какво е да бъдеш истински програмист, а опитът и обучението, които ще придобиеш от нея, могат да заложат основата за цялата ти бъдеща кариера. Именно затова е необходимо да проучиш обстойно за позицията и работодателя, преди да се съгласиш. Тежкият опит и лошите ментори — това определено не ти трябва.
- Потърси информация за компанията. Разгледай сайтове с отзиви, провери официалния сайт, просто прегледай Интернет и събери мнения. Така ще разбереш по-добре дали компанията отговаря на твоите нужди и цели.
- Разпитай познати. Ако някой от твоето обкръжение е работил за този работодател или познава човек от екипа, говори с тях лично. Разбери какво им е харесвало, какво не и как оценяват опита си общо.
Не задавал нужните въпроси на интервютата
Интервюто е най-добрата възможност да се запознаеш по-добре с компанията, затова задължително подготви въпроси за това, което искаш да научиш от служителите. Ето няколко примера:
- Попитай за процеса на разработка (какви методологии следват? провежда ли се инспекция на кода? какви стратегии за ветвене се прилагат?)
- Попитай за тестването (какви тестове се провеждат? има ли специални хора, които се занимават само с тестване?)
- Попитай за корпоративната култура (насколько е неформално всичко? предвидена ли е някаква подкрепа за джуниори?)
Не съм се определил с траекторията на движение
Несъмнено, пътят към ставането на опитен разработчик е много извивист. Сега имаш възможността да избираш от множество езици, фреймуорки и инструменти. Моята грешка в началото на кариерата беше, че се опитвах да усвоя всичко. Както и да е, това доведе до това, че не напреднах особено в нищо. Първо се захванах с Java, след това с JQuery, по-късно се преместих на C#, а след това на C++ … Вместо да избера един език и да концентрирам всичките си усилия върху него, скачах от единия на другия, просто по настроение. Мога да те уверя, че това е изключително неефективна схема за учене.
Бих постигнал по-добри резултати и бих се изкачвал по-бързо по кариерната стълба, ако веднага бях определил траекторията си, т.е. определен набор от технологии, и се бях концентрирал върху тях. Например, ако сте фронтенд разработчик, усвоите JavaScript, CSS/HTML и някой фреймуърк по ваш избор. Ако се занимавате с бекенд, пак вземете един език и го проучете как трябва. Не е задължително да владеете и Python, и Java, и C#.
Така че се фокусирайте, определете се с направление и съставете план, който ще ви позволи да станете специалист в избраната от вас област (ето , която може да ви помогне в това).
Изтънчавал съм кода
И така, подготвяте тестова задача, за да покажете на работодателя уменията си, или вече сте поели първа задача на първата си работа. Излизате от кожата си, за да направите впечатление. Как най- сигурно да постигнете резултат? Вероятно, да демонстрирате сложната техника, която наскоро сте усвоили, нали?
Не. Това е сериозна грешка, която самият аз правех, и по-често, отколкото ми се иска, виждам в работата на други млади специалисти. Те често изобретяват колелото наново или търсят сложни решения, опитвайки се да покажат знанията си.
Най-добрият подход за писане на код е изразен . Стремейки се към простота, ще получите на изхода разбираем код, с който ще бъде лесно да се работи в бъдеще (разработчикът, който дойде след вас, ще оцени това).
Забравял съм, че има живот извън кода
Никога да не «изключвам» — това е лош навик, с който се сдобих много рано. Прибирайки се вкъщи в края на деня, редовно взимах служебния лаптоп и стоях часове пред него, за да приключа задача или да поправя бъг, въпреки че и двете можеха спокойно да почака до сутринта. Както можеше да се очаква, този режим предизвикваше стрес и бързо се прегаря.
Причината за такова поведение отчасти се дължи на стремежа ми да направя всичко възможно по-бързо. Но всъщност трябваше да разбера, че работата е дългосрочен процес и с редки изключения днешните недовършени задачи спокойно могат да се отложат за утре. Много е важно периодично да се отдалечаваме и да помним, че животът не се изчерпва с работата — има приятели, семейството, хобита, развлечения. Разбира се, ако обичате да стоите до зори над кода — ради бога! Но когато това вече не ви носи радост, спрете и помислете, не е ли време да се заемете с нещо друго. Ние не работим за последния ден!
Избягвах да казвам: „Не знам“
Да се забавиш в процеса на решаване на някакъв проблем или изпълнение на задача е нещо обичайно, с което се срещат дори най-висококвалифицираните специалисти. Когато бях джуниор, казвах: „Не знам“ по-рядко, отколкото трябваше, и в това беше моята грешка. Когато някой от ръководството ми задаваше въпрос, а аз не знаех отговора, се опитвах да подам неясно обяснение, вместо просто да го призная.
Беше ми се сторило, че ако кажа: „Не знам“, хората ще си помислят, че изобщо не разбирам какво правя. Всъщност, това не е вярно; няма всезнаещи хора. Затова, когато ви питат за нещо, което не знаете, просто го кажете. Този подход има няколко предимства:
- Това е честно — не заблуждавате задаващия въпрос
- Има шанс да ви обяснят и по този начин ще научите нещо ново
- Това предизвиква респект — не всеки е способен да признае, че нещо му е непознато
Исках да напредна бързо
Вероятно сте чували поговорката: „Преди да бягаш, научи се да ходиш“. Тя е най-актуална в сферата на уеб програмирането. Когато за първи път започваш работа като джуниор, само се чака да хванеш бикът за рогата и веднага да се заемеш с някой голям, сложен проект. Дори ми минават мисли как да спечеля повишение възможно най-бързо!
Амбициите са хубави, но на практика никой не ще даде на начинаещия нещо подобно от самото начало. В началото на кариерата ви, вероятно ще получавате прости задачи и бъгове за отстраняване. Не е най-вълнуващото занимание в света, но няма как. Това ще ви даде възможност да се запознаете с кодовата база и да научите всички процеси. В същото време, вашето ръководство получава шанс да види как се вписвате в екипа и какво правите най-добре.
Моята грешка беше, че се ядосвах за тези дребни задачи и те ме разсейваха от работата. Трябва да запазите търпение, да правите всичко, което ви поиска, старателно, и скоро ще получите нещо по-интересно.
Не се включих в общността и не установих контакти.
Разработчиците имат страхотна общност: винаги са готови да помогнат, да предоставят обратна връзка и дори да ви насърчат. Програмирането е сложен процес и понякога е много изморително. За мен периодът на работа като начинаещ би преминал по-лесно, ако от самото начало бях активно в контакт с колегите.
Контактите с общността също така са много полезни за самообразование. Можете да допринасяте в проекти с отворен код, да изучавате чужд код, да наблюдавате как програмистите работят заедно по проект. Всичко това са умения, които можете да използвате в основната си работа и които с времето ще ви превърнат в добър специалист.
Изберете общности, които ви интересуват — мога да спомена freeCodeCamp, CodeNewbies, 100DaysOfCode — и се включете! Можете също да посещавате местни срещи в града си (потърсете на meetup.com).
Накрая, по този начин можете да завържете професионални контакти. По същество, контактите са просто хора от бранша с които общувате. Защо е необходимо? Например, ако решите да смените работата си. Ако се свържете със своите контакти, някой от тях може да ви предложи подходяща вакансия или дори да ви препоръча на работодателя. Това ще ви даде значително предимство на интервюто — някой вече е застанал зад вас, вие не сте просто "списък с резюмета".
Това е всичко, благодаря за вниманието!
Източник: habr.com
