Yeni mezunların temel programlama kavramlarına aşina olmasını beklemeli miyim? [kapalı]


9

Görünüşe göre üniversitede birkaç yıl programlama eğitimi almış birinden beklediğim ile gerçekte ne bildiği arasında büyük bir tutarsızlık var.

Röportajlarda aşırı karmaşık sorular sorduğumu düşünmüyorum. Her zamanki sorularımdan bazıları:

  • Referans türü ile değer türü arasındaki fark nedir?

    Görüşme yapılan kişi kendi cevabını gerçekten anlamıyor gibi görünüyorsa veya kullandığım terminolojiyi bilmiyorsa, int i = 0 yazdığımda bana ne olacağını açıklamasını isteyerek daha ayrıntılı bilgi edinebilirim; bir yöntemde, o = 0 nesnesi, o = yeni MyClass () vb.

    Temel olarak, röportajı yapan kişiyi bana çağrı saldırısı, yığın vb. Görüşmeci bana çok fazla C, C ++ veya c # yaptığını söylüyorsa, belirli bir dile ve muhtemelen uygulama ayrıntılarına daha da daldım.

    Gerekirse, görüşmeciye bir çağrı kaydının ne olduğunu veya seçtiği zorunlu dilde bir işleve iletilen argümanların nerede saklandığını soruyorum.

    görüşmecilerin birçoğunun, görüşme kutunun ne olduğu hakkında bir fikirleri yoktur.

  • Soyut bir sınıf ve bir arayüz arasındaki fark nedir? Hangi durumlarda birini diğerinin üzerinde kullanmalısınız?

    Genellikle, bazı miras ve bazı soyut fabrikaları kullanmayı amaçlayan bir kullanım senaryosu olan küçük bir kütüphane tasarımı hayal etmelerini isterim

    Görüşmecinin çoğunun gerçek mirasın ne olabileceği hakkında hiçbir fikri yoktur. Genellikle bazı anahtar kelimeleri (sanal, geçersiz kılma vb.) Bilirler, ancak sanal tablonun ne olduğunu açıklamak yerine, bunları ne zaman kullanacaklarını gerçekten bilmezler.

CV'leri önceden taramama rağmen, karmaşık mimarileri içeren gerçek hayat projelerinde 5 yıllık deneyime sahip insanlar için bile, görüşmecilerimin% 25'inden daha azının bu iki soruyu doğru bir şekilde cevaplayabileceğini söyleyebilirim. Ve doğru söylediğimde, 'derinlemesine' demek istemiyorum ... sadece kavramın ne olduğu hakkında yaklaşık bir fikre sahip olmak.

Gençler ile ilgili olarak, zamanını çok iyi nasıl organize edeceğini bilmeyen birini veya örneğin endüstriyel inşa süreçlerine alışkın olmayan birini işe almakta iyiyim, ancak şu kelimeyi duymamışsa " Bilgisayar Bilimleri okuduktan birkaç yıl sonra ya aptal ya da hiç motive değil ya da üniversitesini çok akıllıca seçti.

Sence burada aşırı aşırıyım? Üniversiteyi bitirdikten sonra bu temel kavramları öğrenmek yaygın mıdır? Bunlara aşina olmayan ve birkaç yıl sonra çok iyi yazılım mühendisleri haline gelen insanları tanıyor musunuz? Ve şirketimin yetenekli insanları cezbetme konusunda bir sorunu olabileceğini mi düşünüyorsunuz, yoksa kendi işe alım sürecinizde de aynı sorunları yaşıyor musunuz?


Düzenle. "acil tip" şeyle ilgili olarak, genellikle Fransızca röportajlarımızı yaptığımız için Fransızca'dan İngilizceye sadece gerçek bir çeviri oldu. Sorumu çözdüm. Ama yine de, hepinizin ne demek istediğimi tam olarak anladığını düşünüyorum, ne tür bir anlamı var, öyle değil mi?


4
Sadece küçük bir açıklama ama ben ani bir tip, değer türü ile ne demek istediğini bilmiyordum Öte yandan size açıklayabilirim. Ancak, herhangi bir CS derecesi ile mezun olan herkesin bu iki soruya cevap verebilmesi gerektiğini hissediyorum. Sorunuzu geliştirmek için, beklediğiniz cevapların ne kadar kapsamlı olması gerektiğine dair bir örnek verebilirsiniz.
sebastiangeiger

