Küçük Bir Geliştirici Mentor nasıl


99

Bu başlık biraz geniş, ancak sorumu doğru bir şekilde sormadan önce biraz bilgi vermem gerekebilir.

Burada da benzer soruların sorulduğunu biliyorum . Ama benim durumumda, birisine mentorluk yapmam mı gerektiğini yoksa kişinin yazılım geliştiricisi olmak için uygun olup olmadığını sormuyorum . Yargılamak için benim yerim değil. Bana tam olarak sorulmadı, ancak kendim ve diğer kıdemli geliştiricilerin burada başlayan yeni geliştiricilere rehberlik edecekleri açık. Bu konuda hiçbir sorunum yok ve çoğu durumda, bana işler hakkında yeni bir bakış açısı getiriyor ve sonunda süreçte öğrenmeye başladım. Ayrıca, birinin bana bir şeyler öğretmek için zaman ayırması kariyerimin başlangıcında ne kadar yararlı olduğunu da hatırlıyorum.

"Yeni geliştirici" deyince, üniversiteden yeni çıkmış bir veya iki yıllık bir deneyime sahip olabilirler.

Son zamanlarda, burada kendimden farklı ve benim için uzlaştırması zor olan gelişim / programlamaya yönelik bir tutumu olan insanlar başlamış; Görevin yerine getirilmesi için yeterli bilgiyi çıkarırlar ama ondan gerçekten bir şey öğrenmezler. Kendimi onlarla aynı sorunların üzerinden geçerken buluyorum. Bunun bir kısmının bir kişilik olabileceğini anlıyorum ama en iyisini yapmak ve kanatlarımın altındayken onları yuvadan itmek benim işim olduğunu düşünüyorum.

Öğrenecekleri ancak problemi çözecek kadar vermeyecekleri kadar nasıl bilgi verebilirim?

Ya da belki:

En az direnişe geçmek için tasarlanan ve özünde onları kolay yoldan çıkarmak yerine onları öğrenmeye zorlayan sorulara verilen doğru cevap nedir?

Bu sorular muhtemelen daha genel öğretim sorularıdır ve özellikle yazılım geliştirme ile ilgisi yoktur.

Not: Hangi görevde çalıştıklarını söylemiyorum. Yönetim görevi yerine getirir ve çok basit bir hata düzeltme işleminden başlayarak tüm bir uygulamaya başlamaya kadar her şey olabilir. Bu, hiçbir şekilde ideal olmamakla birlikte, kendi zorluklarını açıkça ortaya koymasına rağmen, bunun başka bir soru için en iyi kalan konu olduğunu düşünüyorum. Bu yüzden yapabileceğim en iyi şey, eldeki problemde onlara yardım etmek ve daha basit problemlere parçalamalarına yardımcı olmak ve ayrıca işlem kayıtlarını kontrol etmek ve yaptıkları hataları işaret etmek.

Ana hedeflerim:

  • Onlara yardım edin ve onlara daha fazla güvenmeye başlamak için ihtiyaç duydukları araçları verin.
  • Onları doğru yöne doğru yönlendir ve kötü gelişim alışkanlıklarını erken kır.
  • Onlarla harcadığım zaman miktarını azaltın (yukarıda açıklanan kişilik türü, bire bir zamana daha fazla ihtiyaç duyar ve anlık mesajlaşma veya e-posta yoluyla iyi sonuç vermez. üzerinde çalışıyorum, adımımı attığım ve bir dakika farkında hata ayıklamalarına yardım ediyorum; yapılması gereken kendi projelerim var).

1
sadece birinin olmak istedikleri bir kişi olmasına yardım edebilirsiniz. Rehberlik etmek isteyenler rehberlik eder.
Darknight

14
Sen yazılım geliştirme özgü değildir bu konuda bir çok şey olduğunu haklısın, ama bu olduğunu (yani birincil iş olmasa bile) İyi bir öğretmen olmak hakkında. Öğretimin bağlamında , Chronicle of High Ed'de üç rol oynadığınızda başarının gerçekleşebileceğini söyleyen küçük bir parça yazdım : iyi bir rol model olmak, teknik destek olarak hareket etmek (nasıl iyi sorular sorup sorulmadıklarına karar verene kadar) ) ve bir amigo olmak (sabırlı ve destekleyici).
jcmeloni

1
Burada bu konuda bir sürü büyük geri bildirim var: programmers.stackexchange.com/questions/137708/…
KodeKreachor 5:12

