Doğal bir bilim insanıyla ilişki kurmak için nasıl röportaj yapmalı? [kapalı]


30

Orijinal soru

Şirketim için zaten röportajlar yaptım, çoğunlukla dev pozisyonları için bilgisayar bilimcileri, ayrıca bazı test uzmanları ve proje yöneticileri. Şimdi Ar-Ge departmanındaki araştırma grubumuzu doldurmam gerekiyor (yan not: “araştırma”, üniversiteler, diğer şirketler, araştırma merkezleri ile birlikte araştırma projelerinde yazılım kullanarak profesyonel alan / pazar nişimizdeki sorunları çözmeye çalıştığımız anlamına geliyor. ve son kullanıcı organizasyonları Bilgisayar bilimi araştırması değil, P = NP problemini çözmeyeceğiz).

Şimdi hiç kimsede bilgisayar bilimi dersi almayan kimya alanında yüksek lisans derecesine sahip bir adamı (CV'sinde de çok fazla fiziği olan) davet ettik. Yerel bir üniversitenin kariyer günlerinde onunla yarım saat kadar konuştum ve bu adamın akıllı olduğuna dair hiçbir şüphe yok. Ayrıca onun notları mükemmel ve farklılıkla mezun oldu. Lisans için Mathematica'da programlama yapması gerektiğine inanıyordu ve inanıyorum ki programlamayı çok sevdiğini söyledi. Ayrıca, yüksek lisans tezi için Mathematica'da uygulanan kendi yazılımını kullanarak muhtemelen anlamadığım bazı fiziksel kimya problemini çözdü. Bir GUI ve dikkate değer bir 8,000 LoC boyutu içerir. Araştırma grubumuzda yaptıklarımızdan çok etkilenmiş görünüyor ve dürüst olmak gerekirse, bizim gibi bir KOBİ'nin iyi insanlar edinmesi oldukça zor. Ayrıca proje önerileri yazma, rapor verme, sunum yapma konusunda bana yardımcı olabileceği için onu işe almayı çok istiyorum. Muhtemelen ekibimize de uyardı.

Geriye kalan tek soru şudur: İşimizin önemli bir parçası olacağı için projelerimizde yazılım uygulaması için gereken programlama becerilerini alıp almayacağını nasıl kontrol edebilirim ?

Tabii ki ona ne olduğunu soracağım, bu onu programlama konusunda etkiliyor. Ayrıca doğa bilimleri yazılımını yazmaya nasıl devam ettiğini ve onu nasıl yapılandırdığını da soracağım. İhtiyacı olan yazılım geliştirme hakkında bilgi ve becerileri edinmeyi nasıl başardığını soracağım. Fakat daha sorabileceğim bir şey var mı? Belki daha somut bir şey? Mathematica çözümünü açıklamasını istemeli miyim?

Açık olmak gerekirse: Belirli bir dilde veya teknoloji yığınında bilgi aramıyorum. Ürün geliştirmede bir .NET mağazayız ancak araştırma projelerimiz için özgür bir seçim yapmak istiyorum. Bu yüzden meta-yeterlilik ile gerçekte neye ihtiyaç duyulduğunu öğrenebilmeyi önemsiyorum.

Umarım bu soru yanıtlanabilir ve açık uçlu değildir, çünkü işte daha fazla programlama becerisi edinme yeteneğini kontrol etmenin varsayılan bir yolu olup olmadığını gerçekten bilmek isterim . Bir şey sizin için net değilse, lütfen bana bazı yorumlar verin ve sorumu geliştirmeme izin verin.

2011-12-01 tarihine kadar verilen cevapları yansıtan güncelleme

Hangi cevabı kabul ettim ve neden

Cevaplarınız için hepinize teşekkür ederim, çoğu oldukça yardımcı oluyor, bu yüzden çok fazla şey kazandım! Tom Squires'in cevabı en fazla oyu almış olmasına rağmen , Prens Goulash'ın verdiği cevabı kabul edeceğim . Tabii Tom objektif doğru, ancak Prensin cevabı benim için sadece daha yararlı olduğunu ve bunu SSS iki kez kontrol bu bir cevabı kabul etmek kriterdir.

Görüşme sırasında ona ne soracağım

  • Chris Burt-Brown'un bahsettiği The Camel Has Two Humps'daki örnek gibi bazı basit ödevleri açıklamasına izin vereceğim

  • Belki grafiksel gösterimde daha gelişmiş kontrol akışlarını açıklamasını isteyeceğim.

  • Matematik örneği kullanarak özyineleme anlayışını kontrol edeceğim.

  • Seçtiği bir algoritmayı doğal dilde açıklamasına izin vereceğim.

  • Mathematica çözümünü açıklamasına izin vereceğim, özellikle prosedür modelini, araçların kullanımını, genel olarak kod ve yazılımın yapılandırılmasını ve ayrıca farklı soyutlama katmanlarını isteyeceğim.

  • Motivasyonunu kontrol etmek için onun yazılım geliştirme harikasını isteyeceğim.

  • Kurumsal yazılım geliştirme hakkında neleri öğrenmesi gerektiğinin farkında olup olmadığını ona soracağım. Özellikle tartışmayı takımlar halinde çalışma, çift programlama, TDD'ye yöneltmek istiyorum çünkü kendisinin yüksek lisansı üzerinde çalıştıktan sonra bu konuda çok fazla şey bilmemesini bekliyorum.

Uzun bir röportaj olacak gibi geliyor;)

Röportajdan sonra güncelleme 2011-12-09

Hepinize iyi cevaplarınız için teşekkür ederim. Röportajı uçan renklerle geçti. Bir başvuru sahibi ile hiç bu kadar tatmin olmadım. Mathematica çözümü oldukça iyi yapılandırılmış görünüyor. Nerede daha üst düzey işlevler kullandığını açıklayabildi, ancak bunların böyle ifade edildiğini bilmiyordu. The Camel Has Two Humps'tan matematik temelli özyinelem sorularıma ek olarak basit ödevler ve kontrol akışlarını cevapladı.. Bazı algoritmaları açıklarken, doğrusal olmayan montaj hakkında çok şey öğrendim;) Ayrıca dürüstçe, o zamana kadar bilmediği profesyonel yazılım geliştirme hakkında bir şeyler öğrenebileceğini garanti edemeyeceğini söyledi. Ancak, yeni kavramları öğrenmede her zaman iyi olduğunu - kendi başına bile - ve yazılım geliştirmeye gerçekten ilgi duyduğuna inanıyordu. Ayrıca projenin teknoloji yığınını da istedi, ilk önce evde olup bitene bakmak istedi. Çift programlamayı ve ekip çalışmasını da merak ediyordu. Şimdi iş sözleşmesinin imzalanacağını umuyorum.


9
Şirketlerin, kullandıkları teknolojide bilgisi olmayan insanları işe almaya istekli olduklarını harika buluyorum. Keşke kariyerime yaptığım şeyi yapmadan önce şirketini bulmuş olsaydım!
NoChance

Emmad: “Meta yeterlilik” ile açıklamaya çalıştığım ve kastettiğim şey buydu. Artık gerektiğinde Scala / Lift'i öğrenemeyen (veya istekli) olan mükemmel bir C # programcısı tuttuğumda şirketimin faydası nerede? Ve dürüst olmak gerekirse: Almanya'da iyi insanları edinmek aslında oldukça zor. Özellikle de bir KOBİ olduğunuzda bizim gibi popüler bir metropolde bulunmamak.
Silas

2
Basit kontrol akışı ve belirli bir dildeki diğer çok temel teknikler hakkında biraz araştırma yapmasını isteyin. Sonra geldiğinde onlardan bir sorunu çözmesini isteyin.
Darren Young,

2
Şu anki pozisyonumdaki birkaç bilim insanı geliştiricisi ile çalıştım. IMHO, kalkınma problemini çözme yönlerinde çok iyi olma eğilimindedirler ve iyi OO prensipleri ile sürdürülebilir kod yazarken çok iyi değillerdir. Hızlı ve kirli araçlar yazmaktan daha fazlasını yapmasını istiyorsanız, onunla çalışan geleneksel bir geliştiriciye ihtiyacınız olabilir.
Jordan Bentley

2
Ben hemen hemen bu adamım. Hesaplamalı bir fizik / kimya geçmişim var ve çok sayıda (bazen karmaşık ve başarılı) yan projelerle birlikte pek çok hesaplama modelleri / kodu geliştirdim. Profesyonel gelişim ortamında yapmak zorunda olduğum ana ayarlamalar geliştirme metodolojisi ile ve takım halinde çalışmakla ilgili. Yazılım üzerinde birlikte çalışmanın ne demek olduğunu anladığından emin olun. Kullandığınız yöntemleri (TTD / contubous entegrasyon bu tür şeyler) ve onlarla çalışmanın çıktıları için ne anlama geldiğini anladığından emin olun.
drxzcl

Yanıtlar:


21

Burada çok yanlıyım çünkü birkaç yıl önce fizik doktorasıyla bir yazılım geliştiricisi olarak başladım, ancak çok az kodlama tecrübesiyle (Fortran'da bir lisans kursu tutarında). Açıkça, geliştirmekte olduğunuz yazılımın türüne bağlı, ancak benim görüşüme göre, kodlama becerilerinin yarı-terbiyeli bilimsel / problem çözme becerisine sahip herhangi biri tarafından kolayca seçilebileceği. Bilgisayar bilimi eğitimi almış yaşam boyu programcılara hakaret olarak düşünmüyorum: elbette ustalaşmak için ciddi eğitim gerektiren teknik unsurlar var (örneğin, çok iş parçacıklı ve çok düşük seviyeli mimari). doldurmaya çalıştığınız konum değil.

Mevcut pozisyonumla ilgili teknik röportajım için oldukça karmaşık bir matematik problemiyle karşılaştım ve çözmek için bir program tasarlamamı istedim. Vurgu, bir kez uygulandığında sorunu çözecek bir algoritma yazmaktı. Çözümümü tanımlamak için sadece kelimeleri kullanarak bir cevap yazabilirim, ancak dilersem istediğim bir dilde bazı kodlar yazabilirdim. Test, problem çözme yeteneği ve "bir programcı gibi düşünebilip beceremediğim" hakkındaydı. Açıkçası, eşit yetenekli adaylar varsa ve birinin daha doğrudan kodlama tecrübesi olsaydı, o zaman zirveye çıkardı, ama bu bana yeterince adil geldi.

Sonuç olarak: adayı, onu elde edeceğiniz beceriler açısından inceleyin, elde edeceğinizi umduğunuz idealler için değil.


2
Eski bilim adamları olan programcılarla çalıştıktan sonra, onların bilmedikleri sadece düşük seviye detaylar değil, aynı zamanda çok yüksek seviye şeylerdir. Elbette YMMV, ancak sorun olan genel bir derinlik eksikliği. Tüm işlerin buna ihtiyacı yok…
Donal Fellows

1
@DonalFellows: Belirli bir eğitime sahip olmayan geliştiricilerin hem genişlik hem de bilgi derinliğinden yoksun olabileceğinden şüphem yok. Bu, role ve teklif edilen kurum içi eğitimin miktarına bağlıdır.
Prens Goulash

1
@DonalFellows: OP'nin, başvuranın mevcut bilgisini değil,

2
@DonalFellows: Daha önce de söylediğim gibi, OP'nin başvuranın mevcut bilgilerini değil , başvuranın öğrenme yeteneğini belirlemekle ilgilendiğini göz önünde bulundurarak ...

2
@ Mark Bannister: İyi bir bilim adamı öğrenebilir, bu burada işe yarar bir soru değil. Daha faydalı bir soru, bilim insanının bilmesi gerekenleri öğrenmesi olacaktır. Bu daha çok kişilik sorunudur. Bilim adamı yazılım mühendisliği hakkında ne bilmediğini biliyor mu?
David Thornley

37

İhtiyacı olan programlama becerilerini alıp alamayacağını nasıl kontrol edebilirim

Yapamazsınız . Henüz sahip olmadığı bir beceriyi doğru bir şekilde test etmek imkansızdır. Onun zekası ve tutumuna dayanarak bir yargılama kararı almalısınız. Sonunda her zaman bir risk olacak.

Kişisel deneyimlerden bilimden programlamaya geçmenin çok mümkün olduğunu söyleyebilirim. Her ikisi de temelde karmaşık bulmacaları çözmek için beyninizi kullanmaya başlar.


8
+1 "İkisi de temelde karmaşık bulmacaları çözmek için beyninizi kullanarak kaynaşıyor."
joshin4colours

1
Senin sorunun ne? Adamı işe, cennetin uğruna! Unutma ki programcılar sadece ileri teknoloji torna operatörleridir. Hevesli, zeki ve çok fazla kimya biliyor. Eğer onu işe almazsan , bir dahaki sefere bir yıl birini işe almaya gidersen, yapmadığın kıçını tekmeleyeceksin.
Pete Wilson

1
Bir CS mezununun 13 yaşından beri programlama yapmış olması nadir değildir. Üniversiteye girdikleri zaman, zaten çoğu skala tarafından bir ara programcıdırlar. Bu, derecelerinden hiçbir şey öğrenmedikleri anlamına gelmez. Programlama kolaydır ... Bilgisayar Bilimi / Yumuşak Mühendislik değildir. Bu katkı sağlayamayacak ve değerli bir üye olamayacaklar ... Ama bu muhtemelen asla aynı CS vakfına sahip olmayacakları anlamına geliyor.
user606723

6

Bu kağıdı doğrulayan hiçbir ikincil kaynağım yok bu yüzden kefil olamıyorum ama:

Devenin İki Humps'u Var
http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf

Programlama yeteneği için ayrıntı verdiğimiz bir test bulduk. Öğrencilerin herhangi bir programlama dili ile çok yüksek doğrulukta herhangi bir teması olmadan ve aynı enstrümanla birkaç hafta maruz kaldıktan sonra aşırı hassasiyetle test ederek başarı veya başarısızlık tahmin edebiliyoruz.


3
Makaleyi okuduktan sonra, bir süre önce bu çalışma hakkında daha fazla şey okuduğumu hatırlıyorum. Bir daha bulamıyorum :( Düzenleme: Kod Yazma Korkusundan bahsedildi , hatırlatma için teşekkürler
Silas

Beni yenersin, @Silas'ın eklediği Kodlama Korku bağlantısıyla cevap vermek üzereydim
Izkata

5

İhtiyacı olan programlama becerilerini alıp alamayacağını nasıl kontrol edebilirim?

Çok basit. Ona becerileri ver.

Şimdi, bu çok tatmin edici bir cevap değil, ama ayrıntılı çalışmama izin verin.

İnşaat Mühendisliği bölümünde 3 yıl çalıştıktan sonra programlamaya geldim. Bu uygulamalı fizik ve matematikte oldukça sağlam bir arka plan . Bir CS derecesinin verecek teorik matematik değil, ama bir şey değer. Mühendislik deneyiminden çizdiğim şey, problem çözmede sağlam bir arka plandı . Matematik geçmişi olan herkes, bir problemin çözümü hakkında konuşurken zarafet kavramını zaten takdir ediyor . Altı sayfalık tavuk kaşıma alarak ve sunum için zarif bir yarım sayfa kanıtı haline dönüştürerek zamanlarını harcadıkları için refactoring konusunda zaten bir eğitim almışlar.

Fizik eğitimi alan herkes, temel çerçevelerden gelen bir çözümü bir araya getirmek için sezgisel bir yaklaşım geliştirmiştir.

Ve bu becerilerin dışında programlama nedir? - Dil, Deyim, Desenler ve Çerçeveler. Bunların öğretilmesi kolaydır. Yapamayacağın bir problem. Bu alanlarda talimat verebilirseniz, o zaman iyi bir geliştirici ile sonuçlanacaktır.

O zaman soru şu olur: "Hızlanabilmesi için ne kadar süre bekleyebilirsin?"

tl; dr; Yazmayı öğretebilirsin. Akıllıca öğretemezsin.


+1, Çok güzel cevap. İnsanların meslekler hakkında daha açık görüşlere sahip olmasını diliyorum: matematik derecesine sahip olmak, bir yaşam için programlama yapamayacağınız anlamına gelmez, bunun tersini yapmaz. IMO öğrenmeyi öğrenmek önemli bir beceridir.
K.Steff

2

Malzeme Bilimi alanında lisans derecesine sahibim ancak tüm kariyerimi yazılım geliştirmede çalıştım.

Adayınızın muhtemelen temel programlama ve algoritmalarla ilgili problemleri olmayacağını, ancak daha “mühendislik” tipi gereklilikler söz konusu olduğunda, biraz rehberliğe ihtiyacı olabileceğini öneriyorum. Demek istediğim kodunu iyi yapılandırmak, 500 hat fonksiyonuna sahip olmamak, etkin bir şekilde test etmek, verimlilik için tasarım yapmak ...

Bunun çoğu öğretilebilir, ancak bunu düzeltmek için bazı sorular tasarlamak isteyebilirsiniz.


2

Ayrıca, yüksek lisans tezi için Mathematica'da uygulanan kendi yazılımını kullanarak muhtemelen anlamadığım bazı fiziksel kimya problemini çözdü. Bir GUI ve dikkate değer bir 8,000 LoC boyutu içerir.

Bana öyle geliyor ki, aday nasıl programlanacağını zaten biliyor, özel bir geliştirici olarak daha fazla deneyime sahip olmadıklarını, ancak önemsiz olmayan bir işin tamamlanmasını gerektiren tamamlanmış bir projeye sahipler. Dolayısıyla, adayla, alışveriş yaptığınızdan farklı bir dil kullanan bir geliştiriciyle yaptığınız gibi, örneğin:

  • Temel Yeterlilikler - Aday temel programatik mantığı, akış kontrolünü, temel veri yapılarını anlıyor mu?
  • Gelişmiş Yeterlilikler - Aday nesne yönelimli programlama ve tasarımı, gelişmiş veri yapılarını, arayüzleri, soyut sınıfları vb. Anlıyor mu?
  • Problem Çözme Becerileri - Bir problem verildiğinde, aday sağlam problem çözme becerisi gösterir mi?

Mathematica'nın kullandığı dil oldukça ileri düzeydedir ve Mathematica için yazılım yazma konusunda iyi olan bir kişi diğer alanlarda oldukça yetkin olmalıdır, bu yüzden bu deneyime odaklanmak ve bunu kodlama deneyimine dayanak olarak kullanmak görüşmeye yaklaşmanın iyi bir yolu olabilir.


2

Bir Havacılık ve Uzay Mühendisliği mezunu olarak programcı döndü, tabiat bilimlerinden programlamaya sıçramak kesinlikle mümkün. Ancak, uyarılma, sorunları çözebilme her zaman kod yazabilme becerisiyle ilişkili değildir. Bunu anlamış gibisin ve bu iyi bir şey.

Bana göre, kavramasını sağlamak için en önemli kavramlar kontrol akışı ve özyinelemektir (ve genel olarak bunun bir alt kümesi olarak döngüdür). Bir adayı işe almadan önce, açıkça çok zeki biri bile problemleri çözmek için basit bir kelime algoritması yazabildiğinden emin olun. Düz sözler algoritmasını alıp en azından sözde koda dönüştürebildiğinden emin olun. Polimorfizm kavramını en azından anlayıp anlayamayacağını bile anlayabilirsiniz, ancak bunun bu durumda gerekli bilgi olduğundan emin değilim.

Ayrıca, Mathematica / MatLab / bilimindeki bilim problemlerini çözme yeteneğine de dikkat edin. Bu, yalnızca, eğer / else ifadeleri, temel (bazen aşırı temel) programlama ilkelerini uygulayabildiği anlamına gelir. İyi bir programcı olmayı öğrenmek genellikle bu aşamada birine hem kişisel hem de işveren taahhüdünü alacaktır. Uyarı: Kağıt torbadan çıkışını programlayamayan ve dürüst bir şekilde temel dil temellerini kavrayamayan ve iyi mühendis olan çok zeki insanlarla tanıştım.

Kişisel deneyim

Okuldan bir mühendislik derecesi ve kemerimin altında biraz programlama tecrübesiyle mezun oldum. Çok az miktarda C, biraz MatLab ve biraz da VB + Access ile çalışmıştım. Bir VB.NET mağazasında programcı olarak gerçekten yararlı olmak için çalışmak yaklaşık 3 ay sürdü. Tamamen yetkin olmak 9 ay daha aldı. Ancak, problem çözme becerilerimin mesleğimde tanıştığım diğer programcıların% 99'undan daha üstün olduğunu söyleyebilirim. İşverenim sürekli olarak beni en değerli varlıklarından biri olarak gördü.

Sonuç

Bu bir risk / ödül önerisidir, ancak çoğu zaman saf problem çözme becerisine sahip olan birini üstlenmek, zaman zaman programlama kavramlarını öğrenme yeteneğine sahip olduğu sürece parasını ödeyebilir ve hem de zamanlamasını genişletmek için zaman ayırmaya hazırsınız. bilgi. Ancak, ona bir iş teklif etmeden önce, en azından programlamanın temelleri hakkında temel bir anlayışa sahip olması gerektiğine inanıyorum. Tecrübelerime göre, bu noktada bir kez, onunla daha ileri gidebilirsiniz.


Cevabın için teşekkürler. Düşüncelerimin çoğunu onaylar. Sadece IMO'nun iyi kod yazamadığı, yıllarca geliştirici ve mimar olarak çalışan birçok bilgisayar bilimcisiyle tanıştım. Programlama hakkında teknik makaleler yazanların bile. Alt satır: İyi bir programcı olmak her zaman bir çok kitap okumanı, farklı dilleri öğrenmeni vb. Gerektirir.
Silas

1

Algoritma ve programlama mantığına girip girmediğini anlamak için bazı temel algoritma soruları ve temelleriyle başlayacağım. Bir algoritmanın ne olduğunu anlayabiliyorsa, sonunda somut şeyler yapmak için gereken becerileri geliştirebilir.


1

Projelerimizde yazılım uygulaması için ihtiyaç duyduğu programlama becerilerini alıp almayacağını nasıl kontrol edebilirim çünkü bu işin önemli bir parçası olacak.

Açıkçası, bu bilgiyi bir-iki saatlik görüşmeden alamayacağınıza eminim. Ona C # (çok teknik olmayan bir şey) ve çözmesi için bir veya iki hafta içinde bir programlama ödevi verin. Bu, daha önce Mathematica ile programlama öğrenmiş birinin dilinin temellerini öğrenmek için yeterli zaman olmalıdır. Sonra onunla bir kod incelemesi yapın ve bu temele karar verin.


1

Bilimsel bir ortamda programlama için uygulamalara bakabilirsiniz ? (Yığın Taşması üzerine) doğa bilimlerinin programlama kültürünün nasıl olduğu hakkında biraz fikir edinmek için. Bu şekilde, hazırlıklarını arkadaşlarınınkiyle kıyaslama pozisyonundasın.

Bu konuda, ondan yapması gereken başka yolların olduğunun farkında olup olmadığını öğrenmek için alıştığı programlama uygulamalarını tanımlamasını isteyebilirsiniz .

İşletmemde, nitelikleri bazı çalışma kodlarını bir araya getirmeye yetecek kadar devleti elinde tutabilen, ancak çalışmaları yapılandırılmamış ve sürdürülmesi zor olan işimde birçok "iyi programcı" var. Genellikle onlar öğretti, ama ... onlar edilebilir olması öğretilmesi.


0

Çalıştığım diğer bir bölüm standart testimizde bir değişiklik kullanıyor. İlk görev bir dizedeki kelimeleri tersine çevirmektir. Ardından, hala yerinde olan dizedeki kelimelerin sırasını tersine çevirmek için bu kodu kullanın. Bir programlama dili kullanmak yerine, adayın algoritmaları kağıt üzerinde tasarlamaları ve bir Scrabble tahtası kullanarak çalıştırmaları gerekir.


0

Fizikten bir şey hesaplamak için bir algoritma (doğal dil kullanarak) tanımlamak isterim. Biraz daha karmaşık bir şey, basit bir formüle göre daha sonra, onun hesaplamasını nesnelerde enkapsüle ettiğini nasıl göreceğini soracağım (OOP bilgisine gerek yok, bir nesneye ilişkin beklentinizin ne olduğunu açıklayabilirsiniz). Bu şekilde onun mantıksal düşüncesini görebilirsiniz. Bu, tüm programlama becerilerinden daha önemlidir.


0

Birincisi, muhtemelen oldukça zekidirler, bu yüzden en kötü durum senaryosu, rehberlikle iyi bir programcı olmayı öğrenebilirler. Bununla birlikte, içeri girmelerine ve başlangıçtan itibaren iyi bir programcı olmalarına ihtiyaç duyuyorsanız, yazdıkları bazı örnek kodları göndermelerini isteyin.

Bir veya iki dev çok amaçlı fonksiyon mu, yoksa işlevselliği uygun soyutlama seviyelerinde kapsıyor mu? Sihirli sayılar boyunca kodlanmış mı? DRY kodu mu? Değişkenlere makul isimler verdiler mi ya da her şey çözülemeyen bir kısaltma mı, yoksa tek harfli bir değişken mi? Kodlarının mantığını çoğunlukla takip edebiliyor musunuz? OO'nun temellerini anlıyorlar mı?

Sürüm kontrolü için ne kullandıklarını sorun (git / hg / svn / cvs / bzr, vb.). Hiç kod profili oluşturdular mı ya da bir hata ayıklayıcı kullandılar mı ve eğer öyleyse genel hata ayıklama stratejileri hangileri ya da hangileri?

Bu testi geçemezlerse ve başlangıçtan iyi bir kodlayıcıya ihtiyacınız varsa, bu kişiyi atlayın. Aksi takdirde, onları işe alın, genel programlama / CS kitaplarına ek olarak bazı yazılım mühendisliği kitapları (örneğin, Kod Tamamlandı) okumalarını önerin.

(Kayıt için ben de fiziksel bilim insanı programcı oldum.)


-3

Halen bir üniversitede ya da yakın zamanda bitmiş olduğu için çalışmaya alışkın. Tasarım Desenleri kitabını okumasını ve anlamasını sağlayın ve bir ay sonra (veya bir süre sonra), konular hakkında derinlemesine tartışmalar yapın. (Bence) bu size yetenekleri hakkında çok şey söyleyebilir (sadece zor olanları değil), aynı zamanda yeni kavramları anlama, kullanımlarını anlama, artılarını ve eksilerini görme vb. Ama bir aylığına sana mal olacak.


8
-1 Soru, onunla nasıl görüşüleceği ile ilgiliydi, pozisyon istemeyi nasıl durduracağına değil.
Peter Taylor
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.