cılık Dünyasında İlk Adımlar
Bir köpekten daha iyi ne olabilir? Bilgisayarlar, tabii ki. Gerçi, o kadar sadık veya okşanmaları zevkli olmasa da, onların da birkaç numara yapma yetenekleri var ve köpeklerden farklı biçimde eğitilmeleri daha kolay. Bilgisayarı bir şey yapacak şekilde eğitmeye genel olarak programlama deniyor. Bu çoğu kişi için kocaman ve korkutucu bir terim. Esasen bir bilgisayarı programlamak, bilgisayarı kullanmak kadar zor olabilir. Hatta bazı durumlarda daha az zordur, çünkü bilgisayara tam olarak ne yapmak istediğinizi sanıldığından kolay bir biçimde anlatabilirsiniz. Eğer kullandığınız programlardan bazıları sizde sıkıntı ve kızgınlık uyandırıyorsa programcılığa hazırsınız demektir. Programcı John Ratcliff'in kendisini örnek vererek doğruladığı gibi “Bazı oyunları satın aldıktan sonra kazık yemiş gibi büyük hayal kırıklığına uğruyordum. Sonradan (dime “Ben bundan iyisini yapabilirim” dedim.” Ve yaptı da. John şu anda Electronic Arts'ın program yazarlarından birisi. Eğer programcılığa ilginiz varsa siz de John'un yaptığının aynısını yapabilirsiniz. Tabii burada bir problemle karşılaşmanız mümkün - nereden başlayacağınızı bilmek. Programcılık size karmaşık gibi gelebilir, hatta bazı programların yazıcı dökümlerini Navaho kızılderililerinin kilim desenlebenzetebilirsiniz. Belki programcılığın karmaşıklığından veya programlama yapabilmek için dağlar kadar cebir bilmeniz gerektiğinden korkuyorsunuzdur. Kaygılanmanıza hiç gerek yok. Bunların hiçbiri doğru de- Program yazabilmek için bir matematik dehası olmanız gerekmiyor. Hatta, daktilo kullanmasını bilmeseniz bile farketmez. Gereken bütün şey bir bilgisayar, bir parça zaman ve bi-
Programlama, insan/bilgisayar iletişimleri için kullanılan imgesel bir terimdir. Bilgisayara bir şey yapmasını söylemek için onunla, anlayabileceği bir dilde... bir programlama dilinde konuşmalısınız.
raz yaratıcılıktan ibaret. John Ratcliff'in bu konudaki görüşü, “Eğer kendinize ait bir bilgisayarınız ve boş zamanınız varsa bunlar yeterli malzemelerdir.” Fakat acaba, programcılık sizin yapabileceğiniz bir şey mi? Bruce Webster -kitap yazarı ve Sundog adlı oyunun yaratıcısı- pek çok kişiye programlamanın nasıl yapıldığını öğretirken başarılı olanların aynı zamanda hikâyeli problemlerde de iyi olduklarını farketmiş. Bir problemin sözlü tanımını alıp bundan bir sonuca varmak için gerekli bilgiyi çıkarmak programcılığın esasını teşkil ediyor. Burada avantajlı olabileceğiniz bir nokta sanat veya müzik yeteneğinizin olması. Herhangi bir nedenden dolayı müzisyenler diğer kimselerden örneğin matematikçilerden daha iyi programcılar oluyorlar. Programlama müzik yapmak gibi elle tutulmayan bir fikirden yola çıkıp onu gerçek haline getirmektir. Tony Garcia, Epyx'in yardımcı satış müdürü ve yazılım üreticisi ““Programlama yapan insanlar arasında klavyeli çalgılarla uğraşanların sayısı oldukça fazla. Yine birçok programcı bir şeyler çizmek ya da karalamaktan hoşlanıyor. Bir PC ile grafik eserleri yaratmak onlara zevk veriyor” diyor. Ancak müzisyen değilseniz bile umudunuzu yitirmeyin. Bu yazıda
Can ÖZTÜRK hayatınızı değiştirebilecek bir beceriyi; kişisel bilgisayarınızı programlamayı tanıtacağız.
Merhaba, Bil cur
Programcılığı:
Bir hobi olarak programcılık oldukça yenidir ve yaklaşık on yıllık bir geçmişi vardır. Bundan önce programcılık bir hobi değil, bir meslekti. Fakat kişisel bilgisayarların ortaya çıkmasıyla programcılık milyonların merakı haline geldi. Bruce Webster şöyle kaydediyor: “Aslında sandığımızdan daha fazla programcı var. Borland'ın 1 milyon adet Turbo Pascal satacağını kim tahmin ederdi? Şimdi program yazmaya heves eden büyük bir insan topluluğu var. Neden bu kalabalığa katılmayasınız?”” Bilgisayarınızı nasıl programlayacağınızı öğrenirken bilgisayar hakkında daha fazla şey öğrenirsiniz. Bilgisayar hakkında daha fazla şey öğrendikçe ondan daha fazlasını elde edersiniz. Yazdığınız programlar sizin için belli şeyler -bazı durumlarda diğer programların yapamadığı (çünkü gerekeni sadece siz bilirsiniz) yapar. Ve bundan sonra kendi yapıtlarınız olan programlarınızı satma ve belki de inanılmaz rakamlarda para kazanma olasılığı her zaman için mümkün hale gelir. Bütün bunlar bilgisayar programcılığı hakkında bir şeyler öğrendiğinizde başlar.
Bilgisayar Neyin Nesi?
Programlama yaparken bilgisayara bir dizi talimat veya izlemesi gereken adımları verirsiniz. Bilgisayar bu talimatları harfi harfine yerine getirir (köpeğinizden çok daha itaatkârdır). Eğer bilgisayara ““Bir çemberin etrafında koş” derseniz bilgisayar öyle yapacaktır. Sonsuza dek. Veya ona durmasını söyleyene kadar.
Programlama, iletişimleri için kullanılan imgesel bir te- Timdir. Bilgisayara bir şey yapmasını söylemek için onunla, kendisinin anlayabileceği bir dilde - bir prog- “Bilgisayar, bana bir tost yapıver”” diyemezsiniz. Eğer böyle olsaydı çok hoş olurdu ve hatta programlama bir gün böyle olabilir. Fakat şimdilik yaygın birçok programlama dillerinden birini kullanmak zorundasınız. ta kullandığımız dialektlerdir. Kültürel ve sosyal nedenlerden ötürü bizler konuşarak iletişim kurarız. Bilgisayarlar ise bu iş için sayıları kullanırlar. Bu sayılar daha önce muhtemelen duyup korkmuş olabileceğiniz ünlü 1'ler ve O'lardır. Fakat bilgisayar programlama dilleri sayesinde tek bir O veya 1 demeden bilgisayarınıza ne yapması gerektiğini anlatabilirsiniz. Programlama dilleri karmaşık oluşlarına göre değişik gruplara ayrılıyorlar. Üç ayrı dil düzeyi var: yüksek, orta ve düşük. Yüksek düzeyli bir dil İngilizceye yakından benzeyen komut isimleri ve yapısına sahiptir. Düşük düzeyli bir dil ise daha çok, üç harfli kısaltmalardan oluşan şiire benzer bir sütunu andırıyor ve bu arada 1'ler ve 0'lardan bir kademe daha yukarıda. Orta düzeyli dilin bulunduğu yer ikisinin ortasına yakın bir yerde. Programlamaya yeni başlıyorsanız muhtemelen tanıdık İngilizce ifadeleri kullanabileceğiniz kolay bir yüksek düzeyli bir dil seçmek isteyeceksiniz. SAVE FILE TO DISK (dosyayı diskete kaydet) veya ADD 7 TO RESULT (sonuca 7 ekle) gibi prog: ramcılık ifadeleri yüksek düzeyli diller arasında yaygındır. İşe başlamak için en azından programlama komutlarını (kelime hazinesi) ve dilin sentaksını (kelimelerin dizilişi) bilmeniz gereklidir. Bir programlama dilinin kelime hazinesi asla çok geniş olmaz. Örneğin BASIC programlama dilinin yalnızca 140 veya ona yakın komutu vardır (Bu sayıyı bildiğiniz 15000 veya daha fazla İngilizce kelimeyle karşılaştıracak olursanız BASIC'in komut listesi gerçekten ufak görünecektir). Bununla birlikte bir programlama dilinin sentaksını öğrenmek zaman ve pratik gerektiren bir süreçtir. Aslında bir dilin setaksını unutmak (programcının başbelası olan syntax error'ün kaynağı) sık meydana gelen hatalardan biridir. Unutulan bir nokta, virgül veya noktalı virgül en iyi programın bile canına okur. Komutlar ve sentaks üzerinde bir kere ustalaştıktan sonra geriye kalan yalnızca pratikle öğrenmektir. Bilgisayarlar bir programlama hatası yaptığınızda patlamazlar. Hatta, bazı programlama dilleri nerede hata yaptığınızı gösterip çözümler bile sunabilirler.
Eğer yalnızca bir tane bilgisayar di-
li olsaydı evrensel olarak konuşulan bir dil kadar hoş olurdu. Fakat olmayan üzerinde durmak bize bir yarar sağlamadığından şimdi programlama dillerinin paylaştıkları özelliklere bakalım.
yara talimat vermenize imkân sağlamaları açısından benzerdir. Ancak her şey bilgisayara talimat veya komut vermekle bitmiyor. Bunun yanında biraz matematik ve karar verici bir mekanizma bulunmakta. (Paniğe kapılmayın! Buradaki matematik o kadar zor değil. Sizin açınızdan bir bilgisayar programlama dilindeki matematik bir hesap makinesinde bulacağınız temel fonksiyonların bir Komutların ve matematiğin yanında hemen hemen bütün programlama dillerinde ortak olan diğer iki özellik değişkenler ve kontrol yapılarıdır. Bir bilgisayar değişkeni yüksek cebirde gördüğünüz değişkenin aynısıdır: Programlama dilinin bir değeri (sayı) veya diziyi (karakter veya yazı) sakladığı yerdir. Değişkenin kapsamı adından da anlaşılacağı gibi kolayca değiştirilebilir. Böylelikle onlara değerler verebilir veya bu verilen değerleri değiştirerek idare edebilirsiniz. Kontrol yapıları da bütün programlama dillerinde yaygındırlar. İki tipleri vardır: karar ve döngü. Bir karar yapısı çoğunlukla belli bir tipte “if feğer)” karşılaştırmasına dayanır. IFX—-3 THEN BEEP buna iyi bir örnek. Bu tip kontrol yapısı bilgisayara, kendi işleme gücüyle birlikte, ona ne verdiyseniz görünüşte bunlar üzerinde karar vermesini sağlar. Kontrol yapılarının ikinci tipi olan döngü, tekrarlanarak işleme konan bir dizi program ifadesidir. Bu ifadeler, siz isterseniz sonsuza kadar devam edebilir (çok bilinen sonsuz döngü) veya sizin belirleyeceğiniz bir şart ile döngü durabilir. Bilgisayarların yaptığı işlerin büyük kısmının tekrarlandığını düşünürseniz bir dilin çeşitli döngü yapılarına sahip olması iyi bir işarettir.
Dil Seçimi
Kişisel bilgisayarlarda kullanılan dört yaygın programlama dili bulunuyor. Büyük olasılıkla programla-
O ya da bu programlama dilinden çatpat konuşup bir programın herhangi bir bölümüne bakarak neler olup bittiğini yorumlayabilmek hoş bir şeydir. Fakat kaç adet dili, gerçekten bilmeniz gerekli? Tipik bir programcıysanız muhtemelen en az üç veya daha fazla dile vakıf olmanın yanısıra sayısız spreadsheet dilleri, sıralamalı diller, iletişim makro dillerinden anlamalısınız. Bu türlerde profesyonel programlama dillerinden bazıları şunlardır.
Prolog
Prolog, Programmation en logigue (mantıksal programlama) anlamına geliyor ve belki de en gelenekdışı programlama dili. Prolog'un öğrenilmesi çok kolay - yeter ki daha önce başka bir programlama dili öğrenmemiş olun. Bunun nedeni Prolog'un işlemsel değil deklaratif olması. Prolog'un ne yapmasını istediğinizi ona “A, B, C ve sonra da D aşamasını demek yerine bir dizi gerçekler, kurallar, ilişkiler ve sorular vererek tarif ediyorsunuz. Prolog bir database gibi çalışır ve bilgileri inceleyerek kısa zamanda bir çözüme ulaşır. Prolog'un en yararlı olduğu alanlar arasında uzman sistemler, teorem ispatlama, dil çözümlemeleri ve şekil eşleştirme bulunuyor. Problemlere bakıp ve kısa zamanda çözümler üretmesi çok iyi. Prolog programları, çalışırken aynı zamanda tekrar kendilerini yazma yetene- Bine sahipler. Öte yanda, Prolog dillerin yapabildiği kadar fazla algoritmanın altından kalkamıyor. Ayrıca bir Prolog programcısı olarak pek fazla iş bulma şansıniz yok.
maya bu dört taneden biriyle başlayıp daha karmaşık ve uzmanlık gerektiren bir dile geçebilirsiniz. Bugün kalıyor neredeyse herkes BASIC, Pascal veya C ile başlıyor. Dördüncü yaygın dil olan dili ilk deneme için bir parça daha zor. Şimdi bu popüler programlama dillerinin güçlü ve zayıf yanlarına programcıların genel kanılarıyla'birlikte göz atalım.
BASIC, programcıların yaklaşık yüzde 90'ının ilk öğrendikleri dil. Neden? Çünkü öğrenilmesi çok kolay. Aynı zamanda Tony Garcia'nın da işaret ettiği gibi “Bilgisayarınızı aldığınızda yanında verilen dil çoğunluk-
Lisp
Lisp, List processing'in kısaltması fakat daha önce bir Lisp programı gördüyseniz daha farklı bir isim düşünmüş olabilirsiniz, çünkü Lisp programları genelde karmakarışık bir parantez dolu kodlardan ibaret oluyorlar. Tarihi açıdan, Lisp ikinci en eski programlama dili (Fortran'dan sonra). Lisp kolay öğrenilip değiştirilebilen ve inanılmaz bir destek ortamı bulunan bir dil. Programcının Çırağı adlı ünlü kul- Tanım aracı sizin için altrutinler yazıyor. Bu araçlarla birlikte Lisp piyasadaki en iyi genel amaçlı dil. Lisp'in en büyük eksikliği akademik olmayan bilgisayar kullanıcıları tarafından desteklenmemesi (tanıdıklarınıza Lisp kullandığınızı söylediğinizde size onun ne olduğunu sormaları normaldir). Ancak az da olsa bazı dergilerde Lisp programları ve kullanımı ile ilgili bilgiler yayınlanıyor. Mikrobilgisayar kullanıcıları için eksiksiz bir Lisp ortamı oluşturmak epey harcama gerektiriyor. Bu iş için en az $1000 ayırmalısınız. Bundan sonra bile bazı destek araçlarına sahip olamayabilirsiniz.
Fortran
En eski programlama dili olan Fortran (Formula Translator) bilimsel ve mühendislik programcılığı için iyi bir araç. Bilgisayar kullanan her mühendis mutlaka Fortran bilir (ve pratikte bütün mühendislik problemlerinin Fortran programları olarak çözümleri vardır.) Fortran yazı kullanımında pek hızlı değil. Ve tabii işverenlerin sizin Fortran bildiğinizi öğrendiklerinde kapınızda sıra olmalarını beklemeyin. Fortran'da dosya işleme, daha çok büyü yapmaya benziyor.
la BASIC'tir.” BASIC'i popüler yapan özelliklerinin başında talimatların kolayca öğrenilmesi geliyor. BASIC veya uzun adıyla “Beginner's All-purpose Symbolic Instruction Code” 1960'larda Dartmouth Koleji'nde işletme ve fen-dışı öğrenim gören öğrencilere programlamayı öğretmek için geliştirildi. Microsoft'tan Bill Gates'in çabaları doğrultusunda BASIC sonuç olarak bütün mikrobilgisayarlar için bir faktör dil haline geldi. Gerçekten, mikrobilgisayarlardaki popülerliğine bağlı olarak muhtemelen BASIC'te başka herhangi bir programlama diliyle yazılandan daha çok program yazılmıştır. BASIC iyi bir genel amaçlı dildir. Çok karmaşık olmadığı gibi her tür zorluğun altından kalkabilir. Micro-
Cobol
Cobol (Common Business-Oriented Language) hükümetler tarafından ve büyük işler için kullanılıyor. Eski bir dil olmasına karşın COBOL programcılarına hâlâ ihtiyaç duyulmakta. Söylentilere göre COBOL ile diğer herhangi bir dilden daha fazla kaynak kodu yazılmış. COBOL hem dosya hem de data işleme konusunda başarılı ve yazıları da rahatça hallediyor ki COBOL'un Fortran'dan daha popüler olmasının nedenleri bunlar olsa gerek. İngilizceye benzeyen bir sentaks kullanan dilde 300'ün üzerinde komut veya kelime var ve bu da diğer diller içinde en yüksek rakam. Başlıca dezavantajı uygun döngü komutları bakımından eksikliği ve aşırı derecede yapısal olması. COBOL'da pek fazla etkileşim özelliği bulunmuyor.
Ada
"Ada, özel olarak Amerikan hükümetinin belli arzu ve tanımlamalarına göre tasarlanmış modern bir programlama dili. Adını Lord Byron'ın kızı ve Blaise Pascal'ın arkadaşı olan Lovelace Kontesi Augusta Ada Byron'dan almış. Eğer hükümetin belirli pozisyonlarında ve orduda görev almak istiyorsanız Ada'yı bilmek sizin için avantajlı olabilir. Füze-kontrol ve güdüm sistemleri, en emniyetli dil olarak kabul edilen Ada ile yazılıyor (Libyalılar ise kendi füze-güdüm sistemleri için herhalde LOGO kullanıyorlardır!) Madalyonun öteki yüzünde, Ada çok geniş ve yavaş. İsterseniz mikrobilgisayarınız için Ada derleyicileri alabilirsiniz, fakat gerçekte Ada bir mikrobilgisayar programlama dili değil.
ın soft sayesinde, BASIC şimdi kendini her şeye uygun hale getiren birçok ses ve grafik rutinine sahip. BASIC'in en iyi olduğu alan karakter veya yazı dizileri kullanımı. (Diğer programlama dilleri yazı ile uğraşma fikrini pek tutmuyorlar.) BASIC aslında hiçbir konuda kötü değil, fakat iyi tanımlanmış bir yapısı olmaması düzensiz bir kod meydana getiriyor. “BASIC ile başlayıp sonradan kurtulamadıkları bazı kötü alışkanlıklar geliştiren insanlara çok rastladım” diyor bir Pascal taraftarı olan profesyonel programcı Bruce Webster.
PASCAL
Öğrencilere bilgisayar programcılığını öğretmeye yardımcı olmak üzere geliştirilen Pascal BASIC'le bağlantılı problemlerin çoğunu - en başta BASIC'in yapı eksikliğini çözdü. Bu nedenle Pascal mükemmel bir başlama dili haline geldi.
Adını Fransız matematikçisi Blaise Pascal'dan alan Pascal, iyi bir genel amaçlı dil. Zayıf olduğu tek alan yazı kullanımı. Bunun dışında Pascal her işi yerine getirebiliyor. Bruce Webster yıllardır Brigham Young Üniversitesi'nde yüzlerce öğrenciye dili öğreten bir Pascal meraklısı. “Bence Pascal başlangıç için en iyi programlama dili. Programcıya iyi kavramlar ve alışkanlıklar kazandırıyor. Pascal bildikten sonra hazır olduğunuzda başka bir dile rahatça geçiş yapabiliyorsunuz ve tabii kazandığınız iyi alışkanlıkları da yanınıza alarak.” Proline ve MouseTalk programlarının yaratıcısı ve kitap yazarı Morgan Davis, Webster ile aynı şekilde düşünmüyor. Pascal'da bir program yazmak, bir anaç tavuğun sizin tepenizde durup, ezilmediğinizden emin olmak için her hareketinizi gözlemesi gibi bir şey. Örneğin, C sizin ne yaptığınızı bildiğinizi varsayarken
Pascal bütün kısıtlamaları önünüze seriveriyor.” Zamanla, orijinal Pascal dili bazı eksiklikleri düzeltilmek üzere değişikliklere uğradı. Çekirdekten yetişen Pascal'cılar herhalde bu nedenden dolayı Borland firmasını suçlayabilirlerdi, fakat esasında şirketin çıkardığı Turbo Pascal, Pascal'a çeşitli genişletmeler ilave ederek eksiklikleri olarak görülen uyum ve enerjiyi dile kazandırdı.
C, herkesin tuttuğu en üstün programlama dili. Bu resmi bir etiketlemeden çok onaylamalardan ortaya çıkan bir gerçek. Bütün uzmanlar bunun üzerinde hemfikirler. Morgan Davis “C, şu anda diller içinde en iyi ve esnek olanı” diyor. 688 Attack Sub'ın programcısı John Ratcliff'e göre “Bütün dünya C'ye doğru.” Tony Garcia'nın görüşü ise “C en gözde dil. İlginç bir
Program yazma diğer herhangi bir yaratıcı uygulamaya benzer. (Benim okulumda programlama bir bilim olarak değil, bir sanat olarak görülüyordu.) Tahta oymacılığı da yapsanız, senfoni de yazsanız veya vahşi duygularınızı bir fırça ve yağlı boyalarla yansıtmaktan da hoşlansanız, yalnızca temel araçlardan daha fazlasına gereksinim duyacaksınız. Aynı şey programlama için de geçerli. Programlamayı tezgah başında bir çalışma olarak düşünün (burada tezgah bilgisayardır). Temel araçlarınız programlama dili ve beyninizdir. Sadece bunlarla işinizi yapabilirsiniz, fakat bir süre sonra asıl önemli işler arasında basit işlemleri tekrar tekrar yapmak zorunda kaldığınızı fark edeceksiniz. İşleri kolaylaştırmak için bazı programlama yardımcılarına bakalım. Bunlar programlama görevlerinizde size yardımcı olacak kısa ve tek amaçlı programlardır. Programcı için hayati olduklarından bu yardımcıların sayısı her geçen gün artmakta ve programcılar arasında daha popüler olmaktalar. — En başta kullanacağınız yardımcılardan biri yazı editörüdür. Programlama dilinizin kendine ait bir yazı editörü olsa bile kendinize eksiksiz özellikleri olan bir editör edinmeye bakın. Bütün zamanların en tutulan yazı editörü WordStar'dır (eski versiyonu). Sidekick'teki WordStar benzeri editör de birçok PC programcısı tarafından tercih ediliyor. Brief adındaki harika bir editör
(Solution Systems'dan) özellikle programcılık akılda tutularak yazılmış. Vg (Golden Bow Systems'dan) Brief'e benziyor, fakat güçlü disk inceleme özelliklerine sahip. Bu iki paket yeni başlayan bazıları için fiyatlı gözükebilir (her biri $200'ın üzerinde). Bu durumda işinizi görecek ucuz ($50 civarında) pek çok yazı editörü mevcut. İyi bir yazı editörünün dışında düşünebileceğiniz diğer yardımcı araçlar bir hata düzeltici, GREP yardımcısı, bir dosya bulucu, bir klavye-makro programlayıcısı ve bir programcı hesap makinesi olabilir. Hata düzeltici çok yararlı bir programlama aracıdır. Bitmiş program derlendikten veya birleştirildikten sonra kodunuza göz atmanızı sağlar. Değişkenlerin nasıl değiştiklerine ve programın belleği nasıl değiştirdiğine ve bilgisayarı yönlendirdiğine bakarak programınızın üzerinden adım adım geçebilirsiniz. Hata düzeltici kullanmak bulunması zor alan hataları yok etmenin en iyi yoludur. MS-DOS'ta DEBUG adında basit bir hata düzeltici bulunuyor. DEBUG başlangıç ve belleği incelemek için iyi olmasına karşın üzerinden geçme veya hata yakalama fonksiyonları açısından çok basit kalıyor. Bu yüzden sadece iyi yazılmış assembly dili programlarında kullanılabilmekte. Ticari sahada ise Microsoft CodeView'u pazarlarken Borland, Turbo Debugger'ı programcılara sunuyor. Her iki program da DEBUG'ın ötesinde güç ve özellikler sağlıyorlar. Diğer yardımcı programlar da şöyle:
Grep Güçlü bir dosya inceleme yardımcısı olan GREP herhangi sayıda dosyalar içindeki yazıları bulabiliyor. GREP'in hemen her bilgisayar için public-domain versiyonları var ve Borland kendi Turbo C paketi dahilinde Turbo GREP adında hızlı bir versiyonu sağlıyor. (Merak edenler için GREP, Global/Regular Expression/Print'in kısaltması.) LIST LIST, DOS TYPE komutunun yerini alan bir tanıtım programı. Disketteki yazı dosyalarına bakmada ve incelemede ideal. FF veya WHEREIS Her iki yardımcı program da disketteki kayıp dosyaları bulmak için kullanılıyorlar. FF, Norton Utilities tarafından hazırlanmış. WHEREIS ise bir tanıtım programı, ProKey veya SuperKey Bunlar sizi aynı şeyleri tekrar tekrar yazmaktan kurtaran klavye-makro programları. SuperKey aynı zamanda dosyaları gizlemenizi sağlıyor. Son olarak, ondalık ve onaltılık düzendeki sayılar arasında çevrim yapmayı sağlayan bir programcı hesap makinesi düşünebilirsiniz. FC Tools ve Sidekick bu türde hesap makinelerine sahip. Ben Sidekick'in programını tercih ediyorum.
dil olan C sayesinde başka bir makineye aktarımlar yapabiliyorsunuz. Örneğin, bir bilgisayarda hazırladığınız C kodunu alıp onu sadece makineye özgü bilgileri değiştirerek başka bir bilgisayara taşıyabilirsiniz. C'yi şimdi herkes öğreniyor.” BASIC ve Pascal'dan farklı biçimde C orta düzeyli bir dil, ne BASIC'ten bir derece uzakta. Bugün önemli yazılımların çoğu C ile hazırlanıyor ve UNIX veya OS/2 işletim sistemleri için programlar yazmayı planlıyorsanız C'yi mutlaka öğrenmelisiniz. SunDog'un yaratıcısı Bruce Webster buna katılıyor; “İyi bir dil bilmek istiyorsanız C'yi öğrenin. Önce iyi programlama teknikleri için Pascal öğrenin sonra C'ye geçin.” Bütün gücüne rağmen C, ilk programlama dili olarak iyi bir seçim değil. Eğer C öğrenmek istiyorsanız önce Pascal veya BASIC üzerinde çalışın. Bundan sonra C doğal olarak takip edecektir.
Assembly
dili ve dillerden bir gömlek üstün olup bilgisayarınızın mikroişlemcisinin konuştuğu makine dilidir. Dil, sayılar yerine bilgisayarınızın mikroişlemcisinin anladığı talimatları temsil eden ikiyle beş harf arasında kolay hatırlanır kısaltmalar kullanır. Yalnızca bir tane assembly dili yoktur. Bunun yerine, her bir mikroişlemci için olmak üzere birçoğu mevcuttur. Amiga, Macintosh ve Atari ST için 68000 assembly dili; Commodore 64 ve Apple II için 6502 dili ve IBM PC ve uyumlular için 8086 dili kullanılmakta. Bütün assembly dilleri kavram olarak benzerdirler ve birini öğrendiğinizde diğeri de kolayca öğrenilebilir. Assembly, öğrenilmesi en zor olan programlama dilidir, çünkü biz insanların düşünme biçiminden epey farklılaşmıştır. Bir kez temel kavramları kaptıktan ve bilgisayarın mikroişlemcisi ve belleği ile direkt olarak çalıştığınızı fark ettikten sonra belki assembly eğlenceli olabilir. Assembly bilgisayarınızın anadili olan makine diline çok yakın olduğundan yazdığınız programlar başka herhangi bir dilde yazılmış olanlardan daha hızlı çalışacaktır. “Eğer profesyonel bir bil yazacaksanız bunun için assembly dili kullanmaktan başka fazla bir seçiminiz yok” diyor John Ratcliff. Hızlı assembly programlarının dezavantajı, assembly programlarının diğer dillerde yazılmalarından yaklaşık on kat daha fazla zaman alması. Neden? Çünkü assembly diliyle çalışırken matematik fonksiyonlarından diskete kayıt rutinlerine kadar her şeyi kendiniz hazırlamak zorundasınız. Tabii bilgisayarınızın ROM'undaki önceden yazılmış rutinler ve DOS'tan bazı yardımlar göreceksiniz, fakat yine de çoğu kez uzun ve karmaşık bir kod yazmanız gerekecektir. Son zamanlarda, program profesyonelleri arasındaki ortak görüş, programlamanın büyük kısmı için C'yi kullanmak. Bu uzmanlara göre assembly yalnızca bir programın aşırı yavaş çalışan kısımlarını yeniden yazmak için uygun olabilir. (Assembly dili hız optimizasyonu için diğer dillerle aynı anda kullanılabilir.) Başka bir deyişle az buçuk assembly bilmenin zararı yok, faydası var.
Nereden Başlamalı?
Şimdi gerçekten zihinlerde soru işaretleri belirmeye başlar. Bu işi nereye gidip öğrenmeli ve nerede çalışmalısınız? Yazmak istediğiniz süper programı unutmayın.
Bir programlama dili öğrenirken ilk yapmanız gereken şey, içlerinden bir tanesini seçmektir. Bundan sonra gidebileceğiniz iki yön var; kendi kendinize öğrenme veya kursa gitme. Bu iki metod üzerinde uzmanlar değişik düşünüyorlar. Kendi kendinize öğrenme, eğer motive olmuş veya programlamaya meraklıysanız en iyi öğrenme biçimi. “Kendi başınıza öğrenmek sınıfta öğrenmekten çok daha iyi” diyor MouseTalk'un yazarı Morgan Davis. “Sonuçta daha fazla keşifler yaparken, notlar alarak ve kitap okuyarak yapabildiğinizden fazlasını öğreniyorsunuzdur. Her konuda tecrübe sahibi oluyorsunuz. Bu daha çok kişisel bir keşif olayı bence.”
Tony Garcia düzinelerce programcı ile birlikte çalışıyor. “Hemen hemen, Epyx'teki bütün programcılar bu işi kendileri öğrenmişler. Üniversite'ye gitmiş olabilirler, fakat bu kesinlikle yaptıkları işi öğrendikleri yer değil.” Programcılık işine girebilmek için kurs görmenin gerekli olup olmadığı sorulduğunda Garcia, “Mutlaka işe sınıfta başlamak gerekli değil. Biz okula gidip gitmediklerine bakmıyoruz bile. Eğer iyi kod (program) yazıyorlarsa işi alırlar.” Bu durumda, kendi kendinize nasıl öğrenebilirsiniz? Programlama dilini alıp eve götürdüğünüzde oturup kullanım kitabını bir güzel okuyun. Eğer örnekleri yazıp çalıştırmaktan zevk alıyorsanız kendi kendinize öğrenmek çok rahat olacaktır. Eğer sıkıntı duyuyorsanız o zaman kursa gidin. Programlama dilleriyle birlikte gelen kullanım kitaplarının yanısıra ayrıca yakınınızdaki bir kitapçıda programlama kitaplarını araştırabilirsiniz. Bunlar iki tiptir: programlama dilinizin bütün komutlarını bir liste halinde içeren referans türünde kitaplar (iyi olanlarda örnekler de bulabilirsiniz) ve seçtiğiniz dilde programlamanın içini dışını gösteren ders türündeki kitaplar. Bruce Webster iyi bir kitabın faydalı olacağını savunuyor: “Kitaplardan öğrenebileceğiniz marifet ve teknikler var, fakat yaratıcılık kendi başınıza ortaya çıkarmanız gereken bir şey.” Kursa gitmek, işi kendi başınıza halletme yolunu seçtiğinizde karşılaşabileceğiniz bazı problemlerden uzak kalmanızı sağlayabilir. Ayrıca, kendi kendinize öğretirken bir probleminiz veya sorunuz varsa arayabileceğiniz kimse yoktur. “Temel kavramları gösterecek birinin olması gerçekten yararlı, aksi taktirde daima bir sıkıntı duyulacaktır” diyor Webster. Programcılık dersleri aynı zamanda tekerleği yeniden icat etmek için harcanan zamanı ortadan kaldırabilir. Orada kapabileceğiniz pek çok hile var ve bunların hepsini kitaplarda bulamazsınız. Bu numaraları sadece kurs görerek elde edebilirsiniz. Şüphesiz, bunları evde oturup bir programcının 1950'lerde çözmüş olduğu bir problem üzerinde başağrıları çekerek öğrenemeyeceksiniz. 688 Attack Sub programcısı John Ratcliff okulun bir bilgisayar oyunu yazabilmek için gerekli olanı öğretmezken, herhangi bir program yazabilmek için gereken zemini hazırladığı görüşünde. “Ders almak son derece değerli” diye ekliyor; “Herkesin bazı konularda açıklayıcı bilgiye ihtiyacı vardır.” Bununla birlikte, herkes bunu onaylamıyor. “Öğrenmeniz gerekeni okullarda öğrenemiyorsunuz” diyor Epyx'ten Tony Garcia. “Akış şeması hazırlamasını gösteriyorlar ki bu bence iyi bir şey fakat gelgelelim pratik değil. İyi programcılar daima kendi kendilerine öğreten kimselerdir. Dili kendi kendilerine öğrendiklerine göre haliyle yaratıcı insanlar oluyorlar. Kendi başınıza çalışırken oluşan fikir kıvılcımlarını okulda öğrenirken ortaya çıkaramazsınız. Kendi başınıza öğrenme daha sıkıntılı bir ortam fakat sonuçta aynı derecede yaratıcılığın anahtarı.” Eğer kursa gitmek istiyorsanız daima size uygun özel kurslar ve üniversiteler bulabilirsiniz. Bu kursların bir kısmı daha pahalı olabilir, fakat genelde hepsi az çok size gerekli olacak kavramları ve işin özünü verecek niteliktedirler. Programcılığı öğrenmek için zaman seçme yakın gelecekte bir tartışma konusu olarak karşımıza çıkabilir. “Bence, programlama için gerekli mantık ve çözümleme teknikleri ilkokul düzeyinde verilmelidir” diyor Bruce Webster. “Salt programlamayı öğretmek niyetiyle programlama öğretmelerini istemiyorum. Onlara işin mantığını ve çözümlemesini yani problemin ne yolla çözüleceğini vermek gerekli ki bu da zaten programlamanın özü.” Kendinizi bu işe hazırlamadan önce programcılığın herkese göre olmadığını daima aklınızda bulundurun. “Eğer programlama size sıkıntılı ve zor geliyorsa muhtemelen size göre değil demektir” diyor John Ratcliff. Bunun yanında şunu ekliyor: “Bilgisayardan en fazlasını elde edebilmek için mutlaka programcı olmanız gerekmiyor. Paket yazılımlarla grafikler, animasyon ve müzik ve daha fazlasını yapabilir ve bu arada programlama yapmayı unutabilirsiniz.” Nereye giderseniz veya nasıl yaparsanız yapın programlamayı öğrenmek bilgisayarla yapılabilecek yeni şeyler ortaya çıkaracaktır ve bu süreç içinde bilgisayarınızı daha iyi tanıyacaksınız.
Programlama cevherlerinizi neden sak-
Eğer yazdığınız programları kendiniz beğeniyorsanız muhtemelen başkaları da beğenebilir. Öyleyse eserinizi pekala satabilirsiniz. Programları satarken ortaya çıkan bir problem onları satın alacak insanlar bulmaktır. İyi bir ürüne sahip olmak işin sadece bir yarısı. Bu ürünü piyasaya sunabilmek çoğu programcının başaramadığı bir olay. Diğer tarafta, rekabette bir yer kapabilmek için yapabileceğiniz bazı şeyler de yok değil. Programınız bir kez hazır olduğunda onu pazarlamanın yolları var. Onu bir ticari yayıncıya satabilir veya kendiniz pazarlayabilirsiniz. Ticari bir yayıncıya satmak eskiden olduğu kadar kolay değil. Sundog'un yazarı Bruce Webster şöyle kaydediyor; “Yazılım piyasasında müthiş bir rekabet var. Yeni programcılar rekabet etmekte zorluklar yaşıyorlar. Şirketler ise yazılımlar için milyonlarca dolar akıtıyorlar.” Fakat Bruce cesaretli olmanızı tavsiye ediyor. “Eğer ciddiyseniz ve ilgi çekecek bir şeyiniz varsa yapılacak en iyi iş onu pazarlayacak bir yazılım evi bulmaktır. Küçük bir yazılım şirketi daha iyidir. Eğer büyük bir şirkete giderseniz orada sizden daha iyi kimseler çıkabilir.”
Tony Garcia işi nedeniyle Epyx'te her gün bu tipte yığınla programa bakıyor. Potansiyeli olan yazılım yazarlarının iyi, profesyonel prezentasyonlar gönderdiklerini belirtiyor. Burada ürünün bitmiş olması bile gerekli değil. Sadece iyi ayrıntıları olan bir yazılım olduğunu kanıtlaması gerekiyor. Programlamada yeni olanlara şunu tavsiye ediyor, “Yayıncının bunun ilk projeniz olduğunu bilmesini sağlayın. Pek çok kişi ilk projesini korka korka gönderiyor. Yayıncının özellikle bunu bilmesi önemli.” Kimin başarılı olduğuna bir örnek, 688 Attack Sub simülasyonunu Electronic Arts'a satan John Ratcliff. Kendisi yazılım yazarı adaylarının ürünlerine fazlaca enerji koymalarını tavsiye ediyor. “Bunu yapabildiğinizi kanıtlamak için yazılımın büyük kısmını bitirin. Bu, endüstri için çok şey ifade ediyor.” Yazılımı kendi başınıza pazarlamak en zor yol. Ratcliff her yeni programcıya bir shareware (ücretsiz olarak dağıtılan ve daha sonra kullanıcılardan kaydetme ücreti beklenilen programlar) yazmasını öneriyor. “Bu deneme yapmak için çok iyi bir yol. Fazla para kazanmayacaksınız fakat adınız çevrede dolaşacak.” Dört yıldır shareware işiyle uğraşan Morgan Davis aynı fikirde. “Eğer uygun bir ürününüz varsa fakat bu işe kısa zaman ayırabiliyorsanız shareware mükemmel bir yol” diyor Davis. “Tanıtımınız bir kez etrafa yayıldıktan sonra gerçek bir yazılım şirketine gidin ve onu pazarlamak isteyin.” Ancak gerçek olan shareware ile para kazanmanın zor olduğu. “Birkaç kişi shareware ile oldukça başarılı oldu. Çoğuysa pek bir şey kazanamadı” diye yorumluyor Bruce Webster. “Malınızı piyasaya sokmanın çok kolay bir yolu fakat hayatınızı böyle kazanmanız birkaç istisna dışında mümkün değil.” Genel olarak shareware işe yaramıyor. İnsanların sadece ufak bir yüzdesi ücreti gönderiyorlar. “Her ay postadan elime $10 veya o civarda birçok ve çok sayıda güzel mektup geçiyor. Kimse bir şey ödemiyor fakat herkes programı duyup zevkle kullanıyor” diyor John Ratcliff. Bütün uzmanlar shareware'in, adınızı yaymak ve tanınmanızı sağlamanın en iyi yolu olduğu konusunda görüş birliğinde. “Ürününüzü piyasaya sunmanın ve orada duyulmanın harika bir şekli” diye görüş bildiriyor Tony Garcia. Fikir çok iyi ve bundan daha büyük başarılar gelmesini isterim. Bu her programcıya yeni ufuklar açıyor.