Front-End Developer Kime Denir?

Nevcan Uludaş
SabancıDx
Published in
7 min readDec 22, 2019
Ekşi sözlükte “4 yapraklı yonca gibi birşey, arıyorsun arıyorsun bulamıyorsun” yazmışlar. Yukarıdaki diyagram bunun nedenini anlatıyor 😄

Bilgi teknolojileri sektöründeki hızlı ilerleme ve her gün bir yenisi ile karşılaştığımız teknolojiler, farklı uzmanlıkları ve dolayısıyla farklı unvanları peşinde getirmeye devam ediyor. Bilgi karmaşasına neden olan unvanların, aslında hangi uzmanlıklara verildiklerinden dilim döndüğünce bu makalede bahsedeceğim.

Ülkemizde (hatta dünyada) maalesef bu konuda bir kavram kargaşası mevcut. Web Development bir toz bulutuyken her işi yapan “Webmaster” larımız vardı. Sonra işin içine görsel tasarım dahil omaya başladıkça “Front-end Developer” ve “Back-end Developer” olarak ayrıştılar. Günümüzde birileri tarafından “Full-stack Developer” olarak havalı bir isimle tekrar birleştirilmeye çalışılsa da, ben bu işin altından her babayiğitin hakkıyla kalkabileceğini düşünmüyorum. Neden mi? Biraz sonra sadece Front-end Development özelindeki uzmanlıkları gördüğünüzde, siz de bana hak vereceksiniz. Abarttım mı? Gelin bu unvanları ve teknolojileri biraz daha yakından inceleyelim.

Front-end Developer’ın kabaca ne olduğundan önce ne olmadığından hızlıca bahsetmek istiyorum;

  • Front-end Developer bir tasarımcı değildir. 🙅🏻‍♂️
  • Front-end bir kodlama dili hiç değildir. 🤦🏻‍♂️

İçerisinde “Front-end”, “Client-side”, “Web UI”, “HTML”, “CSS” ya da “JavaScript” geçen bir unvan ile karşılaşırsanız, bu kişinin bir dereceye kadar HTML, CSS, JavaScript ve DOM konularında bilgi sahibi olduğunu gösterir. Özetle işin temelini bunlar oluşturur.

Front-end Developer

Basitçe, “Bir uygulamada kullanıcının etkileşime girdiği kısmı geliştiren kişi” diyebiliriz. HTML, CSS, JavaScript ve DOM özelinde bir dereceye kadar yetkin, aynı zamanda bu teknolojileri web platformlarında uygulayan bir geliştiriciyi tanımlayan genel bir iş başlığıdır. Temel olarak bu teknolojileri kullanabilen kişiye gönül rahatlığıyla Front-end Developer diyebilirsiniz. Kağıt üzerinde bu teknolojiler yeterli gözüküyor ama günümüz ihtiyaçları ve bu ihtiyaçlara hizmet eden teknolojiler tabiki bu kadarla sınırlı değil.

Geliştirdiğimiz uygulamaların güzel görünmesi (UI) gerekiyor! Hatta tek başına güzel gözükmesi yetmiyor. Kullanıcıların uygulamayı kolaylıkla kullanabilmesi (UX) isteniyor. Bazı koşullarda bu da yeterli görülmüyor ve fiziksel engellerin uygulamanın kullanımına engel olmaması (A11Y) bekleniyor.

Bir çok farklı donanım, işletim sistemi, tarayıcı var. Hepsinde uygulama düzgün gözükmeli. Ayrıca herkesin elinde bir akıllı telefon var. Hazır böyle bir uygulama hazırlarken mobil cihazlardan erişemezsek çok yazık olur. Mobil cihazlardan da uygulamaya erişilmeli. Hatta native bir uygulama hissiyatı vermesi bekleniyor.

Günlük hayatımızda hızın önemi büyük, malum. Birine Slack’ten mesaj atıp, ardından “Sana Slack’ten yazdım, gördün mü?” demek için seslenir olduk. Uygulamamız da bu hıza ayak uydurmak için performanslı olmalı. “Kullanıcı en fazla 2 saniye bekler, 3. saniyede çıkar gider” dediler. Gitmesin! Biz sayfa yüklenme hızını düşürmek için gerekli tüm taklaları arkada atarız. En güncel teknolojiler arasından en uygununu seçeriz.

