Uzun süredir ertelediğim teknik kitap alma işini nihayet hallettim ve aşağıdakileri aldım. Gelelim ilk görüşlerime:
Version Control with Git: Powerful Tools and Techniques for Collaborative Software Development
Git geliştiricilerinden Jon Loeliger'ın kitabı. Pro Git arasında kararsız kalıp, epey yorum okuduktan sonra almaya karar verdim. Pro Git'in ücretsiz versiyonunu da okuyup satın alacağım büyük ihtimalle. Özellikle Subversion'dan Git kullanmaya başlayanlar için Git'in dağıtık mimarisini çok güzel açıklıyor kitap.
Hadoop: The Definitive Guide
Apache Hadoop projesinin geliştiricilerinden Tom White'ın kitabı. FriendFeed'de Berk D. Demir'in tavsiyesi üzerine aldım. Zaten Hadoop üzerine pek fazla kitap yok. Henüz ilk iki bölümü tamamladım ve oldukça açıklayıcı bir kitap olduğunu söyleyebilirim rahatlıkla. Eğer benim gibi başlangıç düzeyinde teorik bilginiz varsa, kitapla beraber Wikipedia ve Google'ı kullanarak kısa sürede "temel" bilgi edinebilirsiniz.
JavaScript: The Good Parts
Douglas Crockford amcanın kitabını duymayan yoktur herhalde. Daha önce korsanlık yapıp e-book versiyonunu okumuştum. "Emeğe saygı kardeş +rep" deyip orijinalini de aldım :) YDN Theater'daki sunumlarını izlediyseniz ve ortalamanın biraz üzerinde JavaScript bilginiz varsa çok yeni şeyler anlatmadığını göreceksiniz. Yine de her şekilde kitaplığınızda bulunması gereken güzel bir kitap.
Pro JavaScript Design Patterns
Web günlüğünü zevkle takip ettiğim Dustin Diaz'ın Ross Harmes ile beraber yazdığı kitabı. Scope, closure gibi kavramlardan haberdar değilseniz kitaba dalmadan önce temel JavaScript bilgisine sahip olmanızı tavsiye ederim. Aksi takdirde kitaptan istediğiniz verimi alamayabilirsiniz.
Object-Oriented JavaScript: Create scalable, reusable high-quality JavaScript applications and libraries
Stoyan Stefanov'un kitabı hakkında çok fazla basite inerek anlattığına dair eleştiriler var. JavaScript'le ilgilenip, kitabı almış geliştiriclerin çoğunun zaten bildiği şeyleri tekrar tekrar okumak bazen rahatsızlık verse de çok da göze batacak bir şey değil. Üst düzen JavaScript bilginiz olduğunu düşünseniz de ilk iki bölümü dikkatli okumanızı tavsiye ederim. JavaScript konulu üç kitap içerisinde, fazla seviye ayrımına girmeden tavsiye edebileceğim yegane kitap budur diyebilirim rahatlıkla. Tabii bu başlangıç seviyesindekilere önerdiğim anlamına gelmesin :)
Coders at Work
Sıra geldi en ilginç ve eğlenceli kitaba. Practical Common Lisp'in yazarı Peter Seibel, bilgisayar dünyasına yön vermiş gurularla sohbet ediyor; programcılığa nasıl başladıklarını, önemli kararları nasıl aldıkları gibi sorular soruyor. Yanıtlar çok ilginç. Mesela çoğunluğu programcılığa BASIC ile başlamışlar; Lisp ve Emacs gurularından Jamie Zawinski aynı zamanda gece kulübü sahibiymiş :) Kısıtlı İngilizceniz bile olsa, küçük bir sözlük yardımıyla okumanızı kesinlikle tavsiye ediyorum. Bu arada, muhtemelen serinin devam kitapları da gelecektir. Zira epey eksik üstad var :) Kim bilir belki Paul Graham'ın Hackers & Painters kitabı gibi Türkçeye de çevirilir.
Son olarak, düzenli olarak okumasam da boş zamanlarımda devam ettiğim okuyabileceğiniz özgür kitapları da verip, 2010'un ilk -umarım son olmaz!- kitap girdisini bitiriyorum :)
Coders At Work okunmaya deger bir kitapmis, ben de senden gorup bir okuyayim dedim, ilk iki roportaji okudum, hosuma gitti.
Bu arada ben de Lisp, Clojure ve Erlang arasinda kaldim. Uzun suredir okumalar yapmama ragmen tam bir karar vermis degilim ama Clojure ogrenecegim gibi duruyor.
Ve bir not daha: Konu disi ama aklima gelmisken soyleyeyim dedim, D dilini (digitalmars.com - ddili.org) mutlaka ogren derim. :)
Coders at Work'ün çok eğlenceli bir review'ı vardı ama şimdi bulamadım :)
Ben de açıkçası Erlang, Scala ve Clojure arasında gidip geliyorum. Clojure için önce Lisp notasyonunda tecrübe kazanmak gerektiğinden ve concurrent yetenekleri(Java'nın default thread mimarisini kullanıyor Scala'dan farklı olarak) hakkında farklı yorumlar olduğundan biraz şüpheliyim.
Bir taraftan da Erlang'ın sözdizimi hala garip gelse de concurrent programming için en iyi seçenek gibi görünüyor.
Scala'nın web tarafında Lift gibi harika bir framework avantajı var. Dilin yapısı da epey farklı diğer JVM üzerinde çalışan dillere göre[1] - ki JVM üzerinde çalışmanın avantalarından bahsetmiyorum bile(bunu Clojure için de söyleyebiliriz hatta).
Lisp'i hobi projelerimde kullanmak ve biraz daha farklı açılardan bakmak istediğimden mutlaka öğreneceğim diğer üç dil arasında epey kalacağım gibi.
D hakkında bilgim var biraz, ddili.org'daki "Neden D?" çevirisini okumuştum daha önce. Onu da hobi listeme ekleyeyim :) Google Go'ya bir gözatmanı da tavsiye ederim bu arada, ilginç bir dil[4]. Gelişimini takip etmek ilginç oluyor, henüz çok yeni olmasına rağmen Web Geliştirme için de web.go[2] fastweb[3] gibi birkaç ilginç framework var.
Web Applications 1.0'ın tamamlanıp(HTML5, webworkers, offline web, geolocation, webforms, vb.) tarayıcılarca desteklenmeye başlamasıyla, web geliştirmede(hatta işin mobil tarafını da rahatlıkla katabiliriz) bu dillerin daha popüler olacağını düşünüyorum.
Beraber beyin fırtınası yaparak, üzerine yoğunlaşılacak bir dile karar verebiliriz umarım :)
[1] http://www.scala-lang.org/docu/files/ScalaOverview.pdf
[2] http://getwebgo.com/
[3] https://code.google.com/p/go-fastweb
[4] http://tav.espians.com/ciao-python-hola-go.html
Lift beni hic mi hic sarmadi acikcasi. Go'nun daha alacak yolu varmis gibi duruyor bu arada. Erlang syntaxi acayip geliyor hepimize evet ve bu yuzden efene'yi[1] tavsiye ediyorum. :) erlang vm'de calisan bir dil ve syntax'i c/c++ syntaxi gibi. efene'yi yazan kisiye dedim hic durma otur nitrogen'i falan adapte et efene'ye.
[1] http://github.com/marianoguerra/efene
Yayımlanan yazılar, kaynak gösterildiği müddetçe kullanılabilir.
Yapılan yorumların sorumluluğu yazarına aittir.