Nasıl Daha Özerk ve Kendine Yeten Bir Programcı Olabilirim? [kapalı]


13

Beni mükemmel bir geliştirici olmaktan alıkoyan en büyük faktör, başkalarına güvenmem. Çok fazla soru sorduğumu hissediyorum çünkü her şeyi kırmanın ve herkesi geri tutmanın sonuçlarından korkuyorum. Bu yüzden o kadar çok soru sorarak aşırı derecede temkinliyim ki, temel olarak yeterli sorgulamadan sonra cevapları alıyorum. Bunun kötü olduğunu fark ettim ama durdurmak istiyorum. Bir kısmı, kodu bilmediğim zamanlar geldi (ya hiç çalışmadığım bir şube ya da yepyeni bir ürün), ancak başkalarına daha az güvenmek istiyorum. Önsöz olarak, bu tür sorular jenerik kalıplar veya dillerle ilgili sorular değildir: genellikle sorularım şirketimizde nasıl kod yazdığımız ve ekosistemimizde nasıl iş bulacağımızla ilgili. Yolun her adımında yardıma ihtiyacım varmış gibi hissetmek zorunda kalmadan spesifikasyonları alıp onlarla birlikte dolaşmak istiyorum. Bu normal mi? Bu durumdan geçtiniz ve eğer öyleyse, bunu nasıl aştınız?


1
Belki bu sadece kültürel / dilsel bir şeydir ... ama sizi yıldız bir geliştirici olacağınızı düşündüren şey nedir? Sizi diğer yeni geliştiricilerin% 99'undan daha iyi yapan nedir?
Stephen C

5
Ben şimdi değilim, ama olmak istiyorum. Her zaman öğrenmeye ve gelişmeye çalışırım. Çoğu insan bir problemi olduğunu bile itiraf etmekten korkar. Sorunlarımı bulmak, kabul etmek ve çözmek istiyorum. Herhangi bir alanda en iyisi sürekli iyileştirme için gayret gösterir ve ben de aynısını yapmayı hedefliyorum.
acconrad

Yanıtlar:


24

Bazı yeni geliştiricilerin işe başladığını ve hemen yetersiz olduklarını görüyorum. Aynı şeyi kariyerimde de erken yaptım. En akıllı adamların üstesinden gelmesi gereken en az iki önemli sorun olduğunu düşünüyorum: zaman algısı ve kendi doğal yetenekleri.

Zaman Algısı
Akıllı çocuklar problemleri nispeten hızlı bir şekilde çözmek için kullanılır. Tek bir kalkülüs problemine bir saat harcamak zorunda kaldığımda bilgisiz olduğumu hatırlıyorum. Bir problem üzerinde 60 dakika geçirmek artık bir şey değil. O günler bitti ... gömün ve güle güle deyin. Günümüzde çoğu yazılımın karmaşıklığı ve boyutu aşırıdır. İnsanlar artık işleri halletmek için kullanmak zorunda oldukları tüm araçları anlamıyorlar. JavaScript dilinin en önemli adamlarından biri olan Douglas Crockford,

"Misapplication of standard tools...is the new standard."

Dünyada tüm geliştirme araçlarını öğrenmek için yeterli zaman yok.

Doğal Yetenek
Zekanız, problem çözme yeteneğiniz ve doğal becerileriniz ilk etapta sizi tüm geliştirici konserine soktu. Bu alanda daha az bir şeye yer yok. Peki, neredeyse bilmediğiniz 100.000 satır kod, dil ve çerçeve, insanların size ittiği tasarım desenleri ve paradigmalar, çoğunun elinin arkası gibi bilen adamlar, dün isteyen müşteriler ve bir patron ile ne yapıyorsunuz? kim senin dünyasını bekliyor? Doğal yeteneğiniz başarısız olduğunda korkutun.

Evet, bu normal. Hala yoluma atılan bazı şeyleri korkutuyorum.

Ne yapılabilir?

İyi eski moda sıkı çalışma ile bu doğal yetenekleri geliştirme zamanı. Sorunları daha küçük parçalara ayırmak için çalışın. Ve geçmişte yapmış olabileceğiniz pek çok şeyden farklı olarak, bu sorunların çözülmesi için çok zaman harcadığını fark edin. Bu yüzden, karmaşık bir sorunu inceledikten sadece 15 dakika sonra vazgeçmeyin. Bunun yerine, sorunları çözün ve saati izlemeyi bırakın. Bir süre sonra, 30 dakikalık bir problemle çalışmak eskiden olduğu gibi değil.

Kendine güvenme, kendini yönetme becerisinde büyük rol oynar. Takım, özellikle daha deneyimli yaşlılar için de geçerlidir. Bir şeyleri kırmamak konusunda dikkatli olmak iyidir, ancak bu sürekli bir soru akışı istemeniz gerektiği anlamına gelmez.

Bunun yerine, kaynak denetimini kullanın. Bir değişikliği kontrol etmediğiniz sürece ana ürünü kıramaz ve diğer geliştiricileri kızdırmazsınız. Ayrıca, anlayabileceğiniz ve test edebileceğiniz değişiklikler yapın ve check-in işleminden önce iyi test ettiğinizden emin olun.

Tek seferlik, basit programlar yazmak için kullandığım küçük bir test projem bile var, bu yüzden ana uygulamadaki tüm işler hakkında endişelenmem gerekmiyor.

Son olarak, her kararın bir miktar ver ve al ile geldiğini unutmayın. Belli bir düzeyde fedakarlık etmeden ilerlemeye gerek yok. Mükemmellik için çabalamayın, harikalar için çaba gösterin ve eylemlerinize dikkat edin. Çünkü her zaman eleştiri almaya ve fikirlerinizi ve bunları neden yaptığınızı açıklamaya hazır olmanız gerekir. Verdiğiniz kararlardan gurur duyun. Yanlış olduklarında bile öğrenilecek çok şey var.


2
Siz vazgeçene kadar +1 çalışma. Bazen tek bir problemi çözmek için 2-3 gün geçirdim . Kopmak için: TDD'yi deneyin veya en azından birim testleri yazın.
ashes999

12

İlk şey soru sormaktan korkmayın. Üst düzey mimarların bile kod hakkında sorular sorduğunu gördüm. Her şeyi bilmeleri beklenmiyor; işin yapılması ve gerisini anlayabilmeleri için yeterli bilgiye sahip olmaları beklenir.

Muhtemelen en iyi taktikler:

  • Google'da nasıl araştırma yapacağınızı öğrenin. Biraz araştırma çalışmasıyla neredeyse her şeye cevap bulabilirsiniz. Yığın Taşması, çözülmesi zor sorunlar için harikalar yaratır.
  • Hata ayıklamayı öğrenin. Sadece değişken X bulmak için ilginç, derin kurumsal kod içine adım saat geçirdim 7 yerine 3.

Özel bir çiçek olduğum için değil, ama problemlerim dilde değil. Benim dilimde işleri nasıl yapacağımla ilgili değil. Sorularımın çoğu şirket merkezli: işyerinde çevremize özgü alandaki şeylerin nasıl yapılacağı ile ilgili. Bunlar, Google'da yapamayacağınız şeylerdir.
acconrad

3
Tamamen anladım; Üç yıldır aynı durumdaydım. Bullet point # 2 cevap: Hata ayıklamayı öğrenin. İnsanlar ayrıntıları sık hatırlamıyor; hata ayıklama anahtardır.
ashes999

1
Katılıyorum. Çevrenizdeki insanlardan daha fazla cevap öğrenene kadar soru sormaya devam edin. Aşağı inin ve hataları bulana kadar düzeltmek için KG ekibiyle konuşun. Google sizin uzman arkadaşınızdır; onu yoğun olarak kullanın. Bir gün bir sorgulama e-postası gönderdiğinizi ve cevap geri gelmeden önce cevabı kendiniz bulduğunuzu göreceksiniz.
Andy Canfield

5

"Büyük resim" soruları sormaya korkmayın

Başka herkesin cevabını bildiği anlaşılan geniş sorular sorsaydım, korktuğumda, yetersiz kaldığımı düşünürsem, işime devam edebileceğim en küçük soruyu bulmaya çalışırdım. Cehalet ve yetersizlik arasındaki farkı anlamadım. Cehalet, henüz bir şey öğrenmediğiniz anlamına gelir ve devam etmediği sürece mükemmel kabul edilebilir. Cahil gibi davranmamak çok daha kötü.

İnsanların cevaplarının sizi şimdiye kadar götürdüğünü fark ederseniz, onlardan size başka bir balık vermek yerine balık tutmayı öğretmelerini istemeniz gerekir. Parçanızın bütüne nasıl uyduğunu sorun. Sorunuz "neyse SQL nedir" gibi temel görünüyorsa, daha sonra değil, daha erken isteyin. Şimdi biraz aptal görünebilirsin, ama sonra çok daha aptal görünecek.

Kendinize bir bekleme süresi verin

Sorularınız olur olmaz soru sormayın. Karmaşıklığa bağlı olarak, kendi başınıza anlamaya çalışmak için kendinizi yarım saatten bir güne kadar verin. Çoğu zaman kendiniz çözeceksiniz. Değilse, iş arkadaşınıza neyin işe yaramadığını söyleyebileceksiniz, bu da size daha iyi bir cevap vermesine yardımcı olabilir.

Ayrıca, iş arkadaşınız başının tepesinden bir cevap bilmiyorsa, ona nasıl geldiğine dikkat edin. Çoğu zaman düşündüğünüz kadar yardıma ihtiyacınız yoktur. Bir soru için zamanım yoksa, genellikle birisini belirsiz bir yöne yönlendireceğim ve onlara bir dakika aldığımda takip edeceğimi söyleyeceğim ve genellikle oraya vardığımda çözdüler.

Bazı taslakları atın

Otur ve kafanıza gelen herşeyi bırak, sonra sen bir yazarsın. Ancak yazar, kendi şeylerinin değerini acımasız olarak değerlendirebilen ve çoğunu yok edebilen bir yazardır.
—Sidonie Gabrielle Colette

