Bir yazılımcı olarak ufkunuzu geliştirecek veya başka deneyimli yazılımcıların tecrübelerinden faydalanmanızı sağlayacak 5 kitabı sizlerle birlikte inceleyeceğiz.
1. Clean Code – A Handbook of Agile Software Craftsmanship
Nedir bu temiz kod dediğinizi duyar gibiyim. Temiz kod sadece yazanın değil okuyan diğer yazılımcıların da anlayabileceği ve geliştirebileceği şekilde yazılmış olan koddur diyerek özetleyebiliriz galiba. Yazarımız Robert C. Martin ise bu konuyu bizden daha detaylı ele almış anlaşılan :)
Bu kitap çoğu kurumda, okulda veya deneyimli yazılımcılar tarafından şiddetle tavsiye edilir. Kitapta öncelikle temiz kodun nasıl yazılacağı hakkında ilkeler, modeller ve uygulamalara yer veriliyor. Sonrasında ise okuyucuyu da olayın içine dahil ederek ona bolca kod okutuyor ve bu kodlar hakkında interaktif bir şekilde neyin doğru ya da neyin yanlış olduğunu fark etmesini istiyor. Böylelikle bir kodu nasıl temiz bir kod haline getirebileceği konusunda biraz düşünmesini sağlıyor.
2. Head First Design Patterns: A Brain-Friendly Guide
Üniversitede girdiğim ilk programlama dersinde hocam “Yazılım bir problem çözme sürecidir. Fakat çözüm için her zaman tekerleği baştan icat etmenize gerek yok.” demişti. Bu sözün ağırlığını o an için anlayamamıştım ama zaman içinde daha net anlayabildim. Yazılım çok geniş bir alan olsa da karşılaşılan problemler sınıflandırılabilir ve bir çözüm başka bir probleme uyarlanabilir. Tasarım kalıpları (Design Patterns) ise tam da bu işe yarıyor işte! Yazılım dünyasında en çok kullanılan tasarım kalıplarını öğrenerek siz de sorunlarınıza daha kolay çözüm bulabilirsiniz.
3. Introduction to Algorithms
Dünya çapında çoğu üniversite gibi bizim de ders kitabı olarak kullandığımız bir kitap… Algoritmalar hakkında okuyabileceğiniz en detaylı kitaplardan bir tanesi. Veri yapıları, dynamic programming, greedy algoritmalar, graph theory ve daha niceleri için sizi buraya alalım…
Kelimenin tam anlamıyla yazılımcılar için başucu kitabı şeklinde özetlenebilir.
4. Cracking the Coding Interview
Madem yazılım problem çözmek demektir dedik o zaman size bu konuda soru bankası niteliğinde bir kitap önerelim... İçindeki 189 algoritma problemiyle ve ipuçlarıyla kod yazma konusunda haddinden fazla pratik yapmanıza yardımcı olacak. Ayrıca soruları çözmeniz için size kanıtlanmış beş stratejik yol da sunuyor bu kitap. Adından da anlaşılabileceği gibi iş mülakatlarında bu tarz sorularla karşılaşabileceğinizden bahsetmiyoruz bile...
5.. Refactoring – Improving The Design Of Existing Code
Bu sefer de nedir bu refactoring dediğinizi duyar gibiyim 🙂 Refactoring halihazırda yazılmış bir kodun işlevselliğini değiştirmeden tasarımı değiştirmek olarak açıklayabiliriz. Peki bu konu neden bu kadar önemli?
Hepimiz zaman zaman geri dönüp kodumuzu temize çekeceğimizi söylemişizdir. Ancak o zamanlar LeBlanc’ın şu kuralını bilmiyorduk: “Sonra asla demektir (Later equals never).” Robert C. Martin
Daha önce de bahsettiğim gibi yazılımcı olarak hayatınız boyunca birçok problem çözeceksiniz fakat işiniz burada bitmeyecek maalesef. Daha sonra bu kodun tasarımını bozmadan üzerinde iyileştirmeler yapmanız gerekebilir. İşte bu kitap size tam da bu konuda yardımcı olacak! Sadece nasıl refactoring yapacağınız değil, aynı zamanda refactoring gerektiren bir kodu nasıl tanıyacağınız (Bad Smells in Code) üzerine de şahane bilgiler veriliyor bu kitapta.