arşiv

1, 2012 için arşiv

Yeni Python3 Belgeleri

Pazartesi, 02 Oca 2012

Uzun süredir üzerinde çalıştığım yeni Python3 belgelerinin bir kısmını bugün yayımladım. Bu belgelere http://www.istihza.com/beta/py3/icindekiler_python.html adresinden ulaşabilirsiniz.

Aslında elimde sitede gördüğünüzden daha fazla belge var, ama bu belgeleri yayımlayabilmek için, içeriğin hazır olması yetmiyor ne yazık ki. Belgelerin sunumu ile de epey uğraşmak lazım. O yüzden, bu belgeleri yayımlanabilir hale getirebilmek için bunların üzerinde biraz daha çalışmam gerekiyor. Belgeler hazır oldukça sunucuya yükleyeceğim.

http://www.istihza.com/py3/icindekiler_python.html adresinde bulunan eski belgelerde Python3′ün 3.0 sürümünü ele almıştık. Yeni belgelerin eski belgelerden farkı ise, yeni belgelerde Python3′ün daha yeni bir sürümünün (Python 3.2.2), çok daha ayrıntılı bir şekilde anlatılıyor olması.

Yeni Python3 belgelerinin başka bir önemli özelliği de Python ve Tkinter’in birlikte anlatılmış olması. Bu belgelerde öğrenci komut satırı ve grafik arayüz tasarımını birlikte öğrenecek. Bu sistemin öğrencinin motivasyonunu artıracağını düşünüyorum. Bu kararın gerekçelerini belgelerde şu şekilde açıklamaya çalıştım:

Bir programlama dilini öğrenirken, öğrencinin karşısındaki en büyük engel öğrenilmesi gereken şeylerin çokluğu veya zorluğu değildir. Aslında öğrencinin öğrenme motivasyonunu kırabilecek, onu yolundan alıkoyabilecek en önemli etken, öğrendiği bilgileri kafasında bir yere oturtamamasıdır. Yani öğrenci bir programlama dilini öğrenirken, özellikle de henüz yolun başındaysa ve daha önce de herhangi bir programlama dili deneyimi olmamışsa, öğretilen şeyler ona gereksizmiş gibi gelebilir. Hatta öyle ki, zaman zaman anlamsız ayrıntılarla vakit kaybettiği hissine dahi kapılabilir.

Bu kitapta şimdiye kadar öğrendiğimiz bilgilerden örnek vermemiz gerekirse, kapkara bir ekrana “Merhaba Zalim Dünya!” yazdırmanın son derece gereksiz ve aslında hiçbir işe yarayamayan bir çaba olduğunu düşünebilir. Öğrenci (doğal olarak) her zaman sabırsızdır. Bir an önce sonuca varmak, emeklemeyi öğrenmeden koşmak ister.

Bu kitaptaki konuları okurken siz de yukarıda anlatılan sabırsızlık ve manasızlık duygusuna kapılmış olabilirsiniz. Ama aslında bunun çok doğal bir his olduğunu asla aklınızdan çıkarmayın ve bir an da olsa kafanızdan geçen bu hislerin sizi yolunuzdan döndürmesine, motivasyonunuzu kırmasına izin vermeyin. Unutmayın ki, bütün büyük programlar, minicik ayrıntıların programcı tarafından ustaca bir araya getirilmesi sonucu ortaya çıkar. Hatta şöyle diyebiliriz: Programlama, bir yap-bozun parçalarını birleştirmek gibidir. Yap-bozun parçalarına tek tek baktığınızda bu parçalar bütüne dair bir anlam ifade etmeyebilir. Asıl manzara bu anlamsız görünen küçük parçaları birleştirdiğinizde ortaya çıkar…

Aslında bu anlattıklarımız sadece programlama öğrenen öğrenciler için değil, her konunun öğrencileri için geçerlidir. Örneğin okullarda İngilizce öğretilirken ilk verilen bilgilerden biri “This is an apple!” (Bu bir elmadır) cümlesidir. Belki bu cümleyi hayatınız boyunca hiçbir zaman kullanmayacaksınız. Ama bu cümlede geçen ve ilk bakışta dikkatinizi çekmemiş olabilecek ayrıntılar aslında İngilizce’nin yapısı ve mantığı hakkında son derece önemli bilgiler içeriyor. Böyle bir cümle kurmadan, daha karmaşık cümleler kuramazsınız. Aynı şekilde, bizim bu kitapta size öğrettiğimiz print("Merhaba Zalim Dünya!") komutunu da yazdığınız programlarda muhtemelen hiçbir zaman kullanmayacaksınız. Ama tıpkı “This is an apple!” cümlesinde olduğu gibi, print("Merhaba Zalim Dünya!") ifadesi de Python programlama diline dair çok önemli ayrıntıları içinde barındırır. Aynı şekilde, bu komutu yazabilmek de önemli ve büyük programlar üretebilmenin ilk adımıdır.

