"Hangi Programlama Dilini Öğrenmeliyim"
Hangi programlama dilini öğrenmeliyim sorusu "Tornavida mı yoksa ingiliz anahtarı mı kullanmalıyım?" soruyla benzer niteliktedir.
Yani önemli olan öğrendiğiniz şeyle ne yapmak istediğinizdir. Programlama dilleri amaç değil, sadece işinizi görmek için birer araçtır.
Hangi programlama dilini öğrenmeliyim sorusu "Tornavida mı yoksa ingiliz anahtarı mı kullanmalıyım?" soruyla benzer niteliktedir.
Yani önemli olan öğrendiğiniz şeyle ne yapmak istediğinizdir. Programlama dilleri amaç değil, sadece işinizi görmek için birer araçtır.
Yazılım teknolojileri ve kullanım alanları
C# :Öncelikli olarak Masa üstü programları ve web, aynı zamanda tüm cihazlarda çalışan (Burası henüz tartışmalı, ama gelecekte öyle olacak gibi) şeyler yazmak istiyorum . kolay kod yazayım ama gerekirse windowsa, visualstudioya da 3-5 kuruş vereyim. Esnek olsun, herşeye kolay entegre olsun. lastik gibi bişey olsun.
VB.net :Konuşma diline yakın bi üslupla basit bişeyler yazayım, çalışsında nasıl çalışırsa çalışsın ööle yükseklerde gözüm yok. Kod yazarken hala insan olduğumu hissedeyim.
VB6 :Teknoloji Tarihçisiyim, Arkeoloğun hiyeroglif öğrendiği gibi programlama dili öğrenmek istiyorum. Windowsda çalışsın yeter.
Delphi :Kodum androidde, IOSda Mobilde çalışsın, webde çalışmasa da olur. Ama her platforma native compile etsin yani hızlı çalışsın. Kolay ve hızlı kod yazmak istiyorum fakat ölmeye yüz tutmuş bir firmanın ürününü kullanma riskini de alıyorum.
HTML & CSS :broşür gibi web siteleri yapmak istiyorum. Diğer web teknolojilerinin hepsinde bunu bilmek şarttır.
Javascript :Biraz yanardönerli web siteleri yapmak istiyorum.
JQuery :Hızlı, biraz karışık ve sayfa boyutunu azcık arttıran bi javascript yazmaya razıyım ama her browserda çalışsın.
PHP :Windows ve linuxda hızlı çalışan, veritabanı falan kullanabilen, bedava bir teknolojiyle web uygulamaları üreteyim.
Java :Hiçbişeye 5 kuruş vermeden masaüstünde mobilde windowsda linuxde webde hatta buzdolabında bile çalışacak şeyler yazmak istiyorum. berbat bir IDE kullanmaya ve biraz uğraşmaya razıyım.
C :Yüksek performans gereken uygulamalar yazayım. Düşük işlem gücü olan elektronik cihazlara maksimum verimli şekilde oturacak kod yazayım.
C++ :Yukarıdakinin yeni nesil versiyonunu kullanayım, içinde kolaylıklar olsun fakat öğren öğren bitmeyecek derya deniz librarylerin içinde gezeyim. Windows'un, Linuxun temellerine ineyim, driver katmanında takılayım. Profosyonel oyun yazayım. Gerekirse ömrümden ömür gitsin sorun değil.
NodeJs :Hem sunucu hem kullanıcı tarafında javascript kullanarak düşük işlem gücü isteyen, hızlı tekpi veren real time web uygulamaları üretmek istiyorum.
Assembly :Mikroişlemciler üzerinde direk çalışacak şekilde cihaza direk hitap eden ama insana hitap etmeyen bişeyle yazmak istiyorum. Performans birinci önceliğim. her işlemci için bu dilin farklı versiyonunu öğrenmeye de razıyım.
Python :Hızlı ve seri şekilde işimi göreyim, her windows ve linux türevi platformda çalıştırabileyim. fakat son kullanıcıya pek hitap eden bir çıktısı olmasa da olur. konsol programları ile işimi bitireyim.
Veritabanları
Bunların çoğu birbirine benzerler, önemli olan kullanım alanlarıdır.
MSSQL : Milyonlarca data tutsun, beni yarı yolda bırakmasın. Kurumsalsam parası neyse vereyim (16.000 usd gibi). Linux ile işim olmaz ileride de olmayacağını varsayıyorum.
Oracle :Böyle en büyük kurumlarda çalışacak şeyler deli performanslı veritabanları ile çalışayım. Parası mühim değil
MySQL :Kar amacı olmayan işlerimde veritabanına para vermiyeyim. Diğerlerinin yaptığı işi yaklaşık performansla yapsın.
Postgresql :Ne kişisel ne kurumsal işimde kapitalist düzene 5 kuruş kaptırmadan MSSQL/Oracle ayarında bi teknoloji kullanmak istiyorum. Benden başka fazla kullanan olmasın, razıyım.
SQLite :Milyonlarca kayıt tutmama gerek yok, uygulamanın ayarları, yada basit adres defteri gibi bilgileri tutsun. Programıma gömeyim, kullanıcı başka hiçbir veritabanı motoru kurmak zorunda da kalmasın.
NoSQL :Bunların dışında ve tablo yapısı kurmayı gerektirmeyen, kolay scalable (birden çok sunucuda rahatça paralel çalışan) beleş bişeyler kullanmak istiyorum. (MongoDb en popüleri şu anda)
Ne işe yaradığı mühim değil hangisini öğrenip daha çok para kazanırım?
Eğer bu zihniyetteyseniz baştan söyleyeyim ticarete falan yönelin. Zaten bu işler zevk almadan öğrenebileceğiniz iş değildir. Çünkü bi teknolojiyi adam gibi profosyonel öğrenmek için en az 2 seneye yakın deneyim gerekir. 2 senede teknoloji dünyası baştan aşağı değişebilir. Teknoloji genelde trendleri baştan yakaladığınızda iyi para getiren birşeydir. Onun için trendleri takip etmek önemlidir.
Fakat uzun vadeli bir hedef koymak isterseniz C ve C++ gibi 20 sene önce olan ve 20 sene sonra da olacağı garanti gibi olan şeylere yönelin. Bunlar aynı zamanda oldukça zor olduğundan öyle ha diyince öğrenilmez ve iş olanakları çok daha fazladır.
Daha basit birşey öğrenmek isterseniz Java nın da iş olanakları yüksektir ve gelecekte önemli bir yeri olacağı kesindir.