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

Този цитат от автора Озан Варол в книгата му Мислете като ракетен учен: прости стратегии, които можете да използвате, за да направите гигантски скокове в работата и животасе върти в ума ми напоследък.

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

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

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

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

  1. Фокусирайте се върху подобряването още малко всеки ден. Просто, нали? В началото не. Всеки път, когато започнем ново преследване, стръмността на кривата на обучение може да стане непосилна. Съчетайте това с естествената ни склонност да се сравняваме с хората около нас и понякога може да се почувстваме така, сякаш никога няма да го „разберем“. Може би сте чували за това чувство като Синдром на самозванеца. Вместо да се фокусирате върху получаването на го, каквото и то да е, съсредоточете се върху получаването на нещо ново всеки ден, което не сте знаели преди. Понякога може да е голямо откритие. По-често това ще бъде нещо малко, но фундаментално. Независимо от това, нашето обучение се натрупва с течение на времето и продължава да расте експоненциално, ако му обърнем внимание от самото начало.
  2. Имайте смелостта да поемете проекти или задачи без ясен път напред. Имаше момент по-рано тази година, когато ми предложиха проект за създаване на функция във вътрешен инструмент, за който а) нямах представа как дори да започна да мисля за това, и б) беше направено в моята компания преди. Първоначалната ми реакция беше да намекна, че не съм готов за отговорността и че може би някой друг би бил по-квалифициран да поеме задачата. За щастие обаче, съвестта ми ме прекъсна с напомнянето, че никога няма да имам необходимия опит за подобен проект, ако никога не се опитах да се заема с такъв. И така, започнах с това, което знаех, и работих, за да запълня празнините с течение на времето (повече за това в моята четвърта точка по-долу), като в крайна сметка пренесох този проект през финалната линия и повиших увереността си да продължа напред.
  3. Прочетете кода на глас и запишете какво се случва с хартия и молив, ако е необходимо. Тази точка се оказа решаваща за активирането на двете точки по-горе. От опит научих, че взирането в блок код и тихото му мислене може да работи. Но взирането в този блок от код, обясняването му на глас на кучето ми и дори написването му на обикновен английски на лист работи още по-добре. Предполагам, че някъде в Интернет има научно обяснение за това. Може би облекчава мозъка от претоварване или това, че чуването на вашите мисли, повтаряни обратно към вас, помага за изясняване на проблема. Без значение, най-мощните данни, които съм срещал, са броят пъти, в които съм се улавял да казвам „О, чакай малко. . .” докато чета код на глас срещу мислене за него в собствената си глава.
  4. Пишете, почивайте, преработвайте. В началото на тази първа година бях просто доволен от създаването на работещ софтуер. За мен нямаше значение как съм стигнал до там. Ако не беше счупен, нямаше нужда да го поправяте. Въпреки това, с времето и скромния опит се появи ново разбиране за моделите на проектиране, изсушаване на кода ми, осигуряване на четливост от хората и желанието да бъда не просто програмист, но да бъда добър програмист. В резултат на това сега използвам това, което наричам „пиши, почивай, преработвай“. Независимо дали е по-малък метод или по-голям клас (програмирам с Ruby on Rails), работя, за да получа работещо решение с всички необходими средства. След това се отдръпвам от компютъра си, като се разхождам, ям лека закуска или просто отделям малко време, за да направя някои дихателни упражнения. Всичко за промяна на контекста ще свърши работа. След като се върна, предизвиквам себе си да премина през моя код, да го прочета на глас и да потърся начини да го подобря, като елиминиране на дублирането, подобряване на имената на променливи, извличане на части от кода в помощни средства за многократна употреба, премахване на редове, които сега осъзнавам, че са ненужни , и още. Тази практика не само подобри производството ми на код, но и повиши мисленето ми за качеството на кода.
  5. Напишете си домашното, преди да помолите за помощ. Някои може да кажат, че е грубо да притеснявате някой друг за помощ, когато вие самите не сте положили много усилия първо. Това е вярно в някои случаи. Но това не е целта, която искам да отбележа тук. По-скоро, когато се сблъскате с нова концепция или предизвикателство, отделянето на време, за да разберете какво можете и да идентифицирате какво не разбирате, едновременно ще ви подготви да поискате помощта, от която действително се нуждаете, и потенциално ще ви позволи да свържете точките твой собствен. Като пример, вместо да кажете „Хей, трябва да направя X и нямам представа как да го направя, можете ли да ми помогнете?“, Елате в разговора подготвени да кажете нещо по-скоро като „Хей, трябва да do X. Видях нещо подобно, използвано в Y. Потърсих го в Google и научих за Z, но не съм сигурен, че го разбирам напълно. Опитах A, B и C, за да го тествам, и сега съм заседнал. Можете ли да погледнете моя код, за да видите дали използвам Z правилно?“ Този тип молба за помощ често води отвъд просто решение до по-ценен, богат разговор, който неизбежно ще подобри вашето критично мислене и разбиране на софтуера, който пишете.

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