Syntaxı zor değil. Çoğu dille hemen hemen benzer. Zor olan şey C++'ın, doğru kod yazması.
C++ low level bir dil. (C#, Python, Java vb dillere kıyasla) Ayrıca C++ memory safe bir dil değil. Memory safe dediğimiz de, bir dilin kendi bellek yönetimini güvenli* bir şekilde yapmasından bahsediyoruz. Java da, Rust da memory safe dillerdir.
C++'ta bellek yönetiminin güvenliğinden sen sorumlusun. Bir değişken scopeta yaratıldığında, scope bittiğinde ölür. Sen o ölen değişkeni başka bir yerde referans olarak tutuyorsan, bu senin programında undefined behaviour'a sebep olur ve sigseg yada sigabrt yersin. İkisi de programı çökertirler. Segmentation error, işletim sistemi seviyesi hatadır, sigabrt ise C++'ın exception atacağı zaman uygulamaya vurduğu sinyal. (C++ exceptionlarda varsayılan olarak std::terminate çağırıyor, ve std::terminate'in de varsayılan olarak çağırdığı fonksiyon abort())
Yukarıda bahsettiklerim sana çok anlam ifade etmeyebilir, kısaca, dikkatsizsen C++'ta sabah akşam programların çökecek ve bunları ayıklamak uzun sürecek demek oluyor.
C++' ne zor bir dil, ne de kolay bir dil. Eğer arkasındaki konseptleri öğrenmezsen kesinlikle acı çekeceğin, zorlanacağın bir dil ama.
*: Bellek yönetimi her zaman runtime dinamik olacak diye bir şey yok. Rust'ı memory safe kılan mesela, ownership ve borrow checker.
Kitapları boş ver. C++ dökümantasyonu aradığın şey. Temel programlamayı öğrendikten sonra C++'ta bir şey öğrenmek istiyorsan, dökümantasyon kitaplardan daha yararlı.
C#'ta header dosyaları vb şeylere sahip. Tümleşik ne demek? Bütün derlenen programlar belli bir sıra ile derleniyor zaten?