Re: [Linux-programlama] Bir programlama dilini bilme ölçüsü nedir.

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Serdar KÖYLÜ (serdarkoylu@fisek.com.tr)
Date: Thu 17 Feb 2005 - 08:53:07 EET


Selamlar...

> bir programlama dilini "tam olarak biliyorum" demek için, o
> programlama dili üzerinde hiçbir kaynaktan (uç kaynaklar dışında)
> yararlanmadan program geliştirebiliyor olmanız gerekir.

!?...

Bu ezbercilik olup, cogu zaman berbat program yazmanın en iyi yolu olur.
20 Yıl önce bizde böyle yapardık. Ama son 15 yıldır kullandığım C için
örneğin, hala "fd = open(...)" yazarken (mesela) mutlaka man dosyasını
açıp bakmayı ihmal etmem.. Herhalde ortalama günde 25-30 defaya filan
tekabül eder bu..

Kısacası, hıfzı beşer nisyanla maluldur. Önemli olan herşeyi bilmeye,
ezberlemeye çalışmak değil, anlamaya odaklanmak, ezber olacak bilgiyi
ise nerde bulacağını bilmektir.

Programlama dilini iyi biliyorum diyebilmek için bilinmesi gerekenler
bence şunlardır (en azından ilgilenilen mimariler üzerinde):

1. Bellek yönetimini bilmek. Sayılar, arraylar, nesneler vs. nasıl,
nerde saklanıyor?
2. Fonksiyon çağrıları nasıl yapılıyor? Stack üzerinden mi? Byval'mı,
Reference'mı kullanıyor vs.?
3. Temel komut setini iyi kavramak. Bu komut seti örneğin C için:

if/else/elseif, switch, while, for, break/continue, return olacaktır.
Elbette 1. Maddeye istinaden int, float, struct gibi veritiplerini de
bilmek gerekir. "int x" ile "static int x" arasındaki farkı, bu "x" in
stack/data/bss vs. nerede tutulduğunu bilmek elzemdir. C özelinde,
#define gibi preprocessor komutlarını da bilmek gerekir elbet.

Peki ya printf() yada mmap()? Bunlar dışarıdan referanslardır. Bunların
iyi bilinmesi değil, iyi anlaşılması, kodlama boyunca da manuallerinin
el altında tutulması gerekir. Kendi adıma hala printf için \? ve %?
olaylarını bilmem, ki 15 yıla yakın süredir bunları kullanırım. Bunları
ezberlemeye çalışmak hamallıktır, gereksiz kafa şişirmektir.

Aslen, bu fonksiyonlar dilin değil, işletim sisteminin bir parçasıdır.
Diller bunları tarif eder, işletim sistemi yerine getirir.

Bir diğer husus ise, "Programlama" kavramının "Programlama Dili"
kavramından ayrı olduğudur. Diller bilinen direktifleri, işletim
sistemine ne istediğinizi söylemeyi sağlayan fonksiyon setlerini ve
işletim sistemine erişim hizmetini sağlarlar. Bunları ne yapacağınız
sizin sorununuzdur. Elinizde olanda aslen bu kadarıdır. Grid, textbox,
veritabanı vs. olayı nedir, nasıl kullanılır kavramları aslolarak
Programlama konusunun bir parçasıdır. Eğer programlama bilginiz varsa bu
olayları herhangi bir dille kolayca aşabilirsiniz.

Programlama, olayın özüdür. Herhangi bir dilde yapılabilir. Eğer
programlama kavramını özümsemişseniz, herhangi bir dil kullanarak bunu
yerine getirebilirsiniz. Hatta, bu bunlarla olmaz diyerek kendi dilinizi
yazıverirsiniz. Bu şunu demeye çalışıyor: "Dil öğrenmek değil,
programlama öğrenmek aslolandır.."

Saygı ve sevgiler...

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.