Programlamaya Yeni Başlayanlar

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
28 Eyl 2007
76
2
Bi mak.

Yeni Başlayanlara
Programlama'ya Başlamak İsteyenler

Merhaba bu yazımda sizlere temel konulardan bahsetmek ve programlamaya yeni adım atacak arkadaşlar için yol gösterici olacak bir kaç fikirden söz etmek istiyorum. Amacım yeni başlayan pek çok kişinin sorduğu sorulara cevap vermek ve cesaretlendirerek yollarina devam etmelerini saglamaktır.

Programlama Dili Seçimi

Nasıl tek bir dil bilmek yetmiyorda insanlar ingilizce, almanca öğreniyorsa bilgisayar dünyasında da tek bir dil bilmek yetmiyor. Günümüz programlama ortamlarında farklı dillerle yazılmış parçaları beraber calıştırabilmek mümkün olduğu için, en az iki programlama dili bilmeniz iyi olur. Dilinizi seçerken soracağınız sorular:
1- Ürününüz birden fazla işletim sistemini destekleyecek mi?
2- Ürününüz web, istemci/sunucu, tek başına calişabilecek biçimde dizayn edilecek mi?
3- Ürününüz en son yazılım tekniklerini ve teknolojilerini uygulayabilir mi?
4- Kullanmayı düşündüğünüz veritabanlarını destekliyor mu?
5- Yazılım aracı/dili için eğitim verecek kuruluş var mı?
6- Diploma, sertifika veriliyor mu?
7- Dünyada başka kimler kullanıyor?
8- Örütbağında arama yaptığınızda kaç tane sonuç dönüyor?
9- İş bulma sitelerinde, sizin düşündüğünüz yazılım aracı/dili ile ilgili ne kadar iş ilanı var.
10- Ürününüzü dünya genelinde satmayı düşünüyor musunuz?
11- Araç/dil bu dizayna izin veriyor mu?
12- Yazılım aracı/dili üreten firma ile birlikte başka hangi firmalar bu araca/dile destek veriyor.
13- Ne kadar para harcamayı düşünüyorsunuz.?

Buradaki araştırmaların hepsini Türkiye çapında değil dünya çapında yapın. En son versiyonları ve teknolojileri satın almaya bakın.

İkinci dil ile ilgili olarak tamamen karşıt bir firma/teknoloji seçin. Mesela VB ve Delphi, Java ve C++, C# ve Perl, PHP ve XML vs. İşletim sisteminide değiştirebilirsiniz. Mesela Linux/Kylix ve Windows/C++, Unix/Python ve Windows/XML, Linux/PHP ve Windows/HTML vs. Listeleri uzatmak mümkün.

Nasıl Başlanır

Dilinizi seçtikten sonra ilk yapacağınız iş, ortama olan göz alişkanlığınızı kazanmak için menülerde ve ekranlarda gezinmeniz olacaktır. Burada ortam dediğimiz programlama yaptığınız dilin arayüzü olan IDE (Integrated Development Environment, Tümleşik Geliştirme Ortamı) hakkında bilgi sahibi olmak ve menülerde ne nerede bilgisini oluşturmak içindir. Eğer ingilizce biliyorsanız menüler üzerindeyken F1 tuşu ile yardim alabilir ve ne işe yaradığını öğrenebilirsiniz. Bundan sonra başlangıç seviyesi kitapları ile yola çıkarak adım adım dili öğrenmeye başlarsınız. Kitap dışında deneme-yanılma yolu ile küçük projeler yapıp, dilinizin nelere imkan verdiğini öğrenebilirsiniz. İlk başlarda cok fazla zaman harca***** mümkün olan her şeyi deneyin. Belli bir seviyeye geldikten sonra, belli konuları daha derin öğrenmeye başlarsınız. Dili biraz öğrendikten sonra bıranşlaşma için, veritabanı, donanım, sistem, ticari programlama gibi konulara eğilebilirsiniz.

Kitaplar

Her yeni başlayana tavsiye ettiğim yazarlar, İhsan Karagülle, Memik Yanık, Zeydin Pala dışında kullandığınız dilin üreticisinin kitapları yada 3. parti firmaların kitaplari çok yararlı olabilir. İlgilendiğiniz konularda referans kitaplarınızın bulunması ve ihtiyacınız olduğunda konu başlıklarını kullanarak yardım almanız çok iyi olur. Eger merkezlere uzak yerlerde oturuyorsanız örütbağ üzerinde sipariş verebileceğiniz yerler oldukça fazla. Aldığınızın kitapların yayınevlerinin sitelerinden kitapla ilgili düzeltme var mı kontrol edin.

Örütbağ Üzerinde

E-posta listeleri çok yararlıdır ve teknolojileri günlük takip etmenizi sağlar. Özellikle Microsoft, Rational, IBM, CA, Inprise gibi büyük firmaların gazete e-postalarına üye olmanızı tavsiye ederim. Bu sayede yeni ürünler çıktığında veya seminerler olduğunda hemen haberiniz olur, ayrıca gidip bu firmaların sitelerinde debelenmekten kurtulursunuz. Haber sunucuları, programlamaya özel siteler'de işinizi görür. Önemli olan bir şekilde teknolojileri takip etmek ve güncel konulardan haberdar olmak. Yahoo gibi sitelerin gruplarına da bakabilirsiniz. Hangisinde daha fazla üye ve mesaj varsa ona üye olun.

