11 Geliştirici Türü (Hangisi Olacaksınız?)
Yayınlanan: 2022-10-05"Geliştirici" kelimesini söyleyin ve Kinsta'da biz "yazılım" düşünelim. "Gayrimenkul" demeyin. Yine de bilgisayarlara ve koda odaklanmak bile geliştirici türlerini tanımlamak için çok fazla serbestlik bırakıyor.
Geliştiricileri "JavaScript geliştiricisi" veya "Python geliştiricisi" gibi kullandıkları programlama diline göre sınıflandırabiliriz, ancak bu onların ne yarattıklarını veya süreçteki rollerini ortaya çıkarmaz. Ayrıca, geliştiricilerin birden fazla dil bilmesi yaygındır.
Bu nedenle, geliştirici türleri için yaygın olarak kabul edilen (ve daha açıklayıcı) bazı etiketler kullanacağız ve bunların arkasındaki görevlere ve araçlara bakacağız.
Geliştirici Nedir?
Yazılımın geliştiricilerimizin hikayesinin anahtarı olduğunu belirledik. Bu birçok şekil alabilir.
Microsoft'un SQL Server veritabanı yazılımının arkasındaki programlama ekibinin bir üyesi bir geliştiricidir. Böyle bir veritabanında depolanan bilgilerle çalışmak için Structured Query Language kullanan biri de geliştirici olabilir.
Bir geliştirici, devre kartına gömülü bir bilgisayar işletim sistemi oluşturur. Bir başkası, diğer birden çok yazılım programı arasındaki etkileşimleri otomatikleştirmek için Bash komut dosyaları yazar.
Tüm bu tür geliştiriciler kodla bir şeyler inşa ettiler.
Kaç Tür Geliştirici Vardır?
Geliştirici iş tanımlarının "resmi" bir listesi yoktur. Bazı ortak terminolojiyi kullanarak geliştiricilerin ne yaptığına bakacağız ve hatta geniş kapsamlı “web geliştirici” kategorisini üç farklı role ayıracağız. (Kabul ediyoruz: Web siteleri oluşturan insanlar için kalbimizde bir zaafımız var.)
Toplamda, burada 11 tür geliştiriciyi inceleyeceğiz.
1. Ön Uç Web Geliştiricisi
Bir ön uç geliştirici, bir web sitesinin kullanıcı arayüzüne odaklanır. Bir sitenin görünümünü ve verdiği hissi kontrol etmek için HTML ve CSS becerilerini kullanırlar ve genellikle mobil ve masaüstü tarayıcılarda çeşitli ekran boyutlarını barındırırlar.
Ön uç geliştiricileri, kullanıcılar için duyarlı bir deneyim oluşturmak için genellikle JavaScript'e güvenir. Bu geliştiriciler, genellikle dinamik, istemciye yönelik uygulamaların oluşturulmasını hızlandırabilecek JavaScript kitaplıkları ve çerçevelerine aşinadır.
Ön uç geliştirici, tarayıcılarda daha hızlı yükleme süresi için web sitesi performansını, görüntüleri, JavaScript'i ve işaretlemeyi optimize etmek için çalışır. Çoğu ön uç geliştirici, arama motoru optimizasyonu ve web sitesi erişilebilirliğine de odaklanır.
Bütün bunlar birçok beceri gerektirir ve bir ön uç geliştiricinin maaşı bunu yansıtabilir.
Ön Uç Geliştiriciler Web Tasarımcıları mı?
Birçok ön uç geliştirici aynı zamanda tasarımcıdır, ancak bu, “ön uç” başlığının bir gereği değildir. Benzer şekilde, birçok web tasarımcısı HTML ve CSS konusunda bilgilidir ve bunları maketlerde kullanabilirler, ancak kendilerini geliştirici olarak görmezler.
Birçok kuruluş için tasarım, web'in ötesindeki medyayı kapsayan markalaşmanın bir parçasıdır.
Bir tasarımı kim oluşturursa yaratsın, onu bir web sayfasında hayata geçirmek ve bir kullanıcı deneyimi vizyonunu işleyen bir uygulamaya dönüştürmek, ön uç geliştiricinin işidir.
2. Arka Uç Web Geliştiricisi
Bir arka uç geliştiricisi, genellikle web sunucusu yazılımı, veritabanları ve üzerinde çalıştıkları işletim sistemlerinde uzmanlık gerektiren sunucu tarafı uygulamalar oluşturur. Tamamen açık kaynaklı bir örnek, Linux işletim sistemi, bir Nginx veya Apache web sunucusu ve bir MariaDB veya PostgreSQL veritabanı olabilir.
Arka uç ve ön uç geliştirme arasındaki çizgi, ön uçtaki tarayıcılara HTML gönderen yalnızca bir sunucu tarafı komut dosyası dili olan PHP gibi teknoloji tarafından bulanıklaştırılır.
WordPress ve diğer popüler CMS'lerin yanı sıra Laravel gibi geliştirme çerçevelerine güç sağlayan PHP, web'in en yaygın sunucu tarafı komut dosyası dilidir. Yine de arka uç geliştiricileri, C# ve Microsoft'un .NET çerçevesi, Python, Java, Ruby on Rails veya Node.js gibi teknolojileri kullanabilir.
Arka uç geliştiricileri, bir web sitesinin müşteriye dönük tarafıyla ilgilenen ekip üyeleriyle işbirliği içinde çalışmayı bekleyebilir. Sunucu tarafı geliştirme, iki tarafın yakın bağlantıya daha az ihtiyaç duyarak ön uç hizmetlerini destekleyen uygulama programlama arabirimlerinin (API'ler) oluşturulmasını da içerebilir.
Bunların hepsi sizin işinize benziyorsa, tipik arka uç geliştirici maaşlarıyla ilgilenebilirsiniz.
3. Tam Yığın Web Geliştiricisi
Tam yığın bir geliştiricinin ön uç ve arka uç geliştiricilerin işini yaptığını tahmin etmiş olabilirsiniz. (Ne yazık ki, bu tipik bir tam yığın geliştiricinin maaşının diğerlerinin iki katı olduğu anlamına gelmez.)
Yine de, tüm web geliştirme seviyelerinde ustalaşmanın ödülleri var gibi görünüyor. StackOverflow'un geliştiricilere yönelik 2022 tarihli bir anketi, katılımcılardan rollerini açıklamaları istendiğinde en yüksek yanıtın (yaklaşık %47) "tam yığın geliştirici" olduğunu buldu.
WordPress Geliştiricileri Tam Yığın Geliştiriciler mi?
Burada Kinsta'da barındırılan yönetilen WordPress'in özellikleri, PHP'de yetkin herkesin, şeylerin sunucu tarafına derinlemesine girmeden ciddi geliştirmeler yapmasına izin verir.
Herhangi bir yere kurulan WordPress geliştirici dostudur ve bazı yaygın sunucu tarafı görevleri üzerinde bir soyutlama katmanı olan kendi PHP işlevlerinden/yöntemlerinden oluşan geniş bir kitaplık sunar. Örneğin, WordPress geliştiricileri SQL yazmadan ilişkisel veritabanlarında kayıtları saklayabilir ve alabilir. PHP'de her şeyin gerçekleşmesini sağlayan temel işlevselliği bilmeden medya yüklemelerini bir sunucunun dosya sistemine kaydedebilirler.
“WordPress Developer” burada kendi başına bir kategori olabilirdi, ancak o zaman Drupal, Joomla ve DNN gibi CMS ürünlerini ve Laravel, .NET ve Django gibi çerçeveleri kullanan geliştiriciler için de aynısını yapmak zorunda kalırdık.
Birçok WordPress geliştiricisi - özellikle WordPress temaları ve eklentileri oluşturan bazıları - ilham verici tam yığın pirzolalara sahiptir. Peki, “WordPress geliştiricileri full-stack geliştiriciler mi?” sorusunun cevabı. şudur: bağlıdır.
4. Mobil Uygulama Geliştiricisi
“Uygulama” terimi, yazılım geliştirmede çok fazla alanı kapsar. Masaüstünden web'e kadar uygulamalar, son kullanıcılar için işlerin yapılmasını sağlayan araçlardır.
Yalnızca "uygulama" olarak kısaltıldığında - "Bunun için bir uygulama var!" — İlk olarak akıllı telefonlarda, tabletlerde ve diğer mobil cihazlarda çalışan uygulamaları düşünmeye meyilliyiz. Ve mobil uygulamalar oluşturmak, uzman bir geliştirici türü gerektirir.
Mobil uygulama geliştiricileri, Apple'ın iOS'u veya Google'ın Android'i gibi bir cihaz işletim sistemi için uygulamalar oluşturmak için kullanılan yazılım geliştirme kitlerine (SDK'lar) ve ilgili araçlara aşinadır.
Swift, iOS için yerel programlama dilidir, Java ve Kotlin ise Android için en çok kullanılır. Ayrıca, Apache Cordova ve NativeScript gibi geniş bir uygulama oluşturma araçları ekosistemi, web dostu JavaScript, HTML ve CSS'ye dayalı kodu yerel mobil yazılıma dönüştürebilir.
Ortalama uygulama geliştirici maaşlarına baktığımızda, mobil platformlar için geliştirenlerin masaüstü veya web'e odaklananlardan biraz daha fazla kazandığını gördük.
5. Masaüstü Yazılım Geliştiricisi
Masaüstü geliştiricileri, kişisel bilgisayarlarda ve iş istasyonlarında çalışan yazılım uygulamaları oluşturur.
Geliştiriciler genellikle belirli işletim sistemleri için masaüstü uygulamaları oluşturur, bu nedenle bu alandaki etkinlik, Microsoft'un Windows'u, Apple'ın macOS'u, Google'ın Chrome OS'si ve açık kaynaklı işletim sistemi Linux gibi platformların göreli pazar paylarını yansıtır.
Dünya çapında web sitesi ziyaretlerinden toplanan verileri kullanan Statcounter, Ağustos 2022'de Windows'un masaüstü işletim sistemleri arasında %74 pazar payına sahip olduğunu tahmin etti.
Geliştiricilerin, kaynak kodunun hızlı düzenlenmesi, hatalarının ayıklanması ve derlenmesi için entegre geliştirme ortamı (IDE) araçlarını kullanarak programlama yapması muhtemeldir.
Masaüstü uygulama programlaması için popüler diller arasında C#, C++, Swift ve Java bulunur.
Masaüstü yazılımı yerel olarak çalışır, ancak modern uygulamalar, ürün güncellemelerinden bulut depolama yoluyla veri paylaşımına kadar çeşitli görevler için İnternet bağlantısını kullanabilir.
6. Veri Bilimcisi (Büyük Veri Geliştirici)
İnsanlar günlük yaşamlarını sürdürerek birçok verinin üretilmesine yardımcı oluyor: markette alışveriş yapmak, internette gezinmek, trafik kameralarının yanından geçmek, cep telefonlarını kullanmak, hatta oy kullanmak. Hava durumu, depremler ve uzaydan gelen elektromanyetik sinyaller gibi doğal olaylardan veri kaydetmek için sistemler kurduk.
Bir veri bilimcisi, tüm bu bilgilerdeki kalıpları ortaya çıkarabilen bir bilgisayara sahip bir matematik sihirbazıdır.
Bu geliştiricilerin Python programlama dilini veya R, Scala veya Julia gibi daha özel bir dili kullanıyor olma ihtimali yüksektir.
"Büyük veri" genellikle ilişkisel bir veritabanında toplanır, bu nedenle bir veri bilimcisi muhtemelen programlama araç kutusunda SQL'e sahip olacaktır.
7. Yapay Zeka/Makine Öğrenimi Geliştiricisi
Yapay zeka (AI) yazılım geliştiricileri, karar verme gibi insan davranışlarını taklit etmeye çalışır. Makine öğrenimi (ML) ekleyin ve bir uygulama zamanla daha akıllı hale gelebilir.
AI/ML uygulamaları genellikle karmaşık algoritmalar kullanarak çok sayıda veriyi işler, bu nedenle sahadaki geliştiriciler genellikle veri bilimcileridir.
Pazar araştırması firması IDC, yapay zeka ile ilgili uygulamalar, donanımlar ve hizmetler için dünya çapında gelirin 2021'de 383 milyar doları aştığını ve 2020'ye göre yaklaşık %21 artış olduğunu tespit etti.
Müşteri ilişkileri yönetimi yazılımı ve kurumsal kaynak yönetimi yazılımı, yapay zeka ile geliştirilmiş uygulamalardan elde edilen gelirin yaklaşık %65'ini oluşturuyor.
8. Oyun Geliştiricisi
Bilgisayar oyunu geliştiricileri çok çeşitli becerileri temsil eder.
Yazılımları masaüstlerinde, mobil cihazlarda, konsollarda veya web tarayıcılarında çalışabilir. Hikayeler, askeri veya spor simülasyonu, birinci şahıs nişancı, strateji veya rol yapma gibi farklı oyun türlerini barındırır. Sonra muhtemelen 3D grafikler, müzik ve ses efektleri var.
İnternete bağlı oyun dünyasında, çok oyunculu oyunların geliştiricileri, en yoğun e-ticaret siteleri kadar zorlu arka uç sunucu ve veritabanı gereksinimleriyle karşı karşıyadır.
Oyun geliştiricileri genellikle 3B oluşturma araçları ve animasyonla ilgili diğer yazılımlarda uzmanlığa sahiptir.
Ve son teknolojiye odaklanan SlashData's Developer Nation tarafından yapılan son geliştirici anketleri, artırılmış gerçeklik (AR) veya sanal gerçeklik (VR) uygulamalarının sadece %37'sinden fazlasının AR/VR oyunları olduğunu gösterdi. Projelerin %27,9'u sanal dünyalar inşa etmeyi içeriyordu - bazıları oyunlar için.
9. İşletim Sistemleri Geliştiricisi
Binlerce geliştirici, Linux'a katkıda bulunan veya Microsoft, Apple veya Google tarafından istihdam edilen en popüler işletim sistemlerinde çalışırken, yine de özel bir gruptur. Ne de olsa SlashData, anketlerinin dünya çapındaki toplam geliştirici nüfusunun 24 milyondan fazla olduğunu gösterdiğini söylüyor.
Buzdolabınızın bir işletim sistemine sahip olma olasılığı yüksektir, ancak popüler bilgisayar işletim sistemleri, çoğu genel projenin daha küçük bileşenleri üzerinde çalışan büyük geliştirici ekipleri gerektiren çabalardır.
Çoğu işletim sisteminin çekirdeği, CPU'ya, belleğe, dosya sistemlerine ve G/Ç aygıtlarına erişimi yöneten çekirdektir. C, Microsoft Windows, Apple'ın macOS ve Linux'unun arkasındaki çekirdekler için birincil kodlama dilidir. Ayrıca, montajda yazılmış bazı düşük seviyeli kodlar da kullanılır.
Ve Android çekirdeği, Linux çekirdeğinden evrimleşmiştir.
Çekirdeğe ek olarak, bir işletim sistemi, sistem temizliği için çeşitli donanım aygıtlarını ve uygulamalarını yönetmek için sürücülere sahiptir. Ve sonra sistemin grafiksel kullanıcı arayüzü var. Geliştiriciler bu bileşenler için C, C++, Objective C (macOS) ve hatta Python (Linux) kullanabilir.
10. DevOps Mühendisi
Bir DevOps Mühendisi, yazılımı geliştirme aşamasından genel yayına kadar hızlı ve güvenilir bir şekilde alan araçları ve iş akışlarını yönetir.
"DevOps", "geliştirme" ve "operasyonlar" kelimelerinin birleşimidir ve uygulayıcılar, kod yönetiminden test, dağıtım, izleme, bakım ve sorun gidermeye kadar tekrarlayan yazılım geliştirme görevlerini otomatikleştirir.
Bu mühendisler, yazılım sürüm döngülerini hızlandırmaya, projenin kod tabanının çeşitli sürümlerini yönetmeye ve nihai ürünün beklendiği gibi çalıştığını doğrulamaya yardımcı olmak için bir dizi DevOps aracı kullanır.
DevOps süreci, web geliştirme için kullanıldığında, uygulamanın gerektirdiği kaynakların kullanılabilir olmasını ve web sunucusunda düzgün şekilde yapılandırılmasını da sağlayabilir.
DevOps ileri düzey beceriler gerektirir ve bir DevOps mühendisinin maaşı genellikle bunu yansıtır.
11. Güvenlik Geliştiricisi (SecDevOps)
Bir güvenlik geliştiricisi, yazılım ve bilgisayar sistemi güvenliğini test eden araçlar oluşturur ve süreçleri yönetir.
Yazılım geliştirmede güvenlik, genellikle DevOps sürecinin bir bileşenidir. Bu ortamda güvenliğe odaklanan birine SecDevOps mühendisi denebilir.
Güvenlik geliştiricileri, yazılımları ve bilgisayar sistemlerini siber güvenlik saldırılarından ve tehditlerinden korumak için çalışır. Yinelenen görevleri otomatikleştirmek için Python, Bash ve Ruby gibi komut dosyası dilleri de dahil olmak üzere çeşitli araçlar kullanırlar.
Bir güvenlik geliştiricisi, korumaya çalıştığı yazılım ve sistemler hakkında derinlemesine bilgi sahibi olmalıdır.
Ne Tür Bir Geliştirici Olmak İstiyorsunuz?
Kendiniz bir geliştirici olmayı düşünüyorsanız, sonraki adımları atmanıza yardımcı olacak bazı bilgilerimiz var. Öğrenmek için en iyi programlama dillerini okuyabilir veya doğrudan PHP öğrenmeye ve JavaScript eğitimlerini keşfetmeye başlayabilirsiniz.
Belki bir Laravel geliştiricisi olmak için ne gerektiğini öğrenmek veya dünyanın en popüler CMS'si olan WordPress'i öğrenmeye odaklanmak ilginizi çekebilir.
O zaman belki bir gün Kinsta'da bir kariyer için bize katılırsın.
Özet
Bu, kendi alanlarında mevcut olan çeşitli görevleri vurgulayacak kadar farklı rollere sahip 11 geliştirici türüne bir bakış.
Yine de, birçok geliştirici birden fazla rolü üstlenir ve çoğu, birden çok programlama veya komut dosyası diline aşinadır. Belki de bu yüzden "resmi" bir geliştirici türleri listesi üzerinde asla anlaşamayacağız.
Bu arada, başlatmak istediğiniz web tabanlı bir projeniz varsa, Kinsta'nın Uygulama Barındırma ve Veritabanı Barındırma çözümlerini keşfetmek isteyebilirsiniz.