Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

>> 
Not: Bu forum ilk açıldığında yazmıştım bunu. Evi taşıyorduk, telefonu iptal ettirdik, internetsiz kaldım, bu yazı da makinamda kalmış ölece. Bi de sular kesikti, o yüzden çalışamadım. Örtmenim Burçin saçımı çekiyo!


Bilgisayar işine ilgi duyan, bir şeyler öğrenmek, geleceğine yatırım yapmak, bunu yaparken de doğru yolda ilermek, gereksiz çalışmalarla vakit kaybetmemek isteyen gençlerin en çok sorduğu soru bu. Bir diğeri de "ne tavsiye edersiniz?" Bu siteyi açtığımızdan beri sık sık bu tarz sorular içeren mesajlar alıyorum. Uzman değilim ama daha önce verdiğim cevaplardan bir derleme yapayım.

Öncelikle şunu söylemek gerek: "Ben ne yapayım" sorusunu soran kişi iyi bir yoldadır. İyi birşeyler yapabilmek için azminin ve kararlığının olduğunu gösterir. İyi bir yoldadır ama yolun başındadır. Bu yüzden hemen yorulmamalı yolun sonuna kadar azmini ve kararlılığını korumalıdır.

Bunu soran kişi eğer halen okuyorsa derslerine hergün düzenli olarak çalışmakla işe başlayabilir. Üniversiteye girmediyse iyi bir üniversitede iyi bir bölümü kazanmayı hedefine alabilir. Çünkü başarılı olmak için iyi eğitim şarttır. İngilizce bilmiyorsa öğrenmek için hemen bugün kollarını sıvamalıdır. Çünkü her türlü bilgiye ulaşmamızı sağlayan Internet büyük oranda İngilizce'dir.

Daha önemli oldukları için derslerden ve İngilizce'den öncelikle bahsediyorum. Ama farkındayım, soruyu soran arkadaşların asıl yapmak istediği şey; bir programlama dilini öğrenmek ve bu dille, istediği işleri yapabilecek şekilde bilgisayarı programlamak ve bunu peynir ekmek yeme rahatlığında yapmak. Bu bağlamda alt sorular da şunlar oluyor:

1. Hangi programlama dilini öğrenmeliyim?

Çok sayıda kişi tarafından kullanılan (popüler), halen geliştirilmeye devam edilen (güncel) ve değişik ihtiyaçlara cevap verebilecek (kapsamlı) bir dil öğrenmelisiniz. Bu üç kriter önemlidir. Bir dilin popüler olması daha çok kaynağa sahip olacağınız, soru sorduğunuzda cevap alma şansınızın yüksek olacağı anlamına gelir. Güncel olması yeni teknolojilerle birlikte kullanabileceğinizi gösterir. Kapsamlı olması da; değişik birşeyler yapmak için yeni diller öğrenmek zorunda kalmayacağınızı gösterir. Bir diğer kriter ise dilin kolay ya da zor olmasıdır. Bazı diller alt seviye işlemlerin yapılabilmesi için farklı özelliklere sahiptir. Bu özellikler dilin öğrenilmesini zorlaştırır. Bu üç kritere ve zorluklarına göre programlama dillerine bakalım:

C          : Popülerdir, günceldir, çok kapsamlıdır, zordur
C++        : Popülerdir, günceldir, çok kapsamlıdır, zordur
Java       : Popülerdir, günceldir, kapsamlıdır
C#         : Popülerdir, günceldir, kapsamlıdır
VBasic.Net : Popülerdir, günceldir, kapsamlıdır
PHP        : Popülerdir, günceldir, kapsamlıdır, kolaydır
Ruby       : Popüler değildir, günceldir, kapsamlıdır, kolaydır
ASP        : Popülerdir, güncel değildir, sadece webe yöneliktir, kolaydır
ASP.NET    : Popülerdir, günceldir ama bir dil değildir. C# veya VisualBasic.net ile kullanılır.
Pascal     : Popülerdir, günceldir, kapsamlıdır, zor sayılır
Cobol      : Popülerdir, pek güncel değildir, veritabanı programlama için kullanılır.
VBasic 6.0 : Popülerdir, güncel değildir, kapsamlıdır, kolaydır
JavaScript : Popülerdir, günceldir, web veya sistem yönetimi için kullanılır.

Bu listeyi uzatabiliriz. Ama sonuç olarak Java, C#, VBasic.Net ve PHP dillerinden biri iyi bir tercih olacaktır.