Asla bir sürüme dönüştürmeyecek bir kod yazmaktan korkmayın. Ne kadar çok tecrübe ederseniz, o kadar çabuk yanlış yolda olduğunuzu söyleyebileceksiniz, ancak yanlış yolda gitmeye devam edeceksiniz. Bir çözümün değeri, ilk önce yanlış şekilde yapıldığını görene kadar belirgin değildir.


1

Kendine Yeterlilik

  • Alan adında artan deneyim ve maruz kalma.
  • Mevcut sistemleri ve bunların davranışlarını, bağımlılıklarını anlamak için artan gözlem becerileri ve analitik beceriler.

Sık sorulan sorular sormak, her ikinizin de eksikliğini gösterme riski taşır.

Etki alanınızı, teknolojinizi, platformunuzu, dilinizi kare olarak değiştirirseniz (Neredeyse, benzer sorunları ve aktarılabilir bilgileri ele alma yeteneğiniz arttıkça sayılmaz)

Gerçekten ihtiyaç duyulduğunda soru sormamak, çok değerli üretim sürelerini boşa harcar.

Yanlış yaparsanız olası zararın derecesine ilişkin varsayımınız hakkında bir kelime bırakmak sizin lehinize olabilir. veya varsayımlarınızın gerçek bir değerlendirmesini almak için ne düşündüğünüzü kırabilirsiniz. Çoğu zaman kaçırdığınız noktaları ve açıyı ortaya çıkarmanıza izin verebilir.

Dikkatli olmak iyidir.Ama En iyisi sorularınızın doğasını belirlemeye başlarsınız. Eğer kağıda yazmak ve zorluk / değer incelemek en iyisidir.

  1. Google / forumlarda veya üzerinde daha uzun süre çalışarak anlayabileceğiniz bir şey mi
  2. Eğer berbat ederseniz çok fazla maliyet olmadan kurtulabileceğiniz veya düzeltebileceğiniz bir şey mi?

0

Üzerinde çalıştığınız şeylere bakmayı ve kendi kendinize karar vermeye başlamayı söyleyebilirim (elbette uygulama teknik özelliklerine uygun olarak). Şimdiye kadar, geniş kapsamlı bir değişimin ve basit bir değişimin ne olduğu konusunda iyi bir his hissetmelisiniz. Basit olanlarla başlayın. Yaptığınız şeyin doğru olduğunu düşünüyorsanız, yapın.

Sen OLACAK hata yaparlar ve bu paha biçilemez. Bir dahaki sefere daha iyi bir iş yapmanıza neden olacakları için onlardan olabildiğiniz her şeyi öğrenin.

Küçük kararlardan memnun olduğunuzda, daha büyük kararlar almaya başlayın. Projenize / ortamınıza / ekibinize göre bununla ne kadar ileri gideceğinize karar vermeniz gerekecek.

Karar verme tarafı bu. Yapmanız gereken diğer bir şey, kararlarınızı yönlendirmenize yardımcı olması için beyninizi beslemeye devam etmektir. Teknolojinizi kapsayan siteleri takip edin. Basitten tuhaf karmaşıklığa kadar her şeyi kapsayan neredeyse her şeyin çevrimiçi öğreticileri vardır. İnsanlara neden belirli kararlar aldıklarını sormaktan korkmayın - bir bilgi arayan olarak, çatışmacı olmamak. Çoğu insan bir şeyleri açıklamaktan çok mutludur ve onlardan biraz öğrenebilirsiniz.

Teknik bilgiye sahip olduğunuzda, gerisi bilgelik ve güvendir ve deneyimlerle gelir.


0

Soru soran bir acemi olduğumda, mevcut araçları kullanarak kendime her zaman kısmi bir cevap almaya çalışırdım; ve olabildiğince uzağa gittiğimde, yardım istediğim kişinin meşgul olduğu varsayımıyla sorumu olabildiğince açık ve özlü olarak nasıl ifade edeceğimi tam olarak anlayacağım. Bu hazırlık ile kimsenin bana soru sormamı düşündüğünü sanmıyorum ve aslında bundan keyif aldıkları izlenimini edindim. Daha sonra alan uzmanı olduğumda, zamanımıza saygı duyduklarını açıkça belirten insanlara yardım etmekten de keyif aldım.

Yaptığım diğer bir şey, her gün sistemin mimarisini seçmekti. Diğer posterler, devasa bir modern sistemlerin ne olduğu, ne kadar zor anlaşılacağı hakkında yorum yaptı. Bu yüzden kod turlarına devam edecektim: mantıklı bir giriş noktasından başlayın, sonra onu takip edin, nasıl çalıştığı hakkında notları not edin, bazen kendim için cevaplayacağım sorular sorarak, bazen diğer insanlara sorun. Bu tür kapsayıcı aşinalık ve etki alanı yetkinliği zaman alır, ancak hızlandırabilirsiniz; ve ne kadar çok yaparsanız, istediğiniz şekilde o kadar çabuk kendi kendine yeterli olacaksınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.