it-swarm.asia

"Kod örneğim" nasıl olmalı?

Sadece iyi bir telefon görüşmesi yaptım (CakePHP ile ilgili bir pozisyon için, bu soru için özellikle önemli değil). Görüşmeci özgeçmişim ve kişiliğimden çok etkilendi. Sonunda, yine de ona mevcut çalışma projemden bir kod örneği e-postayla göndermemi istedi, "gizlice korkunç bir programcı olmadığınızı kontrol etmek için ha ha!"

Ben de kodum kendi iki ayak üzerinde duramaz endişeli değilim, ama ben çok bir uzman yerine bir ara programcı . Kod örneğimin yok düştüğünden emin olmam için hangi bariz tuzakları kullanmalıyım? İkincisi ve bu muhtemelen sorunun daha zor kısmıdır, bir kod örneğindeki hangi özellikler sizi anında etkileyecek kadar etkileyici olurdu çok daha olumlu eğimli programcıya doğru?

Tüm fikir ve önerilerinizi bekliyoruz!

24
thesunneversets

Görmek istiyorum Temiz kod :

Kodu temizle : Başka bir kodlayıcının kolayca okuyabilmesi veya değiştirebilmesi için doğru ve düzenli bir şekilde biçimlendirilmiş yazılım kodu.

Bunun anlamı:

  • İşlevsellik - Önemsiz olan bazı basit işlevsellik parçaları (bir grup alıcı/ayarlayıcı hiçbir şey bilmediğinizi göstermez)
  • Tutarlı, temiz stil - Popüler veya en azından yaygın kasa, girinti, aralık ve köşeli ayraç stilleri
  • İyi Adlandırma - Kalite adları - tek artış değeri olmadıkça i kullanmayın. Saçma değişken isimleri kullanmayın.
  • Temiz kodun diğer özellikleri - Hata kontrolü, koşullar, döngüler, kolaylık yöntemleri veya yardımcı yöntemler ve iyi ayırma- -concerns (yöntemler arasında). Ve bu% 100 olmak için iyi bir zaman KURU - tekrar yok!

Onlara ilginç olacak kadar karmaşık bir şey göndermek istiyorsunuz, ancak iyi bir geliştiricinin neredeyse hemen ne yaptığını anlayabilecek kadar temiz.

Yukarıdaki yorumlardan bazıları bunun ne kadar kolay sahte olabileceğiyle ilgilidir. * Buna karşı korunmak istiyorsanız, muhtemelen e-postadaki kodun amacının ve geçmişinin hızlı bir açıklamasını gönderin.


* En azından görüşmeci ön taraftaki geçmiş projeler hakkında sorduysa, sonra sizden bu projeden bir örnek istedi ve ne yazmanızı istediğini veya nasıl geliştiğini sordum, süreç oldukça yalancı geçirmez olurdu. Bence olur yalan söyleyen çoğu aday başka alanlarda sorun gösterecektir zaten.

17
Nicole

İş ararken, birkaç farklı dilde bir sürü ACM programlama yarışması sorusunu çözdüm ve o zamandan beri kod örnekleri için bunları kullandım. Bence onlar iyi kod örnekleri yaptı çünkü:

  • Zor problemleri çözdüler
  • Sorun çok fazla bağlam gerektirmedi, ayrıca soruları almak kolay
  • Yazılan kodun kendisiyle ilişkili herhangi bir IP riski yoktur.
  • Her sorun makul bir şekilde tek bir dosyada bulunabilir ve genellikle çok uzun değildir, bu nedenle herkesin çözümünüzü derlemesi ve test etmesi kolay olmalı ve sorulardaki test verilerini kullanabilir.
  • Karmaşık bir sorunu daha küçük parçalara ayırabileceğinizi gösterir.
  • Çözümünüzün herhangi bir yönünün nasıl çalıştığı sorulursa, ne hakkında konuştuğunuzu bildiğinizi göstermek için size harika bir fırsat verir, özellikle de çok yaşındaysa ancak neler olup bittiğini çabucak deşifre edebilirsiniz.

Ve sonra, oluşturduğunuz kod açık, tutarlı, okunması kolay ve anlaşılması kolay olmalıdır.

Ve son olarak:

  • Onları sadece eğlence için çözmeye değer ve iyi bir uygulamadır.
9
whatsisname
  • Hata ve uyarıyı en yüksek katılık düzeyinde derlemeli/yorumlamalıdır.
  • Her gün yazdığınız kaynak kodu olmamalıdır. Benzersiz ve ilginç hale getirin, böylece kopyalama/yapıştırmadığınız açıktır.
  • Onları nasıl/neden yaptığınızı açıklayan bazı ilginç tasarım kararları olmalıdır.
  • Yazdırılan en fazla 2-3 sayfa hedefleyin.
  • Başvurduğunuz dilde olmalıdır.
  • İlk defa okuduğumda beynimi incitmemeli. Bir arkadaşınıza bakmasını veya kod görünümünde yayın göndermesini sağlayın.
6
Karl Bielefeldt

Seninle röportaj yapsaydım senin kodunu görmek istiyorum.

Temiz iyidir, problem çözme iyidir, ancak gerçek kod daha iyidir. İyi bir programcı başka bir programcı tarafından ne zaman dolandırıldığını bilir, böylece güven azalabilir.

Başka bir kişinin kodunu okumak dans seks yapmak: gerçek şeyin ne zaman olduğunu biliyorsun ve diğer kişi taklit ederse, sonunda bir felaket meydana gelecek. (sadece gerçek nerds nasıl dans edileceğini bilmiyor)

Sadece kendinize ve kodlama yeteneklerinize güvenin. Görüşmecinizi gerçekten bilmiyorsanız, kodlama stilinizden/becerilerinizden ne beklediğini tahmin edemezsiniz.

3
Machado

Ayrıca mevcut işveren kodu DEĞİL çok dikkatli olun (Onlar kendi değil ve bunu paylaşmak gibi olmayacak garanti.). Gurur duyduğunuz bir şey alın ve işverene özgü olmamak için kendi başınıza yeniden çalışın (veritabanı tablolarına veya sunucu adlarına, vb. Referanslardan kurtulun). Ne yaparsanız yapın hataları olan veya kod türü için kötü bir teknik olan kod göndermeyin (Ben muhtemelen bir set tabanlı işlem daha basit olur ve SQL kodu incelerken daha iyi performans zaman imleç gönderen birini reddeder. Diğer diller için, daha yaygın olan diğer problemler için kullanılabilecek nispeten nadir bir problem problemini çözmek için var olan benzer teknikler vardır, ancak bu diğer problemler için en iyi seçim değildir.

2
HLGEM

Adayları değerlendirirken kod örnekleri talep eden birinden bir fikir olarak, birkaç üst düzey özellik (kodun içeriği) ve birkaç düşük düzey özellik (kodun yapısı) vardır. Üst düzey özellikler:

  1. Kimlik: Kodun tadı. Kendinizi bir UI/HCI kodlayıcısı olarak faturalandırıyorsanız, çalıştırdığımda görsel bir şey için iyi bir görünüm/his görmek istiyorum. Bir DB oluşturucusuysanız, veri sunumu veya analizi ile ilginç bir şey görmek istiyorum. Örnek, gurur duyduğunuz bir şey olmalıdır /. Bunlardan en az birine sahip değilseniz, kimliğiniz yoktur.
  2. Olgunluk: Farklı problemler için stratejileri değiştiriyor musunuz? İlginç sorunları çözüyor musunuz? Kod veya yaklaşımın benzer bir soruna genişletilmesi kolay mı olur? Tersine, ben bir kargo kült komün üyesine bakıyorum gibi mi?
  3. İletişim: Kod ne yaptığını ve nedenini kolayca açıklıyor mu? Bu, kodun basit olması gerektiği anlamına gelmez. Aslında, karmaşık kodun anlaşılmasını kolaylaştırmak bir bonus.

Düşük seviyeli yönler daha basittir:

  1. Stil: Kod temiz, tutarlı (bazı belirlenmiş yönergeleri izler) ve iyi belgelenmiş olmalıdır.
  2. Paketleme: En azından kısa bir benioku, çalıştırılabilir versiyon ve çalıştırılabilir testler olmalıdır. Benioku bana son ikisinin nasıl çalıştırılacağını ve bu kod örneğini neden gösterdiğinizi söylemelidir.
  3. Dil (ler): Tipik olarak birinden pozisyon için dilde bir örnek ve en güçlü hissettiklerini soruyorum. Bir kişinin mevcut tavanları hakkında iyi bir fikir verir.

İyi bir aday için, bir örneğin: A) kurşun geçirmez küçük bir örnek ya da B) Daha büyük bir ilginç projenin iyi bir parçası (örneğin, Github kişisel deposundan bir modül). Kişisel projeler veya akademik projeler olmasını bekliyorum. Ücretli bir projeden bir tane gönderirlerse, bunu kullanmalarına izin verildiğini belirten bir not bekliyorum. Bu notu alamazsam, onları adaylardan keseceğim (zayıf aday) veya röportaj sırasında onlara soracağım (güçlü aday). İzin almamak büyük bir kırmızı bayrak (muhtemelen aşılmaz) olacaktır. Gelişmiş bir aday için, işlerinin bir parçası olarak yapıldığı için en iyi kaynak örneklerinden bazılarının gösterilemediğini belirten bir sorumluluk reddi bekliyorum. Ancak, daha sonra bu gösterilemez tasarımdan neden gurur duydukları ve bir çocuk gibi nasıl sevdikleri hakkında fışkıran bir referans bekliyorum.

Son olarak, bazı insanlar "Ah, birisi internetten sadece bir kod örneği alabilir" diye düştükçe, karşı argüman iyi üretim kalitesi kodunu anlamayan çoğu insanın onu gördüklerinde de anlamamasıdır. . Ayrıca, Google her zaman kodun kontrol etmesi için farklı bir satır olabilir. Ayrıca, en iyi ihtimalle, kod çalmak, kendilerini utandırdıkları bir röportaja aday gösterecektir ("Peki neden bu şekilde yaptınız ...?").

Önceki istihdam koduna son bir not olarak: Yapmayın. İK açısından bakıldığında, önceki istihdamdan kod istemek uygunsuz ve şirket hakkında kırmızı bir bayrak. Her ikinizin de yasal yükümlülüğünüz olur (yani her ikiniz de dava açılabilir) ve bu onların ne yaptıklarına dair hiçbir fikirleri olmadığını gösterir. Kod zaten kamuya açık değilse veya o işverenden açık izniniz yoksa, önceki bir işveren için yapılan kod asla verilmemelidir. Daha da kötüsü, büyük bir şirkette, doğrudan patronunuz size izin verme yetkisine sahip olmayabilir, bu durumda hukuk departmanıyla eğlenin? Eminim mevcut bir çalışan için IP'lerini ifşa etmekten çok memnun olacaklardır.

0
Namey

Renesis'ten temiz kodla ilgili ikinci mesajı gönderirim, ancak sunduğunuz koda kalite ve iyi belgelenmiş birim testleri sağlayan listeye eklerdim. İyi bir programcı kodları için birim testleri yazmalıdır.

0
Chris Knight