Üniversitede 2 yıldan fazla bir süre dil öğrenmek, diğer derslerle yarışmak, sınavları bittikten sonra öğrencileri sadece asgari düzeyde bırakır. Emin olabileceğiniz tek şey, bu bilgileri öğrenebilmeleridir veya bir zamanlar biliyorlardı. Sadece pratik deneyim onlara bilgi kalıcılığı verebilir. Joel Spolsky, programcıların buradaki blog makalesinde olmasını beklememiz gereken birçok yeteneğin nasıl ve neden eksik olduğuna harika bir örnek veriyor - http://www.joelonsoftware.com/items/2009/10/26.html
Justin Shield

@sebastiangeiger; haklısın!
Brann

2
Neredeyse hiçbir şey bilmediğini bilmelidir. Bu, zaman içinde daha iyi olmak için kilit noktadır.
deadalnix

İlginç bir şekilde Brann, bu soruyu cevaplayan herkes "acil tür" den (çeviri hatası) bahsediyor ve bunun ne olduğunu bilmediklerini söylüyor. Görüşmeciler “Bu konuları derinlemesine incelemedim mi?” Diyor mu? ya da örneğin çalışma zamanı özellikleri ve derleyicilerin derinlemesine anlaşılması konusunda uzman olduklarını mı iddia ediyorlar?
Pindatjuh

Yanıtlar:


15

Terminoloji, mülakat durumunda yaygın bir düşüştür.

Görüştüğünüz kişiye sizin için bir şey ifade eden terminoloji kullanarak bir soru sorarsınız, ancak görüşmeci bunu farklı bir terimle bilebilir veya sadece belirli dillere veya ortamlara başvurmadan jenerik teoriyi bilebilir. Yanlış anlaşılmalar meydana gelir. İki taraf da mutlu değil.

Aslında, görüşülen kişinin bazı değerlerin doğrudan bir kayıt defterinde saklanabileceğini ve bazılarının başka bir yerde bir bellek yığınına atıfta bulunduğunu mükemmel bir şekilde anladığı ortaya çıkıyor, ancak soruyu belirli bir alan adına yönlendirdiğiniz şekilde, sorduğunuz şeyin noktasını ve röportaj yapılan kişinin size anlatmasını istediğiniz şey gerçekten anlaşılamaz.

Görüşülen aniden tıklama ve gider '- Ah nerede Belki durumlara çok olsun olduğunu sonra ve oldukça yeterli açıklıyor - Eğer bahsettiğini'.

Bu zor bir denge çünkü üniversiteden yeni çıkmış programcılar, ekip ortamında gerçek dünya gelişiminin onlara sunduğu farklı deneyime sahip olmayacaklar. Bu arada, deneyimli geliştiriciler genellikle üniversitede öğrendikleri her şeyi hatırlamayacak (hatta ilgilenmeyecek) çünkü günlük kullanımları için önemsizdir.

İnsan Bu iki tip - iletişim öğrenmek için ihtiyacı (evet o röportaj ve Görüşmeci var) ile öğrenebilirsiniz önce birbirlerini hakkında birbirlerine. Bunun gerçekleşmesi için daha fazla deneyime sahip (görüşmeci) kişi üzerindedir.

Bazı insanların röportajlarda tam bir hafıza hatası aldığından bahsetmiyorum bile. Ben dahil. C'de bir program yazmanın istendiğini hatırlıyorum ve hayatım boyunca bir işaretçi (->) bir üyeye erişmek için kullanılan sembolü hatırlayamadım ve birine sormak zorunda kaldım. İlk işim için bile değildi. Oğlan o an son 15 yıldır beni rahatsız etti :-)

Bence çok daha faydalı olan iletişim kurma, sorunları etkin ve eksiksiz çözme becerisi; işleri çabucak al; olumlu keskin tutum sergilemek; diğer insanlarla ve diğer temel değerlerle iyi etkileşim.

Anketörlerden vazgeçmeyin, çünkü acil bir tipin ne olduğunu bilmiyorlar. Devam et.


@Brann - hemen tür -> değer türü. kaydetti
Roger Attrill

