Yazılımcıların okuması gereken kitaplar için bir liste yapılacak olsa bu liste epey uzun olacaktır. Bu içerikte sizlere listeyi o kadar uzatmadan en iyilerinin olduğu bir sınıflandırma yaparak tavsiyeler sunduk.
Artık dijital platformlar ne kadar yaygınlaşsa da insanlar kitapların sayfalarına dokunmaktan kendilerini alıkoyamıyorlar. Udemy veya Coursera gibi uygulamalar ne kadar zengin içeriklere sahip olsa da bir bilgiyi kitaptan öğrenmek kadar etkili olamayabiliyor. Bir bilginin altını çizmek, ona dokunmak bilginin kalıcılığında sürekliliği sağlayan en etkili yöntemlerdendir.
İnsanların hayatta yanlış kararlar aldığı zamanlar hep olur. Sonuçta hayatı yanlış yaparak öğreniyoruz. Bu ne kadar etkili bir yöntem olsa da bizden daha deneyimli insanların yaşam deneyimlerinden faydalanmak, fikirlerine değer verip onları dinlemek de son derece faydalı bir yöntemdir. Bir arkadaşınız bir kitabı okuyup beğendiyse ve size o kitabı okumanız için ısrarcı bir şekilde tavsiyeler veriyorsa, onu dinlemek sizin için faydalı olabilir. 100 kişi o kitabı okumuş ve hepsi size okumanız için tavsiyelerde bulunuyorsa o kitabı okumanız için artık bir neden vardır. Bu mantığa dayanarak size son derece kaliteli olan Software/Yazılım kitaplarının bir listesini hazırladık.
Yazılım geliştiriciler için en çok önerilen 20 kitabın listesini sunmak için düzinelerce yazılım programcısı, yönetici, kariyer koçu ve diğer endüstri profesyonellerinin önerilerinin değerlendirildiği bir çalışma yapıldı. Bu çalışma iyi bir temel oluşturmak isteyen, fakat internette sürekli birbirinden bağımsız listelere denk gelip hayal kırıklığına uğrayan herkese yardım etmek amaçlı oluşturuldu.
Bu liste internetin herhangi bir yerinde yazılım geliştirme kitabı önerilerinin en eksiksiz listesidir. Google’ın “yazılım geliştirici kitapları” için döndürdüğü her sonucun yanı sıra Dev.To başlıklı tüm makalelerin incelediği bir listedir.
İçindekiler
En İyi 20 Yazılım Kitabı Listesi:
20. Patterns of Enterprise Application Architecture
Bu kitaba verdiğimiz tavsiye oranı %13’tür. Yazarı Martin Fowler olan kitap 5 Kasım 2002 tarihinde yayımlanmıştır. Yazılımcıların okuması gereken kitaplar sıralamamızda 20. sıradadır.
Bu kitap iki bölümden oluşmaktadır. İlk bölüm, kurumsal uygulamaların nasıl geliştirildiğini anlatan kısa bir bölümdür. Kitabın içeriğini iyice kavrayabilmeniz için bu bölümü baştan sonra okumanızı tavsiye ederiz. İkinci bölüm ise model kullanım ve uygulama bilgilerinin yanı sıra Java ve C#’da ayrıntılı kod örnekleri de içerir. Kavramları en iyi şekilde açıklamak için UML diyagramları kullanılmıştır. Böylece daha zengin ve anlaşılır bir şekilde kavramlar tasvir edilmiştir.
Bu kitabı, kurumsal uygulamalar oluşturmak için, gerekli mimari kararlar vermek ve bunları oluştururken herkesçe kabul görmüş kalıplar kullanmak için gerekli donanıma sizi ulaştırabilir.
19. Clean Architecture: A Craftsman’s Guide to Software Structure and Design
Bu kitaba verdiğimiz tavsiye oranı %13’tür. Robert Cecil Martin tarafından yazılan kitap 2017 yılında yayımlanmıştır.
Bu kitap size yazılım mimarlarının neyi başarması gerektiğini ve bunu başarmak için izlemesi gereken temel disiplinleri öğretir. Fonksiyon, bileşen ayrımı ve veri yönetimi için temel yazılım tasarımı prensiplerini oldukça iyi açıklayan bu kitap size web, veritabanı, konsol ve gömülü uygulamalar için en uygun yöntemleri de sunuyor. Ayrıca, tasarımların ve mimarilerin neden yanlış gittiğini ve bu arızaların nasıl önleneceğini de çok anlaşılır bir şekilde açıklıyor.
18. The Art of Computer Programming
Yazarı Donald Knuth olan kitap 1968 yılında yayımlanmıştır, tavsiye oranı %13’tür. Yazılımcıların okuması gereken kitaplar sıralamamızda 18. sıradadır.
Bu kitap 1968 yılında yayımlanmasına rağmen, eskimeyen zamansız bir klasiktir. Kitap çok geniş algoritmalara ve bunların analizlerine kapsamlı bir bakış açısı sunar. Kitabın en güçlü yanı, her bölüme eşlik eden sorunların dikkatle seçilip zorluk derecesine göre indekslenmesidir. Bu sorunların önemli bir kısmını çözmeniz konuyu kalıcı bir şekilde öğrenmenize çok yardımcı olacaktır. Kitaptaki örnekler MIX Assembly dili ile anlatılır. Programlama Algoritmaları oluşturma yeteneğinizi artırmanızda çok faydası olacaktır.
17. CODE: The Hidden Language of Computer Hardware and Software
Charles Petzold tarafından yazılan kitap 1987 yılında yayımlanmıştır. Bu kitap için tavsiye puanımız %15.9’dur.
CODE, bilgisayarların donanım ve yazılım düzeyinde nasıl çalıştığını aktarmaya çalışan bir kitaptır. Akıllıca resimlendirilmiş ve son derece anlaşılır bir dille yazılmıştır. Günümüzün, bilgisayar, dijital medya ve internet dünyasını anlamak için okunması gereken bir kitaptır. Ayrıca, işletim sistemleri ve ASCII gibi yeni gelişmeleri de kapsamaktadır.
16. Agile Software Development: Principles, Patterns, and Practices
Robert Cecil Martin ve Alistair Cockburn tarafından 2001 yılında yayımlanmıştır. Tavsiye yüzdesi %15.9’dur. Yazılımcıların okuması gereken kitaplar sıralamamızda da 16. sıradadır.
En son yazılım geliştirme yöntemleri için eşsiz bir deneyim sunan bu kitap, bir yazılım geliştiricisi tarafından yazılmıştır. Yazar, OOD, UML, tasarım desenleri, Agile ve XP yöntemlerinin detaylı bir şekilde C++ ve Java dilleri ile nasıl kullanılacağını açıklamıştır. Pratik problem çözme yaklaşımları kullanarak analizin ilk aşamalarından, düşük seviyeli tasarıma ve nesne yönelimli bir uygulamanın nasıl geliştirileceğini gösterir. Kitap, Statik ve Dinamik, Sınıf Tasarım İlkeleri, Karmaşıklık Yöntemi, Ambalaj Tasarım İlkeleri, Analiz ve Tasarım, Desenler ve Paradigma Geçişleri ile ilgili konu başlıklarını içeriyor.
ODD prensiplerini öğrenmek istiyorsanız aradığınız kitap tam olarak budur. ODD prensiplerini teker teker açıklayıp kapsamlı örneklerle pekiştirmenizi sağlar. Nesneye yönelik yazılımın en yeni yöntemlerle nasıl tasarlanacağını anlamak isteyenler için istisnasız en kapsamlı kitaplardan bir tanesidir.
15. Introduction to Algorithms
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest ve Clifford Stein tarafından yazılmıştır. 1989 yılında ilk baskısı yapılmıştır. Tavsiye edilirlik oranı %17.4’tür.
Algoritmalar hakkında çoğu kitap titizdir fakat çoğu da eksiktir. Bu kitap, titizliği ve kapsamlılığı çok güzel bir şekilde birleştirmiştir. Geniş bir algoritma yelpazesini derinlemesine inceler, tasarım ve analizlerini tüm okuyucu seviyelerine göre yalın bir dille anlatır. Açıklamalar, matematiksel titizlikten ödün vermeden temel bir şekilde ele alınmıştır.
Dünya çapında çoğu üniversitede yaygın olarak kullanılmaktadır ve profesyoneller için standart bir referans kitabıdır. İkinci baskısında, algoritmaların rolü, olasılıksal analiz, rastgele algoritmalar ve doğrusal programlama hakkında yeni bölümler içermektedir. Üçüncü baskısı ise gözden geçirilip güncellenmiştir. Üçüncü baskıya birçok alıştırma ve pekiştirme soruları da eklenmiştir. İyi bir programlamacı olmak istiyorsanız bu kitabı yanınızdan ayırmamalısınız.
14. Head First Design Patterns: A Brain-Friendly Guide
Eric Freeman, Elizabeth Robson, Kathy Sierra ve Bert Bates tarafından yazılan kitap 2004 yılında yayımlanmıştır. Tavsiye edilirlik yüzdesi %17.4’tür. Yazılımcıların okuması gereken kitaplar sıralamamızda 14. sıradadır.
Java 8 için güncellenen Head First Design Patterns’in bu sürümü, geliştiriciler tarafından işlevsel, zarif, esnek yazılımlar ve yeniden kullanılabilirlik oluşturmak için kullanılan denenmiş ve gerçek yol testinden geçmiş kalıpları anlatmaktadır. Bu kitabı bitirdiğinizde yazılım tasarımı alanında bir profesyonel olma yolunda büyük bir adım atmış olacaksınız.
13. Cracking the Coding Interview: 189 Programming Questions and Solutions
Gayle Laakmann McDowell tarafından kaleme alınmış kitap 2008 yılında yayımlanmıştır. Tavsiye edilirlik yüzdesi %17.4’tür.
Temel programlamayla ilgili en zor 189 algoritma problemlerini içeren bu kitap pratik yapmanız için en uygun kaynaklardan bir tanesi. Soruların zorluğundan korkmayın çünkü her bir sorunun nasıl çözüleceğine dair ipuçları mevcuttur. Ayrıca soruları çözmeniz için size kanıtlanmış beş stratejik yol da sunuyor. Veri yapıları ve çekirdek algoritmaları gibi temel konularda uzmanlaşmanız için birebir.
12. Don’t Make Me Think: A Common Sense Approach to Web Usability
Yazarı Steve Krug olan kitap 2000 yılında yayımlanmıştır. Tavsiye edilirlik oranı %18.8’dir.
İnsan-bilgisayar etkileşimi ve web kullanılabilirliği hakkında bir kitaptır. Kitabın amacı, iyi bir yazılım programının veya web sitesi kullanıcılarının amaçlanan görevlerini mümkün olduğunca kolay ve doğrudan nasıl gerçekleştirebileceğinin yolunu göstermektir. Kitap oldukça kısa bir şekilde hazırlanmıştır. İki saatlik bir yolculukta bile okunabilecek çerezlik bir kitaptır.
11. The Clean Coder: A Code of Conduct for Professional Programmers
Yazarı Robert Cecil Martin. 4 Mayıs 2011 yılında yayımlanmıştır. Tavsiye edilirlik yüzdesi %18.8’dir.
Yazılımcılar, yazılım yaratma pratiğine derinden önem verirler, yazılıma bir zanaat gibi yaklaşırlar. Robert C. Martin yazılımın disiplinlerinden, tekniklerinden ve uygulamalarından bahsediyor. Bu kitap, kod yazma yöntemlerinden, yeniden düzenlemeye ve test etmeye kadar her konuda pratik önerilerle doludur. Teknikten daha fazlasını içerir. Martin, kod yazmaya onur, kendine saygı ve gururla nasıl yaklaşılacağını göstermeyi amaçlamıştır.
10. Soft Skills: The Software Developer’s Life Manual
Yazarı John Sonmez’dir. 2014 yılında yayımlanmıştır. Tavsiye edilirlik yüzdesi %23.2’dir.
Bu kitap çok yönlü bir yaşam rehberidir. Geliştirici ve yaşam koçu olan John Sonmez, geliştiricilere kariyer ve verimlilik gibi önemli konularda tavsiyelerde bulunuyor. 71 kısa bölümden oluşan bu kitabın okunması gayet eğlenceli ve basittir. Bölüm sonlarındaki Eylem Yapma bölümleri sayesinde nasıl hızlı sonuç alacağınızı öğrenebilirsiniz. İyi bir programcı ve kıymetli bir çalışan olmak istiyorsanız tam size göre bir kitaptır.
9. Peopleware: Productive Projects and Teams
Tom DeMarco ve Timothy Lister tarafından yazılmıştır. 1987 yılında ilk baskısı yayımlanmıştır. Tavsiye edilirlik yüzdesi %23.2’dir.
Yazılım organizasyonu yönetimi hakkında bilgi sahibi olmak istiyorsanız bu konudaki en popüler kitaplardan bir tanesi Peopleware’dir. Çoğu konu somut bir hikaye ile desteklenerek sunulmuştur. Örneğin, “Spagetti Yemeği” bölümünde yeni bir takımı akşam yemeğine davet eden bir yöneticinin kurgusal bir tasvirini yaparak başarı elde etme yöntemlerinden, konuşulması gereken konu başlıklarından bahsederek size bir nevi simülasyon hizmeti sunar. Eğer bir takım lideriyseniz ve yeteneklerinizi artırmak istiyorsanız bu kitap sizin çok işinize yarayacak.
8. Programming Pearls
Yazarı Jon Bentley olan kitap 1986 yılında yayımlanmıştır. Tavsiye edilirlik yüzdesi de %26.1’dir.
Programlamanın birçok yüzü vardır. Fred Brooks, büyük yazılım projelerinde yönetimin ne kadar önemli olduğunun altını çiziyor. Bu kitaptaki konular, iyi yazılımın anahtarına ve profesyonel programcının ayırt edici özelliklerine değiniyor. Bu kitap size programlamanın tekniklerini ve temel tasarım ilkelerini öğretmeyi amaçlamıştır. İçgörü ve yaratıcılık alanında gelişmenize yardımcı olacak bir kitaptır.
7. Working Effectively with Legacy Code
Yazarı Michael C. Feathers. 1 Eylül 2004 yılında yayımlanmıştır. Tavsiye edilirlik yüzdesi %27.5’tir.
Kodunuzda değişiklikler yapamıyor musunuz? Kodunuza yaptığınız eklemelerde anında geri bildirim alamıyor musunuz? Eğer bu tarz sorunlarınız varsa bu kitap çok işinize yarayacak.
Michael Feathers, test edilmemiş eski kod tabanlarıyla daha etkin çalışmak için size yeni stratejiler sunuyor. Bu kitap geliştiricilere, teknik yöneticilere ve test ekiplerine eski sistemlerin kontrol altına alınabilmesi için işe yarar teknikler sunuyor. Yazılım değişikliklerinin mekaniğini anlamak, yazılıma özellikler eklemek ve hata ayıklamak istiyorsanız bu kitap çok işinize yarayacak. Java, C++, C ve C # dillerini içeren ayrı ayrı örnekler ve platformlarda kullanılabilecek teknikler sunuyor. Kod değişiklerinin nerede yapılması gerektiğini kesin olarak belirlemenize yardımcı olacak bir kitaptır.
6. The Mythical Man-Month: Essays on Software Engineering
Yazarı Frederick Brooks, son yayım tarihi 1995’tir. Tavsiye edilirlik yüzdesi %27.5’tir.
Yazılım projesi yöntemleri üzerine yazılan çoğu kitap The Mythical Man-Month gibi tesirli ve zamansız olmuştur. Bu makalede Frederick Brooks, karmaşık projeleri yöneten yazılımcılara yöntemler sunuyor. Brooks, makalesindeki orijinal fikirlerini gözden geçirdi ve yeni düşüncelerle tavsiyeler ekleyip tekrar yayımladı.
5. Refactoring: Improving the Design of Existing Code
Yazarı Martin Fowler ve Kent Beck olan kitap 1999 yılında yayımlanmıştır. Tavsiye edilirlik yüzdesi %33.3’tür.
Yazılımcılar 1999’dan beri mevcut kodun tasarımını iyileştirmek ve yazılımın sürdürebilirliğini arttırmak için Martin Fowler’in Refactoring kitabına güveniyor. Kitap class kullanmadan yeniden düzenleme yöntemlerinin yanı sıra JavaScript kod örnekleri içeren işlevsel bir kaynaktır. Bu kitap, yeniden düzenleme gerektiren kodu nasıl tanıyacağınızı ve hangi dili kullanırsanız kullanın bunu nasıl başarılı bir şekilde yapacağınızı anlatıyor.
4. Design Patterns: Elements of Reusable Object-Oriented Software
Erich Gamma, John Vlissides, Ralph Johnson ve Richard Helm tarafından yazılmıştır. 1994 yılında yayımlanmıştır. Tavsiye edilirlik yüzdesi %33.3’tür.
Nesne yönelimli programlama tasarımlarındaki belirli sorunları basit yollarla çözmek için bu kitabı okumanız gerekiyor. Kendi tasarımlarınızı daha esnek, modüler, tekrar kullanılabilir ve anlaşılabilir hale getirmeniz için birebirdir. Bu kitap, nesne yönelimli programlamaya giriş kitabı değildir. Sorunlara çözümler üretmenize yardımcı olacaktır.
3. Code Complete: A Practical Handbook of Software Construction
Yazarı Steve McConnell olan 1993 basımlı kitabın tavsiye edilirlik yüzdesi %44.9’dur.
Programlamanın en pratik kılavuzlarından biri olarak kabul edilen Code Complete, geliştiricilerin daha iyi yazılımlar üretmelerine yardımcı bir kitaptır. McConnell, en etkili teknikleri ve bilinmesi gereken ilkeleri açık ve pragmatik bir şekilde sentezlemiştir. Bu kitap, seviyeniz ne olursa olsun en yüksek kalitede kod oluşturmanıza yardımcı olacak, teşvik edici ve bilgilendirici bir kitaptır.
2. The Pragmatic Programmer: From Journeyman to Master
Adrew Hunt ve David Thomas tarafından hazırlanmıştır. Yayım tarihi 1999’dur. Tavsiye edilirlik yüzdesi %47.8’dir.
The Pragmatic Programmer kitabı, bilgisayar programlama ve yazılım mühendisliği hakkında bilgiler içerir. Çoğu üniversitede ders kitabı olarak kullanılmaktadır. Kitap size sistematik bir teori sunmaz, gelişim sürecinizi geliştirmeniz için size pragmatik yöntemler sunar. Pragmatik bir programcı olabilmek için erken adapte olmalı, merak ve eleştirel düşünme niteliklerine sahip olmalısınız. Bu kitap sayesinde bu özelliklerinizi geliştirip daha iyi bir yazılımcı olabilirsiniz.
1. Clean Code: A Handbook of Agile Software Craftsmanship
Robert Cecil Martin tarafında yazılan bu kitap 2008 yılında yayımlanmıştır. Tavsiye edilirlik yüzdesi %52.2’dir. Yazılımcıların okuması gereken kitaplar sıralamamızda ilk sıradadır.
Kötü yazılmış bir kod bile çalışabilir. Fakat kodunuz temiz ve düzenli değilse çalışmalarınızın başarıya ulaşması neredeyse imkansızdır. Başarılı olsanız bile kodunuzu sunduğunuz kişiler tarafından okunup anlaşılmayan bir kodun hiçbir değeri yoktur. Kötü yazılmış kod dizileri yüzünden yazılımcılar çok vakit kaybetmektedirler. Bunu düzeltmenin elbette bir yolu var. Robert C. Martin, Clean Code kitabı ile devrim niteliğinde bir paradigma sunuyor. Bu kitap, size bir yazılım ustasının niteliklerini aşılamak için birebir. Daha iyi bir programcı olmak için bu kitabı okumanız şiddetle tavsiye ediliyor.
Kitap üç bölüme ayrılmıştır. Birinci bölümde temiz kod yazma ilkelerini, örüntülerini ve uygulamalarını öğrenerek bir temel oluşturmanız amaçlanıyor. İkinci bölümde artan karmaşıklık vaka çalışmaları ile pratiklik ve deneyim kazanacaksınız. Örnek olay incelemeleri ile kodun nasıl temizlenmesi gerektiği ve sorunlu bir kod tabanını verimli bir koda dönüştürmenin yollarını öğreneceksiniz. Son bölümde ise vaka incelemeleri oluşturulurken toplanan buluşsal yöntemler üzerinde nasıl düşünmeniz gerektiği açıklanıyor. Kısacası kod yazarken, okurken ve temizlerken kendinize belirlemeniz gereken yol haritasını çizebileceksiniz.
Öneri yüzdeleri, incelenen listelerde o kitabı içeren bölümlere göre hesaplamıştır. Yani bir kitap %12.5 oranında öneriliyor olsa bile ortalama olarak her 8 yazılımcıdan 1’inin bu kitabı okuyup önerdiği anlamına gelmektedir. Listemizdeki tüm kitaplar her 8 geliştiricinin en az 1’i tarafından önerilmiş kitaplardır. Bunun yanı sıra ilk 10’daki kitaplar ortalama olarak her 10 yazılımcıdan 6’sı tarafından önerilmiş kitaplardır. 5. ve 4. Kitaplar her 3 yazılımcıdan 1’i tarafından önerilmiştir. En iyi 3 kitap ise diğer tüm yazılım geliştiricileri tarafından önerilmiş kitaplardır. Yazılım bilginizi geliştirmek istiyorsanız yukarıdaki kitapların en az 3’ünü okumanız şiddetle tavsiye edilmektedir.
Yabancı kaynaklar olmalarına rağmen her bir kitabın içeriğine dair detaylı bilgiye yer verilmiş. Takdir edemeden geçemeyeceğim. Başarılı.
yorumunuza katılıyorum gerçekten güzel bir içerik. Fakat kitapların hepsi yabancı kaynak. Bu da bize iyi bir mühendis olabilmek için dil öğreniminin ne kadar önemli olduğunu bir kez daha gösteriyor.