Fatih Kadir AKIN Röportajı

Yazılımcı Kafası olarak Türkiye’de ki yazılım sektörünün tecrübeli kişileri ile röportaj yaparak değerli bilgilerinden faydalanmayı amaçlamaktayız.

Yazılımcı Kafası Röportaj Serisinde konuğumuz Modern Javascript kitabı yazarı Front-End developer Fatih Kadir Akın. Fatih bey sorularımıza cevap verdi.

Yazılımcı Kafası:  Merhaba, Kendinizden bahseder misiniz?

Fatih Kadir Akın : Ben Fatih Kadir Akın. İstanbul Beykoz doğumluyum. Çocukluğumun büyük kısmı Beykoz’da geçti. Şu an orada yaşamasam da ara ara uğrarım 🙂 Protel Bilgisayar’da JavaScript geliştirici olarak çalışıyorum. “Modern JavaScript” adında bir kitabım var. Açık kaynak ve özgür yazılım destekçisiyim. Evliyim.

Yazılımcı Kafası: Yazılıma olan ilginiz nasıl başladı?

Fatih Kadir Akın :  Her şey ilkokul 1. sınıfta babamın eve DOS 3.0 üzerinde Windows 3.1 yüklü bir bilgisayarla gelmesiyle başladı (1995 yılı). Uzun süre bu bilgisayarla haşır neşir olduktan sonra Windows 95’e geçtik. Yazılıma olan merakımın Windows 95’e geçtiğimizde başladığını hatırlıyorum. (1996, 1997 yılları). O zaman henüz çocuktum ve bilgisayarda olan şeylerin nasıl olduğunu  anlamıyordum ve çok merak ediyordum. Uzun bir süre bu merakımı gideremedim fakat bir çok kez anlamaya çalışarak bilgisayarı bozduğumu hatırlıyorum. Merakımı tekrar tetikleyen ilk adım ilkokul 5. sınıfta (2000 yılı) Windows 98 yüklü bilgisayarda Front-Page’i farketmemle başladı.  Açtığımda arayüz oluşturabileceğim başka bir arayüz vardı ve bu beni çok etkilemişti: Kendi arayüzümü yapabiliyordum! Daha sonra oluşturduğum bu HTML dosyalarını Notepad ile açmaya çalıştım. (O zamana kadar her şeyi Notepad ile açmaya çalışıyordum zaten). Açmaya çalıştığım .exe dosyalarına göre HTML’de her şey çok anlamlıydı! Daha sonra HTML’de bir  şeyleri Notepad ile değiştirip kaydetmeye ve tam olarak ne olduğunu anlamaya çalıştım. <input> eklediğimde “hmm, bu yazı yazmak için bir kutu oluşturuyor demek ki” diye düşünüp değiştiriyordum. FrontPage arayüzünden farklı özellikler ekleyip onun nasıl bir HTML oluşturduğunu görüyordum, daha sonra bunu kendim yapıp seviniyordum 🙂 Anlamakta en zorluk çektiğim şeyin HTML tabloları olduğunu ve çözdüğümde nasıl sevindiğimi hatırlıyorum.

Fakat bir eksiklik hissetmeye başladım: yaptığım arayüzler işlevsel değildi. Bir şeyler yapmak istediğimde bunun nasıl çalışacağını çözemiyordum. Mesela üye giriş formu yapıyordum, ama üyenin giriş yaptığını vs. nasıl anlayacaktım? O zamanlar çoğu evde olmadığı gibi bizim evimizde de internet yoktu. Ben de 1.44MB’lık disketle internet kafeye gidip herkes oyun oynarken bildiğim internet sitelerinin HTML kaynak kodlarını diskete atıp eve gidip inceliyordum. Öyle incelerken HTML içerisinde <script> tag’lerini gördüm ve “hmm, demek ki olay bu script’lerde” diye düşünerek JavaScript’in ne olduğunu araştırmaya koyuldum. Daha sonra bir sürü örnek buldum (şu meşhur kar yağdırma, mouse’u takip eden saat vb. örnekleri). Bu örneklerin kodlarını okuyup zaman zaman en baştan sona kendi kendime yazmaya çalıştım. Bazı şeyleri farklılaştırınca neler olduğunu denedim. O zamanlar tabii şimdiki gibi Developer Tools vb. araçlar yok, Notepad’de değiştiriyordum ve deniyordum, zor zamanlardı ama hatırladıkça kendimi takdir ediyorum, sanırım şu an o zamanki kadar çalışkan değilim 🙂

JavaScript’i de biraz biraz öğrenmiştim. Aynı zamanda CSS konusunda da kendimi geliştiriyordum. Ama yine istediğim şeyleri yapamıyordum (o zamanlar Node.js yok tabii). Kendi web sayfamı yapmak istiyordum ama nasıl yapacağımı bilmiyordum. Bu araştırmalarım sonucu iki teknolojiden haberim oldu: ASP ve PHP. ASP’yi anlamadım, çünkü syntax’ı alışık olduğum bir syntax değildi. PHP ise JavaScript’e çok benziyordu. Ben de PHP öğrendim. Ve aslında tüm serüvenim de PHP öğrendikten sonra başladı 🙂