Teknolojiler

Seçtiğiniz programlama dili ile son teknolojileri uygulamak mümkün mü? Fazla kod değişikliği yapmadan hem internet ortamını hem istemci/sunucu yapılarını destekleyebiliyor musunuz? Yada daha da önemlisi seçtiğiniz dil ile, bitmek tükenmek bilmeyen müşteri isteklerine cevap verebilecek misiniz. Platformlar arası veri alisverişi konularına destek veriyor mu? Hangi veritabanlarını destekliyor? Yada sizin istediğiniz veya kullanmayı düşündüğünüz veritabanını tam olarak destekliyor mu? Teknoloji demekle neyi kastediyoruz. ActiveX, SOAP, COM, DCOM, COM+, .NET, Web Services, RMI, IIOP, TCP/IP vs. gibi pek çok metod bahsettiğimiz teknoloji alanina girer. Seçtiginiz dil ile bu teknolojilerden bazılarını desteklemek istiyor musunuz?

Analiz

Program yazarken kullanacaginiz analiz metodolojileri en az kodlama yapmak kadar önemlidir. İster yolun başında bir programcı adayı olun ister programlama konusunda uzman olun metodoloji ve o metodolojiyi doğru uygulamak çok önemlidir. İyi yazılım, iyi bir analiz ile başlar. Analiz sizin programınızla neler yapacağınızın ve müşterinin problemlerine nasıl çözüm getireceğinizin bir taslağıdır. Analiz iş senaryolarınızı ortaya çıkarmanıza ve müşteri isteklerine daha iyi cevap vermenizi sağlar. Analiz Metodolojileri nelerdir? Ornegin Modül Tabanlı Analiz (CBD, Component Based Development), Nesne Tabanli Analiz (OOA, Object Oriented Analyse), Unified Modelling Analiz (bunun Türkçe'sine UM Analiz diyelim, pek iyi olmadi ama!), eXtreme Programming (Yazılım dünyasında XP olarak biliniyor fakat Windows XP ile çakışıyor). Bu metodolojileri doğru biçimde projelerinizde uygularsanız verimlilik ve zamanında yetiştirmek açısından pek sorununuz olacağını zannetmiyorum. Yukarıda bahsettiğim konuları tek tek açiklayan makalelerde yazacağım.

Düzenli Çalışma

Kendinize bir hedef vermeden bilgisayarın başına oturmayın. Hedefinizi belirleyip ona göre yol alın. Projelerinize hep bir isim verin ve anlamlı bir isim verilmiş bir dizine kaydedin. Form'larınızın isimlerini ve başlıklarını muhakkak değiştirin. Bu sayede farklı formları farklı projelerde kullanmak istediğinizde isim çakışmaları olmaz. İsimlerden formlarınızın ne işe yaradığını kolayca anlayabilirsiniz. Her yiğidin bir yoğurt yiyişi olduğu gibi ordularında uyulması gereken kuralları vardır. Bir yazılım firmasında çalışmaya başladığınızda, ilk yapacağınız şey firma standartlarını öğrenmektir. Bu sayede ekip içi bilgi alış verişi hızlı ve kesin olur.

Dökümantasyon

Yaptığınız çalışmaları, ufak projeleri kısacası ileride kullanabileceğiniz her kod parçasını yazıya dökün ve ne işe yaradığını, nasıl calıştığını, amacının ne olduğunu ister kodun içine yorum satırı olarak, ister bir word dosyasına yazarak saklayın. Hangisi pratik geliyorsa. Bu tür bir çalışma ileride bir kod parçasına ihtiyacınız olduğunda kolayca bulmanızı sağlar.

İngilizce Kaynaklar

Yabancı dil bilmek pek çok konuda işimize yaradiği gibi, programlama konusunda da işimize yarayacaktır. Fakat öyle sular seller gibi bilmeye veya konuşurken aksanlı konuşucam diye ağzımızı burnumuzu bükmenin anlamı yok. Sonuçta bizler Türk'üz ve konuşurken yabancı olduğumuzun anlaşılmasıda gayet doğal ve gereklidir. Yabancı dil bilgimiz, konumuzdaki yabancı yayınları takip edecek ve derdimizi anlatabilecek kadar olsa yeter. Bu nasihatlerden sonra gelelim yabanci yayınlara, örütbağ üzerinde bir arama ile pek çok yayına ulaşabilirsiniz. Bunların dışında Microsoft yayınları ve kitapları, Wrox yayinevinin kitapları, Visual Studio ile gelen MSDN (Microsoft Developer Network, Microsoft Gelişitirici Aği) tıkızları çok işinize yarayabilir. Inprise ürünleri ile birlikte gelen yardım dosyalarıda çok yararlı olabilir. Ek olarak firmaların sitelerinde her zaman deneme sürümlerinin tıkızlarının adresinize postalanması için gerekli formları bulup doldurabilirsiniz. Ayrıca pek çok teknik dokumanı, gerçek projeleri, eğitimle ilgili yazıları bilgisayariniza indirebilirsiniz. Firmaların Türkiye temsilciliklerinden birer bağlantıya sahip olmanızda iyi olur.

Kurslar

Kursların piyasa tarafından tanınmış ve verdikleri sertifikaların dünya çapında geçerli olmasına dikkat edin. Çalışmalarınızın kurs ile sınırlı kalmaması için, evinizde de bazı projeler geliştiriyor olmanız gerekir. Türkiye'de çoğu büyük şehirlerde pek çok kurs mevcut. Kurs ile birlikte çevrenizde oluşacak arkadaş grubu iyi bir yönlendirme ile birlikte iyi projelere imza atabilir. Unutmayın çevrenizdeki grup ileride iş arkadaşlığına dönüşebilir.

Amatör Ruhu

Hangi işle uğraşıyor olursanız olun, dünyanın en kötü şeyi, uğraştığınız alanda her şeyi bildiğinizi iddia etmek olacaktır. İşte bu tür adamlardan uzak duracaksınız. Hayat zaten kendi içinde bir okul bizlerde bu okulun öğrencileriyiz. Her zaman öğrenecek yeni şeyler olacak. Bazen hiç ummadığınız bir çıraktan birşeyler kapabilirsiniz. Yada artık kendinizi programlama hakkında ermiş olarak gördüğünüz anda bir çırak çıkıp algoritmalarınızın şöyle şöyle yaparsanız daha hızlı çalışacağını söylemesi sizi yerin dibine sokabilir. Ne yapmak gerekir, çırağı karşınıza alıp teoremleri hakkında konuşursunuz ve sonuçta gerçekten haklıysa dediklerini uygulayıp dersinizi alırsınız. Daha sonra bu dersi başka çıraklara aktarmak üzere tabii. Öğrenmekten ve doğru bildiğiniz şeylerin aslında yanlış olduğunu anladığınızda değiştirmekten çekinmeyin. Yanlışları bulan kişileri tebrik edin ve daha fazla yanlış bulmaları için yönlendirin. Ancak bu şekilde ilerleme kaydedebiliriz.

Ben Neler Yapiyorum

Gelelim bu kadar bilgiden sonra ben bunları ne kadar uyguluyorum. Dil olarak seçimlerim VB.NET ve C#. Bunlarla birlikte XML ve SOAP, Web Services gibi teknolojileri öğrenmeye çalışıyorum. İşletim sistemi olarak, Windows ve Red Hat Linux ortamlarını seçtim. Web Sunucu için Linux üzerinde Apache Web Server, Windows üzerinde IIS kullanıyorum, bir yandan ASP ile takılırken diğer yandan Linux üzerinde Java Bean ve EJB nasıl yayınlanır araştırıyorum. İlerde Java dilini de oğrenme planım var. Veritabani olarak Linux/IBM DB2 ve Windows/SQL Server kullanmaya calşıyorum. UML, OO, CBD metodolojilerinde de calışmalarım var. Araç olarak, Rational, CA, Microsoft, IBM, BEA ürünlerini kullanıyorum. Tabii ki tek bilgisayar yetmiyor. En az 3 adet lazım, bir tanesi çift işletim sistemli ve hepsi ağ ile birbirine bağlı. Bilgisayarlardan birini çöpten buldum.

Sizde böyle bir sistemi bir kaç arkadaş birleşip kurabilirsiniz. Birde rahatça girip çıkabileceğiniz bir oda buldunuzmu, iş proje bulmaya kalıyor. Mahallenizdeki esnaf ile hiç bu konuları konuştunuz mu? Toplumumuzun gelişmesi ve yeni şeyleri öğrenmesi birazda size bağlı. Mahalle esnafına bilgisayardan ve özel yapılmış programların yararlarından bahsettiniz mi? E-posta, internet, işletim sistemi gibi konularda onları bilgilendirmeyi hiç düşündünüz mü? Birazda misyonerlik gibi bir göreviniz var aslında. Etrafınızdaki insanlara bildiklerinizi aktarmayı hiç düşündünüz mü?

Sonuç

Yukarıda anlattığım yöntemler her yazılımcının alet çantasını geliştirmesi için çok güzel yöntemler. Fakat nasıl evinizde bir tamirata giriştiğinizde alet çantasındaki her aracı kullanmıyorsanız, yazılımcı olarak alet çantanızı da o şekilde kullanacaksınız. Öğreneceğiniz her bilgi alet çantanızda yerini alacak ve yeri geldiğinde çıkarıp kullanmaktan çekinmeyeceksiniz. Bu arada aletlerinizde gelişmelerde olabilir, zaman içersinde bazılarıda yok olabilir. Önemli olan sürekli devinim içinde öğrenmeye ve gelişmeye açık olmaktır.

Hepinize kolay gelsin


Size yazacaktım ama çok uzun olacaktı alıntı yaptım ;9
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.