Yeni baslayanlar icin-Beginner level

Merhaba arkadaslar. Yaklasik 1 aydir Python yazilim dilini ogreniyorum.Yazbel benim gibi yeni baslayanlar icin cok faydali yerli bir kaynak. Bu olusumun kurulmasinda emegi gecenlere tesekkur ederim. Benim icin tavsiyeleriniz nelerdir, ogrendiklerimi pekisterme adina? hepinize selamlar saygilar.

2 Beğeni

Benim tavsiyem bol bol proje yapmanız olur.

2 Beğeni

Aynen, ben de tavsiye ediyorum. Bu tavsiyeye elimden geldiğince uymak benim de kalıcı olarak birşeyler öğrenmeme vesile oldu. Yoksa nette bulduğum bir çok kursu bitirdiğimde bir süre sonra akılda kalan birşey olmadığını deneyimledim. Fakat projeler yapıp bilgisayarınızda, github ya da gitlab hesabınızda arşivledikçe birşeyler daha anlamlı ve kalıcı olmaya başlıyor.

İlle de özgün bir fikir üzerinden proje geliştirmek zorunda değilsiniz. Özgün olan elbetteki daha kıymetlidir fakat ilk etapta kendinizi geliştirmek için asıl önemli olan proje geliştirme sürecini deneyimlemenin ta kendisi.

Hobi amaçlı olarak yaptığım birkaç küçük projede “sıfırdan ileri seviyeye” şeklinde başlık attıkları kursların verdiklerinden daha çok şeyi daha kalıcı öğrenmek nasib oldu.

Geçen yıllarda forumda @aib ile parolayı telefonda güvenli saklama üzerine bir başlık açıp konuşma fırsatı bulmuştuk. Bana Android sistemindeki sandbox yapısından bahsetmişti. Problem durumum şuydu, artık yaşlı kabul edilebilecek anne ve babam sürekli e-devlet, e-mail, TC kimlik, telefon, banka uygulaması vb birçok şifrelerini/bilgilerini unutuyorlar ve bana soruyorlar. Ben ise kafamda tutamamaya başlayınca çözüm arayışı içine girdim. Google Keep Notlar gibi bir uygulamaya yazmak güvensiz geldi. Playstore’da bu işi yapacak çok fazla iyi uygulama var fakat kimi ücretli, kimi reklamlı, dahası kodlarını yazan kimdir/kim bilir ne yazmıştır diye yine güvensiz geldi (daha doğrusu canım kaşındı, kendime eğlenceli iş çıkarayım dedim). Hobi olarak boş zamanlarımda ufak ufak yazmaya başladım. Şu an sona yakınım fakat bu küçük ve özgün olmayan projede birçok yeni şey öğrendim;

  • Sandbox mantığında uygulamaya özel çalışma alanı var, buraya zaten diğer uygulamalar erişemiyor, aynı şekilde sizin uygulamanız da diğer uygulamaların çalışma alanına erişemiyor. Fakat root yetkisine sahip bir uygulama başka uygulamanın alanına erişebiliyor(muş)
  • Android işletim sisteminde * keystore denen bir yapı varmış ve burası özel anahtarları saklamak için tasarlanan, * hem yazılımsal hem de donanım seviyesinde koruma katmanı sağlayan bir yapıymış. Burada saklanan key’i, key’i oraya koyan uygulama kullanabiliyor. Cihaz rootlansa bile, root yetkisi olan başka biri yada başka uygulama erişemiyor. Uygulama burada saklanan keyi kullanarak veriyi sifreleyip veri tabanına kaydediyor, aynı şekilde buradaki keyi kullanarak veri tabanından aldığı bilginin şifresini çözüp gösteriyor.
  • Uygulamayı geliştirirken tıkandığım bir yerde, kullandığım framework’u geliştirenlerin github kodlarını inceleyip bazı sınıfları override yapmak zorunda kaldım. Bu sayede istediğim şeyi başarabildim.
  • * Lottiefiles diye bir animasyon ortamı varmış. Vektörel animasyon tasarlanabiliyormuş. Birçok platform özellikle lottie animasyonlarını destekliyormuş
  • Android Java sınıflarına erişebilmek için pyjnius denen araçtan faydalanmayı tecrübe etmiş oldum.
  • Geliştirme sürecinde uygulamayı yükleyip denemesini istediğim kişilerin geri dönütlerinden UI/UX mevzusunun ne kadar önemli olduğunu keşfetmiş oldum
  • * Google material design denen tasarım prensiplerini biraz daha keşfetmiş oldum
  • “Bir Label metni içinde ikon nasıl gösterilebilir“ diye interneti karıştırırken ikonlardan oluşan fontlar olduğunu öğrenmiş oldum
  • vs vs

Daha birçok şey var yazmaya eriniyorum. Bu öğrendiğim kıymetli bilgileri hobi amaçlı olarak gerçek bir hayat problemimi çözmeye çalışmak için basit bir şifre/kıymetli bilgi tutma uygulaması projesi geliştirirken kazandım. Bunları kurslarda anlatmıyorlar. Bir projeye daldığında karşınıza çıkan problemler/ihtiyaçlar neticesinde öğrenmek zorunda kalıyorsunuz. Başka bir amatör hobi projemde çok daha kıymetli şeyler öğrenmek zorunda kaldım.

Lafı uzattım özür dilerim, tek amacım @ismailarilik kardeşinizin söylediği “proje yapın” önerisinin ne kadar önemli olduğunu gerçek örnek vererek ortaya koymak.

Siz de kendinizin ya da çevrenizdeki bir problemi çözecek bir proje yapmaya başlayabilirsiniz. Vakit kaybetmeden başlayın. Yapay zekayı kullanırken dikkatli olun. Öğreneyim derken işi ona yaptırıp seyirci kalmayın. Dokümantasyon tarama, dokümantasyon Türkçeleştirme, basit ya da başlangıç kod örneği verme vb şeyler için gayet faydalı olabiliyor.

3 Beğeni

Hocam galiba anlattığınız proje android ortamında çalışan bir uygulama ? Tasarımda Android Studio mu kullandınız ben de bir kaç ay içinde projemin android uygulamasını yapmak zorunda kalacağım galiba … Bu konuda deneyiminiz varsa bir tavsiyeniz olur mu ?

1 Beğeni

Merhaba, bahsettiğiniz konu forumda daha önce birkaç yerde konuşuldu. Şu anda Android Studio üzerinde Kotlin ya da Dart/Flutter kullanarak mobil uygulama geliştirmeniz mantıklı.

Ben Android Studio’yi kaldırmayan çok eski bir bilgisayar kullanıyorum. VS Code editöründe Python/Kivy ile uygulama geliştirmeye çalışıyorum. Profesyonel işler çıkarmak pek mümkün değil. Bir noktada tıkanıyor. Hem elimdeki bilgisayar gereği mecburiyetten hem de hobi olarak Kivy kullandığım için basit şeylerde işimi görüyor şimdilik.

1 Beğeni

Teşekkürler verdiğiniz bilgiler için ben de Dart/Flutter düşünüyordum zaten benim de pc pek iyi değil bu yüzden hafif bir işletim sistemi kullanıyorum (Linux Q4OS). Android Studio’yu ayar yapmak için açtığımda biraz kasıyor gibiydi. Proje çekirdeğini (python) Vs Code ile yazıp arayüzü de Flutter ile tasarlamak istiyorum. Bakalım başarabilecek miyim :slight_smile:

Android Studio’yu bir sebepten kullanmak istemeyenler için komut satırıyla da yerel Android uygulamaları geliştirilebiliyor sanırım. Şuraya bir bakabilirsiniz: https://developer.android.com/build/building-cmdline?hl=tr

2 Beğeni

Ufak projeler yapın zaten internette fazlaca var. Benzerini yapmak sizi geliştirir. Daha sonra bunu bir problem çözmek için kullanabilirsiniz. Python benim yaşadığım pek çok problemi çözmemde yardımcı oluyor.