Belki de sorumun anlatımından yeterince açık değil, ama hiçbir terminoloji sorunu olmadığından emin olmak için çok şey yapıyorum. Röportaj yapılan kişiye kendi seçtiği dilde belirli durumlarda ne olduğunu soruyorum, ona bir çağrı kaydının ne olduğunu bilip bilmediğini soruyorum, ona farklı bir “tür” anı olup olmadığını soruyorum, ona bir fonksiyona aktarılan argümanların nerede olduğunu soruyorum seçtiği zorunlu dilde saklanır. Gerçekten, bunun bir terminoloji sorunu olduğunu düşünmüyorum. Bazen mülakat yapılan kişi, bir sınıf somutlaştırıldığında sahnenin arkasında neler olduğuna dair hiçbir fikri yoktur.
Brann

"devam et" olayıyla ilgili olarak, genellikle bunu yaparım. Ama tecrübelerime göre, bir görüşmeci bir değer türünün ne olduğunu bilmediğinde, evre senkronizasyonu ya da jeneriklerin ne için olduğu hakkında da bir şey bilmiyor. Bu yüzden birkaç sorudan sonra, adayın iş için uygun değilim, genellikle teknik röportajlarda daha iyi performans göstermeyi öğrenmesi ve bir sonraki adayla devam etmesi hakkında bazı tavsiyeler veririm :)
Brann

12

Dile özgü bilgi istiyorsunuz ve kullandığınız terimler tüm dillerde% 100 aynı şekilde kullanılmıyor. Ben - biri için - "acil tip" in ne olduğu hakkında hiçbir fikrim yok.

Ayrıca, bir üniversitede öğretilen şeylerin X'deki standart kodu nasıl krank edeceğini değil, birçok temel kavramları öğrendiğini ve çeşitli programlama paradigmalarını gördüğünü düşünün. Başka bir deyişle, bu bir ehliyet gibidir - temel teoriyi biliyor olsanız bile, hala çok fazla gerçek uygulamaya ihtiyacınız vardır.


"Değer türüne" güncelledim. Ama mesele şu ki, eğer görüşmeci soruyu anlamıyorsa, genellikle daha ayrıntılı olarak açıklarım ve görüşmeciyi bana çağrı, yığın, vb. bunlar uygulama ayrıntılarıdır, ancak yine de bunlar gerçekten dile özgü IMO olmayan genel kavramlardır)
Brann

"Calltack" kavramının bahsettiğiniz genel kavramlardan biri olduğunu düşünüyorum. Röportajı yapan kişinin bana bellek tahsisi, telefon görüşmesi, değer türleri, vb.
Brann

Sizi doğru anlarsam, geliştiricinin işaretçileri bilip bilmediğini ve ne yaptığını ve nasıl kullanılacağını bilmek ister misiniz?

Hayır. Geliştiricinin, kendi dilinin x veya y özelliğini kullandığında, sahnenin arkasında ne olacağı konusunda en azından kaba bir fikre sahip olduğundan emin olmak istiyorum. İşaretçiler hakkında soru sormak, bellek ayırma konusunda bildikleri hakkında konuşmasını sağlamanın bir yoludur.
Brann

3
@Brann, çağrı yığını, yığın vb hakkında tüm ayrıntılı şeyler, aslında sadece işaretçiler uygulanır .

3

"Duyuyorum ve unutuyorum. Anlıyorum ve hatırlıyorum. Anlıyorum ve anlıyorum." (Ve bence, anlayış daha iyi bellek tutmaya yol açar.)

Basitçe söylemek gerekirse, yeni mezunların çok fazla deneyimi yoktur, bu yüzden birisinin belirttiği gibi, "seçtikleri" dilleri ne olursa olsun, asgari bilgi seviyesinden çok daha fazlasına sahip olmayacaklardır.

Birinin seçtiği ana dal hakkında öğrenmeyi kolaylaştırmak için özel olarak tasarlanmış bir koleje gittim (örneğin, bir CS majör olsaydınız Tarihi Edebiyatınız olmazdı; Tarih Edebiyatına en yakın olan Bilim Kurgu'dur) ve üniversite kırpmadan, ben bir arayüz ne söylemek mümkün olmazdı oldu soyutlama öğrenmek gerçi, soyut bir sınıfa yalnız farkını izin (ve arabirimler Net bol, teknoloji öğrendiğim). Arayüzlere değinmiş olabiliriz, ancak sınıfı geçmek için bilmemiz gereken diğer tüm şeylerde kaybolmuş olabilir. Üniversiteden ilk işime kadar ara yüzler hakkında, özellikle anlamlı bir şekilde öğrendim.

Fransızca röportajlar yapmaktan bahsettiniz, bu da farklı ülkelerde olduğumuzu açıkça ortaya koyuyor, bu nedenle kilometreniz değişebilir, ancak burada ABD'de kolejler, teknoloji söz konusu olduğunda zamanın gerisindedir. Bu nedenle, sürece olgun dillerinde (C / C ++, COBOL, vs) ile konum uğraşan, oldukça olasılıkla bile kullanıyorum şey bu da var yıllardır öğrencilerin öğrendikleri sürümünde mevcut olmayabilir. Örneğin, .Net 3.0, Entity Framework, WPF, WCF ve diğer birçok harika şeyi tanıttı, ancak okulum bile .Net 1.1 ve 2.0'da takılı kaldı (ADO.NET ile sıkışıp kalmak ve hatta Object hakkında bilgi edinmek değil) -İlişkisel Haritalama). PHP kullanan bir okul (OOP olmayan) PHP 4'te kalabilir.

Ayrıca, bir öğrencinin genellikle yalnızca kısa bir süre için kullanılan bir ton bilgi alması gerektiğini unutmayın. Soyutlama gibi "ileri" kavramlar genellikle öğrencinin alması gereken bir hafta kadar sürebileceği sınıfın sonuna doğru öğretilir. yarı zamanlı veya tam zamanlı bir işin başında. Tüm bunları bir araya getirin ve kişinin her şeyi hatırlayabileceği bir şaşkınlık, hepsini daha az düz tutun.

ABD'de, en azından, yeni bir derecenin genellikle jenerik temellerin ötesinde hiçbir şey bilmediği varsayılır (belki değere göre geçmek ve referansla geçmek arasındaki fark, belki), çünkü jenerik teori ve problem çözmenin ana parçası olduğu anlaşılmaktadır. belirli bir dilin giriş ve çıkışlarını öğrenmeme

Daha fazla sahip olduğunuz soruları, onlara öğretmek / yeniden öğretmek için neye ihtiyaç duyacağınıza dair bir gösterge olarak kullanmanızı öneririm (unutmayın, kullanmaya çalıştığınız terimi öğrenmemiş olmaları bile, bunun her yerde olduğunu düşünürsünüz), görüşülen kişinin "değersiz" olup olmadığının aksine. Bunu öğrenmeye ne kadar istekli olduklarını ve genel problem çözme becerilerinin neye benzediğini ölçerek birleştirin (ciddiye, onlara çözmeleri için bir bilmece verin ve bunu yapmaya nasıl devam ettiklerini görün) ve "calltack" ile ne demek istediğinizi bilmedikleri için geçmiş olabilir.


Fransa'da (ve çoğu yerde aynı olduğundan şüpheleniyorum), her CS müfredatı, biri diğer şeyler arasında bellek ayırmayı öğrendiğinde C'de (veya benzer dillerde) bazı zorunlu kodlamalar ve C ++ / java / .net (OOP hakkında bilgi edinir). Bunun da ötesinde, birçok alanı kapsayabilecek çok şey yapıyorsunuz, ancak sanal bir yöntemin ne olduğunu bilmeden mezun olanlar, çalışmalarını çok ciddiye almadığı anlamına geliyor ... Kesinlikle ne olduğunu biliyordum mezun olduğum zamandı ... Serinin ne olduğunu bilmeyen bir Matematik öğrencisi hakkında ne düşünürdün?
Brann

@Brann - Bilgisayar Bilimi'nin ne olduğu (ve daha önce anladığım kadarıyla) araştırmamıza göre, CS bir programlama uzmanı değil. Evet, içinde programlama var, ancak mutlaka ana odak noktası değil. Bu nedenle, "Bilgisayar Bilimi" o kadar geniş ve oldukça belirsizdir ki, okuldan okula değişebilir. Stanford, ABD'deki en iyi CS okulları arasındadır ve Sonbahar ve Kış kurs seçim listeleri ( www-cs.stanford.edu/courses ) için, gerçek programlamaya odaklanmış gibi görünen yarım düzineden az kursu vardır (sadece program teorisi), yaklaşık 50 sınıftan.
Shauna

