The Edge's Edge: Как да станем старши разработчик

Изкачи се по стълбата на знанието. Обувки за хипстър не се изискват.

Това е част 2 от поредица от статии за програмисти, които искат да повишат своите умения. Част 1 ни преведе през най-началните етапи, където се заехме да намерим най-ефективния начин да преминем от нула към работоспособен разработчик. Днес ще направим нещата много повече. Също така току-що пуснах два онлайн курса за разработчици: Пълната уеб разработчица през 2019 г. и Пълната карта за млади до старши уеб програмисти

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

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

Какво искаме?

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

  • Не искаме да минаваме през живота, като се възприемаме като „некомпетентни“
  • Искаме да бъдем уважавани от нашите колеги
  • Искаме да се чувстваме умни и осъществени
  • Искаме да се чувстваме оценени

За да постигнем гореизброеното, не можем просто да почиваме на лаврите си и да очакваме нещата да дойдат при нас. Особено в света на програмирането, където технологията винаги се променя и количеството налична информация за нас е огромно, искаме да насочим вниманието си към растежа и ученето, без да изгаряме. С все повече и повече разработчици, които излизат от колежи и стартиращи камери, трябва да запазим уменията си остри, а начинът да се разделим е да бъдем умни и ефективни при ученето. Стига да поговорим, нека се гмурнем. Както винаги ще се опитаме да използваме най-добрия подход.

Какво е старши разработчик?

Не, това, че сте полиглот, който може да кодира в 10 различни езика за програмиране и е създал своя собствена версия на Jarvis, не ви прави старши разработчик (въпреки че сте много талантлив). Това е така, защото старши разработчик е някой, който носи постепенна полза за масата. Това е човек, който прави хората около него или нея по-добри и е човек, който е в състояние да има дългосрочна визия, да предоставя и последователно да създава бизнес стойност. Можете да знаете всички страхотни техники за функционално програмиране в света, но ако не сте в състояние да общувате добре с вашия екип или не сте в състояние да се съсредоточите върху предоставянето на действителна стойност на клиент, не сте старши разработчик. Това е важният момент: Каква стойност носите за вашата компания / стартиране / бизнес? Ако сте един от малкото хора, които могат да донесат порядъчна стойност (някои хора обичат идеята за 10x) стойност за вашата компания или бизнес, вие сте старши разработчик. Старшият разработчик не е просто още една длъжност, а по-скоро способността да използвате опита си, за да осигурите реална полза за заинтересованите страни.

Схванах го. Как да стана такъв?

Това е разделът, който всички ви чакаха (или така си представям ... може би никой не чете това ... В този случай просто ще продължа да говоря със себе си). Нека копаем и да видим дали ще успеем да преминем през всичко. Следвайте ресурсите по-долу и отделете известно време за изучаване на всяка тема. Ако сте способни да работите активно по-долу уменията, ще бъдете на километри пред всички останали. Наричам това Edge's Edge: винаги ще има хора с повече опит от вас в дадено поле, но можете да работите по-интелигентни и по-ефикасно да трупате различни комбинации от умения, които да ви разделят. Това не само ви прави по-добър разработчик, но и увеличава цялостното ви щастие, защото предоставяте истинска стойност на хората.

Често пренебрегван аспект на обучението е, че трябва да се специализирате и да се съсредоточите само върху едно нещо. Животът обаче не работи така. Много рядко в живота се изисква само едно умение. Особено в сфера като технологията, в която нещата се променят (кой знае с какво ще се занимават инженерите на машинно обучение след 5 години?), Трябва да имате разнообразен набор от преносими умения, които ще превърнат в вас адаптивни.

Това са 6-те основни умения, които ще трябва да се считате за старши разработчик:

1. Технически умения

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

Те също разбират КАК нещата са свързани. За да започнете да мислите по този начин, картирането на ума е чудесен инструмент за запознаване. По същество това е инструмент, който можете да използвате, за да избутате наистина обучение на следващото ниво (Ето един чудесен пример за картиране на ума за разработчиците на Javascript). Тази умна карта помага на мозъка ви да осъществява връзки между различни идеи и технологии.

Пример: Ако бях разработчик на Javascript (който съм, така че нека не се преструвам тук), този курс от Cory House е чудесен пример за нещата, които би трябвало да знаете, за да свържете точките в средата на JavaScript. След като добре се запознаете с инструментариума и технологиите във вашата индустрия, трябва да създадете умопомрачение с какви проблеми се сблъскват продуктите, докато те мащаб и кога преждевременната оптимизация е лошо нещо. Като имате тази връзка в главата си на всичко по-горе, вие можете да съсредоточите ресурсите на вашата компания върху най-важните неща, като имате широк изглед вместо тесен фокус.

