1 puan yazan GN⁺ 2024-04-20 | 1 yorum | WhatsApp'ta paylaş

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

 
GN⁺ 2024-04-20
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ı sayesinde std:: öneki atlanabiliyor ve bu da kod okunabilirliğini artırıyor.

  • Stroustrup'un kodunda #include sonrası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++ Annotations adlı kitap tanıtılıyor.

    1. baskının sayfa sayısı ve ağırlığının 2. baskıya kıyasla yaklaşık yarıya indiği belirtiliyor.
  • 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.