Bu, bir öğrencinin belirli bir dili bir veya iki dönem boyunca kullanması, daha sonra öğrenci kariyerinin geri kalanı için ona dokunmaması anlamına gelir. Bunun da ötesinde, standart masaüstü / gömülü sistemler / ürün yazılımı programlamasından çok farklı olan robotik ve genetik programlamayı da öğreniyor.
Shauna

Bir dizinin ne olduğunu bilmeyen bir Matematik öğrencisi hakkında ne düşünürdünüz? - Bu, öğrencinin ne tür bir matematikte uzmanlaştığına ve gerçekte ne üzerinde çalıştığına bağlıdır. Yine, öğrencinin onu öğrenmesi (ve bu nedenle, teknik olarak ne olduğunu bilmesi), ancak basitçe unutması tamamen mümkündür, çünkü onu günlük çalışmalarında kriptografi veya ayrık matematik ile asla kullanmaz. Matematik ve programlama genellikle kullan ya da kaybet konuları olarak kabul edilir.
Shauna

3

Çok sayıda dar görüşünüz var ve bunları dolaylı olarak varsayıyorsunuz.

  • Görünüşe göre üniversitede birkaç yıl programlama eğitimi almış birinden beklediğim ile gerçekte ne bildiği arasında büyük bir tutarsızlık var.

    Bildiğim kadarıyla, insanların birkaç yıl boyunca programlama çalıştığı bir üniversite yok. Üniversiteler bilgisayar bilimlerinde dersler sunmaktadırlar, burada programlama bir husustur.

  • Referans türü ile değer türü arasındaki fark nedir?

    Temel kural: Lisp ayrım yapmadan yapabilirse, sadece dağınıklıktır;)

  • Temel olarak, röportajı yapan kişiyi bana çağrı saldırısı, yığın vb.

    Dile agnostik kavramlar hakkında konuşmak iyi bir fikirdir. Ne yığın ne de yığın dil-agnostik değildir.

  • Görüşmeci bana çok fazla C, C ++ veya C # yaptığını söylüyorsa, belirli bir dile ve muhtemelen uygulama ayrıntılarına daha da daldım.

    Tüm bu dillerin özellikleri vardır. Uygulama dil tarafından tanımlanmamıştır. C ve C ++, Flash Player'da veya herhangi bir JavaScript çalışma zamanında çalıştırmak için LLVM kullanılarak çapraz derlenebilir. Bu, yığın ve yığın tahsisi hakkındaki varsayımlarınızı geçersiz kılar.
    C # ile, hemen hemen aynı. C # yapılabilir bir çok optimizasyon ile yürütmeden önce JITed. Kapanışlarla yakalanan yerel değişkenler nihayetinde yığın yerine yığın üzerinde sarılırken, kaçış analizi yığınta depolanacak kapsam-yerel nesnelerin (normalde yığına gitmesi gerekir) depolanmasına izin verir. Düzgün kayıt tahsisi, yığın tahsisi ihtiyacını da büyük ölçüde azaltır.

  • Gerekirse, görüşmeciye bir çağrı kaydının ne olduğunu veya seçtiği zorunlu dilde bir işleve iletilen argümanların nerede saklandığını soruyorum.

    Haskell ile sadece kapsamlı programlama deneyimi olan birine ne sorardınız? : P

  • Görüşmecilerin çoğunun, boksla ilgili düşüncelerini düşünmek yerine, bir telefon görüşmesinin ne olduğu hakkında hiçbir fikri yoktur.

    Otomatik kutulamanın arkasındaki temel fikir, ilkel öğelerin nesne olarak (veya en azından çalışma zamanında keşfedilebilen değerlerde) muamele görmesidir. Bu soyutlama ile ilgili olarak, üç tür dil vardır:

    1. var olmayanlar. Sanırım Objective-C topçu örneği.
    2. gerçekten tuttuğu yer
    3. var olan ama tutmayanlar. Java en iyi örnek sanırım (şimdiye kadar düzeltildi varsayalım).

    İnsanların neden kategori 1 dillerini kullanmamaları gerektiğini anlamıyorum (aslında iyi bir fikir). Kategori 2 dillerini kullanan kişilerin neden gerçekten rahatsız olması gerektiğini anlamıyorum. Ve bence kategori 3 dilini kullanan herkes, yani temel bir semantik özelliğin basitçe kırıldığı dil yanlış dili kullanıyor.

  • Soyut bir sınıf ve bir arayüz arasındaki fark nedir? Hangi durumlarda birini diğerinin üzerinde kullanmalısınız?

    Şimdi bu son derece öznel ve gerçekten dile bağlı. C ++ 'da arayüz yoktur. Objective-C'nin soyut sınıfları yoktur. Her ikisine de sahip herhangi bir dilin büyük bir tasarıma ihtiyaç duyduğunu iddia ediyorum. Birçok modern dil, kodların yeniden kullanımı için kısmi uygulamaların mirasından daha temiz çözümler sağlamak için özellikler, karışımlar, kategoriler, roller ve benzeri yapılar kullanır. Prototip tabanlı dillerin zaten sınıfları yoktur.

    Sonuçta bu zor ve tartışmalı bir konudur. Bir röportaj, bu soruyu çözmek için neredeyse doğru yer değildir ve genç bir pozisyon için başvuran kimsenin bana iyi bir cevap vermemesi konusunda gerçekten çivilemem.

  • Görüşmecinin çoğunun gerçek mirasın ne olabileceği hakkında hiçbir fikri yoktur. Genellikle bazı anahtar kelimeleri (sanal, geçersiz kılma vb.) Bilirler, ancak sanal tablonun ne olduğunu açıklamak yerine, bunları ne zaman kullanacaklarını gerçekten bilmezler.

    Miras ya da klasik ustalar kullanmayan bir dizi nesne yönelimli dil var.

