Merhaba! Bu yazımda sizlerle geliştirme öğrenirken yaşacağınız süreçlerden bahsedip, bu süreçleri verimli geçirmeniz için geliştirici adaylarına bazı tavsiyeler vereceğim.
Öncelikle Geleceği Yazanlar platformu ya da başka platformlardan eğitim belgelerini takip ederken dikkat etmeniz gerekenlerden bahsedeyim. Programlama dilleri doğrusal bir yapıda değildir. Çok basit bir konu dahi tek başına ele alınamaz. Örnek vermek gerekirse, basit bir döngüde sabitler (int, float, double vs), kütüphaneler, fonksiyonlar (method) ile karşılaşmak mümkündür. Yapının iç içe olmasından dolayı bir eğitim içeriğini baştan okuyan birinin anlamadığı, bilmediği birçok noktanın olması gayet normaldir. Böyle durumlarda endişeye kapılmamak, dikkatli bir şekilde işin özünü anlamaya çalışmak gereklidir.
Ben yeni öğreneceğim bir dilde genelde önce bir basit okuma ile genel kavramları kafama yerleştirir, sonrasında daha detaylı bir şekilde inceleyerek okurum. Bu okumalarda anlamadığınız bölümleri bir kenara not almanız ve küçük araştırmalar yapmanız, size ayrıca fayda sağlayacaktır.
Bu okumalarda pek çok kişinin yaptığı genel hatalardan biri, belgelere sadece göz ucuyla bakmak ve “ben bunları biliyorum” düşüncesiyle çok hızlıca geçmektir. Bu belgelerin çoğu sıkıcıdır ve tümünü okumanın esnemelere neden olması gayet normaldir. Burada sabretmek ve anlamaya çalışmak, belki bilmediğiniz birkaç noktayı öğrenmek adına çok önemlidir. Bu küçük bilgiler sizleri gerçek programcı yapacak detaylardır.
Kod yazmak kolay bir iştir, buna emin olun. Zor olan, hangi kodun nasıl kullanılacağı, algoritmanın nasıl daha verimli çalışacağıdır. Geliştirme altyapınızı oluştururken daha sağlam olması için geliştirici adaylarına bazı tavsiyeler vereceğim.
Geliştirici adaylarına tavsiyeler
Bol bol kod okuyun: Eğitimleri bir yere kadar takip ettiniz, genel anlamda programlama şemasını öğrendiniz fakat halen tek başınıza proje yazmaktan uzaksınız. Bu konuda başkalarının tecrübesinden yararlanmak, en doğal hakkınız. Diğer geliştiricilerin projelerinde nasıl bir yol izlediğini, geliştirmelerini nasıl yaptıklarını anlamak için GitHub ve İnternet üzerinden bulduğunuz projeleri inceleyip, bol bol kod okuyun. Bu okumalar hem algoritma mantığınızı geliştirecek hem de birçok şeyin nasıl yapılacağını öğretecektir. Piyasada kimin ne yapabildiğini öğrenmek, çevrenizi genişletmek için de güzel bir fırsat yaratır.
Denemekten çekinmeyin: Tecrübe, başarısızlıklarınızın toplamıdır. Eğitimler boyunca işinize aslında pek yaramayacağını düşündüğünüz ya da sizi aşan konularda kod yazmayı denemekten kaçınmayın. Yapamamaktan, başarısız olmaktan korkmayın; tökezledikçe sağlam basmayı öğreneceksiniz, pes etmeyin.
Acele etmeyin: Mobil programlamada daha emekleme dönemindesiniz ve aklınıza müthiş bir fikir geldi, haliyle hemen yapmak istiyorsunuz. Bu noktada aceleniz muhtemelen hüsranla sonlanacaktır. Acele etmek yerine öğrenme sürecine devam edip, bu sürede projenizin mock-up, algoritma, tasarım, gelir modeli gibi geliştirme harici kısımlarıyla uğraşabilirsiniz. Bu süreç tamamlandığında projenin şablonu kafanıza daha iyi oturmuş olacak, neye ihtiyacınız olduğunu bilecek, algoritmanızla verimli kodunuzu yazabileceksiniz.
Takip edin: İşin içine biraz girdiğinizde, kimin ne yaptığını anlayacaksınız. Bu kişileri takip edin. Bu sizin güncel kalmanızı, vizyonunuzun gelişmesini sağlayacaktır. Başlarda sizlerden çok uzak konuştuklarınızı düşünseniz de zamanla yaklaştığınızı göreceksiniz. Özellikle özgür yazılım topluluklarını takip etmek, kendinizi geliştirmeniz için diğer bir önemli husus. İnsanların problem yaşadıkları yerleri görmek, bir gün tökezlediğinizde nasıl daha hızlı çıkacağınızı size öğretebilir. Her şey bir yana, başkalarına yardım etmek, sorunlarını çözmek çok güzel bir histir :).
Sormaktan çekinmeyin: Geliştirme aşamasında herkes çeşitli problemler yaşar, bu problemlerin tümünü kendiniz çözmeye çalışmayın. Amerika’yı yeniden keşfetmenin anlamı yok. Sizin yaşadığınız problemleri yaşayan muhakkak başkaları da vardır, araştırın. Aradığınız cevap yoksa sorun. Problemleriniz daha hızlı çözülecektir.
IDE’lere takılmayın: Çoğu acemi geliştirici yeterli analiz yapmaksızın, arayüzünü en cici bulduğu IDE’yi indirip bir anda herşeyi yapmaya çalışır. Unutmayın, hangi aracı kullandığınızdan çok ne yazdığınız önemlidir. Kod yazmaya başlamak için çoğu zaman basit bir metin editörü yeterlidir :).
Birlikte çalışın: Herşeyi bilmek, herşeyi yapabilmek genelde mümkün değildir. “Onu da, bunu da, şunu da ben yapayım” demek verimsiz ve genelde imkânsız bir iştir. Ne yapabileceğiniz ve yetenekleriniz hakkında gerçekçi olun. Gerekli durumlarda destek alıp, iş bölümü yapın. Hem işler hızlanacak hem de uygulama kalitesi artacaktır.
Mükemmellik hemen olmaz: Hiçbir proje ilk çıktığında tüm özelliklere ve hatasızlığa sahip değildir, sizinki de olamaz. Geliştirme neredeyse hiç bitmeyen bir süreçtir, herşeyi bir anda yapmaya çalışmayın. İşlevseti ve özellik tabanlı sürüm çıkarmak yerine düzenli ve sık aralıklı yeni sürümler yayınlayın. Sık aralıklarla güncelleme çıkartan ve her yeni sürümde biraz daha mükemmelleşen uygulamalar, emin olun, kullanıcının en sevdiği uygulamalardır!
Peki, siz Geleceği Yazanlar’da yeni başlayanlara neler önerirsiniz?
Halil Keskin'i tanımak için etrafınıza bakınmanız yeterli. Macbook Pro'su kucağında, Ikea'nın Poang koltuğuna gömülmüş, yattığı yerden para kazanan, arada aromalı kahvesini yudumlayarak etrafa laf yetiştiren birisini görürseniz, Halil ile karşı karşıyasınız demektir!
Geribildirim: Git, Stupid Content Tracker - Artistanbul