Merhabalar, yeni bir yazı ile karşınızdayım sevgili dostlar. Daha önce bir çok kez farklı mecralarda gerek C++, gerekse farklı konularda kitap önerilerimi aktarmıştım (bu platform dışında :). Bir çok takipçi ve arkadaşım da bu yönde benden ricada bulunuyorlardı. Bu yazım ile bunu ete kemiğe büründürüyorum. İlk etapta aşağıda verdiğim başlıklara ilişkin öne çıkan kitapları sıralamaya çalışacağım (tabi bunlar tamamen benim görüşümdür 🙂 Daha sonra bunları ayrı bir sayfa altında da toplamayı planlıyorum.
Her kitaba ilişkin yazar, ilgili bağlantı ve kısa düşüncülerimi aktarmaya çalışacağım. Aşağıdaki konular yanında özellikle Android, oyun programlama ve yazılım mimarilerine ilişkin bir kaç eklemem daha olabilir. Sizlerin de önerileri var ise lütfen çekinmeyin, bana yorum ya da e-posta yolu ile iletebilirsiniz.
Genel Yazılım Geliştirme:
- Code Complete, 2nd edition, Steve McConnell.
- Her yazılımcının, ya da kitabını tabiri ile, yazılım oluşturan insanların okuması gereken bir kitap. İçerisinde anlatılan konular bütün programlama dillerine hitap etmekte ve çok güzel bir şekilde örneklendirmektedir.
- The Pragmatic Programmer: From Journeyman to Master, Andrew Hunt, David Thomas.
- Bir önceki kitaba benzer kitap. Programlama sırasında yararlanabileceğiniz bir çok konu aktarılmış. Buna da göz atmanızda fayda var.
- Design Patterns, Elements of Reusable Object-Oriented Software. Erich Gamma , Richard Helm, Ralph Johnson, John Vlissides.
- Yine benzer şekilde her yazılım mühendisinin bir kere okuması gereken bir kitap.
- Head First Design Patterns, Bert Bates, Kathy Sierra, Eric Freeman, Elisabeth Robson.
- Bir önceki kitaba benzer ama daha kolay takip edilebilen bir kitap.
- Software Requirements, 3rd Edition. Karl Wiegers.
- Yazılım gereksinimlerinin geliştirilmesi ve yönetilmesine ilişkin her türlü bilgiyi bulabileceğiniz bir kaynak.
- Software Architecture in Practice, 3rd Edition, Len Bass, Paul Clements, Rick Kazman.
- Yazılım mimarilerine ilişkin güzel bir kitap. Bu konuya ilişkin ayrıca bir yazı sizler ile paylaşacağım. Orada daha detaylı önerilerim olacak.
- Software Estimation: Demystifying the Black Art, Steve McConnel.
- Yine Steve McConnell dan harika bir kitap. Yazılım kestirim işleri için kullanılabilecek güzel bir kitap. Aslında fırsatınız olursa Steve McConnell’ın diğer kitaplarını da okumanızı tavsiye ederim, özellikle Professional Software Development ve Rapid Development kitaplarını.
- SWEBOK V3.0.
- Yazılım mühendisliğinin bütün alanlarına ilişkin bilgi alınabilecek bir referans kitap. Her yazılım mühendisi buna bir kere bakmalı bence. https://www.computer.org/web/swebok/v3 adresinden bedava temin edilebilir.
- Refactoring: Improving the Design of Existing Code, Martin Fowler.
- Yazılım dünyasında olan çoğu geliştiricinin tecrübe ettiği konulardan birisi de mevcut bir kodun iyileştirilmesi veya idame edilmesi. Martin Fowler, bu kitapta bu konuyu çok güzel bir şekilde işlemiş.
- Cracking the Coding Interview: 189 Programming Questions and Solutions, 6th edition, Gayle Laakmann McDowell.
- Bu kitap ne alaka diyebilirsiniz ama gerek kodlama gerekse temel bilgilerinizi sürekli canlı tutmak için bu tarz kitapların çok faydalı olduğunu düşünüyorum. Hele ki yurt dışı mülakatlarına hazırlanıyorsanız, bunu kesinlikle okumadan çalışmalarınıza başlamayın.
- Software Product Lines: Practices and Patterns, Paul Clements, Linda Northrop.
- Yazılım ürün hatları hakkında bilgi almak istiyorsanız başvurabileceğiniz güzel bir kitap.
- Avionics Certification – Complete Guide to DO-178, DO-178C, DO-254. Vance HIlderman and Tony Baghai.
- Emniyet kritik yazılım geliştirme işinde yer alıyorsanız okumanız gereken bir kitap. Bir çok standarda değiniyor. Do-178C ile ilgili daha detaylı bilgi için bir sonraki kitaba da başvurabilirsiniz.
- Developing Safety-Critical Software: A Practical Guide for Aviation Software and DO-178C Compliance. Leanna Rierson.
- DO-178C ye ilişkin detaylı bir kitap. Yukarıdaki kitaptaki konular yanından Do-178C ye daha fazla ağırlık vermekte.
- The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition). Frederick P. Brooks, Jr.
- Yazılım projelerinin doğası, proje yönetimi ve daha bir çok konuya ilişkin makaleleri bulabileceğiniz bir kitap. Her ne kadar eski tarihli olsa da, halen bir çok konu geçerli.
C++:
- Effective/More Effective C++/STL, Scott Meyers.
- Her C++ yazılım geliştiricisinin bir kere olsun okuması gereken, C++ ve STL’e ilişkin ipuçları içeren bir başucu kitabı olduğunu düşünüyorum.
- Effective Modern C++.
- Yukarıdaki kitaplardan farklı olarak C++11 ve C++ 14 e ilişkin de ipuçları var.
- A Tour of C++, Bjarne Stoustrup.
- C++ ilişkin önemli konuların hızlıca aktarıldığı bir kitap daha detaylı bilgi için bir sonraki kitaba bakılabilir,
- C++ Primer. Stanley B. Lippman.
- Yeni C++ 11 standardını da göz önüne alan ve C++ ı her şeyiyle anlatan ve Bjarne’nin kitabından daha kolay takip edilebilecek bir kitap. C++ ilişkin detaylı bilgi için başvurulabilecek güzel bir kaynak.
- Programming: Principles and Practice Using C++, Bjarne Stroustrup, 2nd Edition.
- C++11/C++14 konularını da içerecek şekilde C++ programlama dilinin aktarıldığı bir kitap. Aşağıda verdiğim kitaba göre daha kolay takip edilebilir bir kitap.
- The C++ Standard Library: A Tutorial and Reference, Nicolai M. Josuttis.
- Modern C++ kullanarak STL kütüphanesinin aktarıldığı güzel bir baş ucu kitabı.
- C++ Concurrency in Action, 2nd Edition, Anthony Williams.
- C++ programa dili kullanarak multi-threaded yazılım geliştirmek için güzel bir kitap.
- C++17 – The Complete Guide, Nicolai Josuttis.
- C++ 17 ye ilişkin modern C++ a dair her şeyi bulabileceğiniz bir kitap.
- C++ Coding Standards: 101 Rules, Guidelines, and Best Practices. Herb Sutter, Andrei Alexandrescu.
- C++’a ilişkin önemli bir takım ipuçlarının verildiği bir kitap. C++ duayenlerinden birisi tarafından yazılmış.
- Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions. Herb Sutter.
- C++ kullanılarak çeşitli problemlerin nasıl çözülebileceğinin gösterildiği bir kitap.
- The C++ Programming Language, 4th Edition, Bjarne Stroustrup.
- C++ a ilişkin her şeyi tasarımcısından öğrenmek için referans olarak kullanılabilecek bir kitap.
Not: Bu arada Bjarne’nin kitaplarına ilişkin bilgiyi, kendi ağzından şu video’dan dinleyebilirsiniz. Bu videoya ilişkin ayrıca bir yazı da hazırlıyorum.
Bilgisayar Grafikleri, Oyun Geliştirme ve Sanal/Arttırılmış Gerçeklik:
- Real time rendering, 4th Edition, Tomas Akenine-Möller, Eric Haines, Naty Hoffman.
- Bilgisayar grafikleri ile uğraşan her insanın okuması gereken, hatta kütüphanesinde yer alması gerektiğini düşündüğüm bir kitap.
- 3D Engine Design for Virtual Globes, Patrick Cozzi, Kevin Ring.
- Eğer CBS tabanlı görselleştirme ile ilgileniyorsanız, hele de sanal küre benzeri görselleştirme işleri ile uğraşıyorsanız. Bu kitap tam size göre.
- OpenGL Superbible: Comprehensive Tutorial and Reference, 7th Edition.
- OpenGL’e ilişkin detaylı bilgi almak için güzel bir başvuru kitabı.
- Game Engine Architecture, Third Edition, Jason Gregory.
- Kitap oyun motorları tasarlayıcıları için dursa da, oyun geliştiricileri ve bilgisayar grafikleri ile uğraşanların bu kitaba göz atmalarını şiddetle tavsiye ediyorum.
- The Art of Game Design: A book of lenses. Jesse Schell.
- Oyun geliştirme ile ilgileniyorsanız. Her ne seviyede olursa olsun, bu kitaba bir göz atın derim.
- Game Programming Gems/ GPU Gems/GPU Pro serileri.
- Açıkçası, bu kitapların hepsini almanızı önermeyeceğim ama 3B grafikler, oyun geliştirme veya benzeri işlerde karşılaşacağınız bir çok problem ve konu ile ilgili bu kitaplarda, reçete niteliğinde anlatımları bulabilirsiniz 🙂
- Agile Game Development with Scrum. Clinton Keith.
- Oyun geliştirme sırasında çevik (Agile) teknikleri nasıl uygulayabileceğiniz bence çok güzel anlatan bir kitap. Bir göz atmakta fayda var.
- The VR Book: Human-Centered Design for Virtual Reality. Jason Jerald.
- Piyasada VR ve ilintili konulara ilişkin bulabileceğiniz en kapsamlı ve zengin kitap diyebilirim. Ben oldukça faydalandım. Ayrıca yazarın Siggraph videoları da izlemeye değer.
- 3D Math Primer for Graphics and Game Development 2nd Edition. Fletcher Dunn, Ian Parberry
- Oyun programlama, 3B görselleştirme ve benzeri konularda ihtiyaç duyabileceğiniz her türlü matematiksel konularda size faydalı bir referans kitap.
- OpenGL ES 3.0 Programming Guide 2nd Edition.
- Mobil platformlar için OpenGL tabanlı yazılım geliştirmeyi planlıyorsanız, okumanız gereken birinci kaynak budur.
- Practical Augmented Reality: A Guide to the Technologies, Applications, and Human Factors for AR and VR (Usability) 1st Edition, Steve Aukstakalnis
- Konu ile ilgili çok fazla kitap olmamasına karşın, bu kitap size bu alanda kullanılan teknolojiler ve kavramları hızlı bir şekilde öğrenmenize yardımcı olacak. Kolay ve hızlıca okuyabileceğiniz bir kitap.