Benim tavsiyem:

  • Be çok programlama hakkında bilgi sahibi olmasını şey gerçekten olduğunu varsaymak dikkatli temel programlama kavramı. Her iyi programcının böyle bir sorunun cevabını bulma merakına sahip olduğunu varsayabilirsiniz. Ancak onları tanıyan hiç kimsenin iyi olduğunu varsayamazsınız. Bu tür ayrıntılara çok fazla önem verenlerin aslında ormanlar için ağaçlar görmeyeceğine inanma eğilimindeyim.
  • Uygulama ayrıntıları hakkında daha az endişe edin. Programlama dilleri soyutlamalar yaratmak içindir. Bu soyutlamalar ve sadece onlar açısından düşünmeniz gerekir. Bir dilin uygulama ayrıntılarına karşı iyi kod yazılmaz. Çözümünüzün anlambilimini en iyi dil özelliklerine yerleştirmek için yazılmıştır. Bunu yapmayı başarırsanız, kodunuz sadece sağlam olmayacak, aynı zamanda dili bilen herkes için iyi okunabilir hale gelecek ve bir derleyici için optimize edilmesi daha kolay olacaktır.
  • Beklediğiniz cevapları bilmek o kadar önemli değil. Onları anlamak. Birisi onları tanıysa, çünkü onları bir kitapta okurlar ya da profesörü onlara söylerse, o zaman çok az değerlidir. Aslında bütün bunları kendinize birkaç saat açıklayabilirsiniz.
    Önemli olan bu basit ve izole edilmiş olguların karmaşık problemlere esnek ve sürdürülebilir çözümler üretmek için nasıl uygulanabileceğini anlamanızdır.

Gerçek soruya ulaşmak için:

Ve şirketimin yetenekli insanları cezbetme konusunda bir sorunu olabileceğini mi düşünüyorsunuz, yoksa kendi işe alım sürecinizde de aynı sorunları yaşıyor musunuz?

Belki de büyük oyuncular dışında tüm şirketlerin yetenekli insanları kendine çeken sorunları vardır. Çünkü bunlardan azı var. Ve bu varsayım nedeniyle, üniversite insanları yetenekli kılar. Öyle değil. Onları bilgili kılar (hem öğrencinin hem de üniversitenin pazarlığın bir parçası olduklarını varsayarsak). Deneyim insanları becerikli yapan şeydir.

Üniversiteye girmeden önce tecrübe toplayan ve çalışmaları sırasında bunu sürdüren az sayıda kişi vardır. Çünkü programlamayı seviyorlar ve bir kurs sırasında yeni bir fikir edindiklerinde, onu nasıl kullanabileceklerini, eve geri döndükleri ilk şeyi görmeye çalışacaklar. Bu, kiralamak isteyeceğiniz türden insanlar. Ama bunlardan azı var.
Programlama ve kendini geliştirme tutkusu ve programcıları iyi yapan arayışıdır. Zamanında.

Bence, farkına varmanız gereken şey, çoğu insanın yeterli programlama deneyimi olmadan üniversiteye girip çıkacağıdır.
Aynı zamanda, sektörümüz deneyimli programcılara kötü ihtiyaç duymaktadır. Bu nedenle, gerçekten adım atmaya çalışmanın endüstrimizin misyonu olduğuna inanıyorum. Ve genç pozisyonları için adaylarla mülakat yapmak, gerçekçi olarak aradığınız şey öğrenmek ve geliştirmek isteyen insanlar. Ve dikkatlice seçmelisiniz, çünkü çok fazla enerji yatırmanız gerekecek ve bunun boşa gitmesini istemiyorsunuz.

Bunu, yarış ekibiniz için bir sürücü olmak için taze bir kan kiralamak olarak düşünün: İyi bir sürücü, arabasını en iyi şekilde kullanmak için yeterli mekanik anlayışına sahiptir, ancak bu bilginin tek başına bir faydası yoktur (çok da kafa değil Başlat). Aradığın şey, kendi gelişimleri üzerinde ve ekibinle birlikte iyi çalışmaya istekli biri.


1

Ne olursa olsun bir ipucu (değer türü? Tamam, emin değildi, güncelleme için teşekkürler) yok "acil tip" terimi ne olursa olsun, sorularınız hakkında haklı ve tamamen aşırı değil düşünüyorum. Eğer biri okuldan çıkarsa bunlar cevaplanabilir sorulardır. Yine de, adayları hemen reddedemeyeceğim, hala öğrenmek istedikleri için potansiyeli olabilecek bazıları var .

Sürücü ehliyeti benzetmesine devam etmek için: bazı insanlar anahtarı soktuklarında (veya "başlat" düğmesine bastıklarında ne olacağı umurumda değil). Sadece yapıyorlar ve sürüyorlar. Bu onların değersiz oldukları anlamına gelmez, sadece yıldızlara ulaşmaları zaman alacaktır ;-)

Sadece diploma / diploma üzerine kişisel bir açıklama: Şu anda BT alanında birkaç yıllık deneyime sahip biyokimya ve endüstriyel geçmişe sahip kişilerle ve ayrıca CS geçmişi olan bazı "deneyimli" adamlarla ve en bilgili olanlarla çalışıyorum araç motorunun nasıl çalıştığı hakkında? Evet, CS okuyan çocuklar değil! Bu yüzden sadece diplomanın her zaman önemli olmadığı gerçeğini yaşıyorum!


2
Bazı insanlar en yüksek hıza ulaşmak için araçlarını o kadar uzun süre harcayabilir ki, yavaş olanlar daha başlamadan bitirebilirler.

yeterince adil :-)
Jalayn

CS'den başka alanlardan gelen insanlar konusunda tamamen katılıyorum. ama aslında bir CS derecesine sahip biri için, bir değer türünün ne olduğunu bilmemek, en azından söylemek biraz endişe verici görünüyor ...
Brann

@brann, terimi bilmiyor olabilirler , ancak yine de değişken tarafından tutulan verilerin fiziksel yerleşiminin yığın veya yığına değil, veri segmentine yerleştirildiğinin farkında olabilirler. Bu önemli olduğu için hangi dili kullanıyorsunuz?

C # kullanıyorum. Ve bu tür uygulama ayrıntılarını bilmenin bu bağlamda muhtemelen o kadar önemli olmadığını kabul ediyorum (bazı özel durumlarda olsa da). Mesele şu ki ac # uzmanı bulmaya çalışmıyorum. Ben yeterince akıllı ve c # kodlama gerçekten iyi olmak için yeterince motive biri bulmaya çalışıyorum. Bir değer türünün ne olduğunu öğrenmek / anlamak umursamazsa, en azından iki kaliteden birini özlediğini düşünmeye eğilimliyim (belki de yanlış)
Brann

1

Genelde mülakatlar sırasında terminoloji veya tanımlar hakkında özel sorular sormam. Diğer cevapların belirttiği gibi, insanlar farklı kavramlar için farklı terimlere sahiptir ve konuyu kavramsal olarak anlasalar da, bunu size iletemeyebilirler.

Juniors ile yoğun bir şekilde stajlarına veya okul projelerine odaklandım. Onlar hakkında sorular soruyorum, cevaplarını dile getirmelerine izin veriyorum ve sonra projedeki gerçek yeniliklerine, öğrendiklerine, ne hissettiklerine daha derinlemesine dalmaya başlıyorum.

Genellikle kişi projede ölü ağırlıktaysa, genellikle bana tatmin edici cevaplar veremez, bu yüzden söylemek genellikle kolaydır. Sadece ilgisiz ve ilgisiz için sinir ve içe dönük hata yapmamaya dikkat edin.

Utangaç ve içine kapanık olan iyi adayı belirlemek biraz zor, ama sonra çalıştığım kültür içe dönük ve utangaç bir geliştirici için iyi olmaz, bu yüzden benimle verimli bir konuşma yapamazlarsa uygun değil.


1
 or chose his university very unwisely.

Bu çok haksızlık. Bir öğrenci olduğunuzda, yapabileceğiniz tek şey notlarınızın sizi alacağı en yüksek dereceli üniversiteyi veya belki de futbol oynayan robotik köpeklerle oynamanıza izin vereceğini ilan eden üniversiteyi seçmektir. Başka bir şey yok. Bir üniversite kursunu ancak bitirdikten sonra değerlendirebilir, sonra uzaklaşıp birkaç yıl boyunca endüstride çalışıp önemsiz olmayan projeler inşa edebilirsiniz.

Bu tür her kursta "ÇAĞRI YÜKÜ ÖĞRETMİYORUZ" diyerek büyük bir neon tabela yakmış olsanız bile, öğrencilerin bu konuda ne yapmasını bekliyorsunuz? Bunun ne anlama geldiğini ve bunu öğreten bir şeye ne kadar ihtiyaç duyacaklarını anlayabilmeleri için araştırma yaparak aylar geçirin? Her işaret için her işaret kombinasyonu ile?

İnsanlar eğitimlerini gerçekçi bir şekilde seçemezler.


0

Yeni mezunlarla röportaj yaparken özgeçmişlerinde listelenen konulara bağlı kalıyorum. Java kullanıyorlarsa, Java hakkında onlara soracağım. Eğer Blub kullansaydı, o zaman yarım saat Blub hakkında okumaya devam eder ve onlara bunu sorarım. Ama her zaman dil anahtar kelimelerini kullanmayı isterim. Java ise, o zaman "genişletir" ve "uygular" hakkında soracağım ama "alt sınıf" ve "miras" değil. Yeni mezunların yazdıkları bazı kodlar hakkında konuşabilmelerini, basit bir programlama problemini çözebilmelerini ve temel veri yapılarını (hash tabloları ve ağaçları) kavrayabilmelerini bekliyorum.


0

Röportaj sürecini tasarlayan bir Direktör olarak şirketimizin yeni mezunlardan neler beklediğini size söyleyebilirim: Belgeleri okuyabilen ve bilgi uygulayabilen insanlardan bekliyorum. Dolayısıyla, gerçekleştirmelerini istediğimiz görevler üzerinde çok az elimiz var. Bunlar basit kodlama görevleridir, ortalama kolej sınıfı egzersizinizden çok daha zor değildir (deneyimli "iyi" geliştiriciler yaklaşık 15 dakika içinde bunu başarabilir). Aday, internet erişimi olan bir iş istasyonu, bir derleyici (bizim durumumuzda görsel stüdyomuz) ve yardım dosyaları verilir.

Bu koşullar altında kod yazamazlarsa, işe alınmayı düşünmezler. Bu kadar basit. Bütün "dili bilmiyorum" mazereti asla benimle hiç yaşamamıştı çünkü burada görüşmeye gelen her aday bir test olacağını biliyor, önceden kullandığımız dilleri ve araçları biliyorlar. Visual studio express'i evde indirebilir ve gelmeden önce bazı temel bilgiler verebilir ve giriş seviyesi testini, rahatsız etmeyenleri geçebilirsiniz ... işte kırmızı bayrak diyorum.


Bir şeyi bildiğini iddia eden birini bulmanın en iyi yolu, onu kullanmak için yeterince iyi bildiğini. Bir terimin ne anlama geldiğini sormak, sınıf dışında hiç kullanılmayan bir şey anlamsızdır. Son 18 ayda referans türleri hakkında bir tartışma yapmadım ama işaretçiler içeren bir şeyden şikayetçi olabilirim.
Ramhound
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.