Evet Alexis in dediği gibi web programlama dilleri ve diğer programlama dilleri arasında dağlar kadar fark var. Her iki taraflada uğraşan biri olarak bunu kesin olarak söyleyebilirim.
Java tam olarak OOP olarak çıkartılmış bir dildir ve her şey class lara bağlıdır. En önemli özelliği Platform bağımsız olmasıdır. Yani java da yazdığın kod hem windows ta hem linux ta hem unix te çalışır. Elbette Java run time ın kurulmuş olması lazım. Java'nın bu en güzel özelliği JVM (Java Virtual Machine) sayesinde olur. Java runtime makinenize bir program kurar. Bu program java kodu ile bilgisyar arasında bir tercüman görevi görür. Ama bi anlamda Platform bağımsızkın, JVM ye bağımlıdır. İşin ilginç yanı, Java öğrendikten sonra (ki bu documentasyonu kullanmayı öğrenmek ve gerçekten OOP gibi çalışabilmek demek (yani bir anlamda java lbrary sindeki class ları copy paste etmeyi öğrenmek demek)) aynı zamanda web programlama da yapabilirsin. JSP ilerilerde çok iyiye gidecek bir dil. Ve tabii Java'nın bu kadar ileriye gelmesinin en büyük sebebi: Beleş! IDE'lerinden, lisanslarına kadar her şeyi ücretsiz! Ama buna rağmen çok çokta iyi bir dil.
Visual Basic'e daha doğrusu VB ye değil .NET tarafına gelirsek Java'dan çok farklı değil. VB 8 ya da C# ya da J# (Yok yok Java değil o...) ya da Visual C++ aynı onlarda Java gibi .NET Framework bağımlılar. Yani onlarında bir tercümana ihtiyacı var. .NET Framework'un JVM den farkı, daha fazla dil desteklemesidir. Zaten .NET tek IDE bol bol dil anlayışına sahiptir. Delphi den C#'a kadar aşağı yukarı 30 dili destekliyor. Kişisel fikrimi soracak olursan sakın VB ye başlama (Zaten VB 6 dan hiç bahsetmiyorum onu gördüğün yerde kaç!). VB 8 de çalışmış biri olarak C# çok daha güzel bir dil ve .NET tarafını düşünüyorsan gelecek C#. Hani tek IDE bir çok dil demiştim ya. Aynı zaman C# ile ASP.NET 2.0 kodları da geliştirebilirsin. Hatta yazdığın kodlar ikiye ayrılıyor, biri dll ler biri de html ler. HTML lerin içinde hiç lojik komutlar olmadığından birlikte çalıştığın web designer ını gayet mutlu ediyorsun (sen designer değil web programmer sın, ne kadar Türkiye'de ikisde aynı insanmış gibi düşünülsede değil...)(Evet, evet smarty,Flexy, falan filan...)
Delphi hiç uğraşmadığım dillerden bir tanesi. Sebebine gelincede artık Delphi'nin herhangi bir geleceği olduğunu düşünmüyorum. Çünkü gelecek artık Framework savaşlarına doğru gidiyor. (Tabii hala desktop programlama kalırsa, esas gelecek web programlama, AJAX,ASP.NET,PHP,JSP,...) Borland'ın da Delphi için hala bu tarz bir framework oluşturma çabası yok. Varsada ben duymadım. Olsada piyasada ne kadar tutunabilir, bilmiyorum.
C/C++ muhtemelen, şu anda dünya üzerinde en çok kullanılana programlama dilidir. Eğer ciddi bir desktop aplikasyonu yapmak istiyorsan ya da Microsoft'ta çalışmak istiyorsan ve yazdığının hızlı çalışmasını istiyorsan kesinlike C/C++ öğrenmen gerekir. İkisi arasındaki fark ne? C tam olarak object oriented bir dil değildir. Class yerine structure lar vardır. Ama C++ OOP tur ve C'ye göre biraz daha kolaydır. Object Oriented Programming (Nesne Yönelimli Programlama) ne diye sorma, çünkü bu işin içine girmeden ne senin ne olduğunu tam olarak anlaman mümkün ne de benim sana anlatmam. Ama bana göre OOP tembelliktir başkalarının yazdığı classları kullanıp (copy paste) bir şey ortaya çıkarabilmektir.
Eğer desktop programlama hala kalırsa, yani bir exe üstünden çalıştırdığımız programlar, hepsi muhtemelen C/C++ ile yazılmaya devam edecek. Bütün bilgisayar oyunları da genelde C/C++ ile yazılır. Doom saf C dir mesela...
Hangisini öğrenmek sana kalmış. Ne yapmak istediğine, nasıl ypamak istediğine göre tercihlerin değişir. Eğer desktop programlama istiyorsan yukarıdakilerden birini seçebilirsin. Eğer web programlama istiyorsan PHP ya da JSP ya da ASP.NET 2.0 ya da ColdFusion ya da Python kullanabilirsin. Mobil aplikasyonlar için Symbian öğrenebilir ya da gene Java ve ya C# öğrenebilirsin (hem .NET'in hemde hemde JVM nin güzelliği platform bağımsız olması demiştim değil mi? Tek bir dil bilerek hem web,hem desktop,hem de mobile programlama yapabilirsin!). Hangi dili seçeceğin sana kalmış. Ama aşağı yukarı hepsi aynı şeyleri yapıyorlar. Artık hangi dille yazdığının bir önemi yok. Nasıl yazdığın, yani algoritman önem kazanıyor.
Bunları nasıl öğrenebilirsin, kesinlikle çalışarak. Okula gitmek falan çokta gerekli değil. Doğru bir şekilde çalışırsan ve doğru bi şekilde öğrenirsen okula gerek yok. Öğrenirken en büyük sorunun dillerin nasıl yazıldığı değil, onu nasıl yazacağın. Yani algoritman! Ve iyi bir algoritma kurmak analtik düşünebilmekten geçer. Bunu da kimse sana veremez. Kendin öğrenebilirsin ancak. Okumayı, çalışmayı, çaba harcamayı, denemeyi, monitör başında o koymayı unuttuğun noktalı virgülü arıyarak geçen geceler geçirmeni gerektirir analitik düşünebilmek
Veritabanlarına gelelim. Hepsi SQL den çıkıyor. Yani hepsinin aşağı yukarı kullanım şekilleri ve syntax ı (yazım kuralları) aynı sayılır. Farklı çeşitleri var: Oracle, Mssql, Mysql, Posgresql ilk aklıma gelenler. Eğer bir desktop aplikasyonu yazacaksan, veritabanlarına ihtiyacın olmayabilir. Yani veritabanına yazmak yerine bir .doc dosyasına ya da yalnızca senin exe dosyanın açabileceği dosyalar yaratabilirsin. Ama dedim ya gelecek web! Bunun içinde desktopta yazdığın program veritabanına kayıt yapmalı ki, networkteki başka insanlarda (network u yalnızca şirketi içi olarak algılama, bir firmanın amerikadaki ve türkiyedeki şubesi olarak düşün.) senin girdiğin verilere ulaşabilsinler! Zaten web programcılığı yapacaksan, veritabanları öğrenmek zorundasın. Balık hafızalı HTTP teknolojisinden başka şekilde kurtulamazsın.
Veritabanları hakkında ne diyebilirim diye düşünüyorum ama sanırım makinene kurup onları denemek en iyisi (sakın hepsini bir kerede kurma, makinen bir daha açılmayabilir!). Veritabanı mimarisi de ayrı bir olay elbette. Doğru tabloları, doğru primary key ler ve indexler le kurmak, ilişkileri doğru kurmak (bir tablonun bir kolon başka bir tablonun bir kolonundan bilgi alırsa falan filan ilişkili olurlar) veritabanından veri okurken inanılmaz hızını artıracaktır. Bu da okuyup öğrenme dışında biraz tecrübe gerektiriyor.
BilgeAdam, Netron,İ-con gibi eğitim kurumlarına gitmek sana ne kazandırır orasını bilemem. Sana sadece syntax öğretmek dışında ne verirler orasını bilmiyorum. Tavsiye ediyor muyum? Etmiyorum. Eğer sadece dil ğrenmek için oraya gideceksen gitme. Kendi evinde kendini zorlayarak daha iyi öğrenirsin. Ama başka şeyler için (çevre yapmak vs.) o zaman bir diyeceğim yok sana kalmış.
Biraz uzun bir yazı oldu sanırım. Ama umarım istedikerine yeterli bir cevap verebilmişimdir.
Aklıma gelmişken söyleyeyim. Ne yazık ki programlama çevreleri PHP dilini hor görürler. Hatta programlama dili olarak bile kabul etmezler
Ama bu değişecek yavaş yavaş sanırım OOP olması ile PHP gittikçe daha güzelleşiyor. Hele Pear! Java'nın çocukları derslerini iyi çalışmışlar diyebiliriz.