Genel Programcı Eğitim ve Öğretimini nasıl geliştirebiliriz? [kapalı]


13

Geçen hafta, Second Life'dan Phillip Rosedale'den Kevin Rose'un bu muhteşem röportajını izliyordum.

İyi programcıları nasıl bulacağına, kiralayacağına ve tanımlayacağına ve iyi programcıları bulmanın ne kadar zor olduğuna dair şaşırtıcı bir tartışma yaptılar.

Bu da beni gerçekten programcının öğrenme şeklimizi düşünmeye itti, öğretildi. Kendimiz de dahil, çoğumuz için kendi kendine öğretildik. Hangi programcı olmak harika, herkes becerilerini öğrenebilir ve geliştirebilir.

Ancak bu aynı zamanda, iyi bir programcının ne olduğu ve ne tür bir ortamın programlama becerilerinin büyümesini teşvik ettiği konusunda gerçek bir standart olmadığı anlamına gelir.

Bu o kadar çok bir soru değil, sadece benim içimde, programlama kültürünü ve programlama yöneticisini nasıl değiştirebileceğimizi görme arzusu, böylece eğitim ve kendini geliştirme teşvik ediliyor.

Sürekli eğitim, youtube videoları, kitaplar, konferanslar için birçok cadde var, ancak yaptığımızın deneysel doğası nedeniyle, öğrenmek ve ustalaşmak için neyin önemli olduğu her zaman açık değil.

Joel 12 Adımlarına bakalım.

Joel Testi

Kaynak kontrolü kullanıyor musunuz?

Bir adımda bir yapı yapabilir misiniz?

Günlük yapılar yapıyor musunuz?

Hata veritabanınız var mı?

Yeni kod yazmadan önce hataları düzeltir misiniz?

Güncel bir programınız var mı?

Spesifikasyonunuz var mı?

Programcıların sessiz çalışma koşulları var mı?

Paranın satın alabileceği en iyi araçları kullanıyor musunuz?

Test kullanıcılarınız var mı?

Yeni adaylar görüşmeleri sırasında kod yazar mı?

Koridor kullanılabilirlik testi yapıyor musunuz?

Bunların hepsinin önemli bir değeri olduğunu düşünüyorum, ancak Deneyimsel Boşluk dediğim bir şeyden dolayı, bir programcı veya yönetici listede öğe yapmamış olmanın olumsuz sonuçlarından hiçbirini yaşamamışsa, hiçbir zaman onları.

Deneyimsel Boşluk, benim temel teorimdir, her birimizin farklı işleri ve farklı deneyimleri vardır. Bu yüzden, her zaman onlarca programcı ile çalışmış olan bazılarımız için, kaynak kontrolü bir zorunluluktur. Ancak her zaman tek programcı olan insanlar için kaynak kontrolüne ihtiyaç olduğunu hayal edemezler.

Ve nasıl öğrendiğimize dair bu büyük kusur nedeniyle, insanları en iyi uygulamaları yaptıkları veya yapmadıkları şekilde değerlendiriyoruz ve her ikisinin de nedeni bir alev savaşı başlatabiliyor.

Alanımızdaki insanları her zaman yaptıklarıyla değerlendiririz ve "Oh bu adam / gal xyz en iyi uygulamasını yapmıyorsa, iyi bir programcı olamaz, bu yüzden onlarla konuşurken zaman ve enerji harcamayız ."

İşte tam da bu yüzden o kadar çok programlama alev savaşımız var ki, Yaşantısal Boşluk nedeniyle, insanların yapmak zorunda olduğumuz kararları vermediklerini hayal edemeyiz.

Bu da beni programcıları nasıl eğittiğimizi, eğittiğimizi ve yönettiğimizi yeniden düşünmemiz gerektiğini düşündürdü.

Örneğin, yüzde kaçınız yöneticiniz tarafından konferanslara gitmeye teşvik ediyor ve hatta bunun için ödeme yapıyor?

Benim için ve birçok insan için bu son derece nadirdir, çoğumuz konferanslara gitmeyi, daha fazla bilgi edinmek isteriz, ancak para bunu yapmak için orada değildir.

Bu sorunun asıl amacı, nasıl daha iyi antrenman yapabileceğimiz, öğrenebileceğimiz ve daha iyi yönetebileceğimiz konusunda pek çok şeyi tetiklemektir.

İnsanlara aynı iş deneyimine sahip olmadıkları için hakaret etmeyen yeni bir öğrenme kültürünü nasıl oluşturabiliriz.

