İşe yarar bir programcı(aslında bu tabiri sevmiyorum) olmaya çalışırken hangi yolu izlediğimi, daha doğrusu izlemeye çalıştığımı maddeler halinde, Python’dan örnekler de vererek, yazayım bugün. Peşinen söylemeliyim ki; henüz iyi bir programcı olma konusunda başarılı olduğumu söyleyemem. Yemem gereken 40 fırın ekmek ve aşmam gereken yıllar var…
1- Bilgisayar biliminin temellerini bilin.
Program yazarken kullandığımız programlama dillerinin ve tekniklerin bir teorik temeli var. Veri yapıları, algoritmalar, nesne yönelimli programlama, tasarım örüntüleri(design patterns) ve diğer teorik bilgisayar bilimi konularında iyi kötü teorik bilgiye sahip olun. Hatta zamanınız varsa ve gerçekten ilgi duyuyorsanız daha fazlasını da çalışabilirsiniz. Bu madde benim gibi Bilgisayar Mühendisliği ya da yakın dallarla okul bazında alakası olmayanlar için çok önemli; çünkü yaptığınız işin temelini bilmelisiniz.
2- Kullandığınız dilin temel özelliklerini iyi bilin.
Bir programlama dilinde etkin kod üretebilmek için onun inceliklerini bilmeniz gerekir. Python özelinde konuştuğumuza göre kaynak da gösterebilirim. Resmi Python dökümanlarındaki bazı kısımlar ve bazı kaynak kitaplar işinizi görebilir.
3- Düzenli olarak kod yazın.
Eğer bir dili öğreniyorsanız, onu düzenli olarak kullanmalısınız. Bu sizi zinde kılar. Tıpkı bir sporcu gibi; sürekli çalışırsanız o dili, dolayısıyla programlamayı da zamanla özümsersiniz. Size 10 günde ya da 3 haftada programlama ya da programlama dili öğreteceğini iddia eden kitaplara, kaynaklara kanmayın. Programlama yeteneğiniz, zeka ve deneyim gerektiren tüm diğer işlerde olduğu gibi zamanla gelişir.
4- İyi yazılmış kodları okuyun.
Sizden daha zeki ve muhtemelen daha uzun zamandır program yazan insanlar vardır kesinlikle. Onların yazdıkları kodları okuyun. Github, Gitorious, Google Code ve Sourceforge gibi kaynaklarda pek çok proje var. İlginizi çekenlerin ve kaliteli kod içerdiğine inandıklarınızın kodlarını edinin ve okuyun. Kod roman okur gibi okunmaz elbette ama sadece baksanız bile bir göz aşinalığı edinirsiniz. Ayrıca yapabiliyorsanız koda ufak tefek müdahalelerde bulunup nasıl çalıştığını gözleyin. Bu sizi motive eder.
Son dönemde dikkatimi çeken ve bolca kaliteli Python kodu içeren PyPy projesi var mesela. İnceleyin, gerçekten çok ilginçtir… Ayrıca Python’un kendi kodunu da inceleyebilirsiniz. Kodun C kısmından bahsetmiyorum; saf Python’la yazılmış modülleri inceleyin. Bizzat Python geliştiricileri ve katkıcıları tarafından yazılmış kodlar bunlar.
5- Temiz ve standartlara uygun kod yazın.
İster Özgür Yazılım geliştirin ister sahipli, kodlarınız mümkün olduğunca okunaklı ve standartlara uygun olmalıdır. Bu durum Özgür Yazılım projeleri için daha da önemli; çünkü sizden başkaları da programınızı geliştirmek isteyebilir. Sadece yazdıklarınızı anlamak bile yeterli bir beyinde verimli fikirler oluşturabilir. Ayrıca programınızı nasıl dağıtırsanız dağıtın kodun kirli ve standart dışı, yani kalitesiz, olması zamanla projenizi öldürebilir.
Bu da benim stilim diye havalara asla girmeyin, yazılım tasarlayıp geliştirmek bir mühendislik işidir. Ve mühendislikte her yiğidin bir yoğurt yiyişi yoktur. Standartlar vardır!
Meşhur PEP 8, Python’un stil rehberidir. Mutlaka okuyun.
http://www.python.org/dev/peps/pep-0008/
Bu da Google‘ın Python hakkındaki tavsiyeleri. Google gibi Python’u çok yoğun olarak kullanan kaliteli bir firmanın dediklerine kulak asmak gerekir.
http://google-styleguide.googlecode.com/svn/trunk/pyguide.html
6- Yarım yamalak öğrenmeyin.
Kullandığınız dilin bir özelliğini keşfettiğinizde, o konu hakkındaki her şeyi araştırın ve bulduğunuz bilgiyi elinizden geldiğince özümseyin. Bir şeyi yarım yamalak bilmek çok tehlikelidir.
7- Daha fazlasını öğrenin.
Özellikle benim gibi orta düzey bir programcıysanız öğreneceğiniz çok şey vardır. Yazdığınız program muhtemelen çok daha güzel ve zekice yazılabilir. Sürekli araştırın, yeni özellikler ve teknikler öğrenip onları kullanmaya çalışın.
8- Asla bir programlama diline bağımlı kalmayın, yeniliklere açık olun
Mutlaka birden fazla programlama dili öğrenin ve bu dillerde yazılmış kodlarla haşır neşir olun. Bu ufkunuzu açar. Tercihen zaten bildiğiniz dilden farklı bir dil öğrenin. Fonksiyonel bir programlama dili öğrenin mesela. Farklı bir bakış açısı edinebilirsiniz. Ben Scala ile ilgileniyorum, apayrı bir alem olan Java alemine de yaklaşıyorum sayesinde.
Ve son olarak şunu söylemem gerek: mutlaka test yazarak yazılım geliştirin. Test yazmıyor olmanız o iş kapsamında kötü mühendislik yaptığınız anlamına gelir.
Yazının orjinali burda, eski blog:
http://buraxezer.wordpress.com/2011/03/30/python-programcisina-tavsiyeler/