Стигане до 10x (резултати): Какво може да научи всеки разработчик от най-добрите

Ами ако ти казах, че можеш да бъдеш 10 пъти по-добър от средния? Не е два пъти по-добър. 10 пъти по-добре: Ред за величина. Наистина ще се откроите. Ще имате достъп до по-добри работни места, по-високо заплащане и по-голямо удовлетворение от работата.

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

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

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

Просто решението да станете 10x разработчик ще ви даде огромно предимство пред конкуренцията.

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

Произходът на 10x Meme за програмисти

Преобладаването на научните изследвания предполага, че има порядъчна разлика в производителността между разработчиците. Да цитирам Стив Макконъл (автор, „Код завършен“):

Общата констатация, че „Съществуват разлики в порядъка на величината между програмистите“ е потвърдена от много други изследвания на професионални програмисти (Curtis 1981, Mills 1983, DeMarco и Lister 1985, Curtis et al. 1986, Card 1987, Boehm и Papaccio 1988, Valett и McGarry 1989, Boehm et al 2000).

Оказва се, че това 10x нещо се разпростира над отделните разработчици. Разликите съществуват в производителността на екипа в редица отрасли, нива на умения сред всички видове изпълнители и спортисти и т.н. ...

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

Той повдига важен въпрос: Какво точно трябва да практикуваме? Какво общо имат най-добрите разработчици и това са тези качества, от които останалите можем да се научим и да подражаваме?

Какво прави някои Devs 10x по-добър от други?

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

Проучихме около ~ 1000 разработчици, за да разберем. Първо, проведохме неофициално проучване в Twitter, за да съберем думи, използвани за описване на извънредни разработчици, и не толкова необикновени разработчици:

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

Какво прави страхотен разработчик?

1. Помислете за най-необикновения разработчик, с когото някога сте работили. Изберете всички думи, които ги описват.

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

Нека започнем с разглеждане на това, което прави страхотни разработчици страхотни. Ще започнем с топ 5:

Оказва се, че всички тези фактори побеждават общи мерки за производителност като „бързи“ и „ефективни“ чрез здравословен запас.

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

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

Ако има общи процеси, които се нуждаят от автоматизация, отделете време за автоматизирането им. Вкарайте няколко големи победи и вашите колеги и мениджъри ще оценят инициативата. Съсредоточете се върху проблемите с най-голямо въздействие. Ако всеки разработчик в екипа отделя по 5 минути на ден за повтаряща се задача, която може да бъде автоматизирана и ще ви отнеме само 30 минути, за да я автоматизирате, направете го. За екип с 6 разработчици ще ви отнеме само 1 ден, за да изплатите инвестицията.

Умения: Уменията са разработени от две съставки: разбиране и практика. Първо трябва да знаете какво да практикувате. Трябва да разберете понятията, които формират основите на езика и занаята на програмирането, и тогава е необходимо да разберете това разбиране, за да работи.

Ако не сте сигурни какво да научите и практикувате, разгледайте „Най-добрите рамки и теми за JavaScript през 2017 г.“. Технологиите се променят бързо, но езикът се адаптира бавно и инструментите за обучение като React & Redux ще ви научат на архитектурни модели и концепции за програмиране, които ще ви служат добре години наред, независимо от рамката на месеца.

Понякога интервюирам програмисти, които отговарят красиво на всички мои въпроси, но веднага щом ги помоля да ми покажат примери в код, те се спъват. Имате нужда от книжни умници и практикувани умения. Ако имаш само едно или друго, няма да те отведе много. Докато четете за нови концепции, не забравяйте да ги практикувате и след това се опитайте да ги включите във вашия ежедневен код. Уверете се, че наистина разбирате кога и как да използвате концепциите и задълбочено разбиране как работят в действителните приложения.

Най-добрият начин да се научите да кодирате е да кодирате.

Ментор / учител: Знаете много за програмирането е чудесно, но вие сте само един човек. Колкото и продуктивни да сте сами, няма начин да сравните ефективността на страхотен множител. Мултипликатор е някой, който умножава производителността на цели екипи.

Трудно е да се подчертае прекалено влиянието, което мултипликаторът може да окаже върху вашия екип. Дори ако умножителят сам не генерира код, в екип от 3, все пак ще излезете напред, ако един от тях е страхотен множител:

  • 2 1x devs
  • 1 10x dev не прави нищо друго, освен да помогне на другите 2 dev да достигнат 5x
  • 3 devs могат да съответстват на приноса на стойност от 10 1x devs

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

Разбира се, просто хвърлянето на повече пропускателна способност при проблем няма да доведе до по-добри резултати по-бързо. (Вижте “The Mythical Man Month”), но разработчик, който споделя най-добрите практики с екипа и им помага да напишат по-гъвкав, по-поддържан и по-свободен от бъгове код, струва теглото им в злато.

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

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

Страстните разработчици овладяват своя занаят, развиват чувство на гордост и собственост в работата и те стават по-щастливи в работата си.

Много разработчици ме питаха как да стана по-страстен и мотивиран. Моят отговор е да се подобря. Поставете в работата. Когато наберете повече умения, ще започнете да му се наслаждавате повече. (Вижте „Толкова добри, че не могат да те пренебрегнат“).

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

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

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

Докато придобиете повече умения, ще спечелите повече страст да овладеете умението.

Какво общо имат най-лошите разработчици?

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

2. Помислете за най-лошия разработчик, с когото някога сте работили. Изберете всички думи, които ги описват.

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

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

Често арогантни хора:

  • Да предположим, че те са най-умният човек в стаята.
  • Откажете се да обясните нещо, защото другият човек „не би разбрал“.
  • Говорете с другите / снизходите.
  • Преструвайте се, че сте по-умни, отколкото в действителност. Често нещата от Google, за да звучат умно, вместо да признаят, че има нещо на света, което те не знаят. (Забележка: нищо лошо в Googling да се научи. Googling само да звучи умно е различен въпрос).

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

Немотивиран: Трудно е да направите нещо полезно, ако не сте мотивирани да се включите в работата. Вижте раздела за развитието на страстта по-горе.

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

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

Други качества на 10x разработчици

Според мен трябва да се съсредоточите върху силните си страни повече, отколкото на своите слабости. Изберете 1 нещо, което да подобрите през тази седмица и се фокусирайте върху него безмилостно. Но може би най-голямата ти сила не е в топ 5 на списъка. Ето някои други качества, които могат да направят голяма промяна:

Честните, комуникативни хора насърчават една от най-важните характеристики на всяка връзка в развитието: Доверие.

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

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

Ще изгради взаимно доверие. Екипът ви ще получи шанс да ви помогне да изчистите пречките и ще научат, че могат да разчитат на вас, за да ги поддържате в кръга и да постигате постоянен и постоянен напредък.

Ефективност: Това, което ме поразява при този, е колко далеч е списъкът. Това очевидно е един от най-важните аспекти на личната продуктивност, но личната производителност влияе на производителността на екипа много по-малко, отколкото може би си мислите. За да бъдете наистина ефикасни, трябва да се съсредоточите върху атрибути, които ще подобрят вашия коефициент на умножение: Колко можете да подобрите ефективността на целия екип? За много повече за личната ефективност вижте „Обратно броене на резолюции в JavaScript за Нова година“. По-специално позиция № 2: „Подобрете процеса на развитие“.

Следващи стъпки

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

Способността за решаване на проблеми е най-горната позиция в списъка. Ето някои неща, които можете да направите сега, за да го подобрите:

  • Накарайте се с някои упражнения за кодиране. Начинаещите трябва да проверят JavaScript пистата в FreeCodeCamp или упражненията в Красноречив JavaScript. По-напредналите разработчици трябва да работят върху архитектурни концепции, докато изграждат приложения за практика. Винаги се бутайте само край ръба на текущите си възможности.

Същото нещо ще работи за развитието на вашите умения, вашите способности за учене и дори вашето удоволствие и страст към кода: Практика!

Кой би могъл да предположи, че всичко, което трябва да направите, за да вземете 4 от първите 5 най-важни атрибута на 10x разработчик е практика?

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

Споделете новата си намерена страст към високи постижения с всички около вас и целият екип ще се подобри с вас.

Не сте сигурни върху какво да работите?

Научете JavaScript с Ерик Елиът. Вземете екипа със себе си!

Ерик Елиът е автор на „Програмиране на JavaScript приложения“ (O’Reilly) и „Научете JavaScript с Ерик Елиът“. Той е допринесъл за софтуерни преживявания за Adobe Systems, Zumba Fitness, The Wall Street Journal, ESPN, BBC и най-добрите звукозаписни артисти, включително Usher, Frank Ocean, Metallica и много други.

Той прекарва по-голямата част от времето си в района на залива Сан Франциско с най-красивата жена в света.