Yapılan işin kalitesi (QA) sorgulanamaz tabiki. Hiçbir hata kullanıcıya ulaşmamalı. Hata oluştuğu anda ilk biz bilmeliyiz. Bilelim ki çözelim, değil mi? Sadece kullanıcıyı düşünüyorsam namertim. En çok benden sonraki developer’ı düşünüyorum :)

Bir de unutmadan arama motorlarında arandığımızda da üst sırada çıkalım (SEO). Çıkalım çıkmasına da bunların hepsini aynı kişi mi yapacak? İşin hakkını vermek için konuların derinlerine dalmak gerekiyor.

Yukarıdaki diyagram güzel hazırlanmış ama biraz daha detaylandırılabilir sanki 🙄

Global iş ilanlarına baktığımda her işi yapan bir geliştiriciden ziyade ihtiyaç duydukları alanda uzman bir geliştirici talebinin olduğunu görüyorum. Bu uzmanlıklar da kendine has unvanları ister istemez yanında getiriyor.

Not: Aşağıdaki roller birbirlerinden çok katı kurallar ile ayrılmamıştır. Odağın yönü ve tecrübe seviyesi ile kişilerin yetkinliklerini daha iyi ifade etmektedir.

Front-end {{framework}} Developer

Temel Front-end Development bilgisine ek olarak bir JS Framework’ünde uzmanlaşan kişilere verilen bir unvandır. Angular, React, Vue günümüzde popüler olan JavaScript Framework’leridir. Bunların yanı sıra Ember, Knockout, Aurelia vb. onlarca farklı alternatif Framework’ler ile karşılaşmanız mümkündür.

Örnek olarak Vue’dan ilerleyelim. Bir Front-end Vue Developer’dan spesifik olarak aşağıdaki gereklilikler beklenir;

  • Experience with Vue.js, Vue Router and Vuex
  • Experience with Webpack
  • Ability to build and improve a REST/JSON API client
  • Ability to debug API responses
  • Write high-performance, reusable code for UI components

Application Developer (Front-end Engineer)

Front-end {{framework}} Developer bilgisine ek olarak Node.js gibi Back-end teknolojilerin dahil olduğu stack’lere hakim geliştiricilere verilen bir unvandır. Kıyasla daha çok problem çözme yeteneği ve tecrübe beklenir. Uçtan uca çözüm üreten uygulama geliştiricilerin çoğunlukla Full-stack Developer’lar ile karıştırıldığını düşünüyorum. Full-stack Developer olmak işin sadece bir kısmında değil, her katmanına aşina olmayı gerektirir.

Örnek bir iş ilanından aldığım spesifik gerekliliklere birlikte göz atalım;

  • You could be working at any level of the stack, but you’re passionate about front-end development.
  • You have in-depth experience with a framework like Backbone.js (our current framework), React (what we’ve actively been working in). Previous experience with Typescript, Redux, or Apollo is a plus!
  • You have enough back-end experience to jump over to the server to unblock yourself (we use node.js).
  • You’re passionate about understanding user problems and working with a team to ship and iterate on great solutions.
  • You have a diverse technical background. You’re a developer, not just a front-end developer. You know the difference between ECMAScript and JavaScript, and are proud (or slightly ashamed) of it.

Front-end Mobile Developer

Tahmin edeceğiniz gibi Front-end Developer’ın mobil uygulama çözümleri üzerinde ustalaştığında ortaya çıkan bir unvan. Geliştiricinin “Responsive Design” mantığını sindirmiş hatta mobile özel ölçeklendirme konusunda derinleşmiş olması beklenir.

Globalde bu rol için aranan spesifik gereklilikler;

  • Expert knowledge of React Native, React, or native mobile development (iOS or Android)
  • Experience managing all aspects of the build & release cycle of a mobile application with at least 10,000 installs
  • 3 or more demonstrable projects currently in production (web, mobile or other)
  • Strongly held views on what makes a “good” API and experience collaborating with back-end engineers to develop API specifications

CSS Developer

Pixel Perfect!” kodlamayı muhakkak duymuşsunuzdur. İşte o havalı tasarımları pixel pixel kodlayan arkadaşlara verilen unvandır. “Siz hayal edin, biz gerçekleştirelim” felsefesi ile layout ve animasyonları koda dökerler.

