Arkadaşlar pythonda yeniyim. Pythonda bir kodu android uygulamasına çevirmek

Merhaba

Tabi ki sadece for döngüsü meselesi değil. Ama kapsam belirlemek için girinti çıkıntı yapmak gibi diğer dillerde pek rastlanmayan özellikleri de gözardı etmemek gerekir. Bunun yanı sıra, nesneye yönelik programlama odaklı bir dil olduğu için nesneler üzerinde çalışmaya başlamadan önce temel programlama tekniklerini de göz önünde tutmak gerekir.

Şimdi bir kaç dilin syntax ini alt alta koyun şunu göreceksiniz, neredeyse hepsi C formatında yazılıyor.

Yani bu daha önce saydığım birkaç dil içerisinde hemen hemen hepsi syntax olarak bir birine yakın. Vurguladığım bu.

İstisnası, pascal ve object pascal grubu olabilir.

Tabi ki C yi yeni başlayan birine önermem. Bu nedenle yazımda öğrenme eğrisi dik bir dildir diye belirttim.

Benim şöyle bir cevabım var.

Programlama öğrenirken, tip kontrollü, derlenen bir dil öğrenmek.

Nedeni neden integer, neden char, neden string veri kullandığını görebilmek.

Tabi bu tip kontrollerini yaparken tip dönüşümlerini de kolayca yapabileceği diller.

Aynı zamanda yapılsal programlama ile başlanmalı.

Böylece, işlem basamaklarını, akış şemalarını net bir şekilde kafasında canlandırabilmeli.

Ardından nesneye yönelik programlama ile devam edebilir.

Doğrudan nesneye yönelik programlama ile başlamak sınıf yapısının zihinde canlanmasında zorluklara neden olabilir.

Kaldı ki yazılan/öğrenilen bir çok kod nesne gerektirmeyecek kadar basit kodlar olacaktır. Nesneleri neden kullanması gerektiğini kavraması açısından da önce yapısal programlamanın öğrenilmesinde fayda vardır.

Bu nedenle görsel kodlayıcısı olan dilleri önerdim. Labview, strach gibi dillere bakarsanız anlarsınız diye düşünüyorum.

Sebebi de şu, öğrenilecek ilk şey bir problemin çözümünün bilgisayara nasıl aktarılacağı, bilgisayarın neyi yapıp neyi yapabildiğinin anlaşılımasıdır.

Yani yeni öğrenen birinin, syntax hataları, kütüphane/modül yükleme sorunları gibi doğrudan problemin çözümüne katkı sağlamayacak kısımlarıyla uğraşmasını istemem.

Ardından tabi ki her dil ile haşır neşir olup, bunlarla da uğraşmak isteyebilir.

Burada aslolan, hiç bu kelimeyi kullanmayı sevmem ama algoritmayı oluşturabilmektir. Yani sorunun çözümü için bir yol oluşturduktan sonrası sadece o dilde kodu yazma kısmıdır.

Yani, mp3 codec ini düşünelim. Burada hangi dilde yazıldığına gelmeden önce, Huffmen sıkıştırma algoritmasının tasarlanması anlamlıdır.

Yada, yapay zeka, görüntü işleme konularında görülen, kenar belirleme algoritmaları gibi algoritmaların tasarlanması bu işin asıl çekirdeğidir.

Sonrası zaten bir dilde bunu kodlamaktan ibarettir.

Bize, ülkeye gerekli olan bu algoritmayaları tasarlayacak insanlara yol göstermektir. Yoksa kod işçisi olursunuz. Bana pythonda, şunu yapan, c de bunu yapan bir program yaz, demek zaten varolanın tekrarıdır. Ancak öğrenme aşamasında faydalı olabilir ama bu bir nevi tüketiciliktir. Dili tasarlayan, algoritmayı tasarlayan insanlar bu işin başındayken, bunları öğrenmeye çabalayarak ömrünü dolduranlar sadece kod işçisi olabilirler, kodun patronu olamazlar.

Kişiler özelinde konuşmuyorum.

Kodlamayı sevdirmek için tabi ki önemli. Dikkat çekmek, ilgisini artırmak, vs. Bunlar pedagojik konular. Ben yetişkin eğitimine odaklıyım. Diğer taraftan yetişkin eğitimi ile çocuk eğitiminin de neredeyse tam tersi işlediğini de rahatlıkla söyleyebilirim.

Özetleyecek olursak;

Yeni başlayan biri, daha az yazım hatası gibi konularla uğraşabileceği, daha az nesnelerle uğraştığı prosedürel/ yordamsal/ yapısal programlama ile başlamalı ki, adım adım ne yapabildiğini farkedebilmeli.

Maalesef bir çok dilin temel eğitimi, konsol/terminal üzerinde başladığından evet çocukların eğitminde ilgisini çekmeyebiliyor.

Ama görsel arayüz içeren bir programı, konvansiyonel dillerle, python dahil , öğrenme aşamasında kullanırsanız, aynı zamanda arayüz programlama bilgisini de ayrıca öğretmeniz gerekiyor ki bu da asıl odağı, algoritma/problem çözüm yöntemleri yerine arayüze harcatıyor.

Burada çok gördüm.

TKinter da bir kod yazıyor. Daha iki sayıyı toplayacak bir kod. Sonra butona tıklıyor hop arayüz dondu.

Bu sefer dönüp, uzun süren hesaplamalar esnasında nasıl arayüzü serbest bırakabielceğini, windows veya linux işletim sisteminin temel dinamiklerini açıklamak, multithreat gibi konuları anlatmak zorunda bırakıyor.

Bir anda iki sayıyı toplayacak yada bir while döngüsü içinde karşılaştırma sürelerini beklerken donan ekrandan. Paralelizm çoklu işlem konuları anlamaya geçip, aşırı bilgi yüklemesine neden olunuyor.

Bu sorunu ilk ben farketmedim. Çocuk eğitimi, pedagojik eğitimde bu işi nasıl çözeriz diye, MIT kafa yormuş ve sonuç, Sctrach.

Yani temel programlama eğitiminde arayüz ile uğraşmak sizi yanlış yöne götürür. Arayüz geliştirmekle ilgili bilgileri öğrenmeye harcadığınız vakit asıl algoritma bilgisinden sizi uzun süre alıkoyar.

Şurada windows’un mesaj kuyruğunu, olaylarını , mesaj işlemeyi anlatsam sayfalarca yazı ve öğrenilmesi gereken sayısız bilgi gerektirir. Hepi topu bir butona tıklanacak ama arkasında devasa bir mekanizma dönüyor. Tabi ki bu da öğenilmeli ama ilk buradan başlanmaz.

Ben olsam yeni başlayan birine visual basic önerirdim. Arayüz oluşturmak gayet kolay. Tip kontrolü ve tip dönüşümü kolay.

Yani sürükle bırak kodlamadan bir önceki seviye olarak, VB, sürükle arayüz tasarla sayesinde makul bir nokta olabilir. Bunun yanı sırsa Visual C# da ikinci sırada olabilirdi.

Yalnız bunlar microsoft shit’i olduğundan sevmeyen de olabilir. Bu durumda Eski borland, yeni Codegear ın, Delphi’sini önerebildirdim.

Tabi dil önermek çok karmaşık bir konu. Adam, web programcısı, backendçi, frontendçi falan o konular ayrı. Ama yeni öğrenen ve programlamaya başlayan biri için önerilerim bunlar olurdu.

Yine hedefi android olan birine (temel programlamayı öğrendikten sonra olma koşuluyla) kotlin ve java önerirdim. Java her ne kadar sevmediğim dil olsa da, anroid için gayet native bir dil. Hatta yeri gelmişken, apk dosyasını winrar gibi bir zip açabilen programla açarsanız içinde xml dosyası, dex dosyası olan bir zip dosyası olduğunu anlayabilirsiniz.

Burada dex dosyasının, derlenmiş java byte dosyası olduğunu, aslında androidin bu dosyayı yürüttüğünü kolayca görebilirsiniz.

Çok uzadı. Sonuçta görsel arayüz programlama bilgisi gerektirmeyen yeni nesil, sürükle bırak mantığı ile kod yazabileceğiniz alternatiflere mutlaka bakmalısın.

Visual programming language - Wikipedia

Rethinking Visual Programming with Go · divan’s blog

Gibi örnekler verebilirim.

Yeni başlayanlar, tip kontrolü, sınıf yapılarıyla boğuşma, arayüz detayları ile boğuşmama, sadece işlem adımlarına odaklanma için rahatlıkla buralardan başlayabilir.

Ve tabi ki kod tabanlı programlama önemli ama yeni başlayan ve hevesi kırılmasın diyorsanız bunları da göz önünde tutmalısınız.

1 Beğeni