Python Yol Haritası

Python ile ilgili çok fazla soru gelen kısımlardan birisi Python'a nasıl başlamalıyım nasıl ilerlemeliyim şeklinde oluyor.Ben de bu soruna kendimin izlediği yolu anlatarak çozum bulmaya çalışacağım.Öncelikle kendinize Python'u oğreneceğinizi şartlamanız gerekiyor.Çunku hiçbirşey zorla yapılmaz.Eğer başlarda en ufak bir heyecan alamıyorsanız bırakın devam etmeyin.Python diğer dillerden aksine zevk alındığı ve kullanana heyecan verdiği için bu kadar populer bir dil.

From the light came Python 3K

Neden Python?

Etrafta bu kadar çok guzel ve eski bir dil varken neden gidip Python'u seçmeliyim diyebilirsiniz.Python'un diğer dillerden çok bir fazlası yoktur.Ancak fazlası olan konularda ise ayrıcalığını koymuştur.Bunların en başında temiz ve kolay syntax yapısı gelir.Bana gore Python'dan daha kolay oğrenebilen bir dil şu anlık yok.Bunun yanında eskiden yazılmış olan kodları okumakta diğer dillere gore çok çok kolaydır.Benim Python'u seçmemdeki en guzel etken bu olmuştu.Ancak sadece kolay bir dil olması ve temiz bir syntaxa sahip olması bir dili diğer dillerden ustun yapmaz.Python'un çok çok iyi olduğu farklı konularda vardır.Ve diğer dillere gore çok farklı alanlarda kullanılırlar.Uzaya gonderilcek robotun testlerini yapmaktan, Mozilla'nın sitesine, network izleme programı yapmaktan, mikroişlemci programlamaya kadar.Bu yuzden ben bu başlık altında sadece kolaylığına dikkat çekmek istedim.

Aşağıdaki bir java ve python kodu var.İki kod da ekrana hello world yazıyor.Yorumunu size bırakıyorum.(İlki java diğeri python)

public class HelloWorld
   {
        public static void main(String[] args)
        {
             System.out.println("Hello, world!");
        }
   }
print "Hello, world! 

Karar verdim Python'a başlıyorum.Peki nereden ve nasıl oğrenmeliyim?

Öncelikle etraftan duyduğunuz Turkçe kaynak hiç yok lafını bir kenara atın.Çunku biz istihza.com gibi harika bir siteye sahibiz.Hemen buraya giriyoruz ve konularda sırayla ilerliyoruz.Konu sonunda yer alan guzel sorulara kendimiz cevap vermeye çalışıyoruz.Bunları yaparken de aklımızda Python konuları bitince yapacağımız guzel bir proje duşunuyoruz.Bu projede tum oğrendiğiniz yetenekleri sergileyeceksiniz.

İstihza'da konularda sırayla ilerlerken takıldığınız yeri direk olarak google'a soruyoruz.Gizli saklı koşelerde kalmış çok guzel Turkçe Python kaynakları var.Dikkat ettiyseniz Turkçe dedim.İlk tercihiniz her zaman Turkçe olsun.Boylelikle hem bu kaynakları ust sıralara çıkartırız hem de kendi dilimizden çok daha iyi oğreniriz.

İstihza'da ilerlerken bazı konularda sadece okumak anlamanız için yeterli gelmeyecektir.Bu yuzden Google'a python dersleri yazıp videolu kaynak arıyoruz.Veya bunu yapmazsanız youtube'a girip gene aynı şekilde python dersleri yazıyoruz ve sırayla izlemeye başlıyoruz.

Belirli bir eşik değerini aştığınızı duşunduğunuzde ise yabancı kaynaklara başlıyoruz.Bu konuda benim çok beğendiğim bu playlist var.Bu videolar hem guzel bir tekrar hem de başka python kullanıcılarından guzel Python trickleri oğrenmenizi sağlayacaktır.

Artık bu videolarıda bitirdiğinize gore ciddi derece ingilizce kaynaklara bakabilirsiniz.Python tutorials, python examples, python snippets gibi anahtar aramalar ile guzel kod parçacıkları bulup bunları inceleyebilirsiniz.Bu kod parçacıkları sizin ufkunuzu açacak ve ilerde yapacağınız projelerde kullanacağınız teknikleri de geliştirecektir.

