Programming -- Principles and Practice Using C++ (3rd Edition)
- Addison-Wesley tarafından yayımlanan "Programming -- Principles and Practice Using C++ (3rd Edition)" kitabının 2024 Nisan ayında çıkması planlanıyor
- ISBN: 978-0-13-830868-1
- Yayınevinin web sitesinden doğrudan satın alınabilir
Kitap tanıtımı
- Bu kitap, azimle çalışan herkesin programlamanın temel ilkelerini öğrenmesine ve gerçek programlama için gerekli pratik becerileri geliştirmesine yardımcı olmayı amaçlıyor
- Önceki baskılar binlerce öğrenci tarafından başarıyla kullanıldı
- Bu gözden geçirilmiş baskı şu özelliklere sahip:
- Okurun hedefinin, başkalarının kullanabileceği ve bakımını yapabileceği kadar iyi programlar yazmak olduğunu varsayıyor
- Belirsiz dil-teknik ayrıntıları yerine temel kavramlar ve becerilere odaklanıyor
- Bir programlama dili tanıtımı değil; prosedürel, nesne yönelimli ve jenerik programlamayı kapsayan genel programlama tanıtımı niteliğinde
- Donanımı verimli kullanmak için gereken düşük seviyeli tekniklerle modern yüksek seviyeli teknikleri birlikte ele alıyor
- Yararlı, doğru ve güvenli tipleri kullanmak ve korumak, ayrıca verimli kod yazmak için sağlam bir temel sunuyor
- Esas olarak programlama deneyimi olmayan kişiler için tasarlanmış olsa da, deneyimli programcılar da önceki baskıları daha etkili kavram ve tekniklere giriş olarak faydalı buldu
- Temel kavramları, tasarım ve programlama tekniklerini, dil özelliklerini ve kütüphaneleri geniş kapsamlı biçimde ele alıyor
- En güncel C++ sürümlerini kullanıyor (C++20 ve C++23)
- Girdi, çıktı, hesaplama ve basit grafik/GUI ile birlikte yerleşik tipler ve kullanıcı tanımlı tiplerin tasarımı ve kullanımını ele alıyor
- C++ standart kütüphanesi konteynerleri ve algoritmalarına giriş sunuyor
Yazar hakkında
- Bjarne Stroustrup, C++'ın tasarımcısı ve ilk uygulayıcısıdır; ayrıca "The C++ Programming Language", "A Tour of C++" ve çok sayıda popüler ve akademik yayının yazarıdır
- New York City'deki Columbia Üniversitesi'nde bilgisayar bilimi profesörüdür
- Dr. Stroustrup, ABD Ulusal Mühendislik Akademisi üyesi ve IEEE, ACM ile CHM fellow'udur
- 2018 Charles Stark Draper Prize, IEEE Computer Society'nin 2018 Computer Pioneer Award'u ve 2017 IET Faraday Medal ödüllerini almıştır
PPP3 tanıtımı
- "Programming: Principles and Practice using C++ (3rd Edition)" (PPP3), programlama deneyimi olmayanlar için bir programlamaya giriş kitabıdır
- Az miktarda programlama deneyimi olan ve stil ile tekniğini geliştirmek ya da yalnızca en güncel C++'ı öğrenmek isteyenler için de faydalı olacaktır
- Sınıf içinde kullanılmak üzere tasarlanmış olsa da, bir kendi kendine öğrenme kitabı bakış açısıyla yazılmıştır
- Kitabın önceki sürümleri, Texas A&M University ve başka birçok yerde elektrik mühendisliği, bilgisayar mühendisliği ve bilgisayar bilimi öğrencileri için ilk programlama dersinin temeli olarak kullanıldı
- PPP2'yi görenler, PPP3'ün boyutunun yaklaşık yarıya indiğini fark edecektir. Bunu hafifletmek için yapılanlar şunlardır:
- C++20 ve C++23'ün temel bölümlerinden yararlanılarak genelde bir dönemlik derste işlenen temel bölümler güçlendirildi ve taşınabilirlik için grafik/GUI bölümlerinin kodu Qt tabanlı olarak yeniden yazıldı (ör. tarayıcı ve telefon)
- Daha uzmanlaşmış bölümler (PPP2'de "ufku genişletme" olarak anılıyordu) gerektiğinde kullanılabilmesi için web'e taşındı
- Salt referans materyali kaldırıldı. Artık web'de daha fazla ve daha güncel kaynak bulunabiliyor (ör. cppreference.com)
- PPP2'nin destek materyalleri hâlâ kullanılabilir durumda (ders slaytları, kod vb.)
PPP3 örnekleri
- Önsöz: Bu kitabın ne vaat ettiği ve ne vaat etmediği
- İçindekiler
- Bölüm 0: Okura not. Bu kitapta benimsenen yaklaşıma dair birkaç not
- Bölüm 10: Görüntü modeli. Örnek bölüm. Eğer tamamen yeni başlıyorsanız bu bölümü hemen okumayın. Öğretmenlere ve deneyimli okurlara bu kitabın yaklaşık 5 haftada (haftada iki bölüm varsayımıyla) nereye kadar ulaştığını göstermek için yayımlanmıştır. Ayrıca biraz modern C++ gösterisi yapmak için de
Destek bilgileri
- C++ implementasyonları ve yazılım geliştirme ortamlarına bağlantılar (ve başlamak için biraz tavsiye)
- Modüllerin nasıl kullanılacağı (PPP_support.h kullanarak PPP modülünün nasıl derleneceği açıklaması dâhil)
- Modüller kullanılabilir olduğunda kullanılmak üzere PPP modülü
std ve PPP modüllerini en kolay şekilde kullanmak için "PPP.h" başlığı
- Başlık dosyası kullanımına geri dönmek gerektiğinde kullanılmak üzere "PPPheaders.h" başlığı
- PPP3'ün grafik/GUI kullanıcı arayüzü kütüphanesini de içeren GUI desteği (Bölüm 10-14). Bu kodu çalıştırmak için Qt kurmanız gerekir. Kullanıcı kılavuzuna bakın
- Çeşitli bölümlere ait örnek kodlar (TBD)
- Hata düzeltmeleri
- PPP temel alınarak PPP3 için güncellenmiş ders slaytları
- PPP kodlama stil rehberi
- Alıştırma materyalleri (TBD)
PPP2 bölümleri
- Bu bölümler C++23 yerine C++14 kullanılarak yazılmıştır, ancak hâlâ doğrudur ve konuları makul bir şekilde tanıtır
- Bölüm 1: Bilgisayarlar, insanlar ve programlama
- Bölüm 11: Girdi/çıktı özelleştirmesi
- Bölüm 22: İdealler ve tarih
- Bölüm 23: Metin işleme
- Bölüm 24: Sayısal hesaplama
- Bölüm 25: Gömülü sistem programlama
- Bölüm 26: Test etme
- Bölüm 27: C programlama dili
- Sözlük
Çeviriler
- Henüz yok. Önceki baskıların çevirileri için yazarın kitap kapak sayfasına bakın
GN⁺ görüşü
- PPP, programlamaya yeni başlayanlar için tanınmış bir kitaptı; şimdi C++20/23'ten yararlanan ve içeriği ciddi biçimde yeniden düzenleyip kısaltan 3. baskının gelmesi sevindirici bir haber.
- Özellikle GUI kısmının baştan sona Qt tabanlı olarak yenilenmiş olması, Qt'nin C++ dünyasında fiili standart GUI çerçevesi hâline geldiğini gösteren bir örnek sayılabilir.
- Modülerleşme gibi modern C++ tekniklerinin güçlü biçimde yansıtılması ve web ile bağlantının da artırılmış görünmesi beklentiyi yükseltiyor. Özellikle doğrudan web tarayıcısında çalıştırılabilen bir sürümün olması, eğitim amaçları için çok uygun görünüyor.
- Ancak en güncel C++ kullanıldığı için, yeni başlayanların kafa karışıklığı yaşaması da mümkün olabilir. Hâlâ başlangıç için C tarzı C++ ile başlamanın daha iyi olabileceği düşünülebilir.
- Yazar Bjarne, C++'ın yaratıcısı ve standardizasyon sürecinin başlıca isimlerinden biri olduğu için bunun en yetkin kaynaklardan biri olması bekleniyor. Yalnızca yeni başlayanlar değil, uzmanlar da Bjarne'nin seçtiği best practice'leri ve kullanım ipuçlarını öğrenebilir.
1 yorum
Hacker News görüşleri
C++20 modül özelliğinin çoğu derleyicide hâlâ tam olarak desteklenmemesi nedeniyle
import std;ifadesinin çalışmamasıyla ilgili endişeler dile getiriliyor. Bu durum yeni başlayanların kafasını karıştırabilir.GUI bölümünde FLTK yerine Qt kullanılması büyük bir değişiklik olarak görülüyor; Qt sektörde yaygın biçimde kullanıldığından bunun olumlu karşılanması bekleniyor. Ancak bunun öğrenme eğrisini nasıl etkileyeceği belirsiz.
Stroustrup'un kodunda
using namespace std;kullanılması sayesindestd::öneki atlanabiliyor ve bu da kod okunabilirliğini artırıyor.Stroustrup'un kodunda
#includesonrasında boşluğun tutarlı biçimde kullanılmaması soru işareti yaratıyor.Geçmişte UI, API ayrıştırma ve benzeri neredeyse her şey C++ ile yapılırken, bugün geliştirme yığınında C++'ın konumu daha alt seviyeye inmiş durumda.
Bu kitabın önceki sürümlerinden birini derinlemesine inceleme deneyimi olduğu ve bunun C++ anlayışını geliştirmede çok yardımcı olduğu belirtiliyor. Ancak böyle kitapları okumadan da C++ kodu yazan çok kişi vardı.
C++ hakkında güncel bilgiler içeren
C++ Annotationsadlı kitap tanıtılıyor.Hacmin azalmasının nedeni, 2. baskıdaki 'Part IV: Broadening the View' bölümünün kaldırılmış olması; ilgili içerik çevrimiçi olarak görülebiliyor. C++11/14 kullanan konular ise hâlâ geçerliliğini koruyor.
C++20 destekleyen bir IDE veya derleyici bulmanın zor olduğu, bu yüzden
import std;ifadesinin çalışmaması sorununa yönelik tavsiye istendiği belirtiliyor.