Daha az deneyimli programcılara ne zaman yardım etmiyorsunuz? [kapalı]


57

Küçük bir programcının her zaman içeri atlamak ve onları eğitmek için yardıma ihtiyacı olduğunda bunun iyi bir fikir olduğunu düşünüyor musunuz? Yoksa onlara verdiğiniz tüm "balık tutmayı öğret" tavsiyelerini görmezden mi gelecek ve sadece getirdiğiniz "balık" üzerine mi odaklanacaklar? Hataların öğrenmenin en iyi yolu olduğunu bilerek, her zaman kendi başlarına her şeyi çözmelerine izin veriyor musunuz? Yoksa hızlanma arzusunu kaybedecekleri kadar yakılacak ve sinirleneceklerinden mi korkuyorsunuz?

Ne zaman daha küçük birine yardım etmeyi seçersin, o zaman sen ve ne zaman geri çekilip hatalarını öğrenmelerine izin verirsin?


5
+1. Çok güzel bir soru. Kaşıkla beslemek kimseye yardımcı olmaz, ancak daha sonra birisinin pisi balığı ezmesi de büyük bir başarısızlıktır.
Steve

1
Unutma, her zaman kendi başına bir şeyler yapamazsın, bazen bir sorunun ya da hatanın olur ve bunu çözmek için taze bir zihne ihtiyacın olur. Ve eğer daha fazla çaba gösterme arzusunu kaybederse btw, belki de gerçekten eğitilmeyi hak etmiyorlar. Bir beyni kaşıkla besleyemezsin, asla işe yaramaz. Sık sık öğretmenlerimin pek çok sebepten dolayı cevaplayamayacakları sorusu soruyorum: Bazı nedenlerden dolayı, işimi yapamayacak kadar çok şey öğrenene kadar her zaman aç bir merakım var. Bu tür öğrencilere dikkat edin, sadece zamanınızı emmezler, onların da emerler. Parlak tarafta, ben daha
berrakım

1
Kodlarını yazmayın. Onlara seninkini göster. Onlara tavsiyelerde bulunun (dinlemek isterlerse).
Kamil Tomšík

Yanıtlar:


51

İşlerimden birinde hem öğreniyor hem de öğretiyordum (çünkü elbette her şeyi bilmiyorum ama bazılarından daha fazlasını biliyorum)

Ne pahasına olursa olsun , ellerini klavyenin üstüne koyma Bu hem sizin hem de öğrettiğiniz kişi için sinir bozucu. Onlara adım adım talimatlar verseniz bile, ellerinizi klavyeye koyduğunuzda, onlara bir kod parçası vermenin ve "bunu düzeltir" demenin eşdeğerdir.

Öğrendiklerime göre:

  • Onlar için kod yazmayın
  • Kendi seviyelerinde öğretmeye çalışın (sözdizimini anlarlarsa, onlara açıklamayın. Bu sadece onları sıkar; bunun yerine kullanılan sınıfları / işlevleri öğretin)
  • Onları görmezden gelmeyin veya "kendi başınıza çözün" deyin. Sonunda ortaya çıkacak olan şey, şu anda sorun yaşadıkları 3 kod satırı haricinde size gelmeleridir, şimdi sorun etrafında çalışmaya çalışan 8 dosyaya yayılmış 50 satırdır.
  • Onlara kendi başlarına öğrenmeyi öğretin. En iyi yollardan biri, onlara stackoverflow kullanmalarını söylemektir. Bazen sorsalardı cevabı bile biliyorum. "Pekala, bu soruyu stackoverflow'ta soracağım" derdim. ve onlara soruya bir link verirdim. Bir kahve molası verin ve farklı kodlara bakın. "Bu sorunu nasıl düzeltebilirim?" Diye sormaya geri döndüklerinde, SO hakkındaki sorularına bakmalarını söyleyin (verdiğiniz URL'yi kullanarak). Kitlelerin benden daha iyi bir öğretmen olduklarını öğrendim.
  • İnternetten kod kopyalayıp yapıştırıp neden işe yaramadığını sorduklarında, her satırın ne yaptığını açıklamalarını isteyin. Yapamazlarsa, onlara kullanılan fonksiyonları / sınıfları araştırmalarını söyleyin. Gerekirse, sınıf ve işlevler için açıklamalar sağlayın
  • Sorunu çözdüklerinden emin olmak için kod incelemeleri yapın, yalnızca daha sonra ortaya çıkması için uğraşmayın.
  • Nazik ol. Birisi kod bankanızdan yeni bir belge almadan yeni başlıyorsa, onlara kaynak kodlarını okumalarını söyleme. Söz konusu işleve özetlenmiş yüksek düzeyde genel bir bakış verin. Ya da, daha iyisi, dokümantasyon yazmaya başlayın :)
  • Mütevazı olmak. BS hakkında sorun değil. Eğer bilmiyorsanız, bilmediğinizi söyleyin ve aramalarına yardımcı olun. Çoğu zaman, sadece etki alanını bilmek, hangi anahtar kelimeleri arayacaklarını bilmek için yeterlidir.