Bu dediklerimi yaptığınızda en azından artık beginner'in ustu intermediate'in altı bir Python bilginiz olacak.Tabi bu sizin istek ve yeteneğinize gore değişebilir.Bu oğrendiklerinizi de guncel olarak karşılaştığınız problemleri çozmekte kullanabilirsiniz.Örneğin bir youtube video indirme programı veya fizyde şarkı arayıp dinleme programı yapabilirsiniz.

Orta derece Python oğrendim.Bunu nasıl ilerleteceğim?

Artık yazılı kaynaklara başvurma zamanınız gelmiştir.Benim daha onceden okuduğum ve çok hoşuma giden Expert Python Programming , Head First Python ve Python For Dummies kitaplarından birisini almanız sizin için yeterli olacaktır.Bu kitaplardan gerçekten de işinde uzman olan Python programcılarının kullandığı metodları,kod yazma sanatını ve inceliklerini oğrenebilirsiniz.

Bu kitaplara alternatif olarak ucretsiz olan Dive into Python kitabı var.Bu kitapta da normalde pek bulamayacağınız advance seviye konulara değiniliyor.Telefonunuza e-book olarak atmakta fayda var.

Ve artık ciddi derecede bir Python bilginiz olduğunu duşunuyorsanız Python'un gizli yanlarını keşfedebilirsiniz.Bunun için internette çok fazla kaynak var.Ben genelde stackoverflow'dakine ara ara goz atarım.Sizde yapın faydasını goreceksiniz.

Kendinize bir IDE seçin

Bu konuda benim sizlere onerim kesinlikle PyCharm olacaktır.1 aylık deneme surumunu kullanıpta beğenirseniz ucretini vererek kullanmaya başlayabilirsiniz.Veya o 1 ay içinde açık kaynak bir projeye başlayıp veya katılırsanız PyCharm sizlere ucretsiz lisans veriyor.

PyCharm'in yanında hafif olarak kullanabileceğiniz Sublime Text 2 bence harika bir kod editoru.Python için ozelleştirip kendinize tam bir IDE haline de getirebilirsiniz.

Bu iki editor GUI ekranında size yardımcı olacaktır.Ancak uzaktan bağlandığınız bir serverdaki Python dosyasını bununla duzenleyemezsiniz.Bu yuzden bir tane de konsol kod editoru bilmeniz gerekecektir.Benim %100 olarak onerdiğim editor VIM dir.Python için harika ayarlar ile PyCharm ve Sublime Text 2'ye bile gerek kalmadan başlı başına bir IDE haline gelebilir.(Kendi dotfiles klasorume bakabilirsiniz.Python için geliştirilmiştir.)

Python oğrendik ama hep konsol uygulaması mı yapacağız?

Tabikide hayır.Python GTK,Tkinter ve Qt ile sizlerin GUI uygulaması yapabilmenize olanak sağlıyor.Hatta surekli olarak da yeni GUI ortamları geliştiriliyor.Benim size tavsiyem kesinlikle Qt olacaktır.Qt ile tasarımı çizip PyQt kullanarak bunları koda dokmeniz gayet basittir.Ayrıcana da bir hayli gelişmiştir.Ben kesinlikle PyQt'yi oneriyorum.

Fark ettiyseniz ustteki platformların hepsinde link verdim ve sizi istihza'ya yonlendirdim.İstihza sizin başucu kaynağınız olmalı.Qt dışında tum kaynakları goz dolduruyor.Ancak Qt'de biraz eksiklikler var.Sizde bu eksiklikleri Pardus Wiki den doldurabilirsiniz.Veya yukarı kısımlarda yaptığımız mantığı uygulayarak pyqt tutorials, pyqt dersleri, pyqt examples anahtar kelimeleri ile kendinize kaynak yaratabilirsiniz.

GUI uygulamasıda yaptık.Peki web sitesi nasıl yapacağız?

Python web programlama konusunda da bir hayli gelişmiş durumda.İçinde bir hayli fazla framework bulunduruyor.Bunlardan ilk aklıma gelenleri WebPy, Django, CherryPy, Pylons, Bottle, Turbogears ve Flask .Diyeceksiniz ki bu kadar çok framework var hangisini seçelim.Bana sorarsanız Django ile başlarsanız diğerlerine geçmeye fırsat bulamazsınız.Hem Turkçe kaynak olarak da diğerlerinden kat kat ustun durumda.

Python ile geliştirilmiş olan web server Tornado'ya da kesinlikle bakın derim.İlerde ufak çaplı işlerinizde kullanabilirsiniz.(Arduino ve web bağlantısında kullanılabilir.)

