Programcı yeterlilik testi [kapalı]


14

Ne yaptığımı gören, ilginç bulan ve bana soruyu soran birçok arkadaşım var

Do you think I could be a programmer?

Benim cevabım

...   ummm  ...  do you like math?

Yararlı bir yanıt almak istiyorum, bu yüzden birinin kare birinden başlayacak ama eleştirel düşünme ve problem çözme becerilerine sahip biri için oldukça iyi bir yetenek testini bilip bilmediğini bilmiyordum?


Ben BuzzFizz öneriyorum: Üç farklı yürütülebilir dosyalar göz önüne alındığında, onları çalıştırabilir ve hangisinin "FizzBuzz" olduğunu belirleyebilir?
Macneil

15
Matematiği ve programlamayı karıştırmayın. Yıllarca programcı olarak çalışıyorum. Matematikten nefret ediyorum. Başka bir örnek: Jeff Atwood mükemmel bir programcı. Matematikten nefret eder (bkz. Codinghorror.com/blog/2007/01/… , madde 3).
Arseni Mourzenko

2
@MainMa Bunun ne kadar doğru olduğunu vurgulayamıyorum. I am tam aynı gemide. Matematik bu konuda asla benim tutkum, hatta güçlü bir nokta olmadı. Bununla birlikte, beni tanıyan birçok kişi programlama konusundaki aşırı yeteneğimi (okuma: takıntı) kanıtlayacak. Matematik , programlamanın önemli bir parçası olabilir , ancak biri mutlaka diğerini başlatmaz.
Nathan Taylor

1
belki " matematiği sever misin?" derken, " matematiğe saygı duyuyor musunuz?" demek istediğimde , aslında matematiği el ile emerim, bu yüzden bilgisayarın matematiği benim için yapmasını seviyorum, ama saygı duyuyorum ve mantıksal düşünme süreçlerimde bana yardımcı olduğuna inandığım matematiğin sonlu ilkelerini anlayacağım.
jondavidjohn

2
"apptitude" bu bağlamda gerçekten harika bir yazım hatası :-)
Ferruccio

Yanıtlar:


12