Neden “mentorluk” söylemini satın alıyorsun? "Eğitim" kelimesini kullanın: "iş için eğitim" i tarif ediyorsunuz , bu felsefi bir şey değil, yaşamı evreni ve her şeyi görme biçiminiz, işlerin şirketinizde nasıl yapılması gerektiğidir. (ve şirketiniz onlara resmi bir
hak

3
Ve .. küplerinin,
küpünüzden

Yanıtlar:


121

Bir zamanlar burada bu tür bir bilgiyi içeren bir soru vardı ve bana en çok sıkışan parça klavyelerine dokunmuyordu.

Kısacası, çocuğunuza ne yapmaya çalıştıklarını nasıl başardıklarını söyleyin ama onlar için yapmayın.

Ancak buna ek olarak, işte bazı diğer ipuçları:

  • Google'ı (veya başka bir arama aracını) teşvik edin. Cevabın çevrimiçi ortamda kolayca bulunabileceğini biliyorsanız, cevabını söylemek yerine onlara bakmalarını söyleyin. Sonuçta, onlara nasıl kendilerini öğreteceklerini öğretmek istiyorsunuz ve onların size bağımlı olmalarını istemiyorsunuz.
  • Soruları cevaplamak için kendinizi hazırlayın. Hiç müsait değilseniz veya kesintiye uğramak istemiyorsanız, sorularını belirli bir zamana kadar beklemeleri gerektiğini açıkça belirtin.
  • Ne doğru / yanlış yaptıklarını anlatmak için düzenli olarak kod incelemeleri yapın. Bunu en iyi uygulamaları belirtmek için bir fırsat olarak kullanın
  • En iyi uygulamalarla erken başlayın. Onlara doğru yolu öğretmek için daha fazla zaman ayırmak, daha sonra yöntemlerini değiştirmeye çalışmaktan daha iyidir.
  • Kod yazarak başlamalarına izin vermek yerine, ne yapacaklarını planlama / belgelemeye başlamaları için erken başlamalarını sağlayın.
  • Onlardan öğrenmeye açık olun. Muhtemelen öğrendiğinden daha fazla zaman harcıyorlar ve bilmediğin bir şeyi öğrenmeleri mümkün.
  • Hatalarından öğrenmelerine yardımcı olun. Hatalar olacak, bu yüzden onlara hataların öğrenmenin bir parçası olduğunu ve bunları öğrenmek için bir fırsat olarak kullanmaları gerektiğini gösterdiğinizden emin olun.

  • (Aşağıdaki RuneFS'den) Onlara bir şeyi nasıl yapacaklarını anlatmak yerine, kendilerini bulmalarına yardımcı olmaya çalışın. Bu, mantıklı bir problemle çalışma yeteneklerini geliştirmeye yardımcı olacak ve öğrenme yeteneklerini artıracaktır.

  • (Aşağıdaki RuneFS'den) Onlara neyi yanlış yaptıklarını söylemek yerine, geliştirebilecekleri yöntemleri söyleyin. Yolunuzun neden onlarınkinden daha iyi olduğunu eklediğinizden emin olun . Bu, zayıflatmak yerine güvenlerini artıracak. Tabii ki, eğer sizi dinlemiyorlarsa, doğru şekilde yapmalarını söylemekten korkmayın :)

68
+1 klavyeye dokunma. Kısmen onlara bir şeyi nasıl yapmaları gerektiğini öğretmek, bir mentorluk durumunda bunu yapmaktan daha önemlidir, ancak gerçekten, insanlardan klavyemi çalmaktan kesinlikle nefret ettiğim için.
fire.eagle

3
Onun zaten söylendiğini biliyorum ama "klavyeye dokunma". ÇOK iyi bir nokta
Tom Squires

3
Bu, beni daha çok, küçük geliştiriciye daha akıllı sorular sormayı öğrettiğini gösteriyor. Bunun için harika bir kaynak: catb.org/esr/faqs/smart-questions.html
TALlama

4
Zorlu noktalarınızla aynı fikirdeyim, koçlara ve diğer insanlara diğer insanların gelişiminin sorumluluğuyla diğer insanlara öğretmek için çok uğraştığım iki bölüm var. Onlara bir şeyi nasıl yapacaklarını asla söyleme. Kendilerini anlamalarına yardımcı olun ve onlara yanlış yaptıklarını söylemeyin, bunun yerine nasıl gelişebileceklerini söyleyin. Eski çünkü bu onların öğrenmelerini arttırır çünkü güvenini zayıflatmak yerine onu artırabilir
Rune FS

1
@ Ja: öneri mentorun klavyenin klavyesine dokunmaması için.
06

21

4 yıllık bir deneyime sahibim ve size küçük bir geliştirici olarak deneyimimden mentorluk açısından ne istediğimi söyleyebilirim. Aslında başladığım zamanki geliştiricinin türünü açıklıyor gibisin :)

Esasen onları öğrenmeye teşvik etmek istiyorsun. Bazı insanlar kolejle iş yaptıktan sonra, kitap okumak veya artık öğrenmek zorunda olmadıklarını düşünüyor. Bu tür bir tutum kısayollara bakmaya ve sadece “halletmeye” yol açabilir.
Onları "Pragmatik Programcı" olarak alın ve okumalarını sağlayın. Bu kitap, programlamanın sadece bir iş değil, bir meslek / kariyer olduğunu anlamalarına yardımcı olacak. Her üç ayda bir okumaları için kitapları önerin. "Bilgi portföylerini" kurmalarına yardımcı olun (Pragmatik Programcı'da belirtildiği gibi). Çok fazla CS / Programlama kitabı bulunan Safari Books Online'ı şiddetle tavsiye ediyorum .

Bilgi portföyleriyle sorun yaşarlarsa nereye bakacaklarını bilirler. Onlara nereye bakacaklarını öğret. Son zamanlarda StackOverflow'un kullanışlılığını keşfettim (ve bildiğiniz gibi burada Google’a bakmak daha iyi).

Görünüşe göre onlarla çok fazla zaman geçiremezsiniz, ancak Çift Programlama çok faydalıdır. Bunu yapamıyorsanız, en azından CodeCollaborator veya başka bir benzer araç kullanarak kod incelemeleri yapın. Sandığınız kadar zaman almazlar.

Birim testleri de çok önemlidir. Özellikle sürekli entegrasyonla birleştirirseniz, kötü gelişim uygulamalarını hızla ortaya çıkarabilirler.


10

Ona basitçe söylemek yerine yanıtları yönlendirmek için önde gelen soruları sorun (iyi, ona sunucu adının ne olduğu ve hangi veritabanının bilgileri depoladığı gibi bazı temel şeyleri anlatabilirsiniz). Ona cevaplarını nasıl bulacağını göster.

Ve yanlış olduğunda kodunu asla yeniden yazmayın, ona neyin yanlış olduğunu söyleyin ve düzeltmesini bekleyin. Beklediğin gibi olsun. Onu sana bağımlı kılarak kimseye yardım etmiyorsun.

Kod incelemeleri de çok önemlidir. Programı eşleştirirseniz, klavyeyi sık sık kullanmasına izin verin. Ona ne yazacağını söylemesen bile, program yazarken yanında durmayı öğreneceklerini yazarak daha fazla şey öğrenir.

Uygulamanın nasıl yapılandırıldığının tipik bir örneği olan yazılımlardan örnekler alın ve her bir satırın neden gerekli olduğunu ve ne yaptığını anladığından emin olarak onunla satır satır ilerleyin. Kodlama standartlarını ve kodun nasıl düzenlendiğini ve neden siz (bir şirket olarak) yaptığınız gibi işleri yaptığınızı bilmesini sağlamak sizin işinizdir.

Önermek için farklı bir yolu varsa, dikkatlice dinleyin. İlk etapta o haklı olabilir. İkincisi, dinlemek, anlamadaki zayıflığının, önerdiği şeyin pratik olmadığını söyler. Ayrıca, insanlar onları dinlerseniz size daha fazla saygı gösterme eğilimindedir. Yanlış olduğunda, fikrin neden yanlış olduğunu görmesini sağlamak için baştaki sorulara geri dönün. Haklı bile olsa, bazen fikirlerine devam et, fikirlerinin değersiz olduğunu her zaman söylemekten daha cesaret kırıcı bir şey yok.

Geçmişi hakkında sorular sorun. Birlikte çalışma şansınız olmayan bazı şeyler biliyor olabilir. Eğer öyleyse ve onları kullanma fırsatı ortaya çıkarsa, ona bilgisi hakkında sorular sorun.

Başvurunuz hiç eskiyse, muhtemelen yeni birinin bilmesi gereken bir şey olmadığından sinsi "gotchas" ı vardır. Bu nedenle, bu gotcha'lardan bir veya daha fazlasına sahip olduğunuz alanlarda çalışmaya başladığında, kodlamadan önce hızlandıkça, ona kodlamadan önce girip girmediğini görmek için bakabilirsiniz.

Sonunda, kısmen saygı göstererek saygı görürsünüz. Akıl hocası olarak herkese saygılı davranın. Onları aşağılanmış veya aptal hissettirmeyin. Onlara saygıyla davranırsan, seni daha iyi dinlerler.


1
Neredeyse kendime verdiğim cevabın aynısıydı, fakat şunu da ekleyeceğim: Küçüklerinizin hata yapmasına izin verin (hatta onları yapma fırsatını verin) çünkü hatalar öğrenmek için en iyi fırsatı sunar. Başarısızlık, öğrenmeyi teşvik eden hafıza ilişkisine neden olma ihtimalinin daha yüksek olduğu duygusal uyaranlara neden olur ve umarım gençler, daha fazla soru sormadaki başarısızlıklarıyla cesaretlendirilir. Gençlerime sık sık, başarısızlıklarından da bir şeyler öğrenmeye çalışırlarsa başlangıçta başarısız olmanın sorun olmadığını söylerim ve öğrenme çabalarını yönlendirmek için testler ve kod incelemeleri kullanırım.
S.Robins,

Önde gelen soruları sormak, birini başka bir olgunluk seviyesine götürmek için bulduğum en iyi tekniklerden biri. Birincil amaç onlar bunu bulmak doğru cevabı tanıyabileceği bir yere onları almak için var, doğru cevabı için onları almak için değil (ve bu nedenle yol boyunca yanlış cevaplar atmak mümkün.)
kenevir

1
@ S.Robins, düştüğünüz hatalardan dolayı bu şeyleri bildiğinizi belirtmenize yardımcı olacağını buldum.
HLGEM

8
  • Her zaman geliştiricimin yardımımı istediğinden emin olurum ve sabırlarına tahammül edebileceğinden daha derinlere inmemeye büyük özen gösteririm. Herkes gibi ben de kendi sesimin sesini seviyorum!
  • Onlara eşit olarak davranıyorum ve fikirlerini söylediğim kadar sık ​​sorduğuma eminim.
  • Bir şeyi doğru yaptıklarını görün ve onlara bildirin.
  • Bunu doğru yaptığımda her zaman bir şeyler öğrenirim - mesleğim, mesleğim, geliştirici ve öğretim hakkında.
  • İlk ders her zaman: ne zamandır kendi başınıza denediğinizi bilmek ne zamandır. Pek çok insan kendi cevaplarını bulmaktan gurur duyuyor ve çevrelerde dolanacak değerli zamanları yakıyor.

Re: "Onları doğru bir şey yaptıklarını yakalayın": Buna katılıyorum, çünkü her zaman onların omuzlarına bakarsınız ya da en azından düzenli olarak kontrol ediyorsunuzdur. Gerektiğinde bazı ilişkiler olabilir, ancak mentor / protégé ilişkisinin onlardan biri olduğunu sanmıyorum; ve “onlara eşit olarak muamele etme” konusundaki mükemmel tavsiyenize aykırıdır.
ruakh

Ruak, harika bir noktaya değindin. İlk önce kendim müdür olduğumda menajerim tarafından (o benim akıl hocamdı, ama Brooklyn'liydi ...) ve şimdiye dek ifadeleri hiç sorgulamadım. Daha uygun bir şekilde: "Yaptıkları hakkında doğru bir şey dikkat edin." Ben bununla önderlik ediyorum. Kaçınılmaz '1' kapalı 'problemi C programcıları ile karşılaştığında, döngü yapısının kompakt ve iyi yorumlanmış olduğunu söyleyebilirim ve daha sonra beni mantıktan geçirmesini isteyebilirim. Teşekkürler.
Thomas McNamee,

Tamam, evet, bununla birlikteyim. +1. :-)
saat

7

Ben küçük bir geliştiriciyim ve akıl hocamın bu işlerle çok iyi ilgilendiğini düşünüyorum. Genel olarak, bana bir şeyi yapmanın birkaç yolunu söyleyecektir, ama nasıl yapılacağını değil. Sonra orada oturup her iki yolu da denerdim ve hangisinin soruna en iyi çözüm olduğuna karar verdim.

Ayrıca, eğer benim için yararlı olabilecek bir şey yaptıysa, ne yaptığını ve nedenini araştırmak için beni arayacaktı.

Bu, benimle birlikte çok az zaman harcanmasına neden oldu ve temel olarak doğru cevapları ve işlerin nasıl uygulanacağını öğrenmem gerektiği anlamına geldi. Tabii ki, eğer sıkışırsam, yardım etmek için orada olurdu, ama bu bir avuç zamandı. Onunla sadece 5 ay çalıştıktan sonra, muhtemelen üniversite dersimin tamamından daha fazla şey hakkında bilgi edindim.

Hatırlanması gereken önemli şey, sadece bir birey olduğum ve nasıl olduğum ve nasıl olduğumdan dolayı benim için iyi çalıştığı. İkinize de yardımcı olacak uygun bir yapı bulmakla ilgili.


5
+1 İş hakkında daha fazla şey öğrendim, o zaman üniversitede öğrenebildiğim için, çünkü insanlar bana öğretmek için zaman harcadılar.
James Khoury

7

Verilen göreve bağlı olarak, birkaç farklı yaklaşım benimsemeye çalışıyorum:

  • Onlara görevi tamamlamak için daha sonra ne deneyeceklerini sorun. Bu, "Ne yapacağımı bilmiyorum" dan "nereye" Peki, bunu deneyeceğim ama ... "kategorisine, bir başlangıç ​​noktası için faydalı olabilecek kendi fikirlerine sahip olma açısından bir fikir verebilir. .

  • Ne yapmak istediklerini hızlı bir şekilde inceleyin ve sorunu çözmeleri için ipuçları verin. Bu, "Sadece bu kod satırını çıkar" cevabını vermek yerine, orada ne olduğuna baktıklarını ve gerekli olduğunu düşünüyorlar.

  • İlk çift işe yaramayacaksa, sorunu çözmek için ne yapmaları gerektiği konusundaki talimatlarımı takip etmelerini sağlarım. Bu, ilerlemedeki bir sonraki adımdır, nereden başlayacakları hakkında hiçbir fikri yoksa ve ipucu çalışmazsa, bir sonraki nokta budur.

  • Son olarak, başka hiçbir şey işe yaramazsa, o zaman onlar için işi yapardım, ancak mümkün olduğu kadar bu durumdan kaçınmaya çalışırdım çünkü bu, birinin bir sistemi yakından tanıdığını, birinin birinin boşaltma işine bakabileceğini bilmesini sağlar. Bu sistem için bana çok iyi biliyor gibi görünüyor.


+1 Bir şeyler yazacaktım ama bu benim yaklaşımımda özetliyor.
Jason Sebring

5

İşimde gerçekten yararlı bulduğum bir şey, iç soru-cevap için bir forum kurmak (yani PHPbb) kurmak ve eğer soru ve / veya cevap 5 dakikadan fazla sürerse Forum üzerinden soruldu ve cevaplandı. Yararlar:

  • Genç devi, sadece biraz daha fazla düşünerek, cevabı kendisinin bulduğu zamanları değil, yanıtlamayı kolaylaştıran bir soruyu açıkça ifade etmeye zorlar.
  • Junior dev, daha önce yapılmış benzer soruları arayarak başlaması gerektiği için, yinelenen soruları önler.
  • Gelecekteki işe alımlarda ve zaman içinde kaybolabilecek birçok küçük şeyin belgelenmesinde yararlı olacak bir bilgi tabanı oluşturmaya yardımcı olur.

4

Buradaki eğilimi yakalayacağım ve küçük geliştiricileri cevapların nasıl bulunacağını öğrenmeye teşvik etmeyeceğinizi önereceğim . Bu "Ben var ama sana vermeyeceğim" oyununa benziyor.

Bunun yerine, cevabı bulmak için onlarla eşleştirin. Yine de google'a gideceksin, onlarla otururken yap. Bunun cevapları bulmanın yolu olduğunu anlayacaklar.

Onlarla yakın çalışırsanız, IDE'nin nasıl doğru kullanılacağını seçerler; Veritabanını nasıl normal hale getirebilirim; kodunuzu KURUŞ nasıl ... bilmek ne bilmeye değer.

Anahtarlar: bir - kendinizi nasıl çalıştıracağınızı görebilmeleri için onları erişilebilir kılmak. Ve iki - neden yaptığınız şeyi yaptığınızı yüksek sesle söylemek . “Bu kod kendini tekrar ediyor, bu yüzden tekrar etkilemeye çalışacağım”, “bu üç satırda özü yöntemini kullanmayın”.


Bu eğilimi artırdığına inanmıyorum. Bu iyi bir ipucu; onlarla çalışmak ve bunları nasıl göstermek için size problem çözme hakkında gitmek (gerçi bir [gizlemek değil] bulma sürecini göstermek için zaten cevabını bilmediğimiz gibi davranmak gerekebilir).
Josh Johnson,

Açık olmak gerekirse, bilgiyi gizleme niyetim yok. Fakat bildiğim şeyin (bilinçli ya da bilinçsizce) avantajlarından yararlanılmakta olduğu ortaya çıktı. Ve kullandığımız teknolojinin gizli gizli mağaralarından bahsetmiyorum; Bir ilkel ile bir nesne veya bir örnek değişkeni ve yerel arasındaki farktan veya tam olarak hatanın ne olduğunu ve onu aramaya nereden başlayacağını söyleyen bir hata iletisinden bahsediyorum. (referans için, mevcut öğrencim 5 yıllık mesleki deneyime sahip; mantıksız olduğumu sanmıyorum.)
Josh Johnson

4

Sadece bir kez küçük bir programcı yetiştirmek zorunda kaldım. Benim kurduğum bir sistemi korumaya yardımcı olmaktı. Amaç, nihayetinde tüm sistemi kendisine dağıtmaktı.

Beni gölgelediği kısa bir süreden sonra, onu ateşe attım. Davaları ona atar ve onların tamamlanmasını beklerdim. Eğer sorunu varsa, sorunun ne olduğunu ve nereye baktığını açıklamasını isterdim. Daha sonra nereye bakılacağını en genel şartlarda ona tavsiye ederim. (Hangi uygulama, belki de hangi modüle bakacağınız vs.). Onu asla perişan bırakmazdım, ama aynı zamanda hiçbir iş yapmam. Sadece yön ver. Hala sorun yaşarsa, omuzlarımı omuz silkti ve "kodu izlemeye başla" derdim. Ve bunu her söylediğimde, sıkıcı bir egzersiz için olduğunu bilerek sıkıştı. Onu delirtti, çünkü ikimiz de popomdan inip yardım edersem sorunu 10 dakikada bulabileceğimi biliyorduk.

Yıllar sonra, daha büyük şeylere geçti ve şimdi kendi gençlerini eğitiyor. En sevdiği hikaye ise ona "kodu izlemesini" her zaman nasıl söyleyeceğimi ve bu kod izleme alıştırmalarının onu bugün olduğu programcı yapmasında nasıl çok önemli olduğu.


3

Ne zaman bir Google sorgusu ile çözülebileceğini bildiğim bir soru sorulduğunda, dokümanı veya ilgili makaleyi bulacağım ve soruyu soran kişiye ileteceğim.

Nereye bakacağınızı bilmek önemli bir beceridir ve bazen yeni bir geliştirici için düşündüğünüzden daha zordur. Ne aradıklarını bile bilmiyor olabilirler ve onlara yardım etmeniz gereken yer burasıdır.

Ellerine geçtikten sonra, makaleler ve belgeler onları hızlı bir şekilde yanıtlamak için diğer geliştiricilere pençe çekmek yerine çözüm hakkında okumaya zorlayacaktır.

Bu, aşağıdakileri başaracaktır:

  • Tecrübeli geliştiricilerin yükünün bir kısmını ortadan kaldırmak.
  • Yeni geliştiriciyi öğrenmeye zorlamak.
  • Herkese mutluluk.

Bazen onlara, özellikle öğrenmek istiyorlarmış gibi görünmüyorlarsa, onlara sert bir sevgi vermeniz gerekir. Onlara cevap verme, ama doğru yöne çevirdiğinden emin ol.


3

Gerçek ödevlerin parçalarını vermeye başlamanızı ve kodunu kullanabilmeniz için her şeyi yapmanızı öneririm. Başka bir deyişle onu kendiniz için eğitin.

Bu yolla, kendinizle çalışmak için zaman ayırmaya karar vereceksiniz ve o da “gerçek hayatı” görebilecek. Gerçek ödevler üzerinde çalışarak ve canlı geri bildirimler dinleyerek çok hızlı bir şekilde hızlanabilecektir.


1

İnsanlara geçmişte çeşitli konular öğrettim ve beni en çok etkileyen şey, çoğu insanın problem çözme becerisine sahip olmamasıdır . Yani, onlara kesin bir çözüm gösterirseniz, daha sonra tanıdıklarında veya ihtiyaç duydukları söylenirse tekrar kullanabilirler.

Ancak, hayatta çok az durum böyledir. İşiniz, alet A'ya alet B'ye alet yapıştırma aleti A'yı yapıştırmayı içeren bir "zihinsel fabrika" olmadığı sürece, birkaç maddeye sahip olmanız gerekir:

  • Beceri ve araçlardan oluşan bir araç kutusu
  • Bir problem çözme yöntemi

Örneğin, gönderdiğim bu cevaba bir göz atın . Bu, birçok insanın sahip olmadığı problem çözme yöntemini kapsar . Kolej bunu CompSci programındaki hiç kimseye öğretmedi, siz zaten biliyor ya da anladınız.

Küçük çocuk problem çözmeyi nasıl anlayacağını anladıktan sonra, bunun için bir takım araçlara ihtiyaçları vardır.

  • Hata ayıklayıcı (College bundan hiç bahsetmedi)
  • Profilers
  • Metin düzeltici
  • Kabuk (ve ilişkili yardımcı programlar)
  • Kaynaklar (kitaplar, google, SO, manpages)

Gençler için eksik olanı belirle ve onların gelişmesine yardımcı olabilirsin. Sadece bazı insanların kendi sorunlarını nasıl çözeceklerini öğrenmekle gerçekten ilgilenmediklerini ve sadece kendilerine verilen "adım adım bariz" bir çözüm istediklerini unutmayın. Bunlar iyi geliştiriciler değil.

Umarım bunlardan hiçbirine sahip olmazsınız. Bunu yaparsanız, ne kadar zaman geçirirseniz geçirin, her birinin kendilerine yardım etmeyeceklerinin farkında olun. Çaba gerektirir ve sizden onlar için yapmanızı istemek daha kolaydır. Refah sorununa benzer ve ekonomik teori ile açıklanmaktadır.

Aydınlanmış kişisel ilgi, insanların herhangi bir durumda en avantajlı seçenek olarak gördüklerini alacağını söylüyor . Ne gördüklerine dikkat edin . En önemli şeyi öz yeterlik ve öğrenme olarak görüyorum. Ben de kendim yaparım. Ancak diğerleri, yalnızca son başvuru tarihine kadar çalışma kodu sağlamaları gerektiğini görebilirler. Bu yüzden bunu yapmanın en masraflı yöntemini ararlar. Onlara "freebies" sağlayarak, hedeflerini tamamlamaları için en küçük çabayı harcaması gerekir. O koltuk değneği kaldırmak kadar, olmaz büyür.


1

Sizin tanımladığınız organizasyonunuz benimkinden çok farklı. Gençlerimin çalışmalarının başındayım ve bunu yargılama rolüm olarak görüyorum. Yani çok farklı.

Yine de yapmanı tavsiye edebileceğim bir şey, özellikle ilk iki hafta içinde çalışma masasını sık sık ziyaret etmek. Günde üç kez, haftada üç kez gibi bir şey giderek azalır.

Bu şekilde göndermeye çalıştığım mesaj, onların üretkenliğini önemsiyorum. Sıkışmadıklarından emin oluyorum. Kurallara uyduklarından ve tekerleği yeniden icat etmediklerinden eminim. Onlara mümkün olduğunca sık işlemeyi öğretiyorum. Onları aşamalı olarak geliştirmeyi öğrenin ve aşamalı olarak tasarım hakkında düşünün.

En kötü kabusum, geliştiricilerinin, her gün, özelliklerinin yerine getirilmesi için sadece bir güne daha ihtiyaçları olduğunu söyledikleri. Haftalar geçtikten sonra, başından itibaren yazar tarafından saldırıya uğrayan aşırı karmaşık bir tasarım elde edersiniz. Fazladan talep edilmeyen buggy özellikleri, gecikmeyi telafi etmek için karışıma atılır ve çünkü bunlar tasarımın serbest bir yan etkisidir.

Birçok geliştiricinin bu yaklaşıma yatkın olduğuna inanıyorum. Eğer bir compex görevi ile kendi başınıza kalıyorsanız, kendi başınıza yapabileceğinizi kanıtlamaya çalışmak doğal bir tepkidir. Ama bu yanlış cevap. Kalite ekip çalışmasıdır ve ne kadar erken öğrenirse o kadar iyidir.


1

Diğer cevaplar çok iyi, ama bu cümle hakkında yorum yapmak istedim.

Son zamanlarda ve geçmişte, burada benimkinden farklı ve benim için uzlaştırması zor olan geliştirme / programlamaya yönelik bir tavrı var gibi görünen insanlar başladı; Görevin tamamlanması için yalnızca yeterli bilgiyi alıyor gibi görünüyorlar, ancak gerçekten öğrenmiyorlar.

Çoğu insan bir şeyi nasıl yapacağını bilmek ister. Bu tutum, başlangıçta yeni şeyler öğrenmek ve işinizi nasıl yapacağınızı öğrenmekle boğulmuş olduğunuzda iyidir.

Nadir bir şeyin neden yapıldığını bilmek isteyen insanlardır . Bunlar, zaman zaman yönetimi zor olsa bile akıllı yöneticilerin istediği insanlar.

Bazı insanlar iyi ödeme almasını sağlar. Diğerleri kodlama için mutlu bir şekilde para kabul eder. Tasarım ve kodlama tutkusu olan insanlarla çalışmak çok daha güzel. Ne yazık ki benim için de oldukça nadirdi. En azından Yığın Taşması'nı bulana kadar.


1

Dikkat etmeniz gereken bir şey, genç geliştiriciler için tüm bu mentörlük yapma beklentisiyle heyecanlanmak isteyenler için: yönetiminizin neler olduğunu anladığından emin olun.

Genel olarak, diğer insanlara öğretmek zor iştir. Odaklanma ve konsantrasyon, planlama ve çaba gerektirir ve çoğu zaman zaman alır. Hangi yaklaşımı uygularsanız yapın, ciddi bir şekilde öğretiyor ve mentorluk yapıyorsanız, zamanınızı yiyor olacak.

  • Yönetiminiz, üst düzey geliştiricilerin eğitim görevlerini üstlenmesi beklentisiyle daha az deneyimli geliştiriciler işe alıyorsa, bunun açık olduğundan emin olun. Zaman diliminin ne olacağını öğrenin ve gelişim programlarınızın eğitim için harcanan zamanı ve çabayı yansıttığından emin olun. Yönetimin, belirli bir zaman (lar) da mentorluk çabalarının başarısını değerlendirmek için bazı planları olduğundan emin olun. (Tabii ki, öğretme ve mentorluk gerektiren geliştiricileri işe alıyorlarsa, ancak yönetim bunun için planlama yapmıyorsa , o zaman bu ciddi bir problemdir.)

  • Herkes iyi bir öğretmen veya akıl hocası değildir ve herkes olmak istemez. Acayip ya da acı gelmek istemem; Ben severim , çok öğretim. Ancak, herkesin bu konuda iyi olmasını beklemek saçma (kendi yeteneklerine rağmen) ve herkesin bu süreçten zevk almasını bekleyemeyiz (unutmayın, kolay değil). Eğer yok kıdemli geliştirici iseniz Dahası, değil rehberlik tadını, yoksa gerçekten hissediyorum eğer bir öğretmen veya rehber için kötü bir seçim olduğunu, yönetim o görevlerini yapıyor kapsayan bir plan Bir plan bir ile olduğunu anlar emin olun ciddi kusur Öte yandan, öğretmenlik veya mentorlukta iyi olmak istiyorsanız , iletişim kurmak için de bir şey var.

  • Öğretim ve mentorluk üst düzey geliştiricilerin popülasyonunda eşit olmayan bir şekilde paylaşılan yükler ise, bu ödevlerin şirket için ürün geliştirme başarılarının tanındığı şekilde değerli olarak tanındığından emin olun.


1

Sana ona bir bakayım.

Temelde, ne zaman iyi öğrendim:

  1. Konuya resmi bir giriş yapıldı. Yeni kavramlarla ilgili sahip olduğum tüm soruları cevaplayan biri olmadan (evet, bir kişi) yeni bir şey öğrenemem. Bunu yaptıktan sonra ben ...
  2. Bir kitap al. Akıl hocam olarak, aynı kitabın hepsine sahip olmalısınız, böylece şöyle diyebilirim, “Dördüncü bölüm, sayfa 72, paragraf 6'da bu ne anlama geliyor?” Ve tam olarak ne dediğimi anlayacaksınız. hakkında. Bir kere kitabım olduğunda, daha bağımsızım ve gerçekten sadece sorular soruyorum. Sonra ben...
  3. Birlikte bir proje başlatın. Bu, sürecin en önemli kısmıdır. Bana En İyi Uygulamalar, Algoritmalar, zor (ama kullanışlı) dil özellikleri, vb. Hakkında bilgi vermeye başlayabilirsiniz.

Şimdi dikkat etmeniz gereken kendi projeleriniz olduğunu ve her zaman vaktiniz olmadığını söylemiştiniz. Bu yüzden StackOverflow ile kutsandık . Eminim kodunu hata ayıklamakta ona yardım etmekten mutlu olacaklardır. Orada konu dışı olmayan sorulara gelince, burada sorabilir.

Bununla birlikte, düzenli olarak onunla çalışmak zorundasın dedi . Genel bir "zaman çizelgesi" şöyle olmalıdır:

  • 1 ay. Temel sözdizimini bilmeli. Kodlamada hala bağımsız değil.
  • 3 ay. Bu noktada, elinin arkası gibi bir sözdizimini bilmeli ve basit problemleri kolaylıkla çözebilmelidir. Daha bağımsız, henüz tam olarak orada değil.
  • 6 ay. Bilmeleri gerekir, her şeyden önce: En İyi Uygulamalar, Ortak Algoritmalar, vb. Kendisi, belki de SO'dan biraz yardım alarak bir proje yapabilir.

Yukarıdakilerin yanı sıra, birisini bağımsız kılmanın en kolay yolu, onlara öğrenmeleri zor bir konu vermek ve onlara internetten başka bir konuda yardımcı olacak hiçbir şey vermemektir. Tek başına öğrenmeye zorlanacak ve eşyalarını bilecek.

Ne bilmesini istediğini öğrendikten sonra, onu serbest bırak. Gitmesine ve ne öğrenmek istediğini öğrenmesine izin ver (her zaman o dilde çalışmaya devam etmesini istediğini söyleyebilirsin).

Umarım bu yardımcı olur! Bu arada, şunu okumasına izin verin: On Yılda Kendinizi Programlayın .


0

Düşük ve yüksek öğrenme düzeyleri arasında bir ayrım yapın. Bilgi, anlama veya uygulama ile ilgili ise, bir dahaki sefere nasıl bakabileceklerini kısa bir açıklama ile doğrudan cevaplama konusunda hiçbir sorunum yok. Bu okul değil, aldatma değil ve sonsuza dek sana bu şekilde güvenmeyecekler. Sadece ilk iki hafta için başka bir şey yapmayı planlamayın, bu yüzden yapmadığınızda sizi rahatsız etmeyecektir.

İlk birkaç haftadan sonra, bu tür sorularla çok sık karşılaşırsanız, bir pomodoro zamanlayıcı kullanın ve bir pomodoro sonuna kadar hiçbir soruyu cevaplamayın. Ne arayacağınızı bildiğiniz için Google artık sizin için kolay. Sık sık yapmazlar, bu yüzden bir şeyi google'a söylemeniz gerekiyorsa, hangi arama terimlerini kullanacaklarını ve en iyi sonuçları alacaklarını söyleyin.

Eğer bir problem analiz, sentez ya da değerlendirme ile ilgiliyse konuyla ilgili daha fazla zaman harcıyorum. Bu, kararlarınızın ardındaki gerekçenizi sağladığınız ve aynı sonuçlara ulaşmalarına yardımcı olduğunuz yerdir. Bu en sık tasarım ve stil konularında ortaya çıkar. Sadece belli bir tasarıma kullanmalarını söyleme, göstermek o ilk seçimleri üstün yüzden onları. Hata yapmalarına ve kendi hatalarını düzeltmelerine izin verin.


0

Burada kişisel kahramanım Randy Pausch'tan bahseden kimseyi görmedim .

Programlamayı gerçekten yapan, öğreten veya mentorluk yapan biri için (veya anlamlı bir hayat yaşamak isteyen herkes için) faydalı olabileceğini düşünüyorum. Siz ve / veya meslektaşlarınız, benim gibi zamana değer olan bu dersleri izlerken bulabilirsiniz.


-4

Ben, küçük bir geliştirici olarak, bir sorunla karşılaşırsam, cevabı hemen almak ve nasıl çözüldüğünü anlamak için zaman harcamaktan daha iyi olacağını düşünüyorum.

Ödendi. işverenim öğrenmem için bana para vermeyi beklemiyor. Günün sonunda bir iş yapmam bekleniyordu. Çalışan bir ortamda zaman kaybetmenin bir anlamı yok, bir çözüm bulmaya çalışın. Bu, zaman içinde alacağım bir şey, umarım hızlı bir şekilde, yaptığım işte iyi bir şey yaparsam.


9
Öyle ya da böyle, işvereniniz öğrenmeniz için size para ödüyor
smp7d

13
Bir genç programcı olarak işe alındığınız günden hiç olmadığı kadar iyi bir hal alamazsanız, işvereniniz için daha az değerli olursunuz.

10
Max, yanılıyorsun, berbat bir işverenin yoksa. İyi işverenler iş başında veya hatta konferanslara veya sınıflara göndererek öğrenmenizi ödeyeceklerdir. Şu anki tavrınıza uyuyorsanız, küçük bir geliştirici olmak için OUT'a geçmeyi beklemeyin. Küçük / yaşlı gibi başlıklar, bir şey yaptığınız zamana bağlı olarak dağıtılmaz; Uzun zamandır aynı şeyi yaptıysanız, ancak öğrenmediyseniz, hâlâ küçük sayılırsınız.
Andy

5
@MaxSan Sorun şu ki, üst düzey geliştiriciler nadiren sizi kaşıkla beslemek isteyeceklerdir. Stajyerleri tam zamanlı olarak işe almadık çünkü çözümü kendi başlarına çözemediler. Bunu çözmek için biraz zaman harcamanızı ve yalnızca yardım istemek için makul bir zaman harcadığınızda. Bir kıdemli olarak, başkasının çözemediği sorunları çözmeniz beklenir ve kaşıkla beslenirseniz bunu yapamazsınız.
Andy

6
Bir "plaka üzerinde" bir çözüm istiyorsanız, küçük bir geliştirici olarak durumunuzdan asla çıkamayacaksınız. Size verilen eksiksiz çözümlerden öğrenmek mümkün olabilir ancak kesinlikle etkili değildir . Beyin böyle işler: Eğer varsa yaşamaya çözüme yol değil, sadece çözüm kendisi öğreneceksiniz çok sadece size sunulan başka çözüm birini okuyan daha fazlası.
perdian
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.