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: M.Gokmen GOKSEL (gokmeng@gmail.com)
Date: Fri 18 Feb 2005 - 01:28:31 EET


On Thu, 17 Feb 2005 08:53:07 +0200, Serdar KÖYLÜ
<serdarkoylu@fisek.com.tr> wrote:
> Selamlar...

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.

mantıklı,

> 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..

bende aynısını yapıyorum :) - ki bu benim yazdıklarıma göre benim
uğraştığım dili "tam olarak" bilemediğim gibi anlaşılıyor, zaten
yanlış burada başlıyor.

> 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.

insanların yazdıklarıyla, anlatmaya çalıştıkları şeyler farklı
olabiliyor :) Netekim benim anlatmak istediÄŸim -sizinde deÄŸindiÄŸiniz
gibi- , fonksiyon yapıları vs. üzerindeki bilgi değil, programlama
yapısı üzerindeki bilgiden ileri gelmektedir. Yazılanlar okununca öyle
bir anlam çıkıyor, doğrudur.(yani söylediklerim yanlıştır :))

> 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:

ben bu ayrıntıları bir çatı altında toplamıştım sadece. Tabi ki benim
yazdıklarımdan "fopen" fonksiyonu için "help" kullanmayın çıkıyor o
ayrı :) Programlama mantığını tam olarak bilen birisi için kaynakların
sadece basit amaçlar için (fonksiyon yapıları, parametreler gibi ..)
kullanılacağına inanıyorum. Benim bahsettiğim kaynaklar, programlama
mantığı ile ilgili kaynaklardı yani "if" yapısının nasıl çalıştığı ile
ilgili bir bilgi için kullanılmaması gereken kaynaklar :) bunları
bilmesi gerekiyor bence programcının. - yoksa ne bilecek :) -

> 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.

hiçbir kaynaktan yararlanmadan kullanabiliyor olmanız gereken yapılar
da bunlardı aslında :)

> 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.

aynen katılıyorum. fakat ben bunları kastetmemiştim :)

> 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.."

doÄŸrudur .
 
> Saygı ve sevgiler...

aynen saygı, sevgi ..

sonuc : anlatmak istediklerimle, yazdıklarım aynı şeyler değilmiş..
anlatmak istediklerim Serdar Köylü tarafından güzelce anlatılmış..
bunlara ek olarak,

o) genel yapısını biliyorsanız (syntax ..),
o) değişken yapıları hakkında yeterli bilgiye sahipseniz,
o) fonksiyon yapıları vs. gibi -ezberlenmeyecek- naneler dışında
manuel kullanmıyorsanız,
o) okuduğunuz kodu anlayabiliyorsanız,

o dili biliyorsunuzdur demektir, diye düşünüyorum ben kendim :)

kolay gelsin ...

-- 
gokmen.goksel
gokmen.nowa.gen.tr

_______________________________________________
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.