Bilgisayar Bilimleri Alanında Lisans Eğitimi: Ne Yapmalı, Ne Yapmamalı? (Undergraduation)
Manage episode 383412297 series 3528279
"Paul Graham'ın 2005’de yazdığı bu makale, bilgisayar bilimleri bölümünde okuyan öğrencilere yönelik öneriler sunuyor. Hacking, matematik, her şeyi ve işleri öğrenmenin önemini vurguluyor. Kendi projeler üzerinde çalışmanın ve diğer insanlardan öğrenmenin değerini belirtiyor. Ayrıca, iş bulma ve yüksek lisans okuma gibi pratik konuları ele alıyor. Graham, öğrencilere kendi gerçek ilgi alanlarını bulmanın ve bunun üzerinde çalışmanın önemini hatırlatıyor. Bu makale, özellikle bilgisayar bilimleri alanında okuyan veya bu alanda kariyer yapmayı düşünen öğrencilere yönelik değerli bir kaynak olabilir.
---
# Bilgisayar Bilimleri Alanında Lisans Eğitimi: Ne Yapmalı, Ne Yapmamalı? (Undergraduation)
Mart 2005
_(Bu yazının bazı bölümleri, bana sorularla yazan öğrencilere verdiğim cevaplardan oluşmaktadır.)_
Son zamanlarda, bilgisayar bilimleri öğrencilerinden, üniversitede ne yapmaları gerektiği hakkında birkaç e-posta aldım. İyi bir tavsiye kaynağı olmayabilirim çünkü ben üniversitede felsefe okudum. Ancak, bir sürü bilgisayar bilimleri dersi aldım ve çoğu bilgisayar bilimleri öğrencisi beni kendi bölümlerinden biri olarak gördü. En azından, kesinlikle bir hacker olduğumu söyleyebilirim.
**Hacklemek**
Üniversitede iyi bir hacker olmak için neler yapmalısınız? Esasen iki ana şey üzerinde yoğunlaşabilirsiniz: programlamada gerçekten yetenekli olmak ve belirli, dikkat çekici problemler hakkında bolca bilgi edinmek. Aslında bu iki yöntem birbirine denk çünkü biri sizi, diğerini yapmaya sürüklüyor.
Programlamada iyi olmanın yolu, çok çalışmak ve zorlu problemler üzerinde kafa yormaktır. Ve zorlu problemlerle uğraşırken kendinizi motive etmenin en iyi yolu ise, sizi gerçekten heyecanlandıran bir proje üzerinde çalışmaktır.
Bu projenin bir ders ödevi olmayacağına bahse girerim. Arkadaşım Robert, üniversite öğrencisiyken yazılım geliştirerek çok şey öğrendi. Projelerinden biri, Harvard'ı Arpanet'e bağlamaktı; ilk başlarda orijinal düğümlerden biriydi ama 1984 yılına gelindiğinde bağlantısı kopmuştu. [1] Bu iş, bir ders için değil tamamen kendi gelişimi için yaptığı bir projeydi ve ne yazık ki tüm zamanını bu projeye ayırdığı için derslerini ihmal etti ve bir yıl okuldan uzaklaştırıldı. [2] Sonuçta her şey yoluna girdi ve şimdi MIT'de profesör. Ama siz belki de bu kadar uç noktalara gitmezseniz, daha mutlu olabilirsiniz; çünkü bu durum, onun o dönemde oldukça endişelenmesine neden olmuştu.
Programlamada iyi olmanın başka bir yolu da, işin ehli kişileri bulup, onların bilgilerinden faydalanmaktır. Programcılar genellikle yaptıkları işin türüne ve kullandıkları araçlara göre farklı kabileler oluştururlar ve bazı kabileler diğerlerinden daha zeki olabilir. Çevrenize bir bakın, zeki insanların ne üzerinde çalıştığını görmeye çalışın; genellikle bu durumun bir nedeni olur.
Çevrenizdeki en akıllı insanlardan bazıları profesörlerdir. Bu yüzden ilginç işleri nasıl bulabileceğinizi merak ediyorsanız, araştırma görevlisi olarak gönüllü olmayı düşünebilirsiniz. Profesörler genellikle onlara sıkıcı sistem yönetim işlerini çözebilecek kişilere kapılarını sonuna kadar açarlar. Bu durum, size fırsatları yakalama konusunda yardımcı olabilir. Ancak dikkat etmeniz gereken önemli bir nokta var, profesörler genellikle sürekli işleri aksatan veya sadece CV'lerini süslemek için bu tür işlere başvuran kişilerden çekinirler. Çünkü çoğu zaman bir asistan, iş yükünün artmasına sebep olabiliyor. Bu nedenle, sizin onlara gerçekten yardımcı olacağınızı ve işlerini hafifleteceğinizi açıkça belirtmeniz çok önemli.
Eğer 'hayır' yanıtı alırsanız asla vazgeçmeyin. Reddedilme, çoğunlukla reddedilen kişinin düşündüğünden daha az kişiseldir. Sadece ileriye bakın ve bir sonraki adıma geçin. (Bu, flört durumları için de geçerlidir.)
Dikkat edin, tüm profesörler akıllı olabilir ama hepsi ilginç konular üzerinde çalışmıyor. Profesörlerin kariyerlerini ilerletebilmek için yeni ve özgün sonuçları yayınlamaları gerekiyor. Ancak ilginç araştırma alanlarında daha fazla rekabet var. Bu yüzden, daha az hırslı profesörler genellikle kimse tarafından önemsenmeyen konular üzerinde özgün sonuçlar içeren makaleler yayınlarlar. Bu tür profesörlerden kaçınmak daha iyi.
Aslında hiç araştırma görevlisi olarak çalışmadım, bu yüzden bu yolu tavsiye ederken biraz rahatsızlık duyuyorum. Programlama öğrenme yolculuğumda özellikle kendi projelerim üzerinde çalıştım ve Winograd'ın SHRDLU programını tersine mühendislik yaparak anlamaya çalıştım. Bu programla yeni bir bebekle ilgilenen bir anne kadar ilgiliydim.
Kendi başınıza çalışmanın olası dezavantajlarına rağmen, projenin tamamen sizin olması hatrı sayılır bir avantajdır.Bir projeye başladığınızda, herhangi bir uzlaşıya varmak ya da izin almak zorunda değilsiniz. Sadece kendi fikirleriniz ve hayal gücünüzle sınırlısınız. Yeni bir fikir geldiğinde, hemen oturup bunu hayata geçirebilirsiniz. Bu özgürlük ve yaratıcılık hissi, bir projenin en heyecan verici kısmıdır.
Kendi projelerinizde, profesörlerin takıntı yaptığı yenilik ya da iş dünyasının peşinde olduğu karlılık konularına takılmanıza gerek yok. Tek gerçek önemli olan şey, projenin teknik zorluk seviyesi ve bu zorluğun, uygulamanın ne olduğuyla hiçbir ilgisi yok. ""Ciddi"" dediğimiz veritabanı gibi uygulamalar genellikle teknik açıdan basit ve sıkıcı. (Eğer bir gece uykunuz gelmezse, veritabanları hakkındaki teknik yazıları okumayı deneyin.) Ancak ""frivol"" dediğimiz oyunlar gibi uygulamalar teknik anlamda oldukça sofistike olabilir. Eminim ki birçok oyun şirketi, üniversite bilgisayar bilimleri bölümlerinin en altındaki araştırmalardan daha çok entelektüel içeriğe sahip ürünler üzerinde çalışıyor.
Eğer şimdi üniversitede olsaydım, büyük ihtimalle grafikler üzerinde çalışırdım. Belki bir ağ oyunu üzerinde çalışır ya da 3D animasyon için bir araç geliştirirdim. Üniversite yıllarımda, grafiklerle ilgili düşündüğüm tüm ilginç projeleri hayata geçirecek yeterli bilgisayar kapasitesi maalesef mevcut değildi. Ama şimdi, üzerinde çalışmayı daha keyifli hale getirecek başka bir alan düşünmek gerçekten zor.
**Matematik**
Üniversitede olduğum zamanlarda, birçok profesörün (veya en azından öyle olmasını umanların) bilgisayar biliminin matematiğin bir dalı olduğuna inandığını fark ettim. Bu düşünce en güçlü olanı Harvard'daydı, çünkü 1980'lere dek orada bile bilgisayar bilimleri bölümü yoktu; o zamana kadar öğrencilerin uygulamalı matematik bölümünü seçmesi gerekiyordu. Ancak Cornell'deki durum da pek farklı değildi. O zamanlar sıcak bir konu olan yapay zekaya ilgi duyduğumu söylediğimde, korkusuz Profesör Conway bana matematik bölümünü seçmem gerektiğini söylemişti. Hala tam anlamıyla emin değilim, acaba yapay zekanın matematik gerektirdiğini mi düşünüyordu, yoksa yapay zekanın saçma bir fikir olduğunu ve ciddi bir bölüm seçmemin beni böyle tuhaf hayallerden vazgeçireceğini mi düşünüyordu?
Aslında, bir hacker olarak ihtiyacınız olan matematik miktarı, birçok üniversite bölümünün iddia ettiğinden çok daha az. Lise matematiği ve birkaç hesaplama teorisinden alınmış kavramlar genellikle yeterli oluyor. (Tabi ki, n^2 algoritmasının ne olduğunu bilmek, böyle algoritmaları yazmaktan kaçınmanız için önemli.) Tabii bu, matematik tabanlı uygulamalar yazmayı planlıyorsanız değişir. Örneğin, robotik tamamen matematik üzerine kurulmuştur.
Hacking için direkt matematik bilmenize gerek olmasa da, yani formülleri ayırt etmeye yarayacak 1001 türlü hile bilmek gibi bir durum yok. Ancak, matematik kendi başına incelenmeye değer bir konu. Neredeyse her tür iş için metaforlar sağlayan bir kaynak. Keşke üniversitede bu nedenle daha fazla matematik çalışsaydım.
Benim gibi birçok insan, çocukluğunda matematikle adeta 'eziyet' yaşamıştır. Matematiği, ne güzel ne de hayatımla bir ilgisi olan, ama testlerde iyi not alabilmek için ezberlemem gereken bir dizi formül olarak öğrendim. Onları ""sözel pr...
216 episodi