Bir CSS Developer’dan beklenilen spesifik gereklilikler;

  • Knowledge of Front-end CSS frameworks like Bootstrap, Material UI, Foundation, Semantic-UI, UIKit, or Susy
  • Responsive design
  • Knowledge of fonts and typography in general
  • UI/UX expertise
  • CSS preprocessors like Sass and LESS
  • Creating CSS Animations

UI Developer (Front-end Designer)

Sanatçı ruhlu bir geliştiricidir kendisi. Temel Front-end Development yeteneklerine ek olarak tasarım yapabilen, UI-Kit oluşturup / bakımını yapabilen, imaj hazırlayabilen, grafik çizebilen kişilere verilen bir unvandır. Photoshop, Illustrator, Sketch gibi çizim programlarından bir ya da birden fazlasına hakimdirler.

Örnek bir iş ilanından aldığım spesifik gereklilikler;

  • Collaboration with product designers and UX
  • Strong UI Development background
  • JavaScript knowledge, both ES5 and ES6+, with an emphasis on functional programming
  • A strong proponent of clean, valid, maintainable, and semantically correct HTML and CSS
  • A strong understanding of Responsive Design principles

UX Engineer (UXE)

Kullanıcı deneyimi (UX), kullanıcı arayüzü (UI) ile sıklıkla karıştırılan bir kavramdır. UX Engineer’in görev tanımından önce UX’in ne olduğundan ve UI ile arasındaki farklardan hızlıca bahsetmek istiyorum.

UI Designer’lar genellikle görsel iletişim ya da güzel sanatlar bölümlerinden mezun kişiler tarafından oluşurken; UX Designer’lar psikoloji, sosyoloji ve antropoloji gibi bölümlerden mezun kişilerden oluşurlar. UX Design size bir projenin nasıl gözükeceğinden ziyade nasıl çalışacağı bilgisini verir.

UI, genel UX akışını oluşturan adımların son parçasıdır. UX ürünün ve/veya uygulamanın kullanıcıyla arasındaki genel hissiyatla ve deneyimle ilgilenirken (overall) UI ise ürünün uygulamanın nasıl gözükeceğine ve kullanıcıyla nasıl kolay bir arayüz sunabiliriz sorusunun cevabıyla ilgilenir. UX işin ruhu, UI ise iskeletidir diyebiliriz.

UX Engineer ise bilgi mimarisi (IA), etkileşim tasarımı, servis tasarımı, kullanıcı testleri, erişilebilirlik (A11Y), içerik starejisi, hatırlanabilirlik ve araştırma hakkında bilgi sahibi olan Front-end Engineer’lara verilen bir unvandır. Çok işlevli bir tasarım ekibinde, tasarım ve geliştirme arasındaki işbirliğini yönetir. Güçlü Front-end Development bilgisine sahip olsalar da UX tasarım prensipleri hakkında çalışma bilgisine sahip olmaları yeterlidir.

Adobe XD, Sketch gibi uygulamalar bir UX Engineer’ın takım çantasında yer alır. WCAG Standartları konusunda bilgi sahibidirler.

SEO Engineer

SEO mühendisi, web sitelerini optimize etmenize yardımcı olur. Böylece aramalarda en iyi websiteler arasında yer almanıza yardımcı olacak organik trafiği çekebilirsiniz. Bir Arama Motoru Optimizasyonu (SEO) Uzmanı, web sitelerinde yapılan değişiklikleri analiz eder, gözden geçirir ve arama için optimize eder. Bunun yanı sıra geliştme için Semantic HTML hakkında derin bilgiye ihtiyaç duyarlar.

Globalde bu rol için aranan spesifik gereklilikler:

  • Prior experience in content marketing, content growth and SEO
  • Working knowledge of search engine optimization practices
  • Outstanding ability to think creatively, strategically , and identify and resolve problems
  • Excellent verbal and written communication skill
  • Ability to work within a team and independently
  • Familiarization Google Analytics
  • Experience with website optimization tools
  • Strong organizational, time management, and analytical skills

Front-end QA Developer

Bir uygulamanın ön yüzü farklı alanlarda test edilmelidir. Bunlar Cross Browser, Cross OS, Cross Device testleri olabileceği gibi fonksiyon testleri, birim testleri, performans testleri ve GUI testleri gibi sayısı arttırılabilir.

Testing Framework’leri hakkında derin bilgi sahibidirler.

Ufak bir ekşi postu ile makalemi sonlandırıyorum. Öğrenilecek daha çok şey var!

--

--