ÖNSÖZ

Acknowledgement From Translator : 
I would like to thank Mr. Chris PINE for his kindly permission to translation of this tutorial. I think  that it will be a milestone for Turkish Ruby Newbies learn to program .
                                                                                                      17. April.2010    Niyazi  ATEŞ   
Original web site of this tutorial : http://pine.fm/LearnToProgram
Geleceğin Programcısı İçin Başlama Noktası :
Hikayemize 2002 yılında başlıyor. Programlamayı insanlara öğretmeyi düşünürken bunu en iyi Ruby dili ile yapabileceğimi düşündüm. Ruby ; güçlü , zarif ve eğlenceli olması ile her zaman bizi heyecanlandırıyordu. Fakat bende uyandırdığı başka bir etki olarak ,   programlamaya başlamanın en iyi yolunun Ruby dili olacağını gördüm. 
Ne yazık ki o zamanlar yeni başlayanlar için yeterli Ruby dökümanı yoktu. Ruby ile ilgilenen arkadaşlarla, yeni başlayanlar için böyle bir dökümanın gerekliliğini ve daha genel olarak da  insanlara programlamayı öğretmenin yollarını konuşurduk . Sonunda bunu o kadar çok düşündüm ve söyledim ki bir arkadaşım şöyle dedi : "Chris, konuşup durmak yerine neden kendin bunu yapmıyorsun?" Böylece başladım. 
Bu hiç de kolay olmadı . Teoride herşey kolaydı ama programlamacı olmayanlara  bir alıştırma dökümanı hazırlamak düşündüğümden daha büyük çaba gerektiriyordu. (Yani programlamayı iyi bildiğim için bana kolay göründü.) 
Birkaç  yıl sonra işler yoluna girmeye başladı .  :-) Artık bitireceğime inanmıştım ve başka bir işe koyuldum , bu da dökümanın bitmesi ile beraber bunun kitap haline getirilmesiydi. Bu benim için fazla zor olmayacaktı herşey bitmişti ve hazırdı. Bazı düzeltmeler , ilave örnekler ve daha fazla alıştırma ekleyerek hazırlık yaptım. 
Bu fazladan bir yılımı almıştı. Ama buna değerdi çünkü bir çok cesur yüreğin bana yardımı ile ortaya harika bir kitap çıktı. 
Buradaki okuyacağınız orjinal döküman ufak değişikliklerle 2004 yılında son halini almıştır. Daha fazlası ve son hali için :
 http://www.pragprog.com/titles/ltp2/learn-to-program-2nd-edition 

Öğreticiler İçin Açıklama 
Burada benim uyguladığım birkaç prensipten bahsedeceğim. Bunlar zaten zor olan programlama öğrenmeyi biraz daha kolaylaştıracaktır. 
Öncelikle kavramları birbirinden olabildiğince ayrı tutmaya çalıştım , böylece öğrenci sadece bir konuya odaklanabilirdi . Bu ilk başlarda çok zor oldu ama biraz pratik kazanınca sorun kalmadı. Bir öncelik sırası belirledim ve konuları buna göre sıraladım. Böylece her gelen yeni konu bir önceki konunun ortaya çıkardığı bir motivasyon sonucu oldu. 
Diğer bir yöntem olarak her defasında bir uygulamanın sadece bir yönden çözümünü gösterdim . Bu yeni başlayanlar için iyi bir alışkanlıktı.  İlk başlarken bir problem çözümü için bir yol öğrenmek , iki yol öğrenmekten daha kolaydır. 
Bu dökümanda  " Ruby dilinde herşey nesnedir," veya " sayılar ve kelimeler nesnelerdir," gibi cümleler kullanmaktan kaçındım , çünkü bunlar yeni öğrenciler için bir anlam ifade etmiyordu. Bunun yerine kelimelerden bahsettim ve bazen de nesnelerden sadece " programlardaki şeyler " olarak bahsettim.  
Orjinal Alıştırma Dökümanı Hakkında 
Tabi ki bu sayfa da dahil olmak üzere orjinal dökümanın tüm sayfaları bir Ruby programı ile yazıldı : http://pine.fm/LearnToProgram/?ShowTutorialCode=true
Böylece bütün kod örnekleri ve çıktılarının tam ve doğru olarak buraya yansıması sağlanmış oldu. Yani örnek kodların çıktıları program içinden geldiği için kopyalama ile oluşabilecek hataların önüne geçildi . Örneklerin doğruluk testi kendi içinde yapılmış oldu.

 
Teşekkürler 
Son olarak bu çalışmamda bana destek olan ve ortaya mükemmel bir eser çıkmasını sağlayan başta Ruby-talk e-posta listesindekilere , değerli eleştirmenlerime ; onlar olmasaydı yalnız başıma bu kalitede bir çalışma yapamazdım , ve eşime teşekkür ederim.  Matz a bu dili yarattığı için  ve Pragmatic Programmers a kitabımı yayınladıkları için ! 
Eğer dökümanda bir hataya rastlarsanız , yorum yapmak isterseniz veya güzel alıştırma önerileriniz varsa ; 
Chris Pine’ye : chris@pine.fm  ayrıca bana niyaziates77@gmail.com  e- posta atmanızı rica ederiz .
Çevirmenin notu : 
Bu dökümanın Türkçeye  çevrilmesi için izin veren  Bay Chris Pine’ye Türkiye’de Ruby dilinin tanıtımına katkıda bulunduğu için teşekkür ederim .                                                                            
                                                                                    17.Nisan. 2010    Niyazi ATEŞ 
Bu çevirinin orjinal ingilizcesini şuradan bulabilirsiniz :  
http://pine.fm/LearnToProgram