coyistikadres' Alıntı:
Php geliştiricisiyim, Javascript yazıyorum ama başından beri masaüstü yazmak istediğimden yavaştan geçmek istiyorum ancak gerizekalımıyım 2 haftadır bir dolu kaynak indirdim izledim gezindim. Python ile birlikte, socket, sqllite, urllib, beautifulsoap, Qt,Pyqt videoları izledim ancak bir şey üretemiyorum. Kafamda mantıkları var. İngilizce de olsa izliyorum ve pek değişen bir ş ey olmuyor benim için.
Nasıl yardımcı olabilirsiniz? Daha önce de incelemişliğim var sonuç olarak maruz kaldım. Pyqt kullanarak python ile bir uygulama çıkarmak istesem yine videolara sarılacağım. Sorun neyden kaynaklı? 
Farklı yollar da denedim, pratikle öğrenmek, sadece video izlemek... gibi gibi.  

C++ öğrenilmesi zor bir programlama dili değildir. Sadece kullanabileceğin o kadar fazla avantaj vardır ki önemli olan bunu ne şekilde kullanabilme yeteneğinin oluşmasıdır. 
Örneğin bir pointeri shared, unqiue ve weak tipinde farklı şekilde tutarak hafıza kaybını oyundaki görüntü veya oynanış işlerini çok kolayca bir şekilde yapabilirsin
Diğer bir şekilde bir sınıfın objesini yaratırken bir diğer iki sınıftan katılım alarak sana inanılmaz bir efektif avantaj sağlayacaktır.
Bunları daha çok sayabilirim en kısacası senin öğrenmen gereken şey programlamanın aslında projede önemli olmasından ziyade öncelikle ne öğrenebileceğindir? 

UE4 için bir oyun programlama beceresini öğrenmek istiyorsan blueprintler ile başla, aktörleri, pawnları, player controller, game mode ve bunun gibi sınıfları efektif bir şekilde kullanmak ve  ne yaptığını anlamak açısından iyi olacaktır. Aynı zamanda delegeleri de tanımış olacaksın (Event Dispatcher) veya programlamadaki Interface mantığını (Blueprint Interface) ile! Ya da bir diğer şekilde bir grafik programlayıcısı olacaksan OpenGL ya da DirectX grafik kütüphaneleri vertexleri çizip onlarla oynaman için güzel bir başlangıç olacaktır. 

Aynı şekilde bir metodu referans ile geçiş sağlayarak objenin esas konumunu alman veya normal bir şekilde onun kopyasını oluşturarak yarattığı efektif hızlandırıcı sayesinde
C++ zor bir değildir. Sadece yaptığınızın işin ne olduğunu anlamanız gereklidir. C++ ile stackoverflow gibi sitelerden kodları kopyalayıp yapıştırarak bir iş yapamazsınız. 


Öğrenmen gereken konuları buraya yazıyorum önce emeklemek daha sonra yürümek ve koşmak:

Dünyaya gelmeden önce bilmen gerekenler -> programlamanın mantığı, değişken, diziler, döngüler, koşul şartları, aritmetiksel operatörler, ön-işlemci direktifleri(preprocessor directives), fonksiyonlar, switch vs...
Emekleme ->  Pointer(göstergeç)ler, referanslar, NTP(Nesne Tabanlı Programlama) sınıflar, yapılar, objeler metodlar kapsülleme yöntemleri, sanal metodlar, çokelverişlilik(polymorphism), stack/heap/static kavramlarını öğrenmek.
Yürüme ->  Garbage Collector gibi düşünmen, Hafıza Yönetimi anlamak (malloc/free, new/delete, shared_ptr/make_shared, unique_ptr,/make_unique weak_ptr.) Şablonlar, STL(Standart Şablon Kütüphanesi) uygulamalarını anlamak,  lvalue, rvalue referans geçişleri
Koşma -> Kapsamlı Şablonlar, Yazılım dizaynlarını efektif bir şekilde uygulamak.

emeklediğin ve yürüdüğün işleri bilerek doğru bir şekilde koşmayı öğrenirsen yüzmeyi de öğrenebilirsin.
ve eğer c++ dilini doğru bir şekilde öğrenirsen bir Usain Bolt kadar hızlı koşabilrisin. bu hiçbir diğer dil için geçerli değildir.

Hangi Kaynak? İnternette onlarca kitaplar var (Bjarne Stroustrup'un yazdığı, Daha önceden progamlama dilleri kullananlar için Accelarted C++ var. Professional C++ var. C++ Primer var Ben PDF'leri okuyarak hala öğreniyorum.)
 
Merhaba,
Genel olarak programcılık biraz süreç isteyen bir iş. Bilgisayar programlarının nasıl çalıştığını en başta kafanda anlayabilmiş ve kurgulayabiliyor olman gerekir. Bu sürece geldiğinde dilin çok da bir önemi kalmıyor. Yazacağın programı kafanda kurgulamış olduğundan geriye boşlukları doldurmak kalıyor.

