10x'e Geçme (Sonuçlar): Herhangi Bir Geliştiricinin En İyiden Ne Öğrenebileceği
Ya size ortalamadan 10 kat daha iyi olabileceğinizi söylesem? İki katı kadar iyi değil. 10 kat daha iyi: Bir büyüklük sırası. Gerçekten göze çarpacaksın. Daha iyi işlere, daha yüksek maaşlara ve artan iş memnuniyetine erişebileceksiniz.
Yüzlerce geliştiriciyle röportaj yaptım, ders verdim ve danışmanlık yaptım. Belki de en değerli paket, yıllardır yaşamlarını kodlayan geliştiriciler arasında bile çok çeşitli beceri seviyeleri olmasıdır.
Bana göre daha da çarpıcı olan, çoğunun ne kadar kolay iyileşebileceği. Ayrıca çok sayıda geliştiricinin geliştirmek istediğini de fark ettim. Mücadele ettikleri şey neyin üzerinde çalışacağını ve bunun üzerinde nasıl çalışacağını bilmek.
Mükemmelliğe kendini adayanlar için iyi haber, diğer geliştiricilerin çoğunun, geliştirme fırsatını bilmemesi ya da taahhüdü yapacak kadar motive olmamasının farkında olmamasıdır.
Sadece bir 10x geliştirici olmaya karar vermek size rekabet karşısında büyük bir avantaj sağlayacaktır.
Dahası, 10x sadece geliştirme becerileri ile ilgili değil. Bu, çok sayıda önemli faktörde yalnızca bir faktördür. Açıkçası, pirzola olmadan 10 kat geliştirici olamazsınız, ancak tek başına kodlama pirzola yeterli değildir.
10x Developer Meme'in Kökenleri
Araştırmanın bir önceliği, geliştiriciler arasında performansta bir büyüklük farkı sırası olduğunu göstermektedir. Steve McConnell'den alıntı yapmak için (yazar, “Kod Tamamlandı”):
“Programcılar arasında büyüklük sırası farklılıkları var” genel bulgusu, profesyonel programcıların diğer birçok çalışmasıyla doğrulanmıştır (Curtis 1981, Mills 1983, DeMarco ve Lister 1985, Curtis ve diğerleri 1986, Kart 1987, Boehm ve Papaccio). 1988, Valett ve McGarry 1989, Boehm ve diğerleri 2000).
Bu 10x olayının bireysel geliştiricilerin ötesine uzandığı ortaya çıktı. Farklı sektörlerde takım verimliliğinde, her türlü oyuncu ve sporcunun yetenek seviyelerinde farklılıklar var.
10x çok fazla fark gibi görünüyor. Geri kalanımızın, bu mükemmellik seviyesine ulaşma şansının olmadığı hatalarını yapmak kolaydır - basit gerçek, çoğumuzun kazanmayacağıdır. Ancak asıl ilginç olan, mükemmelliğe giden açık bir yol olduğudur. İnsanlar harika geliştiriciler olarak doğmazlar. Oraya odaklanmış, kasıtlı bir pratikle ulaşırlar.
Önemli bir soruyu gündeme getiriyor: Tam olarak ne yapmalıyız? En iyi geliştiricilerin ortak noktası nedir ve bu nitelikler geri kalanımızdan öğrenebileceğimiz ve taklit edebileceğimiz şeyler midir?
Bazı Devs'i diğerlerinden 10 kat daha iyi yapan nedir?
Bazı geliştiricileri diğerlerinden 10 kat daha iyi yapan birçok faktör vardır. Kapattıkları biletlerden çok daha fazlası. Tabii ki, işlerin yapılması hayati derecede önemli bir önlemdir, ancak 10x'e ulaşmak için başka neleri geliştirebilirsiniz ve ilk önce ne üzerinde çalışmalısınız?
Bunu öğrenmek için yaklaşık 1.000 geliştiriciyi araştırdık. İlk olarak, olağanüstü geliştiricileri tanımlamak için kullanılan kelimeleri toplamak için Twitter hakkında gayri resmi bir anket yürüttük.
Daha sonra cevapları basit, açıklayıcı kelimeler listesine birleştirdik ve 2 çoktan seçmeli soru ile bir anket oluşturduk.
Harika bir geliştirici yapan nedir?
1. Şimdiye dek çalıştığınız en olağanüstü geliştiriciyi düşünün. Onları tanımlayan tüm kelimeleri seçin.
Buradaki fikir, geliştiricilere odaklanabilecekleri niteliklerin bir listesini vermektir. Bunların hepsi pratik yapabileceğiniz ve geliştirebileceğiniz becerilerdir.
Büyük geliştiricileri harika yapan şeylere bakarak başlayalım. İlk 5 ile başlayalım:
Tüm bu faktörlerin sağlıklı bir marjla “hızlı” ve “verimli” gibi ortak verimlilik önlemlerini aştığı ortaya çıktı.
Problem çözme: Problem çözme, geliştiricilerin yaptığıdır, bu nedenle bu kalitenin yüksek puanlar alması şaşırtıcı değildir, ancak ortalama bir problem çözücüyü büyük bir problem çözücüsünden ayıran nedir? Doğru problemleri çözme. Geliştiriciler üretken hissetmek ve onları geride tutan şeyler olduğunda hayal kırıklığına uğramak isterler.
Çoğu büyük kod tabanında, kodun kimsenin korumak istemediği kısımları vardır. Kodun bu bölümüne girmeye ve onu temizlemeye zaman ayırabilirseniz, bu kodla uğraşması gereken herkes için hayatı kolaylaştıracaksınız.
Otomatikleştirilmesi gereken genel işlemler varsa, onları otomatikleştirmek için zaman ayırın. Bazı büyük kazançlar elde edin, iş arkadaşlarınız ve yöneticileriniz bu girişimi takdir edeceklerdir. En çok etkilenen sorunlara odaklanın. Ekipteki her geliştirici, otomatik hale getirilebilecek tekrarlı bir iş için günde 5 dakika harcıyorsa ve otomatikleştirmeniz yalnızca 30 dakikanızı alırsa, bunu yapın. 6 geliştiriciden oluşan bir ekipte, yatırımın karşılığını ödemesi yalnızca 1 gün sürecek.
Beceri: Beceri iki bileşenden oluşur: anlama ve uygulama. Öncelikle ne yapacağınızı bilmek zorundasınız. Dilin ve programlama zanaatinin temellerini oluşturan kavramları anlamanız ve daha sonra bu anlayışı işe koymanız gerekir.
Ne öğrenip pratik yapacağınızdan emin değilseniz, “2017'de Öğrenilecek En İyi JavaScript Çerçeveleri ve Konuları” konusuna bakın. Teknoloji hızla değişiyor, ancak dil yavaş yavaş adapte oluyor ve React & Redux gibi öğrenme araçları, ayın çerçevesinden bağımsız olarak size yıllarca iyi hizmet edecek mimari kalıpları ve programlama kavramlarını öğretecek.
Bazen tüm sorularıma güzel bir şekilde cevap veren geliştiricilerle röportaj yapıyorum, ancak kodlarıma örnekler göstermelerini ister istemez yanılıyorlar. Akıllı kitaplara ve pratik beceriye ihtiyacın var. Sadece bir tanesinin olması seni çok uzağa götürmez. Yeni kavramları okurken, bunları uyguladığınızdan emin olun ve ardından her gün kodunuzla çalışmayı deneyin. Kavramların ne zaman ve nasıl kullanılacağına ve gerçek uygulamalarda nasıl çalıştıklarına dair kapsamlı bir anlayışa sahip olduğunuzdan emin olun.
Kodlamayı öğrenmenin en iyi yolu kodlamaktır.
Mentor / öğretmen: Programlama hakkında çok şey bilmek harika, ama sen sadece bir kişisin. Tek başına ne kadar üretken olursanız olun, harika bir çarpanın performansını eşleştirmenize imkan yok. Çarpan, tüm takımların üretkenliğini artıran kişidir.
Bir çarpanın ekibiniz üzerindeki etkilerini aşırı vurgulamak zor. Çarpan kendiliğinden kod üretmese bile, 3 kişilik bir ekipte, bunlardan biri harika bir çarpansa, hala öne çıkacaksınız:
- 2 1x devs
- 1 10x dev hiçbir şey yapmaz ancak diğer 2 devin 5x'e ulaşmasına yardımcı olur
- 3 dev, 10 1x devs değer katkısıyla eşleşebilir
Gerçekte, güçlü bir mentorluk kültürüne sahip olan ekipler birbirlerini mentor etme eğilimindedir. Herkes bazı kodlara katkıda bulunur. Bir veya iki göze çarpıyor ve zamanlarının çoğunu diğer geliştiricilere yardım etmek ve daha yüksek kalitede kod incelemeleri sağlamak için yatırım yapıyor.
Elbette, bir soruna daha fazla verim atmak, daha iyi daha iyi sonuçlar vermeyecektir. (Bkz. “Efsanevi Adam Ayı”), ancak takımla en iyi uygulamaları paylaşan ve daha esnek, daha sürdürülebilir, daha fazla hatasız kod yazmalarına yardımcı olan bir geliştirici, altın cinsinden ağırlığına değer.
Mükemmel Öğrenen: İnsanlara sık sık tutkulu öğrenici kiralamasını söylerim. Teknoloji dünyası hızlı bir şekilde değişiyor ve kimse her şeye ayak uyduramıyor, ancak önemli teknik değişiklikler yapmaya karar verirseniz hızlı bir şekilde uyum sağlayabilecek geliştiriciler isteyeceksiniz. Çarpanlardan en fazla yararlanmak istiyorsanız, ayrıca yeni şeyler öğrenmek için eğitilebilir ve istekli geliştiriciler kullanmanız gerekir. En iyi geliştiriciler hem mentorlar hem de menteelerdir - aynı zamanda en yeşil yenilgilerden bile değerli yeni şeyler öğrenebileceklerini açıkça anlayan büyük öğretmenler.
Tutkulu: Sürekli olarak gelişmek için, temel iş gereksinimlerinin ötesine ve ötesine geçme konusunda motive olmalısınız. Mükemmelliğe olan bağlılığınız olmalıdır ve daha iyi hale geldikçe ve daha fazla tanınırlık kazandıkça, bu bağlılık tanınma ve iş tatmini ile ödüllendirilir.
Tutkulu geliştiriciler işlerinde ustalaşır, işlerinde gurur ve mülkiyet duygusu geliştirir ve işlerinde daha mutlu olurlar.
Birçok geliştirici bana nasıl daha tutkulu ve motive olacağımı sordu. Benim cevabım daha iyi olmaktır. İşe koy. Daha fazla beceri kazandıkça daha çok zevk almaya başlayacaksınız. (Bkz. “Seni Görmezden Gelemeyecekleri İyi”).
İnan bana, hiçbir müzisyen ölçeklerini zorlamaktan hoşlanmaz ve gelişimlerini hissetmeye başlayana kadar sondajları hızlandırır. Çok az koşucu, çalışma sürelerindeki iyileşmeleri fark edinceye kadar veya nefesleri tükenmeden ne kadar önce koşabileceklerini fark edinceye kadar nefes tükenme hissine bayıldı.
Bir şeyleri başardıkça, beynimizde bizi mutluluk veya coşku duygusu ile dolduran pozitif kimyasal geri besleme döngülerini tetikliyoruz. Bu etkinin gücü, hedefin büyüklüğüne bağlı olarak değişir, ancak küçük hedefler bile olumlu geribildirim döngüsünü tetikleyebilir.
Başka bir deyişle, kodlama becerileriniz üzerinde çalışmak için motive olmakta zorlanıyorsanız, birkaç dakika içinde yapabileceğiniz gerçekten basit bir şeyle başlayın ve sonra da bunu geliştirin. Süreci gittikçe daha fazla tekrarlayıp daha büyük hedeflerle uğraşırken beyninizdeki dopamin seviyeleri artacak ve onunla öğrenme zevkiniz de artacaktır.
Daha fazla beceri kazandıkça, bu beceride ustalaşmak için daha fazla tutku edinirsiniz.
En Kötü Geliştiricilerin Ortak Neleri Var?
Ne kadar mükemmel kaliteye sahip olursanız olun, sizi gerçekten aşağı çekebilecek birkaç olumsuz özellik vardır. Neyse ki, eğer onların farkındaysanız ve eksikliklerinizi net bir şekilde görebiliyorsanız, olumsuz etkileri azaltabilirsiniz.
2. Şimdiye kadar çalıştığınız en kötü geliştiriciyi düşünün. Onları tanımlayan tüm kelimeleri seçin.
Beceriksiz: Neyse ki, en kötü geliştiricilerin en kötü özelliği, aynı zamanda düzeltmesi en kolay olanıdır. Şu anda çok iyi bir kodlayıcı değilseniz, “Kodları Öğrenin: Çabalarınızı Azaltabilecek 13 İpuçları” bölümüne bakın ve çalışmaya başlayın! Kendinizi çok motive hissetmiyorsanız, mesleğinize duyulan tutkuyu geliştirme bölümünü yukarı kaydırın ve tekrar okuyun.
Kibirli: Bunu düzeltmek çok daha zor, ancak çaba harcamaya karar vermek diğer insanların sizi nasıl algıladıklarında büyük bir fark yaratabilir. Kibirli bir kişi, kendilerini iyi hissetmek için kendilerini şişirme ya da başkalarını yere koyma gereğini hisseder - ama asla işe yaramaz. Kendinizi daha iyi hissetmek yerine, bir aldatma sendromu hissi hissedebilirsiniz ve başkalarının sizin olduğunuz kadar akıllı olmadığınızı fark edebileceği endişesini hissedebilirsiniz.
Kibirli insanlar genellikle:
- Odadaki en zeki kişi olduklarını varsayalım.
- Bir şeyi açıklamayı reddetmek, çünkü diğer kişi “anlamaz”.
- Aşağıdan başkalarıyla konuşun / küçümseyin.
- Gerçekten olduklarından daha akıllı gibi davran. Dünyada bilmedikleri bir şey olduğunu itiraf etmek yerine, akıllı görünmek için sık sık Google şeyleri. (Not: Öğrenmek için Googling ile yanlış bir şey yok. Sadece akıllıca ses çıkarmak farklı bir konudur).
İşbirlikçi olmayan: Kibirli insanlar sık sık en iyi bildiklerini ve başkalarının ortak bir vizyon üzerinde çalıştığını ve kibirli bir kişinin sık sık gemiye binmeyi reddedeceğini varsayıyor. Bir şeye katılmıyorsanız, konuşun ve dinlenin, ancak takımın geri kalanının düşündüğü tüm takası tam olarak anladığınızı ve durumu tam olarak anlasanız bile, Bunu küstahlık ve sarsıntılı davranışları haklı göstermek için kullanmayın. Nazik ve yardımcı olmak için daima elinizden geleni yapın.
Motive edilmemiş: İşe koymaya istekli değilseniz, işe yarayacak bir şey elde etmek zor. Yukarıdaki tutkunun geliştirilmesi ile ilgili bölüme bakın.
İnatçı: “İnatçı” ve “işbirlikçi” yı birleştirmememin sebebi inatçılığın sadece işbirliği ile ilgili olmamasıdır. Bazen geliştiriciler işe yaramayan bir şeyi yapmaya çalışırken sıkışıp kalıyorlar. Günleri başarı şansı olmayan bir çözüme koyacaklar, ancak bazen güdük olduklarını kabul etmeyi reddediyorlar. Sık sık, geliştiriciler başkasının birkaç dakika içinde çözümü görmüş olabileceği durumlarda, saatlerce kör oldukları bir hataya karşı kafalarını çarpacaktır.
Bu tuzağa düşme. Her geliştiricinin zaman zaman kendi kodlarındaki problemlere karşı kör olduğu gerçeğine açık olun. Her geliştirici mücadele eder. Her geliştiricinin şimdi ve sonra yardıma ihtiyacı var. Bunu sormaya istekli olun ve sizden istendiğinde sağlamaya istekli olun.
10x Geliştiricinin Diğer Nitelikleri
Benim düşünceme göre, güçlü yanlarına zayıf yönlerinden daha fazla odaklanmalısın. Bu hafta geliştirmek için 1 şey seçin ve durmadan odaklanın. Ama belki de en büyük güç, ilk 5 listesinde değil. İşte büyük fark yaratabilecek bazı diğer özellikler:
Dürüst, iletişimsel insanlar, herhangi bir gelişim ilişkisinin en önemli özelliklerinden birini teşvik eder: Güven.
Genelde, geliştiriciler gün boyunca bir tavşan deliğinden kaybolacakları bir tuzağa düşecekler ve yeniden yüzdüklerinde, uygulamanın geri kalanıyla bütünleşmeyecek bir şey inşa ettiler ya da onların peşinden koştuklarını öğrendiniz kuyruk, saat veya dakika sürmesi gereken bir sorunu çözmeye çalışıyor.
İletişim, iletişim, iletişim. Çok uzun süre kendi başına kaçma. Her gün kodunuzu kontrol edin. En az 1 veya 2 ekip üyesinden kod incelemeleri alın. Yöneticinize günlük üzerinde ne üzerinde çalıştığınızı bilmesini sağlayın.
Karşılıklı güven inşa edecek. Ekibiniz engelleri temizlemenize yardımcı olma şansını elde edecek ve onları döngü içinde tutmanız ve sürekli ve istikrarlı bir ilerleme kaydetmeniz için size güvenebileceklerini öğreneceklerdir.
Verimlilik: Bu konuda beni etkileyen şey listenin ne kadar aşağı olduğu. Kişisel verimliliğin en önemli yönlerinden biri olduğu açıktır, ancak kişisel üretkenlik ekip verimliliğini düşündüğünüzden çok daha az etkiler. Gerçekten verimli olmak için, çarpma faktörünüzü geliştirecek özelliklere odaklanmanız gerekir: Tüm ekibin verimliliğini ne kadar artırabilirsiniz? Kişisel verimlilik hakkında daha fazla bilgi için, bkz. “JavaScript Yeni Yıl Kararları Geri Sayımı”. Özellikle de Madde # 2: “Geliştirme Sürecini Geliştir”.
Sonraki adımlar
Görüldüğü gibi, en iyi geliştiricilerin başarısına katkıda bulunan birçok önemli faktör vardır. Peki nereden başlamalısın?
Sorun çözme yeteneği listedeki en üst öğedir. Bunu geliştirmek için şu anda yapabileceğiniz bazı şeyler:
- Bazı kodlama alıştırmalarıyla kendinizi zorlayın. Yeni başlayanlar FreeCodeCamp'taki JavaScript parçasını veya Eloquent JavaScript'teki alıştırmaları kontrol etmelidir. Daha gelişmiş geliştiriciler pratik uygulamalar oluştururken mimari konseptler üzerinde çalışmalıdır. Kendinizi daima mevcut yeteneklerinizin sınırlarının ötesine itin.
Aynı şey yeteneklerinizi, öğrenme becerilerinizi ve hatta kodlama zevkinizi ve hatta tutkunuzu geliştirmek için çalışacaktır: Pratik yapın!
10x geliştiricinin en önemli 5 özelliğinden 4'ünü almak için yapmanız gereken her şeyin pratik olduğunu kim bilebilirdi?
Sadece eksik olan parçayı doldurmak için başkalarına ne öğrendiğini öğret. Soruları cevaplayın, danışmana katılın, iş arkadaşlarınızla programı eşleştirin ve ekibinizdeki herkesin bir mentorluk kültürüne bağlı olduğundan emin olun.
Yeni keşfedilen tutkunu etrafınızdaki herkesle paylaşın, tüm takım sizinle birlikte gelişecektir.
Ne üzerinde çalışacağınızdan emin değil misiniz?
Eric Elliott ile JavaScript öğren. Ekibi de getir!
Eric Elliott, “JavaScript Uygulamalarını Programlama” (O’Reilly) ve “JavaScript'i Eric Elliott ile Öğren” in yazarıdır. Adobe Systems, Zumba Fitness, The Wall Street Journal, ESPN, BBC ve Usher, Frank Ocean, Metallica ve daha birçokları dahil olmak üzere en iyi kayıt sanatçıları için yazılım deneyimlerine katkıda bulundu.
Zamanının çoğunu San Francisco Körfez Bölgesi'nde, dünyanın en güzel kadını ile geçiriyor.