Ако сте излезли от кодиращия буткемп или нямате образователна степен по компютърни науки, трябва да започнете да научавате за структури от данни, алгоритми и други теми за компютърни науки. Защо? Защото, въпреки че рамките и технологиите се променят, основните принципи в компютърните науки (най-вече) остават същите. Разбирайки тези теми от по-високо ниво, вие отново можете да видите, че повечето софтуерни проблеми и добри практики обикновено са постоянни през различните езици и време. Тази книга (Роб Конерис) и тази книга (Гейл Лаакман Макдауъл) са може би най-добрите инструменти, които открих, за да изравня уменията си в това. Въпреки че те надраскват само повърхността, това ще постави основата за повече учене в бъдеще.

Започнете да слушате подкасти като Software Engineering Daily от Джеф Майерсън, за да можете да сте в течение на настоящите проблеми и бъдещи перспективи на цялата индустрия.

И накрая, прочетете тази страхотна статия, която преминава през някои умения за подмножество от чисто техническа гледна точка.

2. Умения на екипа

Това е често пренебрегвано умение. Как работите с членовете на екипа? Смели ли сте и изразявате ли възторг от рецензиите на PR (изтегляне на заявка) и допринасяте ли за токсична култура? Или сте внимателни, съдействащи и насърчаващи членовете на вашия екип? Старшите разработчици нямат големи его. Те знаят, че са добри и не е нужно да се доказват пред другите. Те пишат чист опростен код, а не код, за да се опитат да покажат уменията си, което е нечетливо за другите членове на екипа. Те са готови да помогнат на другите и са готови да задават въпроси, когато не знаят нещо.

От тук идва емоционалната интелигентност. Социалната психология е важен инструмент за подобряване на това умение и няма нищо по-добро от известното Как да спечелим приятели и да повлияете на хората. Запомнете: как можете да направите тези около себе си по-добри? Ако имате 5 души в екипа си, 1 + 1 + 1 + 1 + 1 трябва да е равен на 5, защото правите тези около себе си по-добри (сега получавам зли очи от математическите пуристи… Сега ще продължа).

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

3. Клиентски / потребителски умения

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

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

4. Умения за растеж

Старшите разработчици винаги учат нещо ново всеки ден. Това не означава, че прекарват по 14 часа на ден, седейки пред компютър, четейки статии. Те са по-ефективни от това. Те винаги търсят да говорят с други разработчици, да задават въпроси или да проучват нови теми. Те не се фокусират само върху един набор от умения. Можете да бъдете най-добрият в света, като направите едно нещо, но ако не знаете целия спектър или имате общо разбиране за проблема, който решавате, вече не сте най-добрият.

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

Те не просто казват „О, мразя тази библиотека!“ През повечето време хората, които казват такива неща, мразят нещо, защото не го разбират напълно. Например не казвайте само „Мразя jQuery. Само лошите разработчици все още използват jQuery ”и звучат помпозно. Старши разработчици казват, че „jQuery играе важна роля в развитието на мрежата и популярността на JavaScript“. Те имат мнения, които могат да бъдат променени, защото им е приятно да се учат от другите, и те опитват нови концепции, преди да решат, че „мразят“ нещо.

5. Умения за продажби / интервюта

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

6. Умения на Общността

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

Едно окончателно нещо

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

заключение

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

Последно нещо…

Създадох два онлайн курса: Пълната уеб програма за разработчици през 2019 г. и Пълната пътна карта за уеб програмисти от млад до старши. В първата аз ви превеждам през всички стъпки, които споменах по-горе, ако искате всичко на едно място, допълнителна помощ или искате да подкрепите работата ми. Всеки курс има над 100 HD видеоклипове и 30 часа съдържание. Отнеха безумно # часа, за да направят. Но наистина се гордея с това как се оказа всичко. Днес го пускам на света и тъй като е сезонът на ваканциите, можете да използвате кода на купона RELEASEYA77 и курсът ще бъде само $ 10 (Достъпно за първите 100 души UPDATE: Sold Out)

Актуализация: Преминахме 40 000 студенти от над 180 държави, които са се записали за 6 месеца. Все още искам да поддържам духа за учене, така че използвайте купонния код KHDKA7166 за приятна отстъпка.

Благодаря ви, че прочетохте дотук. Извинете за дългия пост, но ако ви хареса тази публикация, моля, споделете, коментирайте и натиснете that няколко пъти. , . Може би това ще вдъхнови някого да направи скока в нова кариера.

Следвайте ме в Twitter и Medium, ако се интересувате от по-задълбочени и информативни изписвания като тези в бъдеще!

1. Пълният уеб разработчик през 2019 г.

2. Попълнете пътна карта от младши до старши уеб програмисти