Programlamaya Giriş Yazı Hakkında Merhaba arkadaşlar... Bu yazıda "programlama nedir, ne değildir" sorularına yanıt arayacak, başarılı bir programcı olmak için gereken şartlar ve bu şartları yerine getirebilmek için neler yapılabileceği üzerinde biraz tartışacağız... Tabi önce bir konuyu açıklığa kavuşturalım; 'Programlamaya Giriş' yazısında sizle paylaştığım bilgiler çoğunlukla yorum niteliğinde olacağı için, fikir ve önerileri kabul edip faydalanmak ya da bu fikirlere katılmamak tamamen size kalmış durumda. Bu başlık altında yazılanlar, programlama konusundaki bilgi birikimim ve deneyimlerim ışığında ele aldığım yaratıcılık, teknik beceri, araştırma, inceleme ve irdeleme, teori ve uygulama aşamaları gibi çok önemli konuların programcılığı ilgilendiren yönleri hakkındadır. Bir programlama dili öğrenirken ve program geliştirirken yararlanacağınıza inandığım tüm bu görüş, öneri ve değerlendirmeleri umarım keyifle okursunuz. Hepimize kolay gelsin... Programcılık Üzerine Programlama konusunda deneyim kazanmadan önce "iyi bir programcı olmak için hangi özelliklere sahip olmalıyım?" sorusunu kendinize sormanızı istiyorum. İyi programcı, düşünen, uğraştığı problemleri en küçük ayrıntısına kadar irdelerken bu problemlerin temeline inebilen ve yaratıcı çözümler geliştiren kişidir. Ayrıca bu özelliklerinin yanısıra bilgisayar teknolojileri alanında yeterli bilgiye sahip ve sorunların çözümü konusunda deneyimli olmalıdır. Tabi bütün bu saydıklarımı tamamlayan en önemli özelliklerinden biri de sabrıdır. Düşünmeyi bilen insan herzaman yaratıcı olamayabiliyor ama yaratıcılık bilinçli bir eğitim ve çalışmayla da kazanılabilir. Aynı şekilde bilgisayar teknolojileri hakkında bilgi ve deneyim sahibi olmak için de yine çok çalışmak gerekmektedir. Bulabildiğiniz bütün kaynaklardan yararlanıp bol bol uygulama yaparak bir programlama dili öğrenmek için gerekli olan alt yapıyı kazanabilirsiniz. Bu alt yapıyı sağlamlaştırdıktan sonra da yaşayacağınız deneyimler sonucu problemleri soyutlama ve irdeleme yeteneğine kavuşmanız, tamamen doğal bir sürecin ileri aşamalarıdır. Bu süreç hız kazanırken sabırlı olmayı da öğreneceğinizi söylemek kehanet olmaz sanırım!.. Eğer bir programlama dili öğrenmeye karar vermişseniz neden programcı olmak istediğinizi de biliyor olmalısınız. Bilgisayar programları sadece işletmelerde ve resmi kurumların bilgisayarlarında karşımıza çıkmıyor. Bugün hemen hemen aklınıza gelebilecek her konuda bir ya da birden fazla program mevcut. Ama ister ticari ister genel amaçlı olsun bütün programların hazırlanış amacı ortak : Bilgisayarda yürüttüğümüz işleri kolaylaştırıp hızlandırmak ve bir düzene oturtmak. Tabi eğlence ve hobi amaçlı hazırlanan program ların sayısı da azımsanmayacak kadar çok. Programcı olmak istemekteki amacınız sadece parasal kazanç sağlamak ve her geçen gün dünya ekonomilerindeki pazar payını arttıran bilişim sektöründe adınızı duyurmaksa, hiçbir zaman gerçek bir kod yazarı olamayacağınızı üzülerek söylerim. İyi bir programcı, profesyonel olmak için konusunda uzmanlaşırken amatör kalmayı başarabilir. Bu noktada amatörlüğü, profesyonelliği ve acemiliği birbirinden doğru bir şekilde ayırmanın önemi üzerinde biraz durmak gerekiyor; yaygın kanının aksine amatörlük, 'bir konuda yeterli bilgi ve deneyime sahip olmama' anlamına gelmez. Örneğin, eğer bir program yazarken herhangi bir disk dosyasını açmaya çalışırken zorluk yaşıyor ve hata mesajları alıyorsanız, ve de bu mesajlara anlam veremiyorsanız sizin için 'acemi' uygun bir sıfat olacaktır. Eğer dosyayı açarken hata sizden değil de işletim sisteminden kaynaklanıyor ve bunu programı derler derlemez anlayabiliyorsanız... Veee yazdığınız programı, sadece kendi işlerinizde kullanmak için hazırlıyorsanız siz bir amatörsünüz. Bu program, başka bilgisayarlarda çalışmaya başlarken sizin cebinize para giriyorsa ve bir zamanlar hobi amaçlı, kendinizi geliştirmek için ilgilendiğiniz bir alanda edindiğiniz bilgileri değerlendirerek maddi kazanç elde etmek size keyif veriyorsa, amatör bir profesyonel olduğunuz için de sevinmelisiniz! Bu açıklamaların ışığında özet olarak diyebiliriz ki, iyi bir programcı düşünen, araştıran, öğrenen, problem irdeleyen ve çözen, geliştiren ve paylaşan kişi olmanın yanında eğer hazırladığı programlardan para kazanan bir profesyonelse, teknik bilgi ve yeteneğini artıracak denemeler yapmaktan kaçınmayıp kendini yeniliklere açık tutan ve bu sayede amatör yönünü koruyabilen programcıdır... Yaratıcılık Üzerine Yaratıcılık, en kısa tanımıyla kalıpların dışına çıkma yeteneğidir. Diğer bütün yetenekler gibi yaratıcılık da bazı insanlarda çok, bazı insanlarda yok denilebilecek kadar azdır ama zamanla kazanılabilen bir özellik olduğunu rahatlıkla söyleyebiliriz. Yaratıcılığı arttırmak için düşünce yöntemleri üzerine eğilmeliyiz. Belli kalıplar içinde düşünmeye, çalışmaya, yaşamaya alışmış olan insan kendi kendini geliştirmeye, problemlerin çözümünde klasik kuralların ve yöntemlerin dışına çıkıp kendine özgü çözüm yolları aramaya açık değildir. Kişiler nasıl yaratıcılığa sahip olmadan yaşamlarına devam edebiliyorlarsa, program hazırlarken de yaratıcı düşünme yöntemlerini kullanmak zorunda değildirler. Programların çoğu komutların kullanımı ve kod dizimi bakımından birbirine benzerler, programa dilinin yazım kurallarını ve fonksiyonlarını iyi derecede biliyor olmak, istenilen programı hemen yazmaya başlamak için çoğu kez yeterli olabiliyor. Yaratıcılık etkin olarak, genellikle programın temel çalışma aşamalarına karar verdikten sonra, yardımcı yordamlar geliştirmekte, kafa karıştırıcı teknik problemlerin pratik çözümlerinde ve programın performansını arttıran yöntemlerde karşımıza çıkar. Yaratıcı düşünme yöntemleri kullanılarak hazırlanmış olan programlar, kod dizilişi ve yoğunluğu bakımından benzerlerine göre daha hafif ve kolay anlaşılır olurlar, çalışma performansları yüksektir. Yaratıcı insanları şu özellikleriyle tanırız : Meraklı, ilgili ve çevrelerine karşı duyarlıdırlar. Başkalarının çözümlemekte zorlandığı problemler üzerinde uğraşmaktan ve çözüm yöntemleri geliştirmekten kaçınmazlar. Bu yöntemlerden biri başarısızlığa uğradığı zaman, neden başarısız olduğu üzerinde düşünüp, vardıkları sonuçlardan yeni çözümler hazırlarken faydalanırlar. Hayal güçleri ve mizah anlayışları gelişmiştir ama bu kendilerini gerçeklerden soyutladıkları anlamına gelmez. Hayal gücü olmadan, kişilerin yaşam gerçekleriyle yüzleşirken zorluklarla karşılaşacağına inanırlar. Neşeli ve enerjiktirler... Sonraki bölümde yaratıcılık için büyük önem taşıyan düşünme teknikleri üzerinde duracağız. Düşünme Üzerine Program hazırlanırken karşılaşılan sorunları çözmek için, bu sorunları bir araştırmacı gibi incelemek gerekmektedir. En zor problemi çözerken bile eğlenceli bir oyunu ele alıyormuş gibi rahat olmalı, belli bir plana uyup görsel ve yazılı modeller hazırlayarak düşüncemizi toparlamalıyız. Bu süreci geliştirmek için sözel simgeler ve ilişkili sözcükler, adlar kullanılabilir. Kısaca, karşılaştığımız sorunları çözümleme aşamasında problemi mantıklı ve birbiriyle ilişkili parçalara ayırıp şekiller ve sözcükler ile ifade ederek yorumlamamız ve sonra doğru bir şekilde çözümlenmiş bütüne ulaşmamız gerekmektedir. Tüm bu süreci eksiksiz tamamlamak için doğru düşünme tekniklerini uygulamalıyız. Etkin düşünme için bilgileri düzenleyip mantığa uygun değerlendirmeler yapma, düzenti kurabilme, düzentinin herhangi bir öğesi üzerinde yoğunlaşıp kurallar belirleyebilme, sıralama, zihinsel esneklik, yaratıcı düşünebilme, başlangıç-sonuç ilişkisi kurabilme, çokboyutlu değerlendirme ve benzetmeler yapabilme özelliklerine sahip olunmalıdır. Düşünme sürecinde karşımıza çıkan her problemi olabildiğince şekiller ve modellerle ifade etmemiz gerektiğini daha önce de belirtmiştik. Programlamada çok kullanılan algoritmalar ve akış diyagramları bu ihtiyaca bir örnektir. Beyin bir problem üzerinde uğraşırken bu problemin öğelerini simgeler, şekiller ve benzetmelerle tanıyarak daha rahat ve etkili çalışabilir, ilişki kurması kolaylaşır. Bu yüzden, bir oyuna benzetebileceğimiz bu teknikler düşünme becerisini zamanla en üst seviyeye çıkarabilir. тнєвlα¢к∂

Son olarak programlama süresince yapmamız gerekenleri şu şekilde sıralayabiliriz : Problemin doğru bir tanımını yapmak. Problemi anlamlı ve birbiriyle ilişkili parçalara ayırmak. Ayırdığımız parçalara ait, bütünden kopuk olmayan yeni alt parçalar geliştirmek. Parçaları düzenli bir şekilde birleştirip başlangıcı ve sonu belli bir düzenti kurmak. Vardığımız sonuç üzerinde son düzenlemeleri yaparak, fazlalık olarak göze çarpan bölümleri çıkarmak. Program Nedir Program, genel adıyla yazılım, bilgisayardan verimli bir şekilde yararlanmak için kullanılan arayüzdür. Bu arayüz bilgisayarın anlayacağı terimlerin ve sembollerin biraraya gelmesiye oluşmuştur, kod dediğimiz özel ifadelerin amaca yönelik dizilişiyle meydana gelen bütüne de programlama dili denir. Programcı ya da kod yazarı dediğimiz kişiler herhangi bir programlama dilinin yazım kurallarına uyarak geliştirdikleri programlarla bilgisayarın değişik amaçlara hizmet etmesini sağlayabilirler. Programlama dili dediğimiz kod topluluklarını iki ana grupta inceleyebiliriz. Birinci grup; insanın anlaması zor olan fakat bilgisayar tarafından yorumlamaya gerek kalmadan çalıştırılan-işlenen kodlardır. Bu gruptaki kod topluluklarına güçlü bir programlama dili olan Assembly'yi örnek gösterebiliriz. Günümüzde makina dilini kullanarak program yazanların sayısı çok azdır, bunun yanında Assembly'nin önemli uygulamalarda sıkça kullanılmasının nedeni, bu programlama diliyle geliştirilen uygulamaların az yer tutması ve hızlı çalışmasıdır. Assembly dilindeki her komut, makina dilinde genellikle birkaç komuta/koda karşılık gelmektedir. Bu gruptaki kod topluluklarına alçak seviyeli programlama dilleri denir. İkinci grupta yeralan programlama dilleri ise programcılar tarafından daha çok tercih edilen Basic, Pascal, C gibi dillerdir. Bu programlama dillerindeki komutlar ve kod dizilişleri, alçak seviyeli dillere göre daha anlaşılırdır; komutlar genellikle İngilizce kısaltmalardan oluşur ve uzunlukları birkaç harfi geçmez. İkinci gruptaki dillere, kısaca yüksek seviyeli programlama dilleri diyoruz. Yüksek seviyeli diller kullanılırken. geliştirilecek yazılım için en uygun dil tercih edilmelidir; çoğu kez ticari uygulamalarda farklı, eğlence amaçlı uygulamalarda farklı, veritabanı projelerinde farklı programlama dillerinin kullanılması gerekebilir. Bilişim sektöründe birbirini tamamlayan iki alan vardır : Donanım ve yazılım . Donanım, bilgisayar aksamını oluşturan elektronik, mekanik parçalar gibi fiziksel bileşenlerle ilgilidir. Örneğin disk, disket, monitör, klavye, fare, ekran kartı, bu fiziksel bileşenlerdendir. Yazılım sektörü ise bilgisayarı etkin bir şekilde kullanmayı sağlar. Her türlü fiziksel bileşene sahip olan bir bilgisayarı kullanabilmek için fişini prize takmak yeterli olmaz; bu fiziksel bileşenlere ulaşarak onları kontrol edecek, yönetecek programlara ihtiyaç vardır. Windows gibi yeni nesil işletim sistemleri bilgisayar açıldığında ilk olarak çalışan programlardır, bilgisayarın tüm giriş-çıkış ünitelerini tanıyıp kontrol edebilirler. Son olarak diyebiliriz ki yazılım olmadan bilgisayar da olmaz. Küçük Bir Program Programlamaya başlamadan önce, "program nasıl yazılır, kod dizilişi nedir, komutlar ne işe yarar?" gibi sorulara yanıt bulabilmek amacıyla basit bir programı birlikte inceleyeceğiz. Kod yazma mantığını öğrendikten sonra programlama dili derslerini takip etmeye başlayabilirsiniz. EkraniTemizle EkranaYaz "Bu program klavyeden girilen iki sayıyı toplar." VeriyiOku "İlk Sayıyı Yazınız :", ilkSayi VeriyiOku "İkinci Sayıyı Yazınız :", ikinciSayi Toplam = ilkSayi + ikinciSayi EkranaYaz "Girdiğiniz iki sayının toplamı :"; Toplam ProgramSonu Eğer yukarıdaki komutları yorumlayıp derleyebilecek Türkçe bir programlama dili ve editörü olsaydı bu örnek program, çalıştırıldığında kullanıcının yazdığı iki sayıyı toplayıp sonucu ekrana yazacaktı. Programın daha kolay anlaşılması için komutlar, değişkenler ve sabitler farklı renklerle gösterilmiştir. Kırmızı yazılar komuttur, programın akışı sırasında belli bir işi yerine getirmesi için programlama dilini geliştirenler tarafından önceden tanımlanmış olup her komutun kendine özgü bir görevi vardır. Birçok programlama dilinde komutlar, kullanım amaçlarını ifade eden İngilizce kısaltmalarıyla adlandırılırlar. Programcı, kod adlarında değişiklik yapamaz. String sabitler yeşil renkle belirtilmiş olanlardır, sözdizimi içinde çift tırnak işaretleri arasına yazılırlar ve program yürütülürken olduğu gibi ekranda görüntülenirler. Sabitler herhangi bir işlemde kullanılmadıkları sürece programın akışını değiştirmezler. Değişkenler ise mavi renkle gösterilmiştir. Değişken, değeri programın herhangi bir yerinde değiştirilebilen ifade demektir. Değişken adları genel yazım kurallarına uygun olarak programcı tarafından belirlenir. Bu yazım kurallarından biri, değişken adlandırılırken "ç, ğ, ı, ö, ş, ü," gibi Türkçe harflerin kullanılmaması gerektiğidir. Ayrıca string değişkenlerin artimetik işlemlerde kullanılamayacağı gibi bazı genel kurallar da bilinmelidir. Yukarıdaki örnek program ile QuickBasic dilinin sözdizimi arasında büyük benzerlikler var; QuickBasic komutları Türkçe olsaydı bu programı derleyip çalıştırabilirdik. Gelelim kodların açıklamasına: İlk satırdaki "EkraniTemizle" komutu, program çalıştırıldığı anda bilgisayar ekranında görüntülenen ne varsa hepsini siler ve ekranı boşaltır. "EkranaYaz" komutu tırnak işaretleri arasındaki ifadenin ekranda görüntülenmesini sağlar. Üçüncü ve dördüncü satırda yeralan "VeriyiOku" komutunun kullanım amacı, ekranda açıklayıcı bir mesaj görüntüledikten sonra kullanıcının klavyeden girdiği bilgileri mavi renkle gösterilmiş olan değişkenlere depolamaktır. Birinci VeriyiOku komutu ile ekrana "İlk Sayıyı Yazınız :" mesajı yazdırılıyor ve kullanıcı klavyeden bir sayı girip "Enter" tuşuna basana kadar programın icrası bekletiliyor. Girilen sayı, programcının "ilkSayi" adını verdiği değişkene değer olarak aktarılıyor. İkinci VeriyiOku komutu ile alınan değer, "ikinciSayi" değişkenine depolandıktan sonra hemen alt satırda, iki değişkenin değerleri toplanıp sonuç "Toplam" adındaki yeni bir değişkene aktarılıyor. Burada dikkat edilmesi gereken nokta, değişkene değer ataması yaptığımız için aritmetik işlem sonucu eşitliğin sonuna değil de başına yazılıyor . Sondan bir önceki satırda yine bir ekrana yazdırma komutu görüyoruz. Burada tırnak içindeki sabit yine olduğu gibi görüntülendikten sonra, toplama işleminin sonucunu depoladığımız Toplam değişkeninin değeri yazdırılıyor. "ProgramSonu" komutu adından da anlaşılacağı gibi programın bu satırda son bulacağını belirtiyor. Bu komut kullanılmadığı zaman programın icrası görünüşte yine sonlanmasına karşın aslında sadece yürütülmesi durdurulur. Program derlenip çalıştırıldığı zaman ekran görüntüsü aşağıdakine benzer olacaktır : Bu program klavyeden girilen iki sayıyı toplar. İlk Sayıyı Yazınız : 10 İkinci Sayıyı Yazınız : 5 Girdiğiniz iki sayının toplamı : 15 Umarım şu ana kadar okuduklarınızla programcılık, yaratıcılık ve düşünme teknikleri hakkında fikir sahibi olabildiniz. Başta da belirttiğim gibi bu başlıklar altında yazdıklarımın bir kısmı benim kişisel gelişim sürecimde gözlemlediğim olgulara ve elde ettiğim çıkarımlara dayanmakla beraber, herhangi bir bilimsel veriyle desteklenmemiştir. Bu yüzden bahsettiğim tekniklere maddesi maddesine uymak ya da sadece tavsiye olarak kabul edip yeri gelince uygulamak sizin vereceğiniz kararlara bağlı. Hepinize programcılık yaşamınızda başarılar dilerim. ALINTIDIR

baba bide vb net. hakkında ayrıntılı bilgilerle donatsan şu forumları yada pm ben pm den mi sorsam vb de takıldığım yerleri sana?

abi biraz daha açıklayıcı yazsan! Ben bu konuya girmek istiom ama yaww kusura bakma anlayamadım! 0 biliom çünkü bu konuda! yani anlatılanı anladım ama mantığı kawrayamadım! MANTIK MI YOK YOKSA BENDE iStAnBuL-HaCk-

Güzel çalışma olmuş. Eline sağlık.