Şimdi size sorsam, en çok sevdiğiniz üç yazılım kitabını yazarları ile sayabilir misiniz? Sayabilmeniz lehinize olurdu, çünkü bir sonraki iş görüşmenizde bu soruyla karşılaşma şansınız yüksek. Başıma geldiği için söylüyorum :)
Bana son on beş yıllık yazılımcı iş hayatımda sorulan en ilginç soru buydu. Cevabım şu şekilde olabilir.
Bu sorunun altında yatan mentalite çok başka türden. Beni şaşırttı açıkçası. Artık eskisi gibi anlatın bakalım, şimdiye kadar neler yaptınız demiyorlar. Size belli bir zamanda çözmeniz gereken bir problem de sunmuyorlar. Bilginizin hangi temellere dayandığını anlamak için derin sondaj çekiyorlar. Bu soru benim için neden bu kadar ilginç, açıklamaya çalışayım.
Google, Stackoverflow ya da BTSoru.com gibi sistemlerin var olduğu bir dünyada yazılımcılar belli bir sorunun çözümüne birkaç tık sonra ulaşabiliyorlar. Copy/Paste Programcı başlıklı yazımda bunu dile getirmeye çalışmıştım. Çoğu zaman copy/paste yaparak bir takım sorunları çözüp, işi geçiştiriyoruz. Çoğu zaman ne yazık ki çözümün temelinde yatan konseptleri anlamadan…
Eğri oturalım, doğru konuşalım. Programcılık bilim ve mühendislikle alakalı bir meslek. Bu işin temelindeki bilimi kavrayabilmek için bu işin eğitimini almak gerekiyor. Ben üniversitedeki eğitimden bahsetmiyorum. O da önemli, lakin üniversiteden sonra bu bilim dalında kendimizi ne kadar ve nasıl geliştirdiğimiz çok daha önemli.
Programcılık bir ömür boyu öğrenim görmeyi gerektiren bir meslek. Bu eğitimi bize başkaları veremez. Kendi, kendimizi eğitmemiz gerekiyor. Bunun en başlıca yolu da bol, bol kitap okumaktan geçer.
Günümüzde programcı olarak bizim eğitimimize en büyük sekteyi yazılım çatıları (framework) vuruyorlar, çünkü sundukları imkanlarla çalışma sahalarındaki zorlukları ve bilgileri maskeliyorlar. Bu çatıları kullanmak programcı olarak bizim işimizi kolaylaştırmakla birlikte, temelde ne olup, bittiğini tam olarak anlamadığımız sürece yeni bilgi edinmek güçleşiyor. Bizim ana sorumluluğumuz sorun çözmek değil, sorunları çözebilmek için bilgi ve bilim taşıyıcısı olmaktır. İnternetten birkaç satırlık kodu alıp, sorun çözmek matah değildir. Asıl önemli olan kısa yolu değil, uzun ve acılı yolu seçip, belli bir öğrenim sürecinden sonra gerekli temel prensipleri kavramaktır.
Kendimizi ciddi anlamda geliştirmek istiyorsak, ilgi duyduğumuz alanlarda elimize geçen her türlü yazılı kaynağı sistematik bir şekilde tüketmeliyiz. İçimizde işin temellerine indiğimiz hissi uyanmadıysa, yılmadan daha çok kaynak kitap tükerek, bu hisse sahip olana kadar devam etmeliyiz.
Yılmamalıyız! İlim ve bilim, ilim ve bilim peşinde koşturanındır.
En son okuduğunuz üç kitabı yorumlarda görmek ümidiyle…
EOF (End Of Fun)
Özcan Acar
Head First Java,
Hacking Interface (Hamza elbahadır),
Hacking Exposed (Joel Scrambray)
PHP (kodlab – sercan çakır)
Struts ve vaadin’e başlamadan önce servlet mantığını öğrenmiştim. Maven kullanmadan önce nasıl çalıştığını öğrenmiştim ve kendi elimle jar paketleri oluşturmuştum. Java ile Socket kullandıktan sonra Tomcat’in nasıl çalıştığını anlamıştım. falan filan feşmekan. Gerçekten de artık problemi temelden çözebilme yeteneğine sahip olan programcılar azalmaya başladı.
hocam, 3 değil 1 tane olsa yeterliydi keşke yazabilseydim ama malesef, kitap okumalar pdf den öteye geçemiyor o da hızlı göz gezdirme ve içerikte ihtiyacım olan bilgiye çabucak gözgezdirip okuyup uygulamaya dökmek :( Türkiye’ de programcılık yapabilmek, bir bilgisayar programcısı olarak mesleğini icra edebilmek çok zor, hali hazırda sizden bir problemi çözmeniz isteniyor ve zamanla mücadele etmeniz gerektiğini ifade eden bir yöneticiniz var, önünüzde iki seçenek bulunuyor ya dediğiniz copy/paste ile problemi geçici olarak çözmek ve ilerde olabilecek bir olası probleme davetiye çıkartmak ya da anlık çözüm geliştirdim ama ilerde gene tekrarlayabilir ile hataları üst üste yığmak aynı evi temizlemek için tozların evden dışarı atılması gerektiği ancak bunun yerine tozları halının altınya ötelenmesi gibi, yada sabahlara kadar uykusuz kalmalar, bir gün sabahlanır üç gün sabahlanır ancak projede bu alışkanlık haline gelirse ister istemez işten kaçmalar baş gösteriyor. ve piyasada sıkca dolaşan iş ilanları çoğuda aynı ve dönen bir yazılım geliştirici sirkülasyonu oluyor.
bilmiyorum Türkiye’deki iş ilanlarına baktığınız yada az çok göz gezdirmişliğiniz oldumu hiç, iki cümle olmaz sa olmaz. ” yoğun çalışma temposuna uyum sağlayabilecek” diğeri ise ” esnek çalışma saatlerine uyumlu” hal böyleyken hangi ara kitap okunabilir ki :)
kitap okumak bilgi öğrenmek, programcılığı aşçılığa benzetiyorum, nasıl ki yemek yapmasını öğrenmek istediğiniz yemeği yapabileceğiniz ve elinize bir tarif geçtiğinde zorlanmadan uygulayabileceğiniz bir meslek se programcılık da bunun gibi yemek yapmayı öğrenmek, sizden bir yemek istediklerinde tarifini bulup mutfakta o istenilen tarifi yapabilmek böyle bişey
sürç-i lisan a affola
selamlar saygılar
karatay diyeti canan karatay
başkalarının ne düşündüğünden sana ne richard feynman
bonobo ve ateist frans de waal
sadece teknik kitaplar okuyarak kafayı sıyırmamak da lazım
Java Tasarım Şablonları (Özcan Acar)
Refactoring (Fowler)
Uzun zamandır yoğunluktan dolayı kitap okuyamıyorum ama son okuduğum 3 kitap şöyle:
– Extreme Programming – Özcan Acar
– Pojo in Action – Chris Richardson
– Extreme Programming By Example – Kent Beck
ve bu arada programlama kitabının dışında Otostopçunun Galaksi Rehberi’ni okuyorum.
Bilim iş verenleri de hizaya getirmiş demek ki :) Bu çok dikkat çekici ve önemli bir gelişme. Paylaşmanız çok iyi olmuş. Teşekkürler Özcan hocam.
Domain Driven Design [Evans],
Head First Design Patterns [Freeman],
Refactoring [Fowler],