Bir yazılımcı yazılıma başladıktan sonra o zamana kadar bilgisayarda kullandığı her şeye karşı bakış açısı değişir. Çünkü gördüğünüz şeyin arka planında ne olduğu, o şeyin nasıl oraya konulduğu, o sitenin yada programın nasıl yapıldığı, nasıl çalıştığı hakkında fikir sahibi olabiliyorsunuz. Ondan sonra ister istemez kullandığınız her şeyi sorgulamaya başlıyorsunuz.
Bir internet sitesine girdiğinizde, daha önce görmediğiniz yada hoşunuza giden bir şeyi gördüğünüzde hemen kaynak kodlarına bakmaya başlıyorsunuz. Nerede, Ne kullanmış? Hangi kodlama diliyle yapmış? Dolayısıyla yazılımcılar meraklı bir düşünce yapısına sahiptir diyebiliriz.
[affiliate_news id=”1437″]
Yazılımcının en zor işi proje yapmaktan çok kullanacak kişileri düşünerek hareket etme zorunluluğudur. Çünkü bir yazılımı birden fazla kişi kullanacak ise bütün olasılıkları hesaplaması gerekir. En basit örnekten yola çıkacak olursak bir üyelik formu için bile bir sürü olasılık vardır ve bunları düşünerek hareket etmek zorundadır. Örneğin bir yazılımcının üyelik formu yaparken düşünmek zorunda olduğu kısımlara bakalım;
Üye olacak kişi;
*Kullanıcı adını yazmış mı?
*Yazdıysa bu daha önce kayıtlı olan kullanıcı adı ile aynı mı?
*Kullanıcı adı sistemde sorun çıkaracak karakterler içeriyor mu?
*Kullanıcı adı sistemde belirlenen sınırlar dahilinde mi?
*Şifresini yazmış mı?
*Şifre doğrulama kısmını yazmış mı?
*Şifre ile şifre doğrulama kısmı birbiriyle uyuşuyor mu?
*Şifreler yeterli uzunlukta mı?
*Mail adresini yazmış mı?
*Mail adresi gerçekten bir mail adresi mi yoksa saçma sapan bir şey mi yazmış?
*Mail doğrulama kısmına mail adresi yazmış mı?
*Mail adresi ile mail doğrulama kısmı uyuşuyor mu?
*(Varsa) kullanıcı sözleşmesini kabul etmiş mi?
Bunlar ilk aklıma gelenler. Tüm bu bilgilerin doğru şekilde girilmesini kontrol etmesinin yanı sıra bu bilgileri sisteme girecek kodları yazmasını ve bunda da sorun çıkmamasını söylemiyorum bile. Bu bahsettiğim sadece basit bir üyelik formunda bir yazılımcının düşünmesi gerekenler. Bu üyelik formunda doldurulması gereken ad,soyad,yaş,cinsiyet gibi daha sayılabilecek bir sürü bilginin olması durumunda yazılımcının düşünmesi gerekenleri siz hesap edin. Bir projede buna benzer hesap etmesi gereken yüzlerce şey olabiliyor.
Diğer yandan yazılımcı yaptığı bir siteyi yada projeyi dünyanın en salak kişisi kullanacakmış gibi yapmak zorunda. “Böyle yapması gerektiğini anlar artık, o kadar da değil, bunu yapmasam yada buna karşı önlem almasamda olur” deme lüksü yok. Birde sistemsel güvenliği de hesaba katmak zorunda. İşin kolayına kaçarsa başının ağrıyacağını bilir.
Çözüm Odaklı Düşünmelidir
Yapılan bir proje, ister mobil, ister windows, isterse web sitesi olsun muhakkak ortada çözülmesi gereken bir sürü sorun söz konusudur. İstenilen şeyi nasıl yapacağını bulmakta çözülmesi gereken sorunların başında gelir.
Bir projeyi sıfır hata alarak yapan bir yazılımcı diye bir şey yoktur. İlla ki bir kısımda sorun çıkar. Karakter hatası, derleme hatası gibi bir çok sorunla karşılaşır. Bu hatanın neden kaynaklandığını bulmak ve ona çözüm bulmak zorundadır.
Neyseki günümüzde yazılım geliştirmek bundan 10-15 sene öncesine nazaran çok daha kolay. Çünkü bundan 10-15 sene önce yapılan bir kodlama hatasının tam olarak neyden kaynaklandığını bulmak ciddi bir sıkıntıydı. Şimdi uygulama geliştirme programlarıyla geliştirilen bir projede meydana gelen hatayı program size söylüyor.
[affiliate_news id=”1406″]
SONUÇ
Şartlar böyle olunca bir yazılımcı çok yönlü düşünür, zaten düşünmek zorundadır da. Özellikle algoritmik bir düşünce yapısına sahiptir. Bu düşünce yapısını hem yazılım kodlarında hemde olasılıklarda göz önünde bulundurur. Dolayısıyla bir yazılımcı sadece kodlama bilmesiyle yazılımcı değildir, aynı zamanda düşünce yapısıyla da yazılımcı olmak zorundadır.