Mobil uygulama yapabilirmiyiz?

Eğer telefonunuz Symbian ise Python ile yapılmış birçok uygulamayı daha once kullanmışınızdır.Bu yuzden siz de yapabilirsiniz.Ancak cep telefonunuz android veya iphone ise şimdilik biraz sıkıntıları var.SL4aA kullanarak android mobil uygulama geliştirebiliyorsunuz ancak ben henuz geliştirmediğim için kesin bir şey diyemeyeceğim.Ama şunu diyebilirim Python cross-platform olduğu için aklınıza gelecek her işletim sisteminde çalışır ve ona uygun kod yazabilirsiniz.

Kendinize bir proje yapın

Yukarıdakileri yaptığınıza gore artık ciddi bir bilgi birikiminiz olmalı.Ve bu bilgilerinizi bir projede kullanmalısınız.Bu sayede bilgileriniz de pekişir.

Mesela Django sitenize PyQt kullanarak bilgisayarınızdan post girme programı yapabilirsiniz.Bunun için oncelikle Django sitenizi tamamlamış olmanız gerekiyor.Daha sonra API için bir uygulama yazmanız veya hazır olanı kullanmanız lazım.Bunun için Tastypie kullanabilirsiniz.Daha sonra Qt tasarımını çizin ve PyQt kodlamasını kullanın.Bu aşamada karşılaşacağınız bir sorun olarak GUI'nin kitlenmesi olabilir.Bunu da QThread kullanarak aşabilirsiniz.Python kodunuzun API'ye bağlanması sırasında urllib veya urllib2 kullanmak size kalmış.

Bunun yanında bir başka guzel proje de kendi okulunuzdaki değişmeleri anlık olarak size bildiren bir program olabilir.Bunu yapmak için oncelikle okulunuzun sitesine mechanize,urllib,urllib2 kullanarak bağlanmanız lazım.Daha sonra da kaynaktaki linkleri BeatifulSoup kullanarak toplamalısınız.Butun bu linkleri bir txt dosyasında saklarsanız çok daha iyi olur.Hem yeni bir link eklendiğinden de haberdar olabilirsiniz.Daha sonra bu linklere teker teker bağlanıp kaynak kodununun md5 değerini aynı txt dosyasına url:md5 şeklinde saklamalısınız.Bu sayede program her çalıştığında linklere girip md5 değerlerinin değişip değişmediğini oğrenebilirsiniz.Tebrikler artık okulunuzun sitesindeki en ufak değişikliklerden haberiniz oluyor :D

Şimdi ne yapalım?

Bence asıl olay burada başlıyor.Çunku bu aşamadan sonra kendinizi iyice geliştirmeniz gerekecek.Bunun için sosyal medyayı kullanmanız lazım.Twitter'dan unlu Python programcılarını takip edebilir, takıldığınız soruları mail ile sorabilirsiniz.

Bunların yanında reddit'teki python ve learnpython kanalında sorularınızı sorabilir, yeni teknolojileri takip edebilirsiniz.

Tum programcıların girdiği hackerne.ws sitesindeki linkleri takip edip Python ile ilgili olanlarına goz atabilirsiniz.Veya pythonmeme adındaki hn benzeri sadece Python kaynaklarını içeren siteyede girebilirsiniz.

Stumbleupon'da Python kanalına girip surekli olarak yeni siteleri stumble yapabilirsiniz.Bu sayede hem guncel hem de çok populer olan yazılara ve kaynaklara ulaşabilirsiniz.

Turkçe Python gezegeni şu anda pek aktif olmasa da Python ile yapılmış tum gezegenlere bakabilirsiniz.

Kendinize Python programcılarının bloglarının bir listesini oluşturun ve bu blogların RSS'lerini Rss Readerlar ile okuyunuz.Mesela Gokmen Gorgen,Yasar Arabacı,Fatih Erikli, Miratcan vb

Github'a girip Python ile yazılmış kodları inceleyebilirsiniz.Kendinizde bir depo oluşturup tum Python kodlarınızı buraya atabilirsiniz.

Surekli olarak gireceğiniz Python sitelerini tespit edin.Mesela benim hep girdiğim Python Lib veya PyTr(daha aktif değil) sitesi guzel bir ornek.Forumlarada goz atabilirsiniz.Özellikle Turkçe Ubuntu ve Pardus forumları Python olarak baya zenginler.

comments powered by Disqus