Forumda sık sık "Yeni başlayan" ya da "Başlamayı düşünen" bir kesimin sürekli sorduğu ve gündeme getirdiği konular ile ilgi olarak bir makale ve genel bilgilendirme konusu açmaya karar verdim. Bu sayede belki bu arkadaşlar soru sormadan önce bu konuyu okurlar ve konu açmalarına gerek kalmadan çözüme ulaşırlar diye umut ediyorum. (İnşAllah) Değerli forum yöneticileri de bu konuyu sabitler ise amacımıza ulaşabiliriz.
Bismillahirrahmanirrahim diyerek başlayalım.
1 - Delphi'ye yeni başlayacağım ama yeterli türkçe kaynak yok

- Öncelikle küçük bir tavsiye de bulunarak başlayacak olursak, eğer programlama öğrenmek ve bu işte ilerlemek istiyorsak mutlaka ama mutlaka en azından teknik dökümanları okuyabilecek ve kavrayabilecek düzeyde ingilizce bilgimizin olması şart. Çünkü bu sistemler bize ait değil hepsi gavur işi. Ve inan bana dünya da en son yapmak isteyecekleri şey Türkçe'yi yaygınlaştırmak. Bu yüzden İngilizce öğrenmen gerek dostum. Ancak şu da bir gerçek Delphi dili için de Türkçe kaynak sayısı yadsınamayacak kadar fazla. Aşağıda sana yol gösterecek linkler var bunlardan başlayabilirsin.
İngilizce için ücretsiz bir kaynak (Kardeşimiz ücretsiz olarak çok güzel bir şekilde bu dili anlatmış.)
http://www.ozkancelen.com/sitebuilder/page1.aspx
Türkçe PDF | 1200 Sayfa (Delphi 7)
http://tdsoftware.files.wordpress.com/2 ... delphi.pdf
Tuğrul Hocanın harika bloğu (Biraz ileri seviye ama çok sağlam makaleler var)
http://www.tugrulhelvaci.com/
2 - Delphi dilinin geleceği var mı?
- Harika ama bir o kadarda anlamsız bir soru

3 - Delphi ile mobil uygulama yazmak mümkün mü?
- Bir önceki madde de bunun mümkün olduğunu söylemiştim zaten bak okumadan geçmişsin.

Android Studio (Java) Native
http://developer.android.com/sdk/index.html
IOS SDK | OBJ-C / Swift
https://developer.apple.com/devcenter/ios/index.action
4 - Delphi ile web uygulaması geliştirebilirmiyim?
- Mobil programlamanın aksine Web ortamı için Delphi istediği ortamı bir türlü tutturamadı. Daha önce Delphi for PHP ve Delphi.NET ile bu pazara katılma çabasını gösterse de kullanıcılardan geçer not alamadı ve maalesef delphi web ortamından sınıfta kaldı. Ancak Intraweb ve Web Servisler için çeşitli ve başarılı ortamlar mevcut. (Raudus, UniGUI, CVDegTools) Bunlar ile gerçekten şık web uygulamaları geliştirebilirsin. Aynı zamanda son sürümler de DataSnap ve REST teknolojilerine önem vererek bu duruma gerçekten çok iyi bir aksiyon almış oldular.
5 - Delphi ile veritabanı uygulaması yazılabilir mi?
- Elbette! Delphi dili ile bir çok database ortamına bağlanıp uygulama yazabilmek mümkündür. Bunu delphinin standart (ADO vs.) bileşenleri ile yapabileceğin gibi 3. parti komponentler ile de (Zeos, FireDAC) yapmak mümkündür.
6 - Delphi'nin ne gibi avantajları var?
- Delphi'nin en önemli avantajı komponent desteğidir. Bu destek sayesinde bir çok işlem tek satır kod bile yazmadan gerçekleştirilebilir. Aşağıda bazı Delphi komponentlerini (Ücretli/Ücretsiz) bulabileceğin linkler veriyorum.
Torry
http://www.torry.net/
TMS Software
http://www.tmssoftware.com/site/
Raize
http://www.raize.com/DevTools/RzComps/
JVCL (JEDI Component Library)
http://jvcl.delphi-jedi.org/
- Bağımsızdır. (.NET kütüphanesi gibi bir eklentiye ihtiyaç duymaz. (Bazı durumlar haricinde)) Bu yüzden çıktı boyutları daha küçük olur.
- Hızlıdır ve yazımı oldukça kolaydır. Pascal yazım dilini kullanır.
- .NET'te olduğu gibi arka planda CLR gibi bir sistem koşturmaz. Bu sayede kısıtlamaları minimuma indirir.
7 - Delphi'nin zayıf yönleri nelerdir?
- Kötü bir IDE'si vardır. Hatta şahsen Visual Studio'yu kullandıktan sonra bazen Delphi'den soğuduğumu hissediyordum.

