Birçok röportaj yaptığım şirketimdeki tecrübelerime göre, görüşen kişinin bunu nasıl doğru yapabileceğine dair hiçbir fikri yok. Böylece bir dizi teknik soru hazırladılar ve bunun bir puanını hesapladılar ve özgeçmişinizi yapın. Ancak bunun birçok dezavantajı vardır ve aşağıdaki nedenlerle yapılmamalıdır:
Nokta bilgisi istersiniz. Programcı bu alanda hiçbir zaman bir şey yapmadıysa, hala mükemmel bir iş arkadaşı olabilir, ancak bu belirli cevabı bilmiyor olabilir. Aksine: Birisi röportaj için hazırlamış ve internetteki bu sorunun cevabını bulmuşsa, doğru cevabı alırsınız, ancak o kişinin asıl konu hakkında hiç bir fikri olmayabilir.
İş görüşmelerinde insanlar gergin. Beyin panikteyse birçok üst düzey alanı (mantık gibi) kapatmak için bu harika özelliğe sahiptir, yani: Eğer gerginseniz, günlük durumda yapacağınız cevapların kalitesini sunamayabilirsiniz. Bazı insanlar röportaj gibi stresli bir durumla başa çıkabilir, çoğu yapamaz.
Tek ve doğru bir cevapla, kişilerin belirli bir cevabı bulma becerisini test edersiniz. Bu, bir iş arkadaşının ihtiyaç duyduğu birçok beceriden biridir, ancak gerekli olan tek şey değildir. Bu nedenle, bu sorulardan biri veya ikisi bu bilgi alanını test etmek için yeterli olmalı ve daha sonra diğer beceriler sorgulanmalıdır. Sadece problem çözme soruları içeren bir röportaj aynı beceriyi tekrar tekrar test eder.
İyi programlama görevleri soruları nelerdir?
Bu ünlü "Kısa bir program yazabilir misiniz?" Soruları, çoğu programcının IDE'si onlara yardımcı olmadan tek bir kod satırı yazamayacağı kadar büyük bir soruna sahiptir. Ancak bu günlük çalışma koşullarında hiçbir sorun yoktur, çünkü programcı her zaman IDE'sine yardımcı olur. Bu nedenle, "Hatayı bulun", "50 kod satırı yazın ..." gibi soruları sormak veya hatta basit soruların dikkate alınması gerekir; başvuranın araçlarının (IDE, Google) mevcut olmaması gerekir.
Örneğin, Google'ın bana yardım etmesi durumunda 1 dakika içinde size herhangi bir soruyu cevaplayabilirim, ancak İnternet bağlantısı olmadan çaresiz görünüyorum. Buna dış kaynaklı bellek diyorum ve beni engellemekten ziyade, gerçekten önemli olana, altta yatan mekaniği anlamaya - odaklanmamda çok yardımcı oluyor çünkü diğer her şey aranabilir. Ancak bana herhangi bir rastgele API'den ayrıntı sorma, çünkü bunları bilmiyorum, bunun için Google'ım var.
Bu iyi bir programlama görev soru gerektiğini söyledi değil bu iş için mutlak bir gereklilik olmadığı sürece bilerek API'ler veya özel kodlama becerilerine odaklanır. Bilgi edinilebilir, bu yüzden o kişinin bilgi edinmede ne kadar iyi olduğunu bulmak, zaten ne bildiğini sormaktan daha iyidir.
Bir programlama görevi için iyi bir soru kısa, basit, her dilde sadece birkaç satır kodla kodlanabilmeli ve özellikle de kişinin nasıl çalıştığı ve cevapları bulduğu hakkında mümkün olduğunca fazla bilgi vermelidir . Misal:
"Seçtiğiniz dilde bir tamsayı dizisi alan bir işlevi yazın ve bunları ilk tamsayı sonradan son olacak şekilde yeniden sıralayın ve diğerleri buna göre değişir."
Herhangi bir başvuranın bu noktada sorması gereken ilk soru şudur: "Üzgünüm ... lütfen görevi açıklayabilir misiniz?". Çünkü hiçbir programcıya ne yapılacağı konusunda net bir açıklama yapılmamıştır. Bunu, sorulardaki kodun, taşma sağa eklenecek şekilde dizinin içeriğinin sola kaydırılması gerektiği açıklaması gelir.
Bu görev o kadar basit ki, herhangi bir programlama seviyesinden mezun olan herkes düzgün cevap verebilmelidir. Bu, programcının araçları olmadan çalışması gerektiğini ve gergin olmanın mantıksal düşünme yeteneğini azalttığını dikkate alır. Ancak yine de insanların problemleri sorunun nasıl ifade edildiğinden ve insanların yaklaşımına göre nasıl çözdüklerini anlatıyor, çünkü bir sola kaydırma ortak 'soldan sağa' içgüdüsüne karşı ve insanları düşünmeye zorlıyor bir saniye.
Bu sorunun birçok olası cevabı vardır, bu nedenle kodun geliştirilme şekline yakından bakmak, çözümün gerçekten işe yarayıp yaramayacağı önemli bir parçadır. Başvuru sahibi null için test yapıyor mu? Taşma nasıl saklanır? Bir döngü veya bir mem kümesi kullanılıyor mu? Başvuru sahibi kod doğruluğunu nasıl doğrular? Bu basit soru size bu kişinin nasıl çalıştığı hakkında tüm bir biyografiyi anlatır.
İyi genel bilgi soruları nelerdir?
İyi soruları cevaplamak kolaydır, çok sayıda cevaba izin verin ('açık sorular' olarak adlandırılır) ve başvuru sahibi hakkında kısa sürede olabildiğince çok şey öğrenmenizi sağlar.
Örnekler:
(Bir C ++ programcısına sormak): "C ++ dışında başka hangi dilleri biliyorsun?"
Bu, giriş seviyesi soruları olup, başvuru sahibine, sorulan konu hakkında hiçbir şey bilmemesi durumunda, şu anda kefalet etme şansını verir. Bu noktada bir 'hayır', herkesin cevaplaması gereken birkaç soru ile ona işkence etmekten daha iyidir: "Üzgünüm, bunun hakkında hiçbir şey bilmiyorum."
Buna ek olarak, öncelikle size o kişinin bildiği diğer dilleri söyler, ayrıca o kişinin programlama dünyasını daha geniş bir şekilde görmek için ne kadar ilgilendiğini veya yalnızca tek bir dile (ve dolayısıyla özellik / tekniklere sahip) ) görünüm.
(Bundan sonra Java bildiğini söyleyelim): Düşüncenizde C ++ ve Java arasındaki ilk üç fark nedir? "
Bu, birçok cevaba izin veren açık bir sorudur, bu nedenle başvuru sahibinin en az üç tane bulma şansı yüksektir. İlk üç (kişisel görüş) istemek sadece olası cevapları sınırlamakla kalmaz, aynı zamanda başvurucuyu önceliğe göre sıralamaya zorlar. Yine de cevaplaması kolaydır (veya olmalıdır).
Bu, farklı programlama dilleri hakkında çok sayıda derinlemesine bilgiyi test eden basit bir sorudur. Bu konuların bilgisi gerçekten ne kadar derin? Bu cevaplardan, programlama dillerinin temel mekaniklerinin bilgisi ve gerçek anlayışı hakkında çok şey anlatabilirsiniz. Bu kişinin kirli ayrıntılarla ne kadar harcadığı veya o sadece çeşitli API işlevlerini gerçek bir ipucu olmadan birbirine bağlayan bir kişi ise, bunların altında ne olduğuna dair.
Bu giriş seviyesi sorular ve ardından basit derinlemesine bilgi soruları kavramı diğer birçok konu için de kullanılabilir. Her zaman bu şemada: kefalet sorusu, doğrulama sorusu, derinlemesine soru. Başka bir örnek (Java röportajından):
- "Çok iş parçacıklı geliştirme deneyiminizi nasıl değerlendirirsiniz?"
- "Lütfen çok iş parçacıklı bir uygulama geliştirirken göz önünde bulundurmanız gereken en önemli üç şey olduğunu düşündüğünüzü belirtin."
- "Lütfen Java API'sından bu uygulamaları geliştirmenize yardımcı olabilecek üç sınıfı adlandırın ve ne için kullanıldıklarına dair kısa bir açıklama verin."
Bu üç soru, başvuru sahibinin bu konular hakkında gerçekten bildikleri teknik sorudan daha fazlasını söylerken, nokta bilgisi ve stres düzeyini göz önünde bulundurarak cevaplamak için adil olacaktır.
Birisi size arka arkaya 20 kodlama sorusu sorduğunda, birisiyle düzgün bir şekilde nasıl röportaj yapılacağına dair temel bir fikri olmadığını biliyorsunuz. ;)