
Kendini geliştirmek… Eğer bir yazılımcıysanız veya ciddi bir şekilde yazılım dünyasına adım atmayı planlıyorsanız size bu kavramın iyi bir yazılımcı olmak için çok önemli olduğunu söyleyebiliriz. Zira her şeyin hızla değiştiği günümüz dünyasında, yazılımcılar bu değişime ayak uydurmaya mecbur. Siz de kabul edersiniz ki günümüzde online kaynakların çok sayıda ve kolay erişilebilir olması kendimizi geliştirmeyi bir hayli kolaylaştırıyor.
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.