Python öğrenmek istiyorum ama nasıl?

python2-300x239Şimdiye kadar bir çok kez Python öğrenmeye başlayan insanlardan nereden başlayacakları ve nasıl devam edecekleri konusunda sorular aldım. Soruların hepsini dilim döndüğünce cevapladım. Sonra bu soruların içeriğinin genel anlamda çok benzer olduğunu fark edip bu konuda herkese ayrı ayrı cevap vermektense -hem de bütünlük ve kolay erişebilirlik olması açısından- böyle bir yazı yazmaya karar verdim.

Genel olarak sorulan soruları toparlayıp olayın “bence”sini anlatayım sizlere.

Programlamaya yeni başlayan biri için Python uygun bir seçim midir?

Evet uygun bir seçimdir. Burada öncelikli olan programlama mantığını oturtmak. Bu kısım dil bağımsız bir olaydır aslında. Yani algoritma oluşturma mantığını kavrayabilmek herhangi bir programlama dili ile doğrudan ilgili bir olay değildir. Pseudo code yazarak da algoritma mantığını oturtabilirsiniz. Yani programlamaya başlamak için yeter koşul bir dil bilmekten öte algoritma oluşturmayı bilmektir. Python ise bu aşamayı gerçekleştirirken kullanabileceğiniz bir dildir ve yeni başlayanlar için oldukça elverişlidir.

Hangi programlama dilini seçmeliyim (Bence en önemli soru bu)?

Python’la neler yapabilirim?

Yukarıdaki soruların cevapları iç içe olduğundan bunlara için genel bir cevap vermek daha doğru olur diye düşünüyorum. Bir programcının hangi programlama dili üzerinde uzmanlaşmak istediğine karar vermesi en zor süreçlerden biridir -bu süreci yaşamış biriyim ben de-. Buna cevap verebilmek için ihtiyaçlarınızı iyi belirlemiş olmanız gerekiyor. Bu süreçte size yardımcı olabilecek bazı ip uçları sunsam da bu süreci çözümleyecek tek kişi sizsiniz. Aslında ihtiyaçlarınızı belirlemeniz de tam olarak çözüm olmayacaktır. Günümüzde programlama dillerinin sınırları birbirine girmiş durumda, yani aynı işi bir çok programlama diliyle gerçekleştirebilirsiniz, programlama dillerinde sınır dil değil sınır sizsiniz. Bu noktada Python’la neler yapılabileceğine değinmek seçiminizi kolaylaştıracaktır diye düşünüyorum.

– Görsel açıdan zengin desktop uygulamalar geliştirebilirsiniz:

Python’la gui (Graphical User Interface) tabanlı desktop uygulama geliştirebileceğiniz bir çok gui kütüphanesine sahip. Bu kütüphaneleri kullanarak platform bağımsız uygulamalar geliştirebilirsiniz.

– Web tabanlı uygulamalar geliştirebilirsiniz:

Python’la yeni tanışmış insanların duyduğunda şaşırabildiği bir bilgidir bu, “Nasıl yani Python’la web sitesi yapabiliyor muyuz?” sorusu gelir akabinde cevabı ise kocaman bir “Evet”tir. Python web uygulamaları geliştirmek için oldukça zengin ve işlevsel framework desteği olan bir dildir. Bunlardan en geniş community’e sahip olanı Django‘dur. Dökümantasyonu zengin ve kullanım alanı diğer framework’lere göre daha geniştir. Djangoproject üzerindeki tutorial’lar başlangıç için idealdir. Burada bahsetmek istediğim bir diğer web framework ise kendi projelerimde de kullandığım web.py‘dir. Web.py’nin en önemli özelliği lighweight olmasıdır. Uygulama geliştirmek için basit(!) bir çatı sunar size, siz bu çatı üzerine istediğiniz gibi uygulamanızı yerleştirirsiniz. Django çok geniş bir kütüphaneye sahip, bir çok işlem için çok işlevsel fonksiyonlar geliştirilmiş, django ile kıyasladığınızda web.py ile daha low-level işlemler yapmak durumunda kalabiliyorsunuz. Kişisel olarak bu işlemleri yapmaktan zevk alıyorum, ayrıca genel mantığı kavramak açısından da gerekli olduğunu düşünüyorum. İlerleyen zamanlarda django’ya geçmeyi düşünüyorum ben de, en azından birkaç proje geliştirerek daha sağlıklı bir değerlendirme yapabilirim.

– Mobil uygulamalar geliştirebilirsiniz:

PyS60 ile Nokia S60 seri telefonlara uygulama geliştirebilirsiniz. S60 bağımlılığı ve Java kadar geniş bir kütüphaneye sahip olmaması gibi eksiklikleri olsa da Python’un bu alanda da var olması gelecek için ümit verici. Eğer profesyonel anlamda mobil programlama ile uğraşmayı düşünüyorsanız önerim C++/Java olacaktır.

Programlamaya yeni başlayanlar için dil seçimi kadar önemli olduğunu düşündüğüm bir diğer konu ise linux. Eğer hiç linux kullanmadıysanız kesinlikle ve kesinlikle bir linux dağıtımı edinip kullanmaya başlamanızı öneririm. Linux kullanmak işin mutfağında olmak gibidir, programcının ufkunu açar. “Hangi dağıtımı kullansam ki?” diyorsanız sizi şöyle alayım. Bir programcı daha önce linux kullanmış ama sonradan kullanmayı tercih etmemiş olabilir, ancak hiç linux kullanmamış programcı bana göre eksik bir programcıdır.

Son olarak konuyu toparlayacak olursak; yukarıda bahsettiğim konular çerçevesinde Python’un ihtiyaçlarınızı karşıladığını düşünüyorsanız başlamak için hiç beklemeyin derim. Python öğrenmek size hiçbir şey kaybettirmeyecektir.

* Python’la ilgili e-book soran arkadaşlar -basit bir google aramasıyla da ulaşılabilecek olan- bu adresten faydalanabilirler.

Kalın sağlıcakla.

Adam asmaca

Uzuuun bir aradan sonra tekrar birlikteyiz. Buraya her yazdığımda utanıyorum nedense. Bir önceki yazının üzerinden uzun bir süre geçmiş oluyor çünkü. Ama utanıyorum bu size bir anlam ifade ediyordur umarım :)

Tezimin içinde kullandığım bir oyundu adam asmaca. Kodu satır satır açıklamayacağım. Önemli gördüğüm yerlerde açıklama satırları kullandım. Uygulamayı Nokia 6300′da denedim sorunsuz çalışıyor. Kendi telefonunuzda canvas çizimlerinde kaymalar olursa (-ki olacağını sanmıyorum oranlama yapacak şekilde ayarladım) koordinatları ona göre değiştirirsiniz.

Kullandığım teknolojiler:

  • IDE: NetBeans (mobil pack)
  • OS: Pardus
  • Dil: Java(J2Me)

Kodlar çok uzun olduğu için buraya koymayacağım, jar dosyasını (telefonunuza kuracağınız dosya) buradan, kaynak kodunu (ek dosyalarla birlikte) buradan indirebilirsiniz.

j2me için ne gerekli?

Merhaba. Ne zamandır j2me ile ilgili bir şeyler yazmak istiyordum. Bugün tam yazmaya karar verdim daha sonra j2me ile ilgili giriş seviyesinde bir şey yazmadığımı fark ettim. Bu yazıyı da o açığı gidermek için yazıyorum. Ancak fazla uzun tutmak niyetinde değilim. J2me ile programlama yaparken neleri kullandığımdan bahsedip asıl yazmak istediğim yazıya uzun bir atlama yapmak istiyorum.

J2me ile program yazarken NetBeans idesini kullanıyorum.

Kullandığım temel özellikleri:

  • Görsel tasarım (visual design)
  • Hata ayıklama (debugger)
  • Kod tamamlama (code completion)

Buradan son sürümünü indirip kurabilirsiniz.

* Pardus kullanıyorsanız ve kurulumda hata ile karşılaşıyorsanız, kuruluma geçmeden önce konsolda

LC_ALL=C

komutunu verip kurmayı deneyin.

Girişi yaptık ya gerisi gelir artık, zor olanı hallettik :)

Diğer yazıda görüşmek üzere, bu arada siz de Özgür Kalın..

PyS60 Kurulum

Mobil uygulama örneklerine geçmeden Python’u telefonumuza nasıl kuracağımızı anlatmakta fayda var diye düşündüm.

Öncelikle telefonunuzun hangi nesil olduğunu öğrenmeniz gerekiyor. Şu adresten öğrenebilirsiniz. Developer Platform başlığından telefonunuzun hangi nesil olduğunu ve özellik paketini öğrendikten sonra bu adresten python yourmlayıcısını ve yorumlayıcı arayüz dosyalarını indirmeniz gerekli.

Bir örnekle anlatırsak daha açıklayıcı olur diye düşünüyorum.
Telefonumun özellikleri: 2nd Edition Feature Pack 2 olsun.
İndireceğim dosyalar:
PythonForS60_1_4_1_2ndEdFP2.SIS
PythonScriptShell_1_4_1_2ndEdFP2.SIS

Bu dosyaları telefonunuza gönderip kurduktan sonra ana menünüze Python simgesinin yerleştiğini göreceksiniz.

Programı çalıştırdığınızda menüden Interactive Console‘u seçip etkileşimli yorumlayıcı ile python kodu yazabilirsiniz, daha önce kaydettiğiniz python kodlarını çalıştırmak istiyorsanız Run Python Script menü elemanını seçebilirsiniz.

Fırsat buldukça üzerinde çalıştığım örnek programları buradan sizlerle paylaşacağım.

Kalın sağlıcakla.