Girişimciler için Yazılım Geliştirmenin Önemi - 1
Bu makale Uğur Özyılmazel (webBox) tarafından yazılmıştır kaleme alınmıştır.
Ülkemizdeki girişimlerin büyük bir kısmı web uygulamaları ya da web servisleri hizmeti üzerine kurulduğunu görüyorum. Doğal olarak iyi bir fikir, iyi bir yazılıma ve yazılım geliştirme ekibine ihtiyaç duyuyor. İşte bu noktada sorun başlıyor. Bu yazı dizisinda, sizlere önce yazılımcı türlerini anlatmak istiyorum.
Yazılımcı Geliştirici Kimdir?
Öncelikle şunu belirtmeliyim, yazılım geliştirmek aslında kafası çalışan her insanın yapabileceği bir iştir. Yani sihirli ulaşılmaz bir şey değildir. Sakın yanlış anlamayın, basit / kolay bir iştir demiyorum!
Günümüz dünyasında, internetin ve google.com’un olduğu bir çağda, sonsuz kaynağın kolayca erişilebildiği bu dünyada İngilizce okuyabilen ve okuduğunu anlayan herkes bir şekilde yazılımcı olabilir. Ben ve benim yaşımda (41) olan arkadaşlarım iyi bilirler, konu ile ilgili ne bir kitap, ne soru soracak bir insanın olmadığı karanlık çağlar vardı 80’ler ve 90’larda.
Bugün, açık kaynak yazılımlar, işletim sistemleri, tonlarca web-framework’lerinin olduğu bir dünyada yaşıyoruz! Ücretli / ücretsiz eğitimler ve videolar var. Sıfır bilgi sahibi biri bile, doğru kaynağı bulduğu zaman, biraz dikkat ve emekle pek çok şeyin üstesinden gelebilir.
Bu bilgileri aklımızın bir köşesinde tutarak, şimdi size kısaca yazılımcı tiplerinden bahsedeyim.
Alaylı Yazılımcı
Alaylı olmak, halk arasında kullanılan bir tabir. Yani ilgili konuyu, okuluna giderek değilde, direk o işin içinde çalışarak öğrenen kişidir. Zorlu ve zahmetli bir yöntemdir. Eğer şansınıza iyi bir alaylı’ya denk gelirseniz sırtınız yere gelmez!
Alaylı yazılımcı, herşeyi kendi başına, kanırta kanırta öğrenen kişidir. Tekerleği pek çok kez baştan icat etmek zorunda kalmıştır. Belki pek çok konunun ya da metodolojinin literatürdeki adını bilmez ama yazdığı kodda bu teknikleri kullanmıştır. Çünki aklın yolu birdir. İş başa düştüğü için pek çok şeyi de öğrenmek zorunda kalmıştır.
Okullu Yazılımcı
Alaylı’ya göre bu işin okulunu okumuş eğitimini almış yazılımcıdır. Eğer bitirdiği okul ve okurken katıldığı projeler ve benzeri işler iyi ise çok sağlam temeller üzerinde duran bir yazılımcı çıkabilir ortaya. Okullu yazılımcıda alaylı yazılımcı ruhu olması gerekiyor. Yani öğrendiklerini sürekli sorgulamalı ve denemelidir. Bir şey ne den böyle oldu? acaba şu şekilde yapsam ne olurdu? gibisinden soruları sormalı ve sürekli kendini geliştirmeye çalışmalıdır.
Tabii okuduğu okul, aldığı eğitim de çok önemli. Örneğin Stanford, MIT gibi dünya çapında Computer Science (Bilgisayar Bilimleri) derecesi olan bir eğitim kurumundan mezun okullu yazılımcı, bulunduğu atmosferden aldığı sinerjiyle diğerlerine göre hayata çok önde başlayabilir.
Meraklı Hevesli Yazılımcı
Bu tür yazılımcılar da ilginçtir. Bu türün genelde pek yaş standartı yoktur. Yani 30 / 40 yaşından sonra bile kurcalama merakı yüzünden yazılımcı olmuş pek çok insana denk geldim. Konularında da gayet iyiydiler. Buradaki en önemli kriter heves. Eğer bu heves geçici bir hevesse sonucu başarısızlık oluyor.
Ben uzun yıllar Commodore 64 ve Amiga bilgisayarlarıyla uğraştım ve halen de uğraşıyorum. Demoscene (google.com’dan aratın bakın neler çıkıyor) adında, benim gibi C64 ve Amiga severlerin oluşturduğu bir dünya var. Bu dünyanın bir parçası iseniz size SCENER deniyor. Yabancı bir scener arkadaşımın çok hoşuma giden bir sözü var:
ONCE A SCENER, ALWAYS SCENER!
yani bir kere scene olayına gönül verdiğinizmi, ölene kadar scener oluyorsunuz. Çok hoşuma giden bir söz bu. Aynısı yazılım geliştiricisi için de geçerli. Yani bir kişi, bu büyülü dünyaya bir kez bulaştıysa bir daha kurtulamıyor, hep yazılımcı kalıyor!
Hangi türden yazılımcı olunulursa olsun, iyi bir yazılımcı olmak için;
İngilizce bilmek, en azından okuduğunu anlamak ve soru sorabilmek için yazacak seviyede olmak
Dünyayı takip etmek; konu ile ilgili yazılımcıları / yazılım firmalarını / blogları takip etmek, audio ya da video podcast’leri takip etmek (özellikle audio)
Açık Kaynak Projeleri izlemek, takip etmek, gözlemlemek (github ve bitbucket)
Blog tutmak; kendiniz için. Karşılaşığınız sorunu çözdüğünüz anda hemen bunu blog olarak post edin. Hem kendi işinize hem de başka birinin işine yarayabilir!
Eğer imkan varsa bol bol diğer yazılım geliştiricileriyle sohbet etmek, ufkunuzu geliştirmek
Okumak okumak okumak...
Genelde yazılımcı kişi öncelikle en iyi bildiği / hakim olduğu dilde / platformda faaliyet göstermek ister. Unutulmaması gereken şey, tek bir konuya fokus olurken, etrafta olan diğer şeyleri de kaçırmamak!
Yani, php dili ile yazılım geliştiren kişi, mutlaka diğer diller dünyasında da ne olup bittiğini göz ucuyla bile olsa takip etmeli. Çünki yazılım geliştirme aslında sorun çözme / problem çözme mantığı üzerine kuruludur.
Yani siz bir sorunu çözmek için yöntem / metodoloji geliştirmeye çalışırken, aynı sorun için başka bir platformda çözüm üretilmiş olabilir. Bu bakımdan sürekli kendini yenilemeye çalışmalıdır geliştirici kişi.
Peki yazılımdan hiç ama hiç anlamayan bir girişimci, iyi yazılımcıyı nasıl bulur? ya da nasıl değerlendirir? İşin püf noktalarını; yazı dizisinin sonraki bölümüne bırakıyorum. Zaten şu ana kadar iyi bir yazılımcıda bulunması gereken temek unsurlardan bahsettim. Bu bilgiler ışığında da değerlendirmemizi yapacağız.