Hoşgeldin Misafir

Yazılım Mühendisi ile Yazılım Geliştiricisi Arasındaki Farklar

Reisci

Reisci

Yerli Ve Milli Hacker
11 Mar 2020
6,569 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Selamun aleyküm arkadaşlar yazılım mühendisliğinde son dönemini okuyan biri olarak ” Yazılım Mühendisi ile Yazılım Geliştiricisi Arasındaki Farklar ” konusunda kişisel düşünce ve fikirlerimi sizlerle paylaşmak istedim. Buradaki hiçbir bilgi resmi bir kanun değildir, okurken bunun bilincinde faydalanmaya çalışın.

Yazılım mühendisi aynı zamanda bir yazılım geliştiricidir. Ancak bunun tersini söylemek mümkün değildir.

Yazılım mühendisliğindeki, mühendislik kısmı için almanız gereken dersler vardır. Bunlar tüm mühendislik fakültelerinde bulunan sayısal derslerdir. Yazılım mühendisi ünvanı alan insanlar bu dersleri başarıyla geçmiştir. Yazılım geliştirici olmak için ise bir derse ihtiyaç yoktur. Herhangi biri kişisel olarak kendini geliştirip yazılım geliştirici olabilir.

Yazılım Mühendisinin algoritma anlayışı yazılım geliştiriciden farklıdır.

Öncelikle burada bahsettiğim yazılım geliştiricilerin , yazılım mühendisi olmayan yazılım geliştiriciler olduğunu bildiğinizi varsayıyorum. Kendi hayatımdan örnek vererek devam edeyim; Örneğin iki yıllık bilgisayar programcılığı programında okuduğum vakit algoritmayı şu şekil öğretmeye başlamıştı hocam. Kantine gidip gelme algoritmasını yazın. Bizde buna istinaden kaç adım attık nerede döndük gibi bilgileri yazmıştık. Çay nasıl yapılır ? Yemek nasıl yapılır ? Bilgisayar nasıl tamir edilir ? Hepsinin algoritmik bir yapısı vardır. Bu yazılım geliştirici içinde normal insanlar içinde algoritmadır. Temel algoritma tanımına uyan şeylerdir. Ancak bu dersten sonra yavaş yavaş faktöriyel bulma gibi kodlarla algoritmanızı geliştirirsiniz. Bu daha da ilerler hocalarınız özgün algoritmik sorular yazabilir.

Ancak yazılım mühendisliği açısından bakacak olursak algoritma öğrenmeyi; veri yapıları , algoritma analizi gibi dersleri derinlemesine öğrenmeye başlayarak öğrenir ve kafasında somutlaştırır. Örneğin ” en hızlı arama algoritması , en iyi böl ve fethet algoritması” gibi şeyleri öğrenir. Aslında bu derslerin amacı olarak algoritmayı öğrenmek değil mevcut sorunlara en iyi çözümler bulacak algoritmayı seçmek olarak düşünebilirsiniz. Ancak sadece bu konuları öğrenmek için öylesine algoritmanın içerisine girilir ki bu sizi bu sektör için “matematik olmazsa olmaz” düşüncesine iter. Gerçekten de derinlemesine matematik, veri yapıları, kullanıldığı durumlar en iyi sonuçları, ortalama sonuçları, en kötü sonuçları, iyileştirme yolları , teorideki durumu ile pratikteki durumu arasındaki farklar derken çok derin bir algoritmik mantığa sahip olmayı başarabilirler. Bir yerden sonra durum kantine en kısa nerden giderim, kantine tüm bahçeyi dolaşarak nasıl giderim gibi matematiksel kanıtlanabilir ( BFS, DFS Algoritmaları) örnekleriyle düşünmeye başlarlar. Bu bakımdan Yazılım Mühendisi ile Yazılım Geliştiricisi Arasındaki en büyük fark algoritmaya bakış açısı diyebiliriz.

Yazılım Mühendisliği Mi , Yazılım Geliştirici Mi Olmalıyım ?

Bu sizin girişimci ruhunuza ve almak istediğiniz eğitime göre değişebilir. Ancak liseyi bilgisayar programlama, önlisansı bilgisayar programcılığı okuyup yazılım geliştirici olmuş biri olarak daha sonra yazılım mühendisliği okuduğum için kendimi çok şanslı hissediyorum. Nesnelerin interneti , big data, yazılım tasarım ve mimarileri , yapay zeka, görüntü işleme, veri madenciliği, veri yapıları, algoritma analizi gibi dersleri çok değerli hocalardan tecrübeleriyle birlikte almanın beni geliştirdiğini düşünüyorum. İşe başlarken de arkanızda duracak kapı gibi diplomayı da unutmamak lazım. Yazılım Mühendisliği Bölümünden çokça vasıfsız insanda mezun olabilir, hiç üniversite okumayıp kendini süper geliştirmiş insanlarda olabilir amacım bir tarafı kötüleyip diğer tarafı yükseltmek değil. Sadece artı ve eksi yönlerini belirtmek istedim umarım faydalı olmuşumdur.