Temelden başla. Eğer hiçbir şey bilmiyorsanız gidipte hemen BeautifulSoup videosu izlemeniz size hiçbir şey öğretmez. Internet nedir nasıl çalışır, HTTP, TCP/IP ve diğer protokoller, RAM nedir neden kullanılır, RAM ile CPU arasındaki ilişki nedir gibi şeyleri öğrenin. Bu temelleri aldıktan sonra o bahsedilen kütüphanelerin ne işe yaradığını, birden pat diye durduk yerde anlayacaksınız. :))))

C++ konusunda @Khubur 'un dediklerine katılıyorum. Dİğer diller bir tarafa C++ bir tarafa.
Bu dilde program yazarken gerçek bir program yazdığınızı hissediyorsunuz. Elinizdeki bilgisayarın gerçek gücünü parmaklarınızda hissedebiliyorsunuz. İşte bu duyguyu seviyorum ben. :)

C++ zor mudur? Diğer dillerden bir tık daha zordur sadece ama zor değildir. Mesela Java dilinde -en basitinden- GUI kütüphaneleri platformla(derleyici) beraber gelir. Tek yapmanız gereken Swing kütüphanesini dahil etmek ve devam etmek. 
C++ 'da ise derleyici ile beraber böyle bir kütüphane gelmez. Çeşitli kütüphaneleri indirip yazdığınız programa bağlayıp derlemeyi bilmeniz gerekir. Zor bir işlem değil ama haliyle yeni başlayanların gözünü korkutuyor. (Tabi Qt kütüphanesi için geçerli değil bu, hazır olarak QtCreator ile beraber hemen kullanmaya başlayabilirsiniz.)

C/C++ dilinde olan göstericiler mesela ilk başta göze korkunç gelir ama yukarda dediğim gibi CPU/RAM ilişkisini anlarsanız göstericilerin ne işe yaradığını birden kafanızda bir ampül parlayacak ve anlayacaksınız. 

C++ zor bir dil değildir ama çok fazla tecrübe/bilgi isteyen bir dildir. Neyi neden yaptığınızı bilmeniz gerekir.
 
:D beautifulSoap'ı amacınıda biliyorum 2 yıldır php geliştirisiyim. Http protokolleri get ve post bunları javascript ile de bol bol kullandım ::D c++ için QT indirdim onu karıştırııyorum sqllite bağlantısı sağlamış bulunmaktayım giriş çıkış işlemi yaptırabiliyorum yeni pencere açmak vs.
Şuan symfony ve laravel kullanabiliyorum artı bir de javascript framework'ü var ancak artık buna geçmek istiyorum. 
C++ ile gömülü sistemlere geçmeden önce masaüstünde gimp gibi programları düzenlemek istiyorum sonra da bu konuda bir şirket açmak istiyorum ama kaynakları sıraladım izliyorum 2 haftadır daha fazla yoğunlaştım ama biraz yardıma ihtiyacım var. Neleri yanlış yapıyorum iterator  vs. Pointer adres tutuyor ancak mantıksal olarak herşey kafamda. Pratikte hiçbirşey yok.  Misal python da youtube downloader veya website copier benzeri birşey yapmak istesem yine videolara sarılacağım.
@Khubur dan sonra C++ 'yi Unreal ile öğrenmek daha mı iyi olur diye düşündüm. Yani kendimi aptal gibi hissediyorum. Nasıl öğrenebilirim. Programlama opp gibi şeylerde altyapım var sadece.
 
coyistikadres' Alıntı:
:D beautifulSoap'ı amacınıda biliyorum 2 yıldır php geliştirisiyim. Http protokolleri get ve post bunları javascript ile de bol bol kullandım ::D c++ için QT indirdim onu karıştırııyorum sqllite bağlantısı sağlamış bulunmaktayım giriş çıkış işlemi yaptırabiliyorum yeni pencere açmak vs.
Şuan symfony ve laravel kullanabiliyorum artı bir de javascript framework'ü var ancak artık buna geçmek istiyorum. 
C++ ile gömülü sistemlere geçmeden önce masaüstünde gimp gibi programları düzenlemek istiyorum sonra da bu konuda bir şirket açmak istiyorum ama kaynakları sıraladım izliyorum 2 haftadır daha fazla yoğunlaştım ama biraz yardıma ihtiyacım var. Neleri yanlış yapıyorum iterator  vs. Pointer adres tutuyor ancak mantıksal olarak herşey kafamda. Pratikte hiçbirşey yok.  Misal python da youtube downloader veya website copier benzeri birşey yapmak istesem yine videolara sarılacağım.
@Khubur dan sonra C++ 'yi Unreal ile öğrenmek daha mı iyi olur diye düşündüm. Yani kendimi aptal gibi hissediyorum. Nasıl öğrenebilirim. Programlama opp gibi şeylerde altyapım var sadece.

