25 Ekim 2016 Salı

Yeni bir yazılım dili öğrenirken.


Merhaba,

Bu yazımda yeni bir yazılım dilini öğrenirken uyguladığım metodoloji'yi paylaşmak istiyorum. Bu metot Jr. seviyesindeki yazılımcılar için o kadar da kullanışlı olmayabilir.

Şayet bir dili çok iyi biliyorsanız, aynı teknolojiye hizmet eden farklı dilleri çözmeniz o kadar da zor olmayacaktır. Kodların hepsi temelde aynı şeydir, sadece syntax farkı vardır, bu problemin de kısa bir süre yavaşlık dışında bir negatif etkisi yoktur. Fark şu durumda oluşur, web developer iseniz ancak elinize hem web olmayan hem de farklı bir dille yazılmış bir proje geldiyse bu durumda yapacağınız şey nazikçe ben bunu yapamam demektir (:

Mesela
Örnek olarak, Php dilinde web projeleri kodluyorsunuz, ancak elinize .Net yada başka bir dille yazılmış bir web projesi geldi. Bu durumda yapacağınız şey bir web projesi için tüm dillerde geçerli olan ortak aksiyonların bu dil ile nasıl yapıldığını bulmak.

Nedir bu Web projesi için ortak aksiyonlar?

  • İde'nin kurulumu ve kodun derlenmesi için gereken işlemler.
  • Post,Get işlemleri.
  • Async işlemler.
  • Arayüzden backend'e veri gönderimi.
  • Backend üzerinden arayüze veri basılması.
  • Backend üzerinden veritabanı bağlantısı.
  • Veritabanı'na veri gönderilmesi ve alınması.
  • Kod life cycle'i nin hangi metotlardan oluştuğunun belirlenmesi.
Görüldüğü gibi bir kaç tane temel madde var. Önünüze bir web projesi geldiği zaman dili ne olursa olsun totalde  yapacağınız işlemlerin özeti aslında bunlardır. Yukarıdaki aksiyonları öğreneceğiniz yeni dil üzerinde çözdüğünüz zaman, ki bu max. bir haftanızı alır. Bu yeni dili %80 oranında öğrenmişsiniz demektir. Geriye kalanlar, syntax farkı nedeniyle oluşan zaman maliyeti ve bu yeni dile ait normalizasyon&sınıflandırma tekniklerinin, paternlerin oturması sürecidir. Bu da low level öğrenme süreciyle,  hem çalışıp hem öğrenerek max. 1 2 ayınızı alır. 

Yukarıda ben web teknolojileri için örnek verdim, diğer farklı platformların hepsinde de bunun gibi 5-10 maddelik özet çıkarılabilir. Yani aslolan dil değil, geliştirme yaptığınız teknoloji bütünlüğüdür.

Mobil Projeler üzerinde uygulayalım.
Şimdi de aynı tekniği mobil yazılımlar üzerinde uygularsak bu maddeler aşağıdaki gibi olacaktır.
  • İde ve emulator'un kurulumu ve kodun derlenmesi işlemleri.
  • Async Post ve Get işlemleri nasıl yapılır?
  • Web servisten gelen veri nasıl objelere parse edilir?
  • Arayüz üzerinden alınan veri web servis'e nasıl post edilir?
  • Kod life cycle'i hangi metotlardan oluşur?
  • Cihaz sensorleri nasıl kullanılır?(Bunu hemen öğrenmenize gerek yok, ihtiyaç oldukça)
Son bir trick daha. Yeni bir dil öğrenme aşamasında haliyle aldığınız hataların sayısı oldukça fazla olacak bir süre. Hatayı aldığınız zaman, Google üzerinden ararken kendi kafanıza göre açıklama yapmayın. Hata ekranında bulunan exception u kopyalayıp(kabul edilebilir bir uzunlukta), sonuna öğrenmeye çalıştığınız teknoloji ile ilgili tek kelimelik bir ibare ile Google search bar'a yapıştırın. 

Örnek olarak "[exception string] Android". Bu sayede Google sizi daha önceden bu hatayı almış ve sohbet esnasında exception detaylarının kullanılmış olduğu bir sohbetin içine götürecek. Yine bu sohbetin hepsini okumak ile uğraşmayın, okuyacağınız kısım 1. exception detaylarının olduğu kısım. Burayı doğruladıktan sonra, 2.  thank you, solved gibi cümleleri aratın. Çözümünüz bu mesajın bir kaç mesaj üstünde olacaktır.

 Google'i doğru kullanmak da bana göre kod yazmak gibi bir sanattır, hatta iyi bir developer olma yolunda olmazsa olmazdır (: Google kullanımı ile ilgili çok trick var bunun gibi. O konu üzerinden de başka bir yazımda geçeceğim.

Herkese iyi çalışmalar.