9
Ekleyeceğim "kendileri için kod yazmayın" için +1: klavyelerini değiştirin, böylece Ctrl-V tuşlarına basmak, kuvveti panodaki satır sayısına orantılı olarak elektrik çarpmasına neden olur. :)
Ingo

Vay. Ben bu kadar çok lol upvotes lol
beklemiyordum

2
Sanırım bu en önemli şey: "Çoğu zaman, sadece hangi anahtar kelimeleri arayacaklarını bilmek için etki alanını bilmek, onlara vermeniz için yeterli yardımdır." - orada bulundum (bir genç olarak)
JCasso

“Onlara kendi başlarına öğrenmeyi öğretin.”, Kesinlikle katılıyorum.
Steven Mou

+1 SO kullanımı için. Çeşitli görüşlerin alınmasının yanı sıra, cevap daha sonra incelenmek üzere kaydedildi. Herkesin bir çözüm bilgisini de elinde bulundurmadığını biliyorum.
Chris,

27

Sokratik yöntem, yani onlara olumlu yönde düşünmelerini sağlayan sorular sorar

[bu sorunun ne olduğunu bilmiyorsanız bile kullanışlıdır, çözümden çok daha az]


3
Soru sormak için +1. Bu şaşırtıcı bir şekilde öğretmek için harika bir yoldur. Makalenin nerede olduğunu hatırlayamıyorum, ancak bir yerde bir öğretmen, sadece sorular sorarak 1. sınıf öğrencilerine ikili toplama ve çıkarma işlemlerini öğretti.
Earlz

-1 soruyu doğrudan cevaplamadığı için ... +100 mentorluk meselesine mükemmel bir cevap sağlamak için: -) ...
Newtopian

@Earlz, bulursanız, lütfen bağlantıyı ekleyin.


22

Mimar olmalarına ve orada durmalarına yardım etmeyi öğrendim. Doğru araçları seçin, karmaşık bir soruna genel bir tasarım çizin ya da iki kere yapmalarını sağlayın. Geri gelirler ve tavsiye isterlerse, onlara küçük parçalarla verin. Olmazlarsa, bırak olsunlar.

"Yanmış ve sinirli" konusunda tamamen haklısın. Mikro-yönet ya da nit-pick eğer tam olarak olacaktır. Son olarak, iş arkadaşlarınızla dostça bir çalışma ilişkisi kurmak için çok yardımcı olur. Güven ve karşılıklı saygı kazanmak için harcanan zaman, 10 kat fazla para ödeyecek.


1
Diğer taraftan, bir zamanlar o kadar tembel biriyle birlikte çalıştım ki, API parametrelerini hatırlamaları gereken her zaman, kendilerini aramak yerine bana soruyorlardı. Beni çıldırtıyorlardı: isterlerse kasıtsız da olabilirlerdi - isterlerse. O günlerde man sayfalarının kopyalarını basmıştık. Kitabı teslim ederek sona erdi ve "kötülükler için kendine bak!" Demiştim.
hızla_ben