Evet, hepimizin işleri ve yapacak işleri var, ancak işlerimizi iyi yapma yeteneğimiz, becerilerimizdeki ustalığımızı geliştirme arzumuza, ilgimize ve desteğimize bağlı.

Şu anda, kültürümüzün oldukça dağınık olduğunu görüyorum, seçkinleri destekliyoruz, ancak daha iyi olmak isteyen tonlarca kişiyiz, kendimizi öğrenmek ve geliştirmek için yeterli desteğe sahip değiliz.

Yani, bir endüstri olarak, sadece değiştirilebilir çarklar olarak algılanmak istiyor muyuz?

Teşekkür ederim...


+1: Sanırım bir zamanlar programlama endüstrisinin "çıraklıklarda berbat" olduğunu kaydeden .NET Rocks'tan Carl Franklin oldu. Umarım bu alıntıyı doğru bir şekilde ilişkilendirdim; ama birincisi, bu düşünceye tamamen katılıyorum. Giriş seviyesi adayların bu günlerde sıralamada nasıl çalıştıklarını gerçekten bilmiyorum.
Jim

Harika yorumlar için teşekkürler. Ama hedeflerimin bir parçası, endüstrimizin devlerini daha iyi eğitim mekanizmalarına ihtiyacımız olduğu konusunda uyandırmaya yardım etmek ve sadece konferansların ve kolejlerin yeterli olduğunu düşünmüyorum. Doğru cevabın ne olduğundan emin değilim.
crosenblum

Amacım belirli bir çerçeveyi veya metodolojiyi zorlamak değil, amacım daha fazla eğitimi zorlamak ve programcının destek almasını sağlamak.
crosenblum

Herkes becerileri öğrenmeye ve geliştirmeye çalışabilir , çoğu gerekli özelliklere sahip değildir; ama yine de yapmak, bizim sanayi maliyeti.
41'de Orbling

Röportajla bağlantın var mı? youtube.com/watch?v=irF-V9RUuBu mu?
Lukasz Madon

Yanıtlar:


13

Vay, düşünmek için harika bir soru, cevaplanması zor. Hepimizin farklı deneyimleri ve arzuları olduğu için, tek bir boyuta uyan tüm çözümlere ulaşmak zordur. Ama aynı konuyla ilgili yıllar boyunca edindiğim bazı görüşleri atacağım .

1) İş atlamayı kötü olarak görmeyi bırakın ve teşvik edin. Şirketleri birkaç yılda bir değiştirin. Programcı, kariyerleri boyunca birçok farklı teknolojiye, metodolojiye ve işletmeye maruz kalır. İşletmeler sürekli yeni fikir akışı elde ederler.

2) Kendinizi X şirketinde bir programcı olarak görmeyi bırakın ve kendinizi X şirketine hizmet veren bir profesyonel olarak görün. Bir profesyonel gibi düşünüyorsanız, bir profesyonel gibi muamele görürsünüz. Eğer değiştirilebilir çarklar olarak görülürsek, bunun nedeni değiştirilebilir çarklar gibi davranmamızdır.

3) Üniversitelerin değişmesi gerekir. Bilgisayarlarda ilk 2 yıllık temel eğitim süreleri ve ardından bir seçim yapılmalıdır. Bilgisayar Bilimi veya Bilgisayar Mühendisliği. Ve mühendislik pisti, sadece kağıt yazan birine değil, her gün sahada çalışan profesyonellere ihtiyaç duyar. Ve öğretilenlerin pratik olması gerekir, böylece mezuniyetten sonraki gün koşarak yere basabilirsiniz. Belki bir lisans programından geçmeyenler için çıraklık programınız olabilir.

4) Düzenleme: Bu biraz rant-ish oldu. Demek istediğim, yaş ve deneyime bakılmaksızın hepimizin birbirimizden öğrenecek çok şeyi olmasıydı.

5) 2. maddeyle ilgili. İşvereninizi kariyerinizden sorumlu olarak görmeyi bırakın. Sen. Ve sadece sen. Bir konferansa gitmek istiyorsanız, şirketiniz ödemiyorsa kendiniz ödeyin. Her yıl özellikle kitaplar, eğitim ve mesleki gelişim için para ayırın. Eğer işvereninizin sizi eğitime göndermesini beklerseniz, uzun süre beklersiniz. Becerilerinizin önemsiz hale gelmesini izlemek için harcanan zaman. Bunu karşılamaya yetmiyor mu? İşleri değiştirin.

6) Kendimize ve diğer programcılarımıza karşı dürüst olmalıyız. Programlama zor. Çok zor. Hala mezun olduktan sonra garantili zenginliklerle bilgisayar eğitimi için reklam görüyorum. Bu, sadece nitelikli veya daha kötü olmayan pek çok insanın paranın ötesinde gerçek bir ilgisi yoktur. Onları kariyer planlarını yeniden düşünmeye teşvik etmenin bir yolunu bulmalıyız.

Bu noktada kafamın patlamak üzere olduğunu düşünüyorum, bu yüzden sonuca varacağım.

Harika bir soru! Daha fazla yanıt okumak için sabırsızlanıyorum.


3
Puan 2 ve 5'in çoğu için +1. İşvereninizin size ihtiyaç duyduğunuzdan daha fazlasına ihtiyaç duyduğunun farkına varacağınız bir an.
Carl Norum

@Carl, bu gerçekten harika bir duygu.

Harika soru açıklamaları için +1. Tamamen katılıyorum. Ayrıca 2. ve 3. puanlara tamamen katılıyorum.
KeesDijk

Yakın gelecekte metalaşmaya doğru bir eğilimin tersine döndüğünü görmüyorum. Çoğu kurumsal yazılım mağazasındaki eğilim, rollerin aşırı uzmanlaşmasına yöneliktir (yani güvercin avı).
bit-twiddler

1
Ancak ekonomi bizi o kadar fazla özgürlüğe veya seçeneğe sahip olmadığımız işlere itebilir.
crosenblum

1

Sadece öğretim eksikliğinin bir sonucu olarak dağınık olduğunu düşünmüyorum. Aslında "en iyi uygulamaların" işten işe farklılık göstereceğini yansıtıyor. "En iyi uygulamalar" her zaman belirli bir bağlamda oluşturulacaktır.

En yaygın çalışma alanlarından bazıları için bir çok çaprazlama söz konusudur. web Geliştirme. Bununla birlikte, bence çoğu işte belirli bir uygulamaya girmenin iyi olduğu için tüm işlerde kullanılması gerektiğine inanmak yanlıştır.

Yaptığınız uygulamalar, sizi daha iyi çalıştıran şeyin analizi ve denemesinden kaynaklanmalıdır. Kör bir inançla seçilmemelidirler. Sadece bir şey internette sık sık yankılandığından, bunu sizin durumunuzda bir Hakikat ya da bir Gerçek yapmaz (tüm durumlar için).


0

Zihni uygulamak için harika bir soru, bir şeyin yapılması gerektiğine katılıyorum, ancak cevap vermenin imkansız olduğunu düşünüyorum. Benim denemem:

Öncelikle yaratıcılığı genel olarak öldürmeyin Sir Ken Robinson ile aynı fikirdeyim, bu harika TED konuşmasını izleyin . Eğitim sistemimiz yaratıcılığı öldürüyor ve değiştirilmesi gerekiyor. Özellikle programcılar için.

İkinci Kalıp gibi öğretprofesyonel alanımız yeterince olgun değil. Gideceğimiz yol olduğunu düşündüğümüz birçok farklı şeyimiz var, ancak onlar üzerinde gerçekten anlaşamıyoruz. (TDD, BDD, Agile vs Waterfall, gerekli dokümantasyon miktarı, Java veya .Net'i düşünün) Aklımda bu, bağlamsız tartışmaktan ve çok fazla uzmanlaşmadan kaynaklanıyor. Sorunun hangi bağlamda sorulduğunu bilmeden doğru seçimi yapamazsınız ve yalnızca bir seçeneği biliyorsanız doğru seçimi yapamazsınız. Bunu eğitime geri getirdiğinizde çözülmesi imkansız görünüyor. Birinden olası tüm bağlamları ve olası çözümleri bilmesini bekleyemezsiniz. Ama şimdi kalıplarla bazı genel çözümler ve bağlamlar, çözümler bozulduğunda geçerlidir ve bağlamlar. IMHO bu öğretmemiz gereken yol,

Üçüncüsü örnekler üzerinde feragatname MSDN'de, Bloglar'da, kitaplarda vb. Gösterdiğimiz örneklerle ilgili bir sorun olduğunu düşünüyorum. Ancak en temel örneklerde zaten birçok düzeyde kararlar var. Bu örnekler tüm bu diğer kararları yanlış öğretmektedir. Bence her örnek, konunun ne olduğunu ve genel olarak ne yapmamanız gerektiğini söyleyen bir feragatname ile gelmelidir. Bunun güzel bir örneği bugün burada bloglandı .

Son Do Do Do bence daha fazlasını yapmak gerekiyor. Çoğunlukla sadece yapmayı, başarısız olmayı, düzeltmeyi ve tartışmayı öğrendim.

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.