Yazılımcı Kafası: Front-End yazılım geliştirmeyi öğrenmek için nereden başlamalı. Bu yolda ilerleyenlere tavsiyeleriniz nelerdir?

Fatih Kadir Akın : Aslında bir önceki soruda bunu büyük oranda cevaplamış gibi oldum. Bana kalırsa yalnızca front-end değil, programlamaya giriş HTML ile öğrenilmeli. Zira HTML hem öğrenmesi kolay (matematikte “kümeler” konusunda sıkıntı çekmiyorsanız) hem de “bir şeyler yapıyorum” hissi vermesi ve motive etmesi açısından iyi bir başlangıç. Daha sonra CSS ve JavaScript şeklinde gidilebilir. Fakat herkesin öğrenme mekanizması farklı çalışıyor. Bu noktada kendilerini tanıyıp ona göre bir plan çıkarmak daha doğru. Bu süreçte bir front-end geliştirici adayını en zorlayacak kısım JavaScript olacak. Ama artık yalnızca CSS’te uzmanlaşmak da sözkonusu. JavaScript ağır gibi gelirse, ve tasarım konusunda da yatkınlığı varsa, CSS’e yönelebilir.

Bu konudaki en önemli şey, dediğim gibi, kendini tanımak. “Ben aslında front-end geliştiricisi olmak istemiyorum” noktasını ne kadar önce yakalarsanız kendinizi o kadar erken yönlendirirsiniz. Herkesin ilgi alanı farklı olabiliyor. Yalnızca SVG öğrenmek bile ayrı bir dal gibi.

Dediğim gibi, bu noktada kendinizi test etmelisiniz ve neyi sevdiğinizi keşfetmelisiniz. Sevmediğiniz alanda uzmanlaşamazsınız zaten.

Yazılımcı Kafası: Front-End mimarisinde kullandığınız sizin için olmazsa olmaz MVC Frameworkler

Fatih Kadir Akın : Bu soruya bir örnekle cevap vereyim: İyi bir şoför “ben iyi bir otomatik vites şoförüyüm, ama düz vites sürmekte zorlanıyorum” demez, “iyi şoförüm” der. Çünkü iyi sürücüdür.

“Olmazsa olmaz” framework diye bir şey yok. Bu algı çok yanlış ve her nedense son zamanlarda çok popüler olmuş bir fikir. JavaScript’te her şeyi framework kullanmadan yapabilirsiniz. Zaten günden güne framework kullanmadan yazdığınız kod sizi hangi framework’e ihtiyacınız olacağını gösterecek. O zaman o framework’e yönlenebilirsiniz. Ama asla bir framework’e bağlanmayın.

Yani ya iyi bir front-end’cisinizdir ya da kötü. Benim gözümde “ben normal JavaScript yazamıyorum ama Angular/React/X/Y’da iyiyim” demek, “kötüyüm” demekle aynı şey.

Ayrıca üstteki soruya cevap olarak bunu da ekleyelim: Sakın ha sakın, front-end geliştirmeyi bir framework üzerinden öğrenmeye çalışmayın.

Tabii ki “hiç framework kullanmayın!” demiyorum. Ama hangisini kullanacağınıza siz karar verin, bir framework’e bağlanmayın. Framework’ler işinizi kolaylaştırmak için birer araç. Piyasada “her projeme …….js’i direkt ekliyorum!” diyen geliştiriciler var. Neden? Projeden projeye ihtiyaçlar değişir. Bu konuda projeyi değerlendirip olması gereken teknolojiye karar vermek en doğrusudur. Bu konuda beraber çalıştığınız arkadaşlarınızın fikirleri, tecrübeleri vs. de önemli. Herkesin Angular’a hakim olduğu bir takımda projeyi React yapmak ya da herkesin React’a hakim olduğu bir takımda projeyi Angular yapmak akla uygun şeyler değil. Ya da Electron’la yaptığınız bir uygulamada jQuery kullanmak da makul değil. Daha hafif bir DOM aracı kullanılabilir. Bu tarz dengeleri iyi ayarlayıp ona göre karar vermek gerekir.

Ben şu sıralar Rails ile haşır neşir oluyorum. react-rails güzel bir Rails aracı ve React’la ilgili güzel şeyler sunuyor. Bağımlı olmamakla birlikte onu tercih ediyorum. Ama zaman zaman Angular ve diğer framework’lerle de çalıştığım oluyor. Son zamanlarda Google Closure Library ilgimi çekiyor ama ciddi bir şeyler yapma fırsatım olmadı.

Daha ufak araçlar arasında jQuery ve LoDash çok kullandıklarım. Çünkü işimi kolaylaştırıyorlar. MVC vs. gibi patternlere öncelike native yaklaşmaya çalışıyorum, ihtiyaç görürsem tam olarak “neye” ihtiyacım olduğunu belirleyip onu seçiyorum.

Özetle teknoloji bize ne sunarsa faydalanmaya çalışmakta fayda var.

mojasak

Yazılımcı Kafası: “Modern JavaScript” adlı kitabınız ile Front-End alanında kendini geliştirmek isteyenlerin önüne kaliteli bir içerik sundunuz. Başka bir kitap düşünceniz var mı?

Fatih Kadir Akın : Evet. Hatta yeni kitabımın büyük kısmını bitirdim fakat tamamlamakta zorlanıyorum. Kitap yazmak ciddi zor bir süreç. Her şeyden önce odaklanma ve planlama gerektiriyor. Ayrıca bu kadar hızlı değişen bir sektörde kitap yazmak için de hızlı olmanız gerekiyor.

Bu yaza bir aksilik olmazsa ikinci kitabımı yayınlamak istiyorum. Biraz baskı gelirse bu iş olur 🙂

Yazılımcı Kafası: JavaScript, MVC Framework’lerin de çıkması ile yıllar geçtikçe popülerliğini arttıran bir dil. Beklentileriniz neler?

Fatih Kadir Akın : JavaScript’in geleceğiyle ilgili bir çok teori mevcut. Ben ümitliyim. Fakat Node’un Web tarafındaki işinin farklı bir boyuta kayacağına inanıyorum. Node benim için web back-end tarafında eksik kalıyor gibi geliyor. Eğer “Internet of Things” kavramı gelecekte gerçekten yer ederse JavaScript’in doğası gereği o alanda büyük ve önemli bir rol oynayacağını düşünüyorum.

Yazılımcı Kafası: Özgür yazılım ve açık kaynak hakkında düşüncelerinizi merak ediyorum. Türkiye’de bu felsefe hak ettiği değeri görüyor mu?

Fatih Kadir Akın : Yazılımın özgür olması gerektiğine inananlardanım. Her ne kadar Richard Stallman JavaScript’i özgür yazılım için bir tehdit olarak görse de bir JavaScript geliştiricisi olarak yazılım özgürlüğüne önem veriyorum. Özgür yazılımın değeri günden güne daha fazla anlaşılıyor. Açık kaynak ise özgür yazılım felsefesinden farklı olarak aslında gündelik hayatımızda daha fazla yer ediyor. Açık kaynak kodun her şeyden önce kendinizi geliştirmenize büyük katkısı var. GitHub üzerinden bugün binlerce geliştiriciyle aynı ortamda kod geliştirebiliyorsunuz, yazdığınız kodu herkesin eleştirisine sunabiliyorsunuz. Bunlar çok güzel şeyler. Açık kaynak koddan tad alan birisi asla vazgeçemiyor ama neyse ki güzel bir bağımlılık 🙂

Türkiye’de bu felsefeler hakettiği değeri sosyal değil ama ekonomik açıdan görüyorlar 🙂 Genel olarak hala “bedava yazılım” olarak anlaşılıyor. “Biz açık kaynak ve özgür yazılıma çok değer veriyoruz!” diyen firmaların çoğunun GitHub hesabı ya yok ya da 1-2 ne olduğu belirsiz, belgelendirmesi olmayan repo’ları var.

Bizim insanımızda bir de nedense çekingelik sözkonusu. Yazdığınız kod kötü dahi olsa bunu açmanızda bir sakınca yok. Zaten açık kaynak biraz da bunun için var: eleştire eleştire doğruyu bulmak. Bu hem sizi hem de yazdığınız kodunuzu geliştirecek.

Ama maalesef eleştiriye kapalı bir toplum olduğumuz için sanırım, bu konuda oldukça gerilerdeyiz dünya geneline göre.

Yazılımcı Kafası: Yazılım etkinliği organizasyonu konusunda oldukça etkinsiniz. 2016 yılında yapmayı düşündüğünüz etkinler neler?

Fatih Kadir Akın : Bu sene özellikle Crystal Language konusunda çok aktifiz. Güzel ve yeni bir dil. Bununla alakalı bir çok etkinlik planımız var. Tabii bir de Jstanbul var 🙂 İyi konuşmalar buldukça yeni buluşmalar düzenleyeceğiz. Kitap yazmak, etkinlik düzenlemek, açık kaynak vs. hepsiyle birlikte uğraşmaya çalışınca hepsine çok yeterli vakit ayıramıyorsunuz tabii 🙂 Bu konuda Bahçeşehir Üniversitesi bize sonsuz imkan sunuyor ve kendilerine çok teşekkür ediyoruz. Mayıs ayında da bir PHPKonf’ta konuşma fırsatım olacak, bekleriz 🙂

Yazılımcı Kafası:  Eklemek istedikleriniz.

Fatih Kadir Akın : Kendinize iyi bakın, sevgiler 🙂

Yazılımcı Kafası: Bize zaman ayırıp sorularımıza cevap verdiğiniz için Teşekkür ederiz.

“Fatih Kadir AKIN Röportajı” için 1 yorum

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir