İyi Yazılımcı Olmak İçin 5 Alışkanlık
İyi Yazılımcı Olmak İçin 5 Alışkanlık

Hepimiz yaptığımız şeylerde kendimizi geliştirmek isteriz ve web geliştirme alanında zaman ayırdığımız ana konulardan biri kodlarımızdır. Bu HTML, CSS, JavaScript, PHP, Python, ActionScript veya web sitelerini yapmak için kullandığınız herhangi bir dil olabilir.Bu yazıda, yeteneklerimizi geliştirecek ve kodlarımızın daha iyi olmasını sağlayacak bazı pratik adımları paylaşacağım.1. Bir Anda Sadece Bir Dile Odaklanın
Eğer web tasarım ve geliştirme yapıyorsanız, çoğu zaman birbiriyle ilişki kurmanız gereken bir hayli dil vardır ve bilhassa hepsinin birbirleriyle nasıl bağlandığı göz önüne alınırsa hepsini birden öğrenmek cazip gelebilir.Zannediyorum ki bir dereceye kadar, bu kaçınılmaz bir durum. Ama eğer gerçekten çabuk gelişmek istiyorsanız yanlızca bir uzmanlık alanına odaklanmanızı tavsiye ederim. CSS kullanımınızın daha iyi olmasını mı istiyorsunuz? Odağınızı ona verin. Başka bir şey kullanmadan, sadece CSS ile tek HTML sayfası ile çeşitli arayüzler yapmayı deneyin. Mesela CSS Zen Garden bu konuda sizin için muhteşem bir örnek. Örneğin, eğer siz CSS2 ile rahatsanız, fakat CSS3 ile neler yapılabileceğini anlama konusunda kendinizi geliştirmek istiyorsanız, CSS3’ün özelliklerine çalışabilirsiniz ve bunlar üzerinde teker teker iş yapmaya başlayabilirsiniz. Güncel CSS3 tanımlamalarını, anlatımlarını okuyabilirsiniz. Hangi tarayıcılarda nelerin çalışıp çalışmadığını deneyip görebilirsiniz.JavaScript ve PHP gibi benzer yazım özellikleri gösteren dilleri kullanmaya çalışabilir, biraz sıkıcı olsa da fonksiyonlarını sırayla çalıştırmayı deneyebilirsiniz. Diğer bir seçenek bu dillerle yazılmış özgün örneklerle çalışmak olabilir.Daha iyi bir WordPress geliştiricisi mi olmaya ihtiyacınız var? Bu konuda bir ton örnek var. Server taraflı resim işleme konusunda daha çok şey öğrenmek ister misiniz? Bu konuda da bir sürü örnek var. Arayın-bulun, bir tarafa yazın ve onlar üzerinde çalışın. Bir tanesini seçin ve ona hakim olana kadar uğraşın, sonra diğerine geçin.2. Mantığınızı Yorum Satırlarında Dile Getirin
Kodlama söz konusu olunca aklımda bir sürü fikir var. Bir tanesi şu ki kodun yüzde 95’i mantıktır. Diğer bir düşüncem ise: mantık, insan dilinden programlama diline çevrildiği zaman, değişmez.Düşüncelerinizi kodlarla yazabiliyorsanız, bunu Türkçe ve İngilizce gibi bir konuşma dilinde de yazabilirsiniz.Örneğin, farzedin ki ben bir fonksiyon yazmak istiyorum. Bu fonksiyon zamana bağlı olarak bazı şeyleri kilitleyecek ya da açacak. Direk kodun içine dalmak yerine düşüncelerimi yorum olarak yazabilirim.Örnek// FONKSİYON: Zamanı Gelince Kilitle// Bu fonksiyion iki zaman değeri kabul edecek,// sırası gelince açık duruma geri dönmesi gerek. //Yeni bir veri nesnesi oluştur// Bu nesneyi kullanarak o anki zamanı al// IF: o anki zaman, belirlenen aralıktaysa// Return false – şu an açık durumdayız// ELSE// Return true – şu an kilitli durumdayız.// ENDIF// FONSIYON SONUBurada, bizim fonksiyonlarımız için düşündüklerimizin hepsi var. Bunlar neredeyse bir bina inşaatının taslağı ile aynı özellikleri taşıyor. Yorumların izin verdiği nispette, asıl kodlarımı yazmaya buradan başlayabilirim.Belli ki, bu çok basit bir örnek, ama ben bir fonksiyon kurmaya ihtiyacım olduğu zaman, özellikle de daha karmaşık bir fonksiyonsa, bu tekniği bir prensip olarak uyguluyorum. Bu sayade, asıl kodu yazmadan önce bütün mantığı düşünebiliyor ve sorunları gidermeye çalışıyorum. Çok az hata yapma açısından bu alışkanlığı olağanüstü değerli buluyorum. Hem de kodlarım bu sayede dökümante edilmiş oluyor.3. Şablonlara, Eklentilere ve Açık Kaynak Kodlara Çalışın
Web inanılmaz derecede ulaşılabilir ve açık bir yer, özellikle de yazılımcı toplulukları için. Web’in bu yapısı daha iyi bir yazılımcı olmak isteyenler işin çok değerli bir kaynak olabilir. Örneğin, HTML’e yeni başlıyorsanız internet üzerindeki sayısız beleş şablonlardan birini indirebilir ya da favori sitenizin kodlarına çalışabilirsiniz. Çünkü bu şablonlar tipik olarak sadece HTML’dir (ve CSS, ve belki de JavaScript). Bunlar küçük çaplı çalışmalarınız için uygundur, kodları karıştırmanız için iyi bir fırsattır. Daha iyi anlamak için sayfanın yapısıyla ve tag’ler ile oyalanın. Sayfadaki nennelerin yerlerini değiştirmeye çalışın. Biçim özelliklerini değiştirdiğiniz zaman neler olduğunu görün.Elbette, büyük ölçüde tavsiyem şu ki: edindiğiniz bu deneyimleri standartlar hakkında okuduğunuz kaynaklarla birleştirin. Bunların yanında, kötü kodlama alışkanlıklarını kendiniz bulmak istemezsiniz herhalde. Bu teknik muhtemelen HTML veya CSS’den daha karmaşık olan JavaScript veya PHP gibi programlama dilleri için daha kullanışlıdır.Meselâ, WordPressgibi bir içerik yönetim sistemi inşa edilirken neredeyse PHP’nin bütün niğmetlerinden yararlanılmıştır. Bir de bu paylaşım platformu çekirdeğinin genişletilebilmesi için geniş ve güçlü bir mimariye sahiptir ve sizin yeni eklentiler indirip kurmanıza izin verir.Bunların yararı şu ki, WordPress ve eklentileri tümüyle açık kaynaklıdır bu da kodların hepsine erişebileceğiniz anlamına gelir. Öyleyse, kodları karıştırarak, eklentileri inceleyerek bu hizmetten faydalanmaya ve kendinizi geliştirmeye çalışın. Ayrıca, bu, kodları denemek için iyi bir fırsattır.Bu alışkanlık için son tavsiyem: diğer insanların kullandığı teknikleri koşulsuz olarak olduğu gibi kabul etmeyin, ne yaptığınızdan emin olun, neler olup bittiğini anlamaya çalışın ve sadece başkasının kodunu taklit etmeyin. Her zaman, “niçin bu böyle?” diye sorun.4. Kitap Okumayı İhmal Etmeyin
Web üzerindeki çeşitli bloglarla tonlarca malumat olduğu halde, sadece bir konu hakkında tam anlamıyla bir kitap yok. Bloglar spesifik konulardaki makale ve örnekler için mükemmel kaynaklardır ve hızlı taktiklerle harikalar yarattırabilirler, ama benim görüşüm, büyük bir konuyu sağlam bir şekilde anlamaya yardım edecek iyi bir kitap yok.Tablo – tabanlı tasarım beni baya yormuştu. Ama en sonunda karar verdim ki ‘div’ler bu konuda en iyi yöntem.Ancak bu noktaya yükselmek için, ben sadece daha iyi nasıl yazılacağını kendi kendime öğrenmeyi başarmaya çalıştım. Fakat CSS’in bazı önemli noktalarını tam olarak anlayamadım. Aslında, ben gerçekten ne sözde sınıfları (hover gibi) ne de kalıtımın tüm kavramlarını anlamadım, çünkü bana önemsiz geliyordu.Muhtemelen CSS’in kapsamlı resmini tümüyle görebilmek için, bu dili yavaşça ve tonlarca blog’dan aldığım ufak parçaları birleştirerek öğrendim. Bu şekilde öğrenmek çok zamanımı aldı ve başıma bir sürü iş çıkardı ve böyle olunca da daha uygun bir çözüm aramaya başladım.Bu yüzden dışarı çıktım ve Charles Wyke-Smith’in Stylin’ With CSS adlı kitabını satın aldım. Bu benim için vahiy gibi bişeydi. Sadece birkaç kısa bölümde CSS’in temellerini öğrendim. Daha varlığını bile bilmediğim şeyler uygun adımlarla ve düzenli bir şekilde bana öğretildi. Her bölüm sanki bir binayı inşa ediyormuş gibi tuğlaları birbiri üstüne koyuyordu. Gün geçtikçe okuduğumun değeri artıyordu. Bu bilgileri makalelerden ve bloglardan çekip çıkarmam haftalarımı, belki de aylarımı alırdı.

Style in CSS
Style in CSS

Şüpesiz, bu kitaptan sonra da birçok şey öğrendim ama bu kitap benim CSS ilmimin temeli olmuştu ve onu hala bir başvuru kaynağı olarak kitaplığımda saklıyorum. Eğer yeni bir teknolojiyi inceleyip anlamak istiyorsanız, iyi bir kitap bulun, bu en iyi yöntemdir.5. Tecrübe
Kazanmanızı önereceğim son alışkanlık ise sadece eğlence. Oturun, deneyin ve görün sizden neler çıkabiliyormuş, neler yapabiliyormuşsunuz.Bu günlerde CSS3 oldukça popüler. Bir sürü yazılımcı CC3’ün kabiliyetlerini keşfetmek için bu teknolojiyi ve tekniklerini zorluyor.Denemek için burada sadece birkaç örnek vereceğiz.CSS3 Transforms & @font-face Örneği

CSS3 transform
CSS3 transform

Bu çok güzel bir örnek. CSS’in @font-face özelliğini kullanarak, birkaç gölge ve ilginç dödürme ile tipografik bir poster yapıyor. Bütün tarayıcılar desteklediği zaman birçok yeni harika web tasarımları görmeye başlayacağız.CSS Posterler

CSS Posterler
CSS Posterler

Bu makalede Jad Limcaco birkaç poster tasarlamaya çalışmış ve CSS ten başka birşey kullanmamış.Sadece CSS ile Grafik Tasarımı

CSS Graph
CSS Graph

CSS kullanarak grafik oluşturmaya dairtonlarca örnek var. Bu teknik, verilerileri göstermek için farklı bir yaklaşım kullanır. Diyebilirsiniz ki “bu sadece CSS olamaz”, ama hakkaten sadece CSS ile yapılmış müthiş bir örnek.CSS3 Leopard-style Stacks

CSS Mac
CSS Mac

Bu makalede, kardeşimiz CSS’le Mac’e benzer bir tasarım yapmaya çalışmış. Ve güzel de olmuş.Pure CSS Twitter Fail WhaleCSS ile yapılan her deneme uygulamaya geçmiyor, sadece makale ve örnek olarak kalıyor, ama şu Twitter’ın sevimli balinası’na rastlamışsınızdır, ben çok rastladım. Sadece CSS kullanarak yapmış amcamlar.İnternet denilen dünya akıl almaz bir hızla gelişiyor ve bizim de, yani yazılımcıların da, gelişmemizi istiyor ve de biz buna mecburuz. Bu işi yaparken de eğlenerek yapabiliriz.Burada sadece 5 tane alışkanlık yazdık ama bunlardan başka daha bir sürü alışkanlık olabilir ya da bunlar her yazılımcı için aynı oranda kabul edilebilir olmayabilir ve böyle olmasıda normaldir. Uzun yıllar yazılım geliştirmekle uğraşanlar zaten kendilerine göre bir alışkanlıklar dizisine sahiptirler. Bu yazı, bu dünyada, yeni olanlar için hoş bir danışmanlık teşkil ediyor.Başka paylaşmak istedikleriniz olursa lütfen yazın.Yazının orjinali için Matt Ward a teşekkürler.