1
@quickly, ya da "vaktim olduğunda bu basit şeyle sana yardım edeceğim" ve sonra ona geri dön ... sonra ...!

10

İşlerin gerçekten hızlı bir şekilde bitmesi gerektiğine, bir tuğla duvara çarptıkları açıksa ve yardım almadan çözmelerini beklemenin makul olmadığı durumlarda onlara yardım ediyorum. Bununla birlikte, bir şeye hiç zaman ayırmamışlarsa, önce denemeleri daha iyi olur.

"Balık tutmayı öğretmek" yerine "balık" almaya gelince, bunu yapmanın en iyi yolu insanların sorunlarını kendileri için çözmemek . Onlara fikirler verin ve onunla birlikte çalışmasına izin verin. Eğer onunla koşarlarsa ve başarısız olurlarsa, onlara daha fazla yardım et. Başarırlarsa, daha da iyi.


6

İyi bir programlayıcılarsa, bunu yapmanın bir yolunu bulmalılar. Şimdi bilgi veya yardım eli uzatmak verilen bir soruna çözüm bulmak imkansız yakın bir durumda sürece nedenle içinde görünüşte olduğunu sen neden içinde saklayın. Kaşıkları cevabı beslemeyin.

Belki bir örnek olarak 18 yaşındayım ve yıllardır kendi başıma öğreniyorum ve kendi derleyicim de dahil olmak üzere bazı çılgınca şeyler yazdım ve kendi kendime öğrendim. Yalnızca gerçekten sıkıştığım şeyler konusunda yardım ararım (en az bir gündür aradığım ve boşuna gittiğim için). Aynı zamanda bir karşı örnek vermek istiyorum: Bir programlama sınıfında bir keresinde bir öğrencimden derlemediği kod hata ayıklamamı istedi!

Temel olarak iyi bir programcı, hatta küçük bir program bile, çoğu sorun için deneyler deneyebilir ve araştırma yapabilmelidir.


9
İnsanlara çalışmalarının başında fikir vermek, genellikle üst düzey insanlar olsa bile verimliliği arttırır. Tecrübelerime göre, bir iş ortamında, bir ya da iki günden sonra bir ya da iki saat sonra yardım istemek daha iyidir, çünkü bir başkasının vaktinin sekiz saati, başka birinin cevabını zaten bildiği bir soru için çok fazla paradır.
jprete

5
Ancak unutmayın, zamanınız için ödeme yapan müşterinizdir! Üst düzey bir geliştiriciye sorarak 15 dakika içinde çözülebilecek bir çözüm araştırmak için bir gün harcamaktan memnun olurlar mıydı?
Adam Harte,

3
Bir iş ortamında, zamanınızı buna göre değerlendirmeniz gerektiğini düşünüyorum. Bir gün sadece kesmedi. Ancak problemleri kendi başınıza çözmenin, problem çözme becerilerinizin artması gerektiği için size fayda sağlayacağını düşünüyorum. Sonunda şimdi veya daha sonra bunun için ödeme yapabilirsiniz.

1
@Adam, soru şu ki, üst düzey geliştiriciye sorulmalı mı yoksa kendine sorulmalı mı. Bu bir öğrenme sürecinden sonra.

3

Mentör olacağım ama onlar için işlerini yapmamı isterlerse çekip gideceğim. Tipik olarak bir problemin nasıl çözüleceği veya görev tanımının tekrar anlatılması ile ilgili bazı tavsiyeler uzun bir yol olabilir. Onlara sadece google'da kullanmaları gereken kelimeleri söylemek bile yardımcı olabilir. En fazla 2 dakika.


3

Yakın zamanda pomodoro tekniğini kullanmaya başladım . Sonuç olarak, şu anki görevim hakkındaki düşüncelerimi bozmadan bir soruya cevap veremezsem, ortalama 15 dakikalık bir gecikme süresi olan pomodoro sonuna kadar bir cevap erteleyebilir miyim diye sormaya başladım. Bunun keşfettiğim ilginç bir yan etkisi, soruyu cevaplamak için masalarına uğradığımda, çoğu zaman kendi başlarına çözmüş olmaları. Olmadıysa, bu noktada onlara tam dikkatimi vermeye daha hazırım.

Bu okul değil. Sonunda kendi başlarına bulabilecekleri bir gerçeği hızlı bir şekilde sağlarsanız, aldatma olmaz. Aksine, onlara zaman kazandırmak iyi bir iş anlayışı yaratıyor ve deneyimlerime göre becerileriniz size doğru yönde sık sık küçük itmeler veren bir mentor ile karşılaştırıldığında deneme yanılmalarıyla çok az keskinleşiyor. Benim yardımıma göre işleri yapmak için 10 doğru yolu, 9 yanlış yolu ve bir başlı başına bir tane öğrenmelerini tercih ederim.

Kolayca bir şey aranabiliyorsa, onlara nasıl yapılacağını öğretin. Öte yandan, yalnızca deneyimden öğrenebileceğiniz, belirli hata belirtileri için hangi dosyaları araştıracağınız gibi, yalnızca açıklanamayan bir yanıt vermede kesinlikle yanlış bir şey göremiyorum.

Tersine, mimari rehberlik gibi daha öznel şeylere her zaman arkasındaki mantık eşlik etmelidir. Birincisi, küçük geliştirici, spesifik görevleri hakkında sizinkinden çok daha fazla düşündü. Bununla konuşmak, sonuçlara atlamayacağınızdan emin olmanızı sağlar. Bir diğeri için, uygulayamayacakları gelecekteki durumlara kuralları kör bir şekilde uygulamalarını engeller.

Sadece bir iş arkadaşına yardım etmeye devam etmeyi reddettiğim düpedüz bir vakayı düşünebilirim ve birkaç saatini bir şeyleri birden çok kez açıklamak ve birkaç örnekle geçtikten sonra geçirdi. bazı çok önemli ipuçları. Bu noktada, ciddi temel ilkeleri öğrenmeden işini sürdürme umudu yoktu ve sadece birkaç ay sürdüğünden emindi.


1

Üçüncü kez aynı soruyla geri döndüklerinde onlara yardım etmeyi bırakıyorum.

Onlara yardım etmekten mutluluk duyacağımı, ancak önce kendilerine yardım ettikleri zaman söylüyorum. Oradan gidip bedava yemek için balık tutmak için başka bir gölet ararlar, bu durumda genellikle kısa bir süre sonra kovulurlar. Ya da üzerinde çalışırlar ve daha fazlası için geri döndüklerinde ikramiye vururlar ... bu aynı şeyden çok öğrenmek için daha fazla şeydir!


1

Bence bağlam önemli.

Tepki süresinin önemli olduğu kritik bir üretim desteği sorunuyla uğraşıyorsak, sorunu öğrenebilmeleri için birçok açıklama ile birlikte çok fazla yardım sağlayabilirim.

Son teslim tarihi daha az hassassa, karmaşıklık sürücü haline gelir. Elbette, beceri düzeyine uygun görevler atayarak yeni başlayanlara çok yardımcı olabilirsiniz, ancak araştırma yoluyla çözülebilecek bir şey varsa, o zaman tam bir cevap vermeden onları yönlendiren diğer afişlerle aynı fikirdeyim. .

Başka bir yere bakarak kolayca cevaplanabilecek sorular sorarlarsa, onları kendi işlerini yapmaya yönlendiririm. Bu satırlar boyunca, oldukça çürüyen bir süreç veya çözüm varsa ve bunun için köle yapma konusunda çok az değeri varsa, onları kontrol etmek için kullanışlı bir wiki'niz yoksa, sizi utandırın.

İşe özel olan alan bilgisini aktarma söz konusu olduğunda, kelimeleri küçümsemiyorum. En kısa sürede düz anlatmak. Yeni başlayanlar daha sonra gelen her şeye yardımcı olmak için buna ihtiyaç duyarlar. İş hakkında çok hızlı veya çok kolay bir şekilde eğitilmiş olmak gibi bir şey yoktur. Bir keresinde bir saat boyunca her tür numarayı oynayan ve beni cevaplamaya çalışan bir patronum vardı. Ben yeniydim, henüz uygulama veya işletme hakkında hiçbir şey bilmiyordum ve bir üretim destek meselesiyle uğraşıyordum. "Neden & # @ $! Oynuyor # @ & (* $%! Oyunları oynuyorsun?" Diye bağırmak istedim.


1

Sanırım onlara yardım etmeden önce sormanız gereken ilk şey, bu konuda soruşturma yaptınız mı? evet ise, onlara ne bulduklarını sorun ve doğru yöne çevirin. Bunu araştırmak çoğu zaman değersizdir ancak öğrendiğim en iyi uygulamalardan biridir, ihtiyacınız olan şey hakkında bilgi bulmak size kendi kendinize öğrenme gücü verir, ayrıca ilk önce denemeleri gerektiğini açıkça ortaya koyacaktır.

Sorun daha karmaşıksa, onlara ne yapmaları gerektiğini anlatmamaya çalışın, ancak bazı fikirleri paylaşın, onlara soruna nasıl yaklaşabileceklerini sorun.

Eğer hiçbir ipucu yoksa o zaman, tüm detayları vermeyeceğiniz, çözümü denemek için yeterince tanımladığınız çok basit bir seviyeye ayırmaya çalışın, bunun için algoritmalar veya akış çizelgeleri gibi çok yararlı araçlar vardır .

Sonuç olarak, her zaman onları bunları sizin bağlıdır yapacak yardımcı öğrenme süreci karışmadan onlara rehberlik deneyin her görev için zaman ayırın ve karşı-üretken olacağı, atanır sonra.


1

Bilmeleri gereken sözdizimi gibi basit şeylere yardım etmekten kaçınırlar veya bilmezlerse kendi başlarına anlamaları gerekir. Daha karmaşık bir şeyse, bir kez açıklamaktan çekinmem.

Süreci açıklamak veya organizasyonumuzun / projeleri kodlayan standartları vb gibi şeyler söz konusu olduğunda, üç grev kuralını kullanıyorum. Bir insanın, olayları üç defa anlatması gerekiyorsa, gerçekte bir insan olduğunu düşünüyorum. Aslında bu aynı zamanda değerlendirmemizdeki kriterlerden biri.

Öğrenci üzerinde çok fazla şey var. Onlardan kendi başlarına birkaç şey almalarını bekliyorum. Eğer ortaya çıkarlarsa: "Bu sorunla karşılaştım, A, B ve C yöntemlerini denedim, ancak sorunu çözemedim", onlara yardım edeceğim. Basitçe "Bu problemle yüzleşiyorum" lafını bulurlarsa ve hiçbir şey yapmadılarsa, kitaplara geri dönmelerini ve bir çözüm aramalarını isteyeceğim.


1

Acemi bir programcı olarak kendim (şu anki işimde çoğunlukla Perl ve SQL kullanan ve a ile yaklaşık 9 aydır) ve a) Perl ve b bilgisi olmadan bu aydan önce SQL ile uğraşmaktan birkaç ay önce), programlama soruları sorurken, göstermeye çalışıyorum Bugüne kadar yaptığım ya da çalışmayan (ve hata ayıklamak zor olan) bir durumda, böceğin yalan söyleyebileceğini düşünüyorum. Mümkün olduğunda balık tutmayı öğrenmeye çalıştım.


1

Aşağıdaki durumlarda yardım etmekten vazgeçiyorum:

  • Google / Yığınları yönlendirmek için kullanılıyorsa
  • Yeterli dokümantasyon ve yorumlar sağladıysam ve RTFM aşamasını kestiler
  • Eğer kirliyse, hiç yorum yapmadı, "Bunu şimdi hackleyeceğim ve daha sonra geri döneceğim" & & £>! $

Yeterli dokümanlar sağlamadıysam veya yazdığım bir araç / sınıfla çalışıyorlarsa, onlara yardım etmek benim sorumluluğumdur.

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.