Ritim İstanbul A5 Blok No:46, D:112, 34846 Maltepe/İstanbul

Selçuk İldem’in Python öğrenme ve geliştirme serüveni

İçindekiler

Programlama dilleri başlangıçta karmaşık gibi görünebilir. Kendiniz için en uygun seçimi yaptığınızı düşündüğünüzde sırada o işin topluluğuna ulaşmak ve topluluğun üyelerinin zaman içerisinde elde ettiği deneyimden istifade etmek var demektir.

Advanced Dynamics Teknoloji’de yazılım projelerine önemli katkılar sunan Selçuk İldem ile Pythton üzerine bir söyleşi gerçekleştirdik. İldem, on yıla yakın bir süredir çeşitli yazılım firmalarında görev yaptı ve yakın bir zamanda yolu Advanced Dynamics Teknoloji ile kesişti ve burada takım liderliğine kadar yükseldi.

- ADT Çözümleri -
Yönetilen Hizmetler Görseli
Advanced Dynamics Teknoloji'de işletmeler için dış kaynaktan hizmet modeliyle Yönetilen Hizmetler çözümleri sunuyoruz.

Kendinizi kısaca tanıtır mısınız?

Merhaba ben Selçuk ildem. Yazılım geliştiricisiyim. Yaklaşık 10 yıldır sektörde kurumsal firmalara back-end ve full stack developer olarak hizmet veriyorum.

Python öğrenmeye ne zaman karar verdiniz?

Python öğrenme kararıma vesile olan durum aslında biraz ilginç, Turkcell firmasında çalışıyordum ve o sıralarda firmadaki bir bayan arkadaşım Python yazbel dökümantasyonunun kendisinde olduğunu söylemişti. Bana mail olarak göndermesini rica ettim. Böylece Python öğrenmeye giriş yaptım. Sonrasında Python ve Django konusunda uzman arayışı olan bir firmada çalışarak Python bilgimi artırdım.

Peki neden bir başka programlama dili değil de Python’u seçtiniz? Daha önce bir tecrübeniz oldu mu? Ya da biri tarafından yönlendirildiniz mi?

Daha önceden Oracle PL/SQL, Java, JavaScript gibi birbirinden farklı teknolojiler kullandım. Python aslında beni yönlendirdi demem doğru olmaz. Çünkü Python yüksek seviyeli ve geliştirmesi kolay bir dil olduğu için kendimi bu alana yönlendiriğimi söyleyebilirim.

Stack Overflow verilerine baktığımızda özellikle son on yılda Pythton’ın popülerliği ve kullanımının büyük oranda genişlediği görülüyor. Bu durmu neye bağlıyorsunuz?

Python’ın güzel kabul edebileceğimiz bir çok yanı var.  Bence bu konuda aşağıda saydığım maddelerin çok etkili olduğunu düşünüyorum.

  • Python topluluğunun çok güçlü olması ve yaşadığınız sorunla ilgili çok hızlı çözüm bulması
  • Kod geliştirmenin diğer dillere göre daha kolay olması. Teknik tabirle low-level (düşük seviyeli) değil de high level (yüksek seviyeli) bir dil olması
  • Bir çok farklı alanda kullanılabilmesi (Yapay zeka, web, masaüstü geliştirme vb)

Python öğrenmek için yazılım mühendisi olmak gerekiyor mu? Alan dışından birinin Python öğrenmesi ve iş dünyasında verilen görevleri yerine getirebilmesi mümkün mü? 

Bence lisans öğrenimi kesinlikle gerekiyor demek yanlış olur. Fakat lisans eğitimi alsa iyi olur diyebiliriz. Ya da bunun yerine eğitim açığını kapatacak iş tecrübesi veya kurs gibi diğer yollarla da başvurulabilir. Çünkü her lisans mezunu, özellikle bilgisayar alanında sorunsuz çalışabilir diyemeyiz. Burada öncelikli olan konular istek, arzu ve öğrenmeye açık olmak. Python bilen bir kişi günümüzde bir çok kurumsal firmanın ihtiyaçlarını karşılayabilir. Ancak öğrenim metodu ve Python’ı hangi alanlarda da kullanacağını bilmek şartıyla.

Python kodlama

Python kullandığınız ilk proje neydi ve projeye tam olarak ne gibi katkılarda bulundunuz?

Python kullandığım ilk projemden daha çok iki projede aynı anda bulundum. Birisi Provisioner dediğimiz; Docker Orchestrate monitoring ettiğim , complex event ve anomaly detection belirlediğimiz projeydi. Bu kısımda pyspark,flask,django  ve benzerı uygulamalar kullandık.

Diğeri ise CloudERP diye adlandırdıgımız firmanın erp çözümlerini bulut alana tasıdıgımız   projeydi. Bu projede django,redis,docker gibi teknolojilerden faydalandık.

Peki Python yazarken hangi metin editörü kullanıyorsunuz?

Kullandığım iki metin editörü var. Bunlardan biri VSCode, diğeri ise yine Python topluluğu tarafından yoğun bir şekilde kullanılan PyCharm. PyCharm’ın üç sürümü mevcuttur: Professional, Community ve Edu. Community ve Edu sürümleri açık kaynaklı projelerdir ve ücretsizdir, ancak daha az özelliğe sahiptir. PyCharm Edu kurslar sunar ve Python ile programlama öğrenmenize yardımcı olur.

Bir yazılımcı olarak Python’da diğer programlama dilleri ile kıyaslandığında ne gibi avantajlar görüyorsunuz?

En önemli faydası hızlıca kod geliştirmek, sorunlara hızlı çözüm bulmak. Diğer dillere göre hem işlevsel programlama hem de nesne yönelimli bir programlama dili olması.

Python’un çeşitli uygulama çerçeveleri (framework) olduğu göz önünde bulundurulduğunda (örneğin Django, Masonite, TurboGears, web2py, CubicWeb) bunlardan hangilerinin öğrenilmesi iş dünyasında daha çok fayda sağlayabilir? 

Python’da öğrenilmesi gereken web çerçeveleri (frameworkler) yapacağınız işlere göre değişebilir. Tecrübemden hareketle  aşağıdaki çerçeveleri sıralayabilirim;

  • Flask
  • Django
  • Pandas
  • Numpy
  • Flower

İsmini saydığınız web çerçeveleri tam olarak ne işe yarıyor? Python geliştirmede hangi amaca hizmet ediyor? Mesela Flask veya Django’yu baz alarak örnekler verebilir misiniz?

Flask, web tarafında API hazırlayabileceğimiz ya da rahatlıkla web uygulaması geliştirebileceğiniz uctan uca bir yazılımdır. Flask ve Django kullanarak paketleri yükleyebilir ve frameworkü zenginleştirebilirsiniz. Django ve Flask kullanarak API ve web uygulamaları oluşturabiliyorsunuz. Django’nun Flask’a göre en büyük farkı ise authentication ve benzeri modüller standart olarak framework içersinde geliyor.

Web çerçeveleri öğrenirken temel düzeyde Python bilgisi gerekiyor mu? Yoksa Python ile birlikte öğrenilebilirler mi?

Bunun biraz kişiye bağlı bir durum olduğunu düşünüyorum. Ama soruya net olarak bir cevap vermek gerekirse programlama temelleri bilen ve İngilizce kaynak okumayı bilen bir kişi rahatlıkla hem Python hem de Python web frameworkunu birlikte öğrenebilir. Python öğrenirken Python temelleri halledip üzerine frameworkude rahatlıkla öğrenebilir.

Python yazılım sektöründe ağırlıklı olarak hangi alanda kullanılıyor?

Genel olarak, bu durum biraz homojen olduğunu söyleyebilirim. Fakat yoğunluk olarak yapay zeka teknolojileri ve web olduğunu gözlemledim.

Peki şirket içi projelerde, örneğin Advanced Dynamics Teknoloji’de Python genel olarak hangi tür projelerde kulanılıyor?

Genel olarak web tabanlı projelerde python kullanıyoruz. Fakat diğer gelen projelerde de ihtiyaca yönelik oalrak python tercih ediyoruz.

Python ile geliştirilen, herkesin tanıdığı veya bildiği bir ürün örneği verebilir misiniz?

Örnek olarak Python’un herkes tarafından bilinen Quora, Dropbox, Spotify, Instagram vb. projelerde kullanıldığını söyleyebilirim. Tabi bunların bazılarında proje genelinde sadece bir modül kullanılmıştır.

Moment.js nedir ve nasıl kullanılır?

JavaScript kütüphaneleri programlama sektöründe sıklıkla karşılaşılan sorunları çözmek ve otomatikleştirmek için geliştirilir. Popüler JavaScript kütüphanelerinden biri de Moment.js'tir. Peki Moment.js nedir ve programlama dünyasında...

JavaScript’te değişkenler ve aralarındaki farklar: var, let & const

JavaScript, web geliştirmenin temel taşlarından biri olarak, dinamik ve etkileşimli web siteleri oluşturmanın anahtarıdır. Bu güçlü programlama dilinin en temel yönlerinden biri, veri saklama...

Fiyat takip yazılımları nasıl çalışır?

E-ticaret dünyası her geçen gün daha rekabetçi bir hal alıyor. Bu ortamda, işletmelerin rakiplerini ve pazar trendlerini yakından takip etmeleri hayati önem taşıyor. İşte...

HTML div elementi ve kullanım senaryoları

Her gün milyonlarca web sayfasını ziyaret ediyor, okuyor veya üzerlerinde işlem yapıyoruz. Peki, son kullanıcılar için görsel olarak renderlanan bu sayfaların arkasındaki kodlarda kullanılan...

React ‘hook’ nedir ve ne için kullanılır?

React hook, React JavaScript kitaplığındaki bir özelliktir. Hook'lar, sınıf bileşenlerine ihtiyaç duymadan, fonksiyon bileşenlerinde durum (state) ve diğer React özelliklerini kullanmaya olanak tanır. İlk...

IPv4 ve IPv6 nedir? Aralarındaki farklar nelerdir?

Her gün internete bağlanıyoruz, ancak teknik olarak internete nasıl bağlandığımızla ilgili bir fikriniz var mı? İnternet, modern yaşamın ayrılmaz bir parçası haline geldi ve...

Daha fazla blog içerik

Moment.js nedir ve nasıl kullanılır?

JavaScript kütüphaneleri programlama sektöründe sıklıkla karşılaşılan sorunları çözmek ve otomatikleştirmek için geliştirilir. Popüler JavaScript kütüphanelerinden biri de Moment.js'tir. Peki Moment.js nedir ve programlama dünyasında...

JavaScript’te değişkenler ve aralarındaki farklar: var, let & const

JavaScript, web geliştirmenin temel taşlarından biri olarak, dinamik ve etkileşimli web siteleri oluşturmanın anahtarıdır. Bu güçlü programlama dilinin en temel yönlerinden biri, veri saklama...

Fiyat takip yazılımları nasıl çalışır?

E-ticaret dünyası her geçen gün daha rekabetçi bir hal alıyor. Bu ortamda, işletmelerin rakiplerini ve pazar trendlerini yakından takip etmeleri hayati önem taşıyor. İşte...

HTML div elementi ve kullanım senaryoları

Her gün milyonlarca web sayfasını ziyaret ediyor, okuyor veya üzerlerinde işlem yapıyoruz. Peki, son kullanıcılar için görsel olarak renderlanan bu sayfaların arkasındaki kodlarda kullanılan...