her şeyi karman çorman etmişsin. öncelikle ne iş yapıyorsan bir tane işe yönel. web geliştireceksen php frameworkleri falan öğren javascript öğren nodejs öğren vs.. QT ile uğraşacaksan qt ile uğraş. oyun geliştireceksen SFML ile başla, grafik programlamak istiyorsan OpenGL ile git ne bileyim mobil oyun yapacaksan Unity ile başla. PC, Konsol ya da VR oyunu yapacaksan UE4 ile başla. önce bunlardan birisini seç ve bunda uzmanlaşınca bir yerlere gelmeye çalış. kitaplardan öğrenebilirsin bunun dışında konular yukarıda var. pratikte hiçbir şey olmamasının sebebi muhtemelen üniversiteden mezunsun ve saçma sapan teorik bilgileri yüklediler. sana şöyle bir yemek var patatesli çöğrekli bunu yapan 1920 yılında ölmüş 20 yıl yaşamış dünyada falan gibi şeyler söylediler sana yemek yapmayı öğretmediler al kendin yap diyorlar. o yüzden kendine bir alan seç mesela oyunlarda yapar zeka, sadece okumak için okuma sürekli pratik yap A* yolbulma algoritmaları yap. ya da ağ programlama ile uğraşacaksan soketler yaz yolla öğren oku... fakat 2 gün ağ programlayıp 3 gün yapay zekayla uğraşıp geri kalan haftayı web programlayarak geçirme. bir şey kazanamazsın.
 
Hocam C++ öyle kısa sürede öğrenilecek bir dil değil. Eğer C++ 'ın kullanıldığı alanlardan birine yatırım yapmayacaksanız hiç bulaşmayın.
 Bu alanlar nelerdir:

1. Oyun programlama: 
Anladığım kadarıyla oyun programlamaya üst düzey bir ilginiz yok. Hal böyleyken hem C++ gibi bir dil hem de Unreal gibi karmaşık bir motoru kullanmak sizi yorabilir. İlla oyun programlayarak C++ öğrenmek istiyorsanız SDL, SFML gibi Unreal 'a göre basit 'framework' ler ile ilgilenebilirsiniz.

2. Gömülü Sistemler:
Aslında sizin için en iyi çözüm bu gibi duruyor. Arduino, RasPi, PIC gibi donanımlar alın ve bunların üzerinde  C/C++ programlamayı öğrenin. Oyunda yazabilirsiniz, normal uygulamada. Bu aletleri programlamak çok zevkli. Robot, drone falan yaparak da öğrenebilirsiniz.

GIMP gibi açık kaynak programlara katkı vermek istiyorum demişsiniz ama dediğim gibi bu 2 günde olacak iş değil. Herhangi bir dili geçtim temel yazılım geliştirme prensiplerine hakim misiniz? Bu gibi karmaşık projelerde prensiplere sıkı sıkıya bağlı kalınır. Öyle haldır huldur program yazılmaz.

Ki GIMP zaten C++ ile değil C dili ve GTK kütüphaneleri ile yazılmış bir yazılımdır.

Mesela GIMP ten rastgele bir kaynak dosya aldım. Neler anlıyorsunuz?
https://github.com/GNOME/gimp/blob/master/libgimpbase/gimpcpuaccel.c

Yazdıklarınıza bakınca yukarda dediğim gibi temel yazılım geliştirme prensiplerine hakim değilsiniz gibi düşünüyorum. 
Hani PHP yazıyor olabilirsiniz. Hemen bir PHP  dosyayı açıp paldır küldür bir şeyler yazmaya başlayabilirsiniz. OOP birçok geliştirici için hak getire zaten. Genelde amatör ruh olduğu için soran da pek olmaz. PHP bu yönden çok eleştirilir. Pek kural, prensip uygulamazsınız. C++ tarafında tüm bu düşünce biçiminden sıyrılıp farklı olarak düşünmeniz gerekecek. C++, Java, C#gibi dillerle geliştirilen projelerde dilin bile önemi yok aslında. Günlerce proje planlaması falan yapılır. Kağıt üzerinde plan oluşturulur önce. Çünkü bir yazılım geliştirmenin %98 en önemli kısmı bu: proje planlama...
Yazılım mimarları, sistem mühendisleri falan genelde bu tip işlerle uğraşırlar.

Anlatabildim mi bilmiyorum. Hevesinizi kırmaya çalışmıyorum. Elimden geldiğinde yardımcı olmaya çalışıyorum. Öğrenmek için biraz zaman yatırımı yapmalısınız. Zamanla olur. 

İlk adımda yapmanız gerekenler
1. Temel yazılım geliştirme prensiplerini öğrenmek
2. Bilgisayarların çalışma biçimlerini ve donanımı özellikle CPU/RAM ilişkisini iyi bilmek
3. Internet derya deniz. Gördüğünüz, öğrenidğiniz bir terimi araştırmak, saatlerde döküman okumak.

(Tabi İngilizce varsa bu süreçler hızlanır.)