2. Filanca programlama dilini nasıl öğrenebilirim?

Öncelikli olarak öğrenmeniz gereken şey dil değil programlama mantığıdır. Bir iş bilgisayara nasıl yaptırılır, problemler bilgisayarda nasıl ifade edilir ve bilgisayarlar bu problemleri nasıl çözer, bunu anlamalısınız. Bunu bir kere anladıktan ve bir dili güzelce öğrendikten sonra herhangi bir diğer dili öğrenmek sizin için hiç sorun olmayacaktır. Çünkü bütün dillerde for, while döngüleri, if-then-else yapısı vardır. Mantık aynıdır, farklı olan syntax'dır. Önemli olan for döngüsünün hangi durumda kullanılacağını, if-then-else'in ne işe yaradığını bilmektir. Syntax öğrenmek işin detayıdır, kolayıdır.

Peki programlama mantığını nasıl öğreneceksiniz? Bunu anlatan kitaplardan, web sitelerinden öğrenebilirsiniz. Her hangi bir dili anlatan hemen her kitap ilk bölümlerinde bu işin mantığını anlatır. Değişken, dizi tanımlama, for, do, while, foreach döngüleri, if-then-else yapıları gibi konuları uzun uzun bol örnekle anlatan kitaplar araştırabilirsiniz. Mesela C# öğrenmeye karar verdiniz ama programlama mantığını iyi anlatan bir C# kitabı bulamadınız. Java veya PHP ile programlama mantığını iyi anlatan bir kitap görürseniz çekinmeden alınız. Çünkü öğreneceğiniz şeyler C#'ta da aynen geçerli olacaktır.

Öğrendiğiniz şeylerin kitabî olması da önemlidir tecrübî olması da. (kitapsal ve deneysel mi deseydim?) Önceliği kitaplara vermeli ama mutlaka kolları sıvayıp bilgisayarınızda öğrendiklerinizi denemelisiniz. Parametreleri (değişkenlerin başlangıç değerlerini) değiştirerek programı tekrar çalıştırmalı, çıktıdaki değişiklikleri izlemelisiniz. Kullandığınız dil debug desteği veriyorsa mutlaka kullanmalısınız. Debugging size çok şey öğretecektir.

Ayrıca tecrübeli yazarlarımıza programlama mantığını anlatan makaleler yazması için baskı yapabilirsiniz. Eğer yazmazlarsa girişlerini kötü oylamakla tehdit edebilirsiniz.

3. Bir programlama diline ait kitabı baştan sona okudum. Kod örneklerini yazdım çalıştırdım. Bir sürü şey öğrendim. Ama hala bir uygulamayı baştan sona analizi ve kodlamasıyla yapabilecek durumda değilim. Ne yapmalıyım?

İyi bir programcı olabilmek için bir dile ait kitabı yalayıp yutmak yetmez. Dil bilmek uygulama geliştirmek için gerekli olan minimum bilgidir. Bunun dışında bilmeniz (öğrenmeniz) gereken şeyler de vardır ki bunlar uygulamanızın türüne göre çeşitlilik gösterir. Örneğin verilerin kaydedildiği, listelendiği ve raporların alındığı bir uygulama geliştireceksiniz. Bilmeniz gerekenlere şunları eklemek durumundasınız: SQL ve veritabanı yönetimi. İkisi farklı konulardır, hatta farklı uzmanlık alanlarıdır. Veya örneğin bir oyun programı yazmanız gerekiyor. Fazladan bilmeniz gereken şey çizimler için gerekli olan OpenGL, Direct3D veya DirectX olacaktır.

Ya da örneğin web üzerinde çalışacak bir veritabanı uygulaması geliştirmeniz gerekiyorsa, iyi bir şeyler yapabilmek için şunları bilmeniz gerekecek: PHP (veya Java, C#, vs), HTML, CSS, JavaScript, DHTML DOM, SQL, XML, AJAX... :)

Gözünüz korkmasın hepsi çok kolaydır. Önemli olan biraz istekli olmak, çalışkan olmak, deneme-yanılmadan korkmamak, çok okumak, kitaba para vermekten kaçınmamak, çekingen davranmayıp ustaların etinden sütünden faydalanmaktır.
fizikci
27 Eylül 2006 00:39 ~ 18 Ocak 2008 14:36
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?

Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
© 2005, Bilişim Kulübü. (1093 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen