Herkese merhaba! Bu yazıda, diğer insanların ve bizlerin bizi aradığı terimleri karşılaştırmak istiyorum. Yaptığımız işlerlerin isimleriyle ilgili çok fazla kafa karışıklığı var. İnsanlar yazılım mühendisi, yazılım geliştirici gibi terimler kullanırlar. Hatta bazı insanlar programcı veya kodlayıcı vb. kullanırlar. Bazı etkinlikler ninja, guru veya rock yıldızı kadar uzağa gider. Öyleyse farklılıklara bir göz atalım. Tabii ki, hepsi benim fikrim. 15 yıldan fazla bir süredir sektörde olan birinin bakış açısıyla değerlendireceğiz anlamına geliyor.
Programcı
Programcı! “Programcı” ile başlayalım. Yani programcı programlama yapan bir kişidir. Tamam? Tipik olarak bunu, teknolojiden uzak, sektörde olmayan, yazılım geliştirmeyi yapmayan birinden duyarsınız.
Dışarıdan insanlar, temel olarak, programcı olarak adlandırıyorlar. Niye ya? Çünkü yaptığımız tek şey sadece programlama demek. Gerçekten mi? Tüm yaptığımız bu mu? Kesinlikle hayır! Bu 2018-2019’da doğru değil. Yazılımı geliştirmek için çoğu zaman programlamanıza gerek kalmaz. Bazı araçlar ve çerçeveler var, programlamanıza gerek yok. Birçoğu konfigürasyon ve özelleştirmeler hakkında. Bu nedenle, programlama işlerimizin sadece küçük bir kısmıdır.
Ancak meslekten olmayanlarla konuşurken, Uber şoförleriyle veya bir restoranda garsonlarla konuşurken, ne yaptığımı nasıl açıklayabilirim? Hey, “programcı” – bunun ne olduğunu biliyorlar. Herhangi bir yazılım mühendisini tanımıyorlar. İmalat, mimarlık veya bina yapımında mühendisleri tanırlar. Bir fabrikada bazı gereçler ürettiğimi veya binaları değiştirdiğimi düşünüyorlar. Hayır, kendine bir geliştirici ya da meslekten olmayan bir mühendis olarak adlandırmak için iyi bir şey değil. Önüne “yazılım” eklemek zorundayız ve o zaman bile kafaları karışmış olabilir. Fakat bir “programcı” terimini kullanmak daha basittir(anlamayanlar için).
Kodlayıcı
Şimdi “kodlayıcı yada kodlamacı” kelimesinden bahsedelim. Kodlayıcı nedir? Programcının altındaki bir adım olarak ifade edebiliriz. Kodlayıcı’nın mutlaka programlar veya mimari yazılım sistemleri yazması gerekmez. Kodlayıcı bir program bile olmayabilir kod yazacak! Çünkü kod güçlü bir programlama dili değil, sadece çok aptal bir işaret olabilir. Excel elektronik tablolarının işlevleri vardır, bu da koddur!
Ayrıca HTML koddur. HTML’i düşünün. HTML çok basit bir biçimlendirme dilidir. HTML kodunda bu açılı ayraçlar, aşağı yukarı işaretler, HTML etiketleri var, değil mi? HTML kodlayıcı veya XML kodlayıcı gibi işler bile var. Yaptıkları tek şey, bir programlama kodu bile olmayan divler ve spanlar yazmak için çok, çok, düşük düzeyde bir pozisyon olabilir.
Yani sadece HTML kodu yazan biri tasarımları alır ve HTML’ye kodlar. Metni ve etiketleri değiştiren kodlayıcılar var. Bunlar HTML kodlayıcıları veya farklı bir kod kullanıyorlarsa, farklı kodlayıcılar olarak isimlendirilebilir. Ancak bilgisayar programları yazmak zorunda değillerdir. Kodlayıcılar entegrasyon, performans, kümeler, bulut, 99.999 kullanılabilirlik veya kullanıcı deneyimi hakkında düşünmez. Onlar sadece verilen kodlama görevlerini üstlenirler. Bu yüzden, bunun bir seviye aşağı olduğunu söylemek doğru olacaktır, çünkü programlama daha fazla beceri ve daha fazla bilgi gerektiriyor.
Tabii ki yine, eğer insanlarla konuşuyorsak, kodlayıcıyı programcı olarak kullanılabilirler. Bunu birbirlerinin yerine kullanmaları gayet normaldir. Bunun nedeni, sizin ve benim tanıdığımız nüansları bilmemeleridir (şimdi biliyorsunuz değil mi?).
Yazılım Geliştirici
Ardından, yazılım geliştiriciye hızlı bir şekilde ulaşalım, tamam mı? Kısacası, yazılım geliştirici bir programlayıcı veya kodlayıcıdan çok daha fazlasıdır. Yazılım geliştiricinin yalnızca uygulama değil, bazen de herhangi bir programlama veya kodlamaya ihtiyaç duymayacak olan) yazılım geliştirme döngüsünü anlaması gerekir. Uygulama, ciddi bir yazılım ürününün küçük bir bölümüdür.
Yazılım geliştiricilerin, yazılacak projenin gereksinimleri karşılaması gerekir. Paydaşlarla konuşmaları gerekiyor. Tüm sistemin ölçeklenebilirliğini ve sağlamlığını geliştirmeleri gerekir. Belgelemeleri, test etmeleri ve desteklemeleri gerekir. Bir web uygulamasıysa, yazılım geliştiricilerin yük dengeleyici ve olağanüstü durum kurtarma hakkında düşünmeleri gerekir. Bir web uygulamasıysa, tarayıcı optimizasyonunun doğru yapılması gerektiğini düşünmeleri gerekir. Genellikle yazılım geliştirme, web geliştirme, mobil uygulama geliştirme, Nesnelerin İnterneti geliştirme bölümlerine ayrılabilir. Bir gün tüm yazılım geliştirme nişleri hakkında ayrı bir yazı yapacağım. Yazılım geliştiricileri en iyilerin iyisidir.
Yazılım Mühendisi
Peki ya yazılım mühendisleri? Onlar bence, yazılım geliştiricilerden bile daha ileri düzeyde. Niye ? Mühendis, genellikle Bilgisayar Bilimi alanında lisans derecesi veya yüksek lisans derecesini bitiren ve / veya çok okuyan kişidir. Ayrıca teoriye (kitap veya ders) ek olarak birçok deneyime sahiptirler. Çok şey biliyorlar ve çok şey yapabilirler. Her şeyi çok kapsamlı düzeyde bilirler: en iyi uygulamalar, algoritmalar, veri yapıları, ölçeklenebilirlik, diller (çoğul!). Unutmayın ki bazı şirketler için mutlaka doğru olmayabilir, çünkü ünvanlar ve iş işlevleri şirketten şirkete çok farklıdır. Bazı şirketler “Yazılım Geliştiricisi” (Amazon) kullandıkları için “Yazılım Mühendisi” unvanlarını kullanmazlar; bunun tersi de bazı şirketler “Yazılım Geliştiricileri” yerine “Yazılım Geliştiricisi” kullanır.
Bu nedenle, mühendis ve geliştirici çoğunlukla değiştirilebilir; ancak mühendis geliştiriciden daha prestijli ve daha ileri düzeydedir. Yazılım Mühendisleri veya Yazılım Geliştirici diyorsanız, çoğu çalışan anlayacaktır. Sadece “YAZILIM” kelimesini unutma. Aksi halde emlak mülkleri geliştirdiğinizi veya tavuk kümesleri ürettiğinizi düşüneceklerdir.
Yorum Yap