"Matematiği sevmek" kötü bir sınavdır. Matematiği hiç sevmedim (çoğunlukla lisedeki matematik öğretmenlerinin% 90'ı emildi).

"Matematik" dediğinizde, çoğu insan "çok katı kurallara göre bir denklemi dikkatle çözmek" demek istediğinizi düşünür. Programlama hiç de öyle değil.

Programlama daha çok çizime benzer, çünkü elde edebileceğiniz şey sadece hayal edebileceğinizle sınırlıdır.

Önemli olan bir sistemi hayal etme ve nasıl çalıştığını görme yeteneğidir.

  • İşlerin nasıl yürüdüğünü düşünüyor musun?
  • Günlük şeyleri iyileştirmenin yollarını düşünüyor musunuz?
  • Daha basit yapı taşlarından nasıl bir şeyler yapılacağını hayal edebiliyor musunuz?

Daha çok geometri mi?
Gulshan

bu uygulamalı bir bilimdir, bu yüzden gerçekten saf bir "eşdeğer" bilime sahip değildir.
jondavidjohn

1
Programlama marangozluk gibidir, önce çözümü görselleştirir, araçlarınızı seçersiniz, zanaatınızı en iyi TDD ahşabını kullanarak dikkatli bir şekilde uygularsınız. Eğer meta 64 biraz daha önce icat edilmiş olsaydı, İsa bir programcı olurdu.
Will

2
Aslında tarif ettiğiniz şey kulağa matematik gibi geliyor - matematik okulları için geçenlerin aksine.
uman

1
@Brennan: Programlamaya benzer bulduğum tek matematik üniversitede Ayrık Matematik idi. İncelediğimiz diğer birçok matematik, bir çeşit denklemi çözmek için kuralsız ve kuralsız formüller uygulamakla ilgiliydi. Bunun gerçek matematik olmadığını iddia edebilirsiniz, ancak bu tartışma için önemli değil.
hasen

8

Brainbench Yetenek Testi yapan bir çocuk olarak arkadan hatırlıyorum ; Sertifikam hala bir yerde saklanıyor ...

Testin ana hatları:

Abstract Thinking
    Process Flow
    Spatial Manipulation
Analytical Reasoning
    Inductive Reasoning
    Logic Application
    Word Problems
Attention to Detail
    Following Instructions
    Reading Comprehension
    Rule Interpretation
    Writing Analysis
Mathematical Problem-Solving
    Word Problems
Process Mapping
    General Processes
    Letter Manipulation Processes
    Number Manipulation Processes
    Shape Manipulation Processes

1
Bu çok karmaşık bir test. Birisi bana programlamaya başlamadan önce sınava girmemi söyleseydi korkardım. Tamam, belki umursamazdım, ama testi ciddiye alan herkes korkardı.
hasen

2
Yani? Programlama karmaşık bir alan olabilir (diğerleri gibi). Eğer kolayca korkarsan, belki senin için değil. Birisine Doktor olmak isteyip istemediğiniz sorulduğunda, neyin iyi olması gerektiğini düşünün. Bazı insanları korkutmasını umursadığını sanmıyorum ... Hayat zor ve karmaşık, buna alışmaları gerekir.
Dan McGrath

2
Eğer üzerinde o kafa yaklaşım buysa, karmaşık bir alan var olacaktır başarısız. Programlamaya başlayan herkes kolay şeyler ile başladı ve bunun gerçekten kolay olduğuna inanıyordu. Bu inanç muhtemelen öğrenme deneyimleriyle korunacaktır. Geriye dönene kadar ne kadar karmaşık olduğunu asla anlayamazsınız ya da birisinin çok temel bulduğunuz bir şeyle mücadele ettiğini izleyebilirsiniz.
hasen

Üzgünüz, yukarıdaki listeye göre bir programcı olarak kullanacağınız temel beceriler. Bence onların altında kalacak sorular yerine onların isimlerinden korktunuz. Programlamada kullanılan karmaşık kavramları sormak gibi bir şey değildir. Başka bir deyişle, yetenek testlerinin öğrenebileceğiniz programlama kavramlarını ne kadar anladığınızla bir ilgisi yoktur, bu yetenekle ilgilidir , bu yüzden "kolay şeylerle başlamak" hakkındaki yorum burada gerçekten önemli değildir
Dan McGrath

7

Dışarıda iyi bir tane olma şansı var.

Örneğin Programlama Koyunlarını Programlamayan Keçilerden Ayırma konusundaki tartışmaya bakınız :

Tüm programlama öğretmenleri, sonuçlarının bir `` çift kambur '' gösterdiğini düşünmektedir. Sanki iki popülasyon var: her biri kendi bağımsız çan eğrisine sahip olan [programlayabilen] ve [programlayamayan]. Programlama öğretme ve öğrenme ile ilgili neredeyse tüm araştırmalar öğretime odaklanmıştır: dili değiştirme, uygulama alanını değiştirme, bir IDE kullanma ve motivasyon üzerinde çalışma. Hiçbiri çalışmıyor ve çift kambur devam ediyor. Kurs başlamadan önce, programlanabilecek nüfusu seçen bir testimiz var. Çift kamburu ayırabiliriz. Muhtemelen buna inanmıyorsunuz ama konuşmayı duyduktan sonra yapacaksınız. Tam olarak nasıl / neden çalıştığını bilmiyoruz, ancak bazı iyi teorilerimiz var.

Testin belirlediği, insanların bir dizi talimatı işlemekle ne kadar tutarlı olduğudur. Bunun anlamı, zihinlerinde modeller (soyutlamalar) oluşturabilir ve onlarla çalışabilir.


2

Bence daha önemli bir “test” onlara oynayabilecekleri basit bir programlama dili / ortamı göstermek olacaktır. Örneğin, işleme veya python . Eğer böyle bir dili kullanmayı öğrenebilir ve tadını çıkarabilirlerse - belki basit bir görevi veya ikisini çözerken - bu muhtemelen isteyebileceğiniz en iyi "yetenek testi" dir.


2

"Matematiği seviyor musun?" kötü bir başlangıç ​​değil. Matematik kritik, bundan sonra ...

Bir problem alıp alamayacaklarını ve bloklara ayırmaya başlayıp başlayamayacaklarını, sadece konuşmada, temel bir problemle adım adım yürüyüp yürüyemeyeceklerini görmek iyi bir başlangıçtır.

  • Bir robota nasıl bir fincan çay yapılacağını nasıl söylerdiniz? Mümkün olduğunca spesifik olun.
  • McDonalds'ta bir yemek siparişi vermek, başlangıçta değişiklik / yemek vermeye kadar siparişin ele alınmasında hangi adımların yer aldığını.
  • Telefon sistemi nasıl çalışır?

Onlara iyi cevap verebilirlerse, bir programcının her gün sahip olduğu analitik ve derin bir şekilde, muhtemelen bunu halledebilirler.


1

Kodlamaya maruz kaldıktan sonra, bunu yapmak için bir zorunluluk vardır ya da yoktur. Yetenek, iyi olup olmayacağınız konusunda sadece bir faktördür. İyi örneklere maruz kalma, talimat, görev zamanı, çaba diğerleri. Gerçekten bir şey yapmak / istemek diğer faktörlerden faydalanmayı kolaylaştırır.


1

"Matematiği sever misin" sorusundan daha iyi bir soru "Mantıksal bulmacaları çözmeyi sever misin?" Bu Sudoku gibi şeylerdir veya "John, Anne, Peter, Mary ve Brittany komşulardır. John'un beyaz bir arabası var, Brittany Anne'nin solunda yaşıyor yaşarlar mı? "

Çünkü programlama budur: Büyük bir mantıksal bulmaca.


1
Ben (biraz) matematik severim, ama bulmacalar birinin kafasını duvarlara dayandırmaya gerek yok. Bence ne kadar zeki olduğunuzu göstermek için zihinsel jimnastiğe karşı faydalı bir şey yaratmak için motivasyona ihtiyacınız var.
Omega Centauri

Tamam, beğenmene gerek yok, sadece iyi ol. :-)
Lennart Regebro

1

Bence daha iyi bir soru "Lego bloklarıyla bir şeyler inşa etmeyi sever misin?"


1

Tıpkı Gusteau gibi, Ratatouille filminden bir karakter şöyle dedi:

Herkes yemek yapabilir.

Aynı şekilde, herkes programlayabilir. Ancak, herkes bu konuda iyi olmayacak. Çoğu programlama işi ortalama bir yetenek ve yetkinlik seviyesi gerektirir.

Sadece evet cevabını ver. Neden? Çünkü çoğu insan zeki olduğunu düşündüğü biri tarafından takdir görmek istiyor.


2
Herkesin programlayabileceğine kesinlikle katılmıyorum. Berbat, ama hayat bu.
uman

0

Bence sevme matematiği önemlidir. Ciddi bir matematikçi olması gereken şeyleri titizlikle kanıtlamaktan hoşlanmıyorsunuz. Ancak, sizin için önemli olan bir problem göz önüne alındığında, problemin matematiksel bir şekilde çözülmesine ilişkin meseleleri formüle edebilir misiniz? Bir bilgisayarın yaptığı her şeyin matematik olduğunu, bir çeşit sembolik veri aldığını ve üzerinde bir tür işlem gerçekleştirdiğini iddia ediyorum. Matematiğin özü budur. Yani bir şeyleri matematiksel bir yapıya ve ileriye doğru atılan adımların mantığına soyutlayabilmelisiniz. Bunu kaçırmak, sadece kesmek, bazı kodlar atmak ve istediğinizi yapmasını umuyorsunuz. Karmaşık cebiri yazım hatası yapmadan ve kaybolmadan çözebilmek büyük olasılıkla gerekli değildir. Ancak bir plan formüle edebilmek önemlidir. Çok karmaşık olmayan matematik işlemimin doğru yapıldığını doğrulamak için sık sık on satır program yazıyorum. Doğrulama, keşif ve evet için bilgisayarları matematikle birleştirmek, ayrıntılar üzerinde çalışmak için, birçoğu olduğunda, gerçek anahtardır.

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.