- Web desteği yeterli değildir. (Java ve .NET'e göre oldukça zayıftır)
8 - Delphi ile antivirüs yazılabilir mi? (Yeni başlıyorum hoca antivirüs ödevi verdi)

- Yazabilirsin tabii ki de. Hatta Kaspersky'ın leak olan kodlarında Delphi dili ile yazılmış kütüphanelerde var. (7 dil kullanılmış. C,ASM, C++, Delphi, WCF, VB, JAVA) Ancak bir antivirüs uygulaması asla tek bir dil ile yazılmaz. Bunun çeşitli nedenleri var tabii ki de. (Hız, Framework, Görsel Tasarım vs.) Tabii ki bir de yüksek seviye ve düşük seviye diller durumu var. Machine Code falan hiç uğraşılmaz onlarla sen en iyisi hocana söyle sana Hastane Otomasyonu versin.

9 - Delphi'yi ne kadar zamanda öğrenebilirim?
- Bu tamamen senin öğrenme becerine ve çalışma disiplinine kalmış. Eğer sende benim gibi Youtube'da bir eğitim videosu izlerken bir anda kendini Beşiktaş - Torku Konyaspor maçının golleri sayfasında buluyorsan öğrenmen biraz gecikebilir.

10 - Hangi programlama dilini seçmeliyim?
- Eğer bu maddeye gelene kadar yukarıda sıraladığım hiçbir maddeyi okumadıysan soracağın soru tam olarak da bu olacak

11 - Yaptığım yazılımı Crack'ten (Kırılmaktan) nasıl korurum?
- Yazdığın uygulamaya göre değişen bir kavram olmakla beraber Offline çalışan uygulamaları korumak daha zordur. Çünkü uygulama ile yayımcı arasında hiç bir bağ kurulamaz. Lisanslama işlemleri için genellikle bu forumda TurboPower OnGuard bileşeni tavsiye edilse de bir yazılımı korumanın %100 bir yolu yoktur ve olmayacaktır da. Ancak bu konuda şunu söylemem gerekiyor. Bazı yeni başlayan arkadaşlarım ilk yazdıkları hesap makinesi uygulamasını bile lisanslama peşindeler.

[*]HDD Fabrika seri numarasına göre Seri no üretmek
[*]USB dongle gibi aparatlar ile donanımsal lisanslama yapmak
[*]Kendi ürettiğiniz bir algoritma ile Obfuscate ya da Hex şifrelemek.
[*]Debug işlemine karşı korumaya almak.
[*]DLL ile lisanslama (Adobe'nin en son kullandığı teknoloji / Ancak hala kırılmaya devam ediyor

gibi seçenekler mevcut. He şunu da söylemek zorundayım bazen Crack işlemi bir pazarlama politikası ya da rakip firma tarafından düzenlenen bir operasyon olarak da karşımıza çıkabiliyor.
12 - Ben virüs yazmak istiyorum yardımcı olur musunuz?
- Zaten sen ve senin gibiler yüzünden Delphi dili Trojan diline döndü. Sayenizde Antivirüsler artık zararlı kod aramak yerine neredeyse Delphi Compiler imzası olan her uygulamayı gömçürüyorlar. Yürü git işine buradan sana ekmek çıkmaz.

13 - Delphi'ye nereden başlamalıyım?
- Buradan (http://www.delphibasics.co.uk/)
14 - Mail gönderme - Chat - FTP Client için örnek verir misiniz?
- Burada Indy'nin orjinal demoları mevcut. (http://www.indyproject.org/sockets/demos/index.en.aspx)
15 - Delphi için faydalı linkler?
- StackOverflow (http://stackoverflow.com/)
- MSDN (http://msdn.microsoft.com/tr-tr/dn308572.aspx) // Microsoft'un Developer ağı. Delphi örnekleri yoktur ancak diğer dillerden dönüşüm yapabilir ve API kullanımlarını inceleyebilirsiniz. Muhteşem bir kaynaktır.
- DelphiBascis (http://www.delphibasics.co.uk/)
- Embarcadero Wiki (http://docwiki.embarcadero.com/)
- Delphi About (Zarko Gajic) (http://delphi.about.com/)
Tavsiyeler
Buraya kadar dilim döndüğünce bazı şeyleri anlatmaya çalıştım. Forumumuz da çok değerli hocalarımız ve canı gönülden yardım etmeye çalışan değerli arkadaşlarımız var. Öncelikle şunu unutmamak gerekir. Burada ya da diğer forum ve sitelerde ki (Ücretsiz olanlar) kullanıcılar gönüllü olarak yardımcı oluyorlar ve bunun için kimseden bir ücret talep etmiyorlar. Bu doğrultu da her şeyden önce "Saygı" kavramını aklımızın bir köşesine koyalım.
Eğer programcı olmak istiyorsan çok okumalısın ve çok pratik yapmalısın. Bu iş çocuk oyuncağı değil tabii ki de. Ciddi bir iş ve zaman ayırmak gerekir. Aynı zamanda çok kuvvetli bir sabrın olmalı. Kitaplar almalısın, İngilizce dili ile yazılmış kitaplar çok daha faydalı ve kapsamlı oluyor. Örnekleri incelemelisin ve bol bol kendi örneklerini oluşturmalısın. Copy/Paste programcılığı seni bir yere kadar götürür. Bir yerden sonra istediğin kodu bulamayınca program yazmaktan vazgeçersin. Hepimiz ucundan köşesinden Copy/Paste işini yapmışızdır elbet ama en azından o aldığın kodun değişkenlerini ve parametrelerini bile değiştirsen sana bir şeyler katar. Bir sonra ki örneğinde o kodu kendi yazarsın ve kimseden yardım dilemezsin.
Özellikle çok değişken olan bu sektörde sürekli güncel kalmalısın. Kendini yenilemezsen maalesef ki başarılı olamazsın. Tabii ki bu söylediklerim bu işi meslek olarak yapmak isteyenler için geçerlidir.
Makalemin sonunda bir programcının kesinlikle öğrenmesi ve bilmesi gereken (Temel seviyede) kavramları sıralamaya çalışacağım. Bu maddeleri öğrendikten sonra sende farkedeceksin bu işlerin ne kadar eğlenceli ve üretmenin ne kadar güzel bir duygu olduğunu.
Bilinmesi gereken kavramlar...
* Veri tipleri, Özellikleri, Tanımlanma şekilleri
* Procedure / Function / Constructor / Type
* Döngüler (For, While - do, Repeat - Until)
* Diziler (Arrays)
* Sınıflar (Classes)
* Pointer
* Thread
* Stream
* API
Bu saydıklarıma çok daha fazlası eklenebilir.(Unuttuğum kesin vardır).
Öğrenme ile ilgili etkili sözler
Zevkle öğrendiğimizi, hiçbir zaman unutamayız.
Alfred Mercier
Birçok şeyi orta derecede öğrenmektense, az şeyi tam öğrenmek daha iyidir.
Andre Maurois
Önce kendi gideceğin yolu öğren, sonra öğretmeye kalk.
Budha
Öğrenmek için çok çalış, bilgi insanın daha zekice ve tesirlice çalışmasını sağlar.
Charles Schwab
Bildiğinizi zannetmeniz, öğrenmemenizin en büyük düşmanı olmuştur.
Claude Bernard
İyi çalışmalar...