Öğrencinin yaşadığı bu ikilem sadece kendisini değil, herhangi bir konu üzerine öğretici belge hazırlayanları da bir hayli zorlar. Çünkü herhangi bir konu üzerine öğretici belge hazırlayanların aşması gereken en büyük zorluk, anlatılacak konuları düzgün bir şekilde hazırlamaktan ziyade, yukarıda söz edilen heves kırıcı etkenleri bertaraf edip, okurun ilgisini sürekli ayakta tutabilmektir.

Konuyu programlama açısından ele alacak olursak, aslında öğrencinin hevesini kıran şey biraz da komut satırının kasvetli havasıdır. Bir programlama dilini öğrenmeye çalışan kişi günlük yaşamında sürekli olarak modern grafik arayüzlere sahip programlarla karşılaşırken, kendi öğrenme deneyimi sırasında siyah bir ekranla uğraşmak zorunda kalmak pek hoşuna gitmeyebilir. Öğrencinin komut satırıyla birlikteliği uzadıkça, sabırsızlığı da artacak, bir an önce pencereli-düğmeli programlar yazabilme arzusu yüzünden öğrenmesi gereken temel bilgilere odaklanmakta dahi zorluk çekebilecektir.

Bu kitapta, yukarıda sözü edilen sıkıntıları en hafife indirmek için biz öğrenciyi grafik arayüz programlama ile erkenden tanıştırma yoluna gideceğiz.

Elbette Python programlama dilini bu kitap aracılığıyla öğrenmek isteyenler arasında, Tkinter’e (veya genel olarak grafik arayüz programlamaya) hiç bulaşmadan sadece Python öğrenmek isteyenler de olabilir. İşte biz onları da düşünerek grafik arayüz konusunu ayrı bir bölüm olarak tasarladık. Bundan sonraki her dersin sonunda “Tkinter” adlı bir bölüm de yer alacak. Eğer grafik arayüz konusunu öğrenmek istemeyenlerdenseniz ders sonlarındaki Tkinter adlı bölümleri es geçebilirsiniz. Bu bölümleri görmezden gelmeniz Python’ın kendisine ilişkin bölümlerdeki konuları anlamanızı zorlaştırmaz veya herhangi bir şekilde etkilemez.

Grafik arayüz programlama ile komut satırı programlama konularının bir arada anlatılmasının gerekçesi, bir an önce pencereli-düğmeli programlarla tanışmak isteyenlerin ihtiyacına cevap verebilmektir. Eğer “benim böyle bir ihtiyacım yok!” diyorsanız alnınız dik, başınız ileride yolunuza devam edebilirsiniz.

Esasında her öğretme biçiminin kendine has artı ve eksi yönleri vardır. Bu açıdan, dezavantajsız bir öğretme biçiminden söz etmek pek mümkün olmayacaktır.

Bir programlama dilini sadece komut satırı üzerinden öğretmeye çalışmanın dezavantajlarından yukarıda bahsetmiştik. Grafik arayüz programlama, özü itibariyle ileri düzey bir konu olduğu ve kavramlar açısından komut satırı programlamaya göre önemli farklılıklar içerdiği için öğrenciyi erkenden grafik arayüz programlama ile tanıştırmanın da bazı dezavantajları olabilir. Ancak Python programlama dili özelinde düşünürsek, bir Python programcısı, örneğin bir C programcısına kıyasla programlama macerası boyunca grafik arayüze sahip programlarla çok daha fazla haşır neşir olacaktır. Çünkü Python programlama dili, yapısı itibariyle grafik arayüz geliştirmeye, C programlama diline göre çok daha uygundur. Üstelik biz bu öğretme biçiminin olası dezavantajlarını en aza indirmek için elimizden geleni de yapacağız.

Yeni Python3 belgelerini beğeneceğinizi umuyorum. Her zaman olduğu gibi, bu belgeleri hazırlarken de amacım kaliteli, anlaşılır ve modern bir Türkçe kaynak ortaya çıkarmaktı. Bu amaca ulaşmak için elimden gelen çabayı gösteriyorum. Ancak elbette bu belgelerde bazı hatalar ve eksiklikler de olacaktır. Belgelerde bulduğunuz hataları ve eksiklikleri kistihza [at] yahoo [nokta] com adresinden bana iletebileceğiniz gibi, http://www.istihza.com/forum adresinde de dile getirebilirsiniz.

Python programlama dili ile ilgilenen herkese faydalı olması ümidiyle…

istihza.com, Python , ,