Teknik deha olmak başarılı bir geliştirici olmak için yeterli değil mi? [kapalı]


18

" Stack Overflow'daki yüksek itibar iyi bir iş bulmanıza yardımcı olacak mı? " Ben hemen kabul etti JoshK temelde "söyledi Hayır " (neden ben açıklayacağım edeceğiz), ancak Joel ipucu verdi bana onu da upvote yapılan gerçekleri ikna sürü.

Sorum, bir geliştiriciden başka hangi becerilere (teknik deha olmak dışında) ihtiyacınız var? İşi almak veya devam ettirmek için.

Bir dahi olmak yeterli olmaktan çok uzak olduğuna inanıyorum. Çalıştığım çeşitli şirketlerde birçok teknik dahiyle tanıştım, bu beni çok etkiledi, ama ne yazık ki birçok durumda, sadece birkaç ay sonra ateşlendi veya fildişi kulelere konuldu (esas olarak diğer geliştiricilerin iç isyanları nedeniyle). Anladığım bunun sonucunda kişisel sıkıntı içinde birçok kişi gördüm.

Bu yüzden teknik pozisyonlar için teknik olmayan soruların büyük bir hayranıyım. Adayın diğerleriyle (teknik olmayan çalışanlar dahil) nasıl etkileşime gireceğini, iş için ne kadar dikkate alacağını, istenen sonuç için çalışıp çalışmayacağını vb. Bilmek isterim.

Geliştiricilerinizden neye ihtiyaç duyduğunuzu bilmek istiyorum ve NEDEN önemli (sonuçta, birisini kod yazması için kiraladınız, değil mi? Neden iddialı olmasını istersiniz?) . İdeal olarak, görüşmeniz sırasında cevabınızı desteklemek için soracağınız örnek bir soru bulmanızı istiyorum .


Şirketim sakinleri için fildişi kuleleri ile fildişi kuleleri yüklü :(
dr Hannibal Lecter

Görünüm fildişi kulenin tepesinden güzel :)

Yüksek bir itibar burada :-) Seattle taşınmaya bir teklif yol açtı Bir İşveren gelen bir çağrı yol açtı StackOverflow kariyerlerinde bir profili koymak için bana bir davetiye var
Kevin Cline

Yanıtlar:


22

Mükemmel iletişim becerileri.

İş arkadaşlarınız beyninizi doğrudan okuyamazsa, onlara ne düşündüğünüzü söyleyebilmeniz gerekir. Tercihen hem sözlü hem de yazılı.


DÜZENLEME: Bir yolu mülakat zaman onları görmeye olabilir X'i yapmak için sevdikleri çerçeve ne olduğunu onlara sorarak olacak ve sonra da X kullanılabilecek bir proje üzerinde çalışması gerektiğini söylersin ama kullanım teknolojisi siyasi karardır Y (açıkça daha eski ve X'in çözdüğü bazı sınırlamaları var).

Bu, siyasi kararın neden yanlış olduğuna dair bir tartışma ile sonuçlanırsa, bu kişinin pragmatik kararlarla iyi sonuç vermediğine dair güçlü bir göstergeye sahipsiniz.


Teknik olmayan kişilerle (yönetim veya müşteriler gibi) son derece teknik şeyler hakkında nasıl iletişim kuracağınıza dair daha fazla ayrıntı ekler misiniz? Şu anda "Geek Konuşabilir" bile konuyla ilgili mükemmel bir kitap okuyorum.

Aslında, onların zihninde düşünebiliyorsanız, bu sadece bir soru. Bir zamanlar yazılım geliştirmeyi "örgü tarifleri yazıyoruz" olarak açıklamanın büyükannelerin zihniyetlerine iyi uyduğunu buldum.

3
Her zaman mükemmel derecede İngilizce bilen ve yazılı ve sözlü iletişim becerileri üzerinde çalışmak için fazladan zaman ayırmaya istekli olan adayları tercih ederim. Öte yandan, eğer hayat Twitter'da konuşlanmış başka bir uygulama gibi konuşuyor ya da yazıyorsa, onlara kapıyı gösterirken kibar olmak için elimden geleni yapacağım.
Adam Crossland

@Pierre, bu kitap çevrimiçi olarak mevcut mu? Safari'de bulamadım.

1
@ Pierre303 "Nerd El Kitabı" nı ilginç bulabilirsiniz. randsinrepose.com/archives/2007/11/11/the_nerd_handbook.html . Yazarın çok ilginç bir blogu var.

15

Takım çalışması / iletişim:

  • çözümlerinizi veya sorunlarınızı açıklayabilme
  • diğer insanlarla kötü hissetmeden (herhangi bir şekilde) çalışabilmek - sizinle çalıştıklarını hissettirmek hoştur

Bu beceriler olmadan, takım halinde çalışamazsınız ve yapamazsanız, bunu gerektiren bir şirkete giremezsiniz (ve neredeyse hepsi doğal olarak takım çalışması gerektirir). Hala serbest olabilir ve üzerinde çalışacak başka insanı olmayan projeler üzerinde çalışabilirsiniz, ancak yine de diğer şirketlerden insanlarla iletişim kurmanız gerekir.

Öğrenmek için bile, web'de olduğu gibi birçok farklı insanla iletişim kuramıyorsanız, gerçek hayatta ve toplumda (iş ne olursa olsun) daha iyi bir şey yapamayabilirsiniz.

değiştir> Röportajda, ekip çalışması / sosyalleşme / iletişimin kontrol edilmesi gerçekten kolaydır, en kolay şey olabilir. Sadece teknik değil, cevaplaması kolay sorular veya adayın bir şey hakkında ne düşündüğü veya adayın bir alanda veya başka bir alanda neyi sevdiği veya sevmediği hakkında sorular sormanız yeterlidir. Onun konuşmasını sağla. Göreceksin.


15

Direnç, çok fazla bahsetmediğim bir beceridir. Ve bu bir beceridir - sonu göremeseniz bile, kendinizi bir problem üzerinde çalıştırabilme yeteneği. Birçok insan bunu yapmaz; sadece momentum üzerinde çalışırlar ya da geçinmek için gerekenleri yaparlar. Ne yazık ki, bir kişinin onlarla konuşarak bu özelliğe sahip olup olmadığını anlamanın bir yolu yoktur. Gerçekten bu kişi ile çalışan başkalarıyla konuşabilmeniz gerekir. Başvurular bunu yapabilir, ancak bu seçenek her zaman kullanılabilir değildir.


Kalıcılık yorumu için +1 - Yüksek bir SO temsilcisinin kalıcılık ile ilişkili olup olmadığını merak ediyorum?
Gary Rowe

@Gary - Sanırım, noktalı virgül ya da bir şey eksik olan yeni başlayanlar değil, çözmek için biraz çalışma gerektiren soruların cevapları ile kazanılmışsa. ;)
Michael K

12

Bunlar becerilerden daha fazla özelliktir, ancak muhtemelen başarılı bir geliştirici olmak için birisinin bulmaya değer olduğunu öneririm:

Çok yönlülük , orada koyacağım başka bir özellik olurdu. Bazen bir geliştiricinin, iş analisti, mimar veya test cihazı gibi saf geliştirmenin dışındaki rolleri doldurması gerekebilir. Kod tasarlama veya yazma dışında bir şey yaptığım projelerde çeşitli bölümlerim olduğunu biliyorum ve bu başka bir şeyde görülmesi gereken bir şey olmalı. Herkes bu rolleri üstlenmeyi kabul edemez. Geliştiricinin geçmişte başka bir rolü nerede doldurmaları gerektiği ve bunun nasıl ortaya çıktığı konusunda ne tür durumların olduğunu sorun.

Alçakgönüllülük , bir gereklilik olarak koyacağım başka bir şey olurdu. Ego bazı yerlerde çok sıkıntıya neden olabilir ve herkes bir şeyde olduğundan daha iyi olabileceğini kabul edemez. Eğer bir başkasının daha iyi bir fikri varsa, işte böyle olsun. Geliştiricinin kodundan, eleştirmelerini ve kendilerini ne kadar iyi düzeltebileceklerini veya göremediklerini görmelerini istediğiniz bir örneği olabilir.

Gurur bırakacak bir başkası olurdu. Bu, önceki kalitenin biraz aksine, ancak birisinin işinde gurur duyması yoksa, ne tür bir kalite olduğunu düşünüyorsunuz? Memnun olmama burada biraz farklıdır, çünkü muhtemelen bir çok geliştirici mükemmeliyetçi olabilir. Hangi geçmiş projeden en gurur duyduklarını sorun.

Öz motivasyon da görmek önemli bir beceri olacaktır. Onları harekete geçiren nedir? Bunu ne kadar iyi ifade edebilirler? "Ofis Alanı" Peter Gibbons'tan şu çizgiye sahiptir:

Sekiz Bob. Yani bu, bir hata yaptığımda bana bunu anlatmak için gelen sekiz farklı insanım olduğu anlamına geliyor. Bu benim tek gerçek motivasyonumun kargaşası değil, işimi kaybetme korkusu. Ama biliyorsun Bob, bu sadece birisinin kovulmayacak kadar çok çalışmasını sağlayacak.

Bu, birçok geliştiricinin ve geliştirici olmayanın ilişki kurabileceğinden şüphelendiğim bir şey. Neden yaptığın işi yapıyorsun? Bu iyi bir soru olabilir, ancak bazen dikkat edilmesi gereken hazır cevaplar olabileceğinden, yanıtta samimiyet ve özgünlüğü arayın.

Merak eklemek listemde son olurdu. Bir şeyin nasıl çalıştığını görme, yeni teknolojileri öğrenme ve kişinin konfor bölgesinin dışına çıkma arzusu, bunun başarılı geliştiricilerde bulunabilecek diğer belirteçleridir. Birinin nasıl geliştiğine dair kısa bir hikaye, bu özelliği görmenin bir yolu olabilir, ancak bir diğeri onlara görmedikleri bir şey hakkında soru sormak ve "Eh, bu ilginç olabilir" veya " Ah kardeşim, bir daha değil, "bir bakış.


Bir milyon teşekkürler, zaten bazı parlak cevaplar olsa da, aradığım cevap senin oldu. Umarım daha fazla insan buraya daha iyi bir programcı olmak için geliştirebileceğimiz daha fazla beceriyle gelir. (Bugün için artýk oy kullanamýyorum, özür dilerim)

7

1) İletişim muhtemelen yazılım mühendisliği türleri de dahil olmak üzere herkes için en önemli beceridir. Bu iletişim becerileri, iş arkadaşlarıyla uğraşırken olduğu gibi yöneticiler ve müşterilerle de aynı derecede önemlidir.

2) Takım çalışması, birincisine bağlı olarak biraz farklı bir beceridir. Temel olarak, işe almaya çalıştığım kişinin takıma bir bütün olarak fayda sağlayıp sağlayamayacağını veya potansiyel olarak işe aldığım bazı kişilik çatışmalarının olup olmayacağını belirlemem gerekiyor. Kimse geleceği tahmin edemez, ancak röportajdaki uyarı işaretlerini de göz ardı edemezsiniz.

Görüşme sürecinde kullandığım bir taktik, kişiden daha zorlayıcı teknik problemlerden birini (hakkında konuşabilecekleri) ve bunları nasıl çözdüklerini anlatmasını istemektir. Akıl yürütme süreçleri ve sorunu nasıl ortaya çıkardıklarından bahsederken, potansiyel olarak karmaşık şeyler hakkında ne kadar iyi iletişim kurabilecekleri hakkında daha iyi bir fikir edinebilirsiniz. Süreçte ek yardım isterse, bunu bir artı olarak görüyorum. Hiçbirimiz mükemmel teknoloji uzmanı değiliz. Seçtikleri sorun bir kişilik çatışması haline geldiyse (ki sadece bir kez oldu), ya geçebilir ya da biraz daha derine inebilirsiniz.

Birçok açıdan görüşme süreci kör bir tarihte olmak gibidir. Her iki insan da en iyi yüzünü giyiyor, karşı tarafla daha fazla zaman geçirmek isteyip istemediklerini anlamaya çalışıyor. Röportajın bir konuşma gibi akmasını ne kadar çok sağlarsanız, röportaj yapılan kişi o kadar rahat olacaktır; ve sonuç olarak iyi bir uyum olup olmadığını daha iyi göreceksiniz.


6

Her ne kadar ekip için bireysel geliştiricilere göre daha geçerli olabilecek bir kalite olsa da, bence "Büyük mühendisler gemi" demenin arkasında çok şey var.

Çoğu insan için bir röportajda göstermek zor olacak bir şeydi, ancak örneğin önemli bir açık kaynaklı uygulama, kütüphane veya çerçeve yazmış ve sevk etmiş bir adayla röportaj yapsaydım ve aslında önemsiz olmayan bir projeyi bitirmek için, o kişiye kendi rekabeti hakkında bir bacak vermek zorunda kalacaktım.

Aksine, potansiyel bir aday beni Github hesabına yönlendirdi ve yarı tamamlanmış, buggy, ihmal edilmiş veya kötü belgelenmiş projelerle dolu olduğunu görürsem, adaylığını göz ardı etmek için iyi bir nedenim olurdu.

Bir adam filmde bir keresinde “Kahve yakınlar içindir” dedi.


4

İletişim ve ekip çalışması becerileri önemlidir, ancak müşterinin gereksinimlerini anlayabilmenin ve iş alanı bilgisi edinebilmenin de deneyimlerimde çok önemli olduğunu ekliyorum.


2

İletişimin çok önemli olduğunu kabul ediyorum, ancak mükemmel bir kodlayıcıda diğer mühendislere süreçlerinin kullanımını göstermeyecek bir hata yaşadım. Süreçlerini çoğaltabildim ve başkalarına gösterebildim, ancak yardımı olmadan. İşe yaramadı çünkü öğretmeyecekti.


1

Asla yeterli değil.

Sağduyu. Problem çözme. Bir bütün olarak teknolojiye ilgi. İşleri doğru şekilde yapma tutumu. Sebat. Takım oyunu / İletişim.

Her beceri 1-5 puan. En az 3 ve ortalama 20 + var. Bir geliştirici olarak iyi bir hayatınız olacak. 25+ başarılı geliştirici olacak. 10'dan az ve ciddi bir yazılım geliştirme kariyer düşünmek gerekir.

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.