Осемте грешки, които допусках, когато бях джуниор

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

Осемте грешки, които допусках, когато бях джуниор

Взех първото, което ми предложиха

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

Но намирането на работа не е лесно. Все повече хора претендират за свободните позиции за начинаещи. трябва да съставиш невероятно резюме, да преминеш през цяла серия от интервюта, и често целият този процес се проточва. Като се имат предвид всичките тези факти, не е изненадващо, че всяко предложение за работа предизвиква желание да се хванеш за него с две ръце.

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

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

И това беше голяма грешка.

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

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

Не задавах необходимите въпроси на интервютата

Интервюто е най-добрата възможност да се запознаеш по-добре с компанията, така че непременно подготви въпроси, които искаш да зададеш на служителите. Ето няколко примера:

  • Попитай за процеса на разработка (какви методологии следват? провеждат ли инспекция на кода? какви стратегии за клониране използват?)
  • Попитай за тестването (какви тестове провеждат? има ли специални хора, които се занимават само с тестване?)
  • Попитай за корпоративната култура (на колко неформално е всичко? има ли някаква подкрепа за начинаещи?)

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

Несъмнено, пътят към изграждането на опитен разработчик е доста извивист. В момента има възможност да избираш между много езици, фреймворкове и инструменти. Моята грешка в началото на кариерата ми беше, че се опитвах да усвоя всичко. Колкото и да е смешно, това доведе до резултата, че не напреднах особено в нищо. Първо се захванах с Java, след това с JQuery, преминах на C#, след него — на C++ … Вместо да избера един език и да вложа всичките си усилия в него, скачах от едно на друго, просто по настроение. Мога да те уверя, че това е крайно неефективна схема на обучение.

Щях да постигна по-добри резултати и да напредвам по-бързо в кариерата си, ако веднага бях определил своята траектория, т.е. определен набор технологии, и се бях фокусирал върху тях. Например, ако сте фронтенд разработчик, овладейте JavaScript, CSS/HTML и някакъв фреймуорк по ваш избор. Ако се занимавате с бекенд, отново, вземете един език и го изучавайте задълбочено. Не е задължително да владеете и Python, и Java, и C#.

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

Изпитвах трудности с кода

И така, вие подготвяте тестово задание, за да покажете на работодателя своите умения, или вече сте взели първа задача на новата си работа. Напрягате се, за да направите впечатление. Как да постигнете най-добре резултат? Вероятно, като демонстрирате сложната техника, която сте усвоили наскоро, нали?

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

Най-добрият подход към написването на код е изразен в принципа KISS. Стремейки се към простота, ще получите на изхода разбираем код, с който ще бъде лесно да работите в бъдеще (разработчикът, който дойде след вас, ще го оцени).

Забравях, че има живот извън кода

Никога да не „изключвате“ — това е лош навик, който придобих много рано. Когато се приготвях да се прибера у дома в края на деня, редовно вземах работния си лаптоп и часове наред прекаравах зад него, за да приключа задача или да поправя бъг, въпреки че и двете спокойно можеха да почакаят до утре. Както се очакваше, подобен режим предизвикваше стрес и бързо прегорях.

Причината за такова поведение отчасти се дължи на моето желание да направя всичко максимално бързо. В действителност обаче би следвало да разбера, че работата е дългосрочен процес и с редки изключения, недовършени задачи от днешния ден споконо се пренасят за утре. Много важно е периодично да сменяме фокуса си и да си припомняме, че животът не се изчерпва само с работа — има приятели, семейство, хобита и развлечения. Разбира се, ако обичате да седите до зори над кода — нека! Но когато това вече не е удоволствие, спрете и помислете дали не е време да се занимаете с нещо друго. Все пак, не работим за последен ден!

Избягвах да казвам: «Не знам»

Да се заковеш в процеса на решаване на някакъв проблем или изпълнение на задача е обичайно, дори и най-опитните със senior позиции го изпитват. Когато бях джуниор, казвах: «Не знам» по-рядко, отколкото трябваше, и в това бях в грешка. Когато някой от ръководството ми задаваше въпрос и не знаех отговора, се опитвах да замъгля ситуацята, вместо просто да призная.

Мислех си, че ако кажа: «Не знам», ще оставя у хората впечатление, че изобщо не разбирам какво правя. В действителност, това не е така, всезнаещи хора не съществуват. Затова, ако ви питат нещо, което не знаете, просто го кажете. Подобен подход има няколко добри страни:

  • Благодарно — не подвеждате питащия
  • Има шанс, че ще ви обяснят и тогава ще научите нещо ново
  • Извиква уважение — не всеки е способен да признае, че нещо му е непознато

Бързах да напредвам

Вероятно сте чували поговорката: «Преди да бягаш, научи се да ходиш». Тя е особено актуална в сферата на уеб програмирането. Когато за първи път постъпите на работа като джуниор, искате да хванете бика за рогата и веднага да се захванете с някакъв голям и сложен проект. Още имам мисли за това как да спечеля повишение в следващото ниво възможно най-скоро!

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

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

Не участвах в общността и не създавах контакти.

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

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

Изберете общности, които ви интересуват — сред вариантите мога да посоча freeCodeCamp, CodeNewbies, 100DaysOfCode — и се включете! Можете също така да посещавате местни срещи във вашия град (потърсете на meetup.com).

Накрая, по този начин ще можете да изградите професионални контакти. Всъщност, контактите са просто хора от вашата индустрия, с които общувате. Защо е важно? Например, ако някога искате да смените работата си. Ако се обърнете към контактите си, някой може да ви предложи подходяща позиция или дори да ви препоръча на работодателя. Това ще ви даде значително предимство на интервюто — вече за вас е казано добри неща, не сте просто „още едно резюме в купчината“.

На това е всичко, благодаря за вниманието!

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster