Gelişen teknolojiyle birlikte web sayfalarının daha karmaşık bir hale gelmesiyle ve imkânların artmasıyla yazılımcılar da belirli konular üzerinde uzmanlaşmaya başladı. Şu anda yazılımcıların uzmanlaştığı konulara bağlı olarak üzerinde çalışılabildikleri birçok konu ve başlık bulunur. Ancak bunlardan bazıları temel olarak kabul edilir! Peki, Front-end, back-end ve full stack developer nedir? Öncelikle bu kavramların anlamlarını öğrenmek gerekir.
- Front-end (ön yüz): bir websitesinin veya uygulamanın görünen kısmıdır yani ön yüzüdür.
- Back-end (arka yüz): bir websitesinin veya uygulamanın veritabanı ve altyapısı yani arka yüzüdür.
- Full stack developer: ikisinin karışımıdır yani bir web sitesinin veya telefon uygulamasının hem ön hem arka yüzüyle ilgilenilir.
Front-end ve back-end arayüz odaklı geliştirilen yazılımların iki temel ve birbirinden ayrı kısmıdır. Bu yazımızda bu iki kısmın ne iş yaptıklarını ve farklarını açıkladık!
İçindekiler
ToggleFront-end Nedir?
Front-end, web sitelerinde kullanıcıların gördüğü ve etkileşime geçtiği her şeydir!
Kullanıcılar web tarayıcıda bir konu hakkında araştırma yaptığında görünen her şey HTML, CSS ve Java Script gibi teknolojiler yardımıyla oluşturulur. Bu noktada front-end developer, kullanıcıların deneyimlediği ara yüzü doğrudan geliştiren kişidir. Web sayfalarının düzeni, görsel ögeler, butonlar, metinler ve sayfanın genel tasarımı bu kapsamda yer alır. Fakat bir front-end developer yalnızca kullanıcı dostu tasarımlar oluşturmakla kalmaz, aynı zamanda sitenin performans, uyumluluk ve hızını da optimize eder. Görsel estetiğin ve fonksiyonelliğin odak noktada olduğu bu alan, dijital dünyada ihtiyaç duyulan hizmetler arasındadır. Bir web sitesinin ilk izlenimi, görselliği ve kullanım kolaylığı, kullanıcıların o siteyi kullanmaya devam edip etmeyeceğini belirler. Bu yüzden front-end, hem estetik hem de teknik bilgi gerektiren bir uzmanlık alanıdır.
Back-end Nedir?
Back-end yazılımcılar, kullanıcıların direkt olarak etkileşime geçmediği kısımlarla ilgilenir. Back-end yazılım dillerinden bazıları: PHP, Ruby ve Pythonn’dur. İş ilanlarında da genel olarak göreceğiniz şey Ruby veya Python bilen yazılımcı aradıklarıdır. Çünkü back-end kısmında önemli olan programlama dilini bilmektir.
Javascript ile yapamadığınız ancak back-end ile yapabileceğiniz şeylere gelirsek günümüzde bu liste oldukça kısalmaktadır. En önemli kısım, çoğu büyük ve kompleks web uygulamaları gibi içerik yönetim sistemlerinin de back-end programlama dili üzerine inşa edilmiş olmasıdır. Günümüzde en çok kullanılan Javascript yazılımını bilerek düşündüğünüz çoğu şeyi tasarlayabiliyor olsanız da daha iyi çözümler mevcuttur. Bu noktada kod yazmayı öğrenmek spesifik probleminize en iyi çözüm bulmanızı sağlayabilir. Bu bazen de back-end kısmıyla ilgilenmeniz anlamına gelir.
Normalde, back-end yazılımcıları yazdıkları kodların web sitesinin ön yüzünde çalışması veya dizaynı için front-end yazılımcılarıyla bir ekip olarak çalışırlar. işte bu nokta, full stack developer kavramının ortaya çıktığı yerdir.
Full Stack Developer Nedir?
Full stack developer bir web sitesinin veya mobil uygulamanın hem front-end hem back-end kısımlarıyla çalışan kişi, web tasarımcısıdır. Bu kişiler, veritabanı, ön yüz tasarım ve hatta projelerin plan aşamasında müşterilerle çalışabilmektedirler. Full stack developer HTML, CSS ve Javascript programlarına hakim olmakla birlikte bir veya daha fazla back-end programlama dili de bilmektedir. Bu kişiler genellikle PHP veya Python biliyor olurlar, bazen ikisini veya daha çoğunu da bilmeleri mümkündür. Özellikle bu pozisyona artan talep sonrasında 2019 yılında çoğu full stack developer aynı zamanda proje yönetimi görsel tasarım, web tasarımı gibi konularda da uzmanlaşmıştır.
Günümüzde front-end ve back-end kısımları arasındaki fark bulanıklaştıkça, daha fazla geliştirici full stack developer haline gelmektedir. Çoğu işveren (özellikle farklı türde siteler üzerinde çalışanlar) bir web sitesinin bütün kısımlarında çalışmayı bilen kişileri yani full stack developer’ları aramaktadır. Böylece bu kişi bir web sitesinin ne türde olduğu fark etmeksizin bütün işleri yapabilir. Bu nedenle iş gereksinimlerinde full stack developer arayan işverenlerin sayısı günden güne artmaktadır.
Full Stack Developer Ne İş Yapar?
Full stack developer back-end’in temel görevlerinden biri olan kodlardan tutun da front-end’deki istemciye yollanacak tüm bilgileri gözden geçirir. Veritabanını yönetir, web servislerini geliştirir ve ön yüzün oluşturulmasında rol oynar. Kısacası full stack developer, web sayfası için gerekli kodu yazabilir, HTML’den sonra CSS ile sayfaya son şeklini verebilir ve geri kalan tüm detaylı işleri halledebilir. Grafik tasarım konularındaki tüm işleri kendi halletmek zorunda değildir ancak dileği ve bilgisi varsa işin bu kısmıyla da ilgilenebilir.
Birçok insanın düşündüğü üzere full stack developer tüm sitenin kodunu kendi başına yazmak zorunda veya her konuda mükemmel olmak zorunda değildir. Çoğu, zamanlarının büyük bir bölümünü front-end ve back-end kısımlarında geçirirler. Ama burada asıl önemli olan nokta ihtiyaç duyulduğunda bu kişilerin iki kısımdan da anlıyor olması ve ihtiyaç duyulan işi yapabilmesidir. Elbette bazı full stack developer’lar kod yazmayı da çok iyi biliyor olabilirler. Ancak dediğimiz gibi önemli olan iki tarafta da kullanılan dil ve teknolojilere hakim olabilmek, problemlere çözüm getirebilmektedir. Ayrıca 2024 yılında Full Stack Developer maaşları için bir önceki blog yazımıza göz atabilirsiniz.
Full Stack Developer Olmanın Avantajları
- Geliştirici projelerde yer alan bütün teknikleri öğrenebilirsiniz.
- Bir prototipi hızlı bir şekilde yaratabilirsiniz.
- Tüm ekip üyelerine yardım edebilirsiniz.
- Projenin maliyetini düşürebilirsiniz.
- Takım iletişimi için kullanılan süreyi azaltabilirsiniz.
- Gereksinimlere göre front-end ve back-end arasında geçiş yapabilirsiniz.
- Yeni ve gelecek teknolojilerin tüm yönlerini daha iyi anlayabilirsiniz.
Full Stack Developer Olmanın Dezavantajları
- Proje için seçilen çözümün yanlış olma ve risk yaratma olasılığı vardır.
- Seçilen çözüm geliştiricinin yeteneklerine bağlı olarak kısıtlanabilir.
- İçerdiği görevler kompleks ve zorlu olabilmektedir.