Bir JavaSchool'a gittiğimi nasıl telafi edebilirim? [kapalı]


18

Daha önceki bir soruda , üniversite öncesinde ve sırasında başarılı olan yeni yazılım mühendisleri için kariyer tavsiyesi istedim. Peki ya MIT ya da Yale'e gidecek kadar şanslı olmayan insanlar ne olursa olsun? Ya Joel Spolsky'nin JavaSchool dediği şeye gittiyseniz ?

JavaSchool mezunları becerilerini geliştirmek ve üniversitede kaçırdıkları şeyleri telafi etmek için ne yapabilir / yapmalıdır? (Ya da Joel bu okulların dezavantajlı olması konusunda yanlış mıydı?)



4
"Okullaşmanın eğitiminize girmesine izin vermeyin" - Mark Twain
BlackJack

Yanıtlar:


12

Joel'in bu makalede ileri sürdüğü iddialara rağmen - ve bu noktayı kendisi kabul ediyor - bir "JavaSchool" tarafından gözden kaçırılabilecek konu alanlarının çoğu pek çok iş için gerekli değildir.

Ben herhalde o şey katılan benzer bir JavaSchool biz C # ve Java gibi yüksek seviyeli dillerde odaklanarak bizim çoğu zaman harcamak ki, ama bu "Algoritmalar ve Veri Yapıları" hala gerekli sınıf listesinin bir parçası olduğu gerçeğini değiştirmez - diğer teori yönelimli sınıflardan bahsetmiyorum bile. Verilen tüm "JavaSchools" aynı değil, ama mesele bu değil.

Benim düşünceme göre, daha cesur gelişim konularının bazılarını anlamaktan daha önemli olan, benzersiz zorluklar ortaya çıktığında problemi etkili bir şekilde çözebilmektir. Yazılım mühendisleri olarak işte öğrenmemizin büyük çoğunluğunu yapıyoruz ve bu nedenle, iş tanımımızın en büyük yönlerinden ikisi problem çözebiliyor ve tanıdık olmayan kavramları alabiliyor. Bir röportaj sırasında, kişi kendileri için yeni olan bir problemi çözmek için fark edilebilir ve mantıklı bir girişimde bulunamazsa, belirli bir pozisyon için uyumsuzlukları muhtemelen kendini gösterecektir.

Açıkçası, bir JavaSchool tarafından gözden kaçırılabilecek karmaşık bir konuya sürekli maruz kalmayı ve kullanmayı gerektiren bir pozisyon için birini işe alırken, genellikle önceden anlayışı olan biriyle gitmek mantıklı bir seçimdir, ancak deneyim eksikliği her zaman iş uygunluğunu engeller .

Muhtemelen, herhangi bir kişi hatırlayabildiği sürece orada bulunan 50 yaşındaki Java adamı, işi (şimdiki veya önceki) onu öğrenmesini isteyinceye kadar Java hakkında herhangi bir anlayışa sahip değildi- ve bunu yaptı. Açıkçası, "yaşlı adamı" kovmak kötü bir uygulamadır, böylece daha genç ve daha "güncel" bir aday onun yerini alabilir; genç veya yaşlı herhangi bir çalışan için iş tanımı değişirse, yakalanmak veya yeni bir iş bulmak o çalışanın sorumluluğundadır. Bir birey (özellikle geçmiş deneyime sahip bir programcı) bazı kavramları anlamadığı için, onu öğrenmek istemedikleri veya öğrenemedikleri anlamına gelmez. Aslında, öğrenmek istemiyorlarsa, muhtemelen herhangi bir işe ait değildirler - çok daha az sizin.

Bazı "JavaSchools" un diğerlerinden daha iyi olduğunu ve bir pozisyon için bir aday seçerken bu gerçeğin kesinlikle göz önünde bulundurulması gerektiğini söylemek doğrudur, ancak birinin okula gittiği yerden çok daha önemli kişisel özellikler vardır.

Bir problemle başa çıkma ve bizi mühendis olarak tanımlayan bir çözüm bulma yeteneğimiz, diğer her şey ikincil.


+1 "Bir sorunla başa çıkma ve bizi mühendis olarak tanımlayan bir çözüm bulma yeteneğimiz, geri kalan her şey ikincil."
Bill

Programlama dillerinin nadiren yaklaştığı bir okula gittim (C / C ++ / Java temeline sahibiz, ne yazık ki işlevsel bir dil yok) ve sadece CS teorisi ile tanıdık geçiyoruz. Öte yandan, veritabanları, veri madenciliği, telefon / mobil / internet ağları, insan-makine arayüzü vb. Hakkında konuştuk. Derinlemesine değil, genişlikte öğrendik. Kötü bir anlaşma olduğunu sanmıyorum :)
Matthieu M.

1

Neden programlamayı öğrendiğinizden farklı olarak tanıtan bir ders kitabı üzerinde çalışmayasınız? Örneğin, işlevsel paradigmayı kullanan birkaç iyi, ücretsiz kitap vardır. Programları Nasıl Tasarlayabilirsiniz ? Bilgisayar Programlarının klasik Yapısı ve Yorumu (http://mitpress.mit.edu/sicp/) daha azdır, ancak derin bir aydınlanma duygusu sağlar.

Bilgisayar biliminin ne olduğuna dair farklı bir bakış açısı için Abelson'un SICP derslerinin ilk çiftini izlemenizi tavsiye ederim. Daha yaşlılar ancak çok iyi yaşlandılar (http://video.google.com/videoplay?docid=5546836985338782440#).


1

Bir JavaSchool'a gittiğimde acını hissediyorum. Benim yılımdaki öğrenciler tek bir Veri Yapısı dersi almasalar bile, benim için aslında İngiltere'de oldukça yüksek sırada yer alıyor. Kursumdaki idari hatalar nedeniyle DSA'yı isteğe bağlı bir kurs olarak alabildiğim için şanslıydım, ancak bu başka bir üzücü hikaye ...

Deneyimlerime göre, JavaSchool'da en iyi üniversitelerde deneyimlemeyeceğiniz bir şey yaşayacaksınız ve bu onların değerini kanıtlamak isteyen öğrenci . Tıpkı ülkemdeki diğer antik ya da kırmızı tuğla üniversitelerinde olduğu gibi, tipik tembellere ve iyi performans gösterenlere sahiptik, ancak çevrelerinin ve eğitimlerinde nelerin eksik olduğunu bilen küçük bir grup öğrenci vardı. Kaçınılmaz olarak, bu insanlar kurslarında mutlaka parlak bir şekilde yapmadılar, ancak üniversiteyi herkesten daha fazla bildiler. Yaptığımız herhangi bir mola sırasında hangi yazılım şirketlerinin bizi götüreceğini araştırdık, asla öğretilmeyeceğimiz dilleri aldık ve zorlandıkları için başkalarının kaçındığı konuları inceledik.

Arkadaşlarımdan ikimiz çalışmalarımızı Master seviyesine taşıyoruz, temeli tamamen kaçırdığımızı hissettirdiğimiz tüm ileri kursları alıyoruz ve bir adam Microsoft'taki son röportajının tam olarak sonuçlanacağını umuyor. zaman işi. Yakında yüksek lisans eğitimime başlamak üzereyim, öncelikle eğitimimdeki boşlukları doldurmak ve bu sektördeki potansiyelimi en üst düzeye çıkarmak için ihtiyaç duyacağım becerileri geliştirmek için bir yıl daha harcamak üzereyim.

Gerçek dünyada insanlar her zaman bu önyargılara sahip olacaklar ve çoğu zaman tamamen gerçeğe dayanıyorlar. Okulunuzun yetersiz olduğunu düşünüyorsanız, onlara söyleyin ve eğitim seviyenizi yükseltmek için bunun gibi siteleri kullanın.


0

Java ile bir iş yazma yazılımı alabilirsiniz. Yaptığınız işte iyi olduğunuz sürece, gittiğiniz okul ve / veya büyük okulunuz ilk işin ötesinde, o zaman bile , son derece alakalı değildir .


0

Aklıma gelen en iyi şey, nesne yönelimli düşünme biçiminden kurtulmak için programlamayı tamamen farklı bir paradigmada gitmek ve (yeniden) öğrenmektir.

En azından şunu öneririm:

  • Montaj dili , makinenin nasıl çalıştığı hakkında gerçek bir takdir almak için
  • Haskell , fonksiyonel programlamaya çok saf bir bakış için
  • Saf olmayan fonksiyonel programlama ve metaprogramlama için Lisp (Clojure benim ilk tercihim olurdu, ancak Scheme veya Common Lisp de harika)
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.