Her hangi bir alanı seçip ilerlediğinizde fark edeceksiniz ki aslında soru çok yanlış bir soru.
Çünkü ikisi bir birinden çok farklı yapılara sahip alanlar, dolayısıyla kendi yapıları içerisinde zorlukları bulunmakta.
Öncelikle şunu bilmelisiniz ki front-end alanında pek programlama yapmazsınız. Programlama dediğimiz şey belirli bir amaca ulaşmak için tasarlanan algoritmanın sisteme işletilmesidir. front-end alanın da çok çok az programlama diyebileceğimiz eylem gerçekleştirirsiniz. Bunlar Sass fonksiyonları yazmak veya Js işlemleri yazmak dışına çıkamaz.
Peki front-end geliştiriciler ne yapmakta. Aslında bizler algoritma geliştirmekten ziyade hiyerarşi yapısı kuran kişilerizdir. Bir tasarımın hiyerarşik yapsını kurup belirli parametreler eşliğinde görsel zenginliği css sınıflandırması ile vermekteyiz.
Css'in html hiyerarşisine etkisi çok büyüktür. Dolayısıyla bir html hiyerarşi yazarken sadece kemik yapı değil tasarım içerisinde gerçekleşecek tüm olayları düşünüp buna uygun hiyerarşi yapıları kurmak durumundayız.
Malesef yapıları gereği günümüz de özellikle de ülkemizde Html ve Css konusunda çok gereksiz bilgi kirliliği oluşmuş bulunmakta. Yapının kolay görünümü nedeniyle üzülerek söylüyorum ki önüne gelen Html/Css yazdığını iddia etmekte. Fakat bu kadar kolay değil, metin işaretleme dili ile biçimlendirme dilinin yani Html ve Css'in yaratıcıs W3'ün bazı standartları bulunmaktadır. Bu standartlar gereklidir çünkü bu diller compile edilen diller değiller. Aksine tarayıcılar içerisindeki algoritmalar tarafından bu işaretleme dili ve biçimlendirme dilleri baştan sona okunup yorumlanır ve bir sonuç çıkarır.
Genelde alanı olmadığı halde Html/Css yazabildiğini iddia eden bir takım arkadaşlar her yere div elementini basarak bir şeyler ortaya çıkarırlar. Sonuç olarak istedikleri görünümü elde etseler de tarayıcı cahil bırakırlar. Çünkü W3 standartlarına göre div öncesinde ve sonrasında otomatik satır sonu veren bir elementtir. Yani belirli kullanım yerleri bulunmaktadır. Bir alan aynı gruba sahip olması gereken elementleri oluşturan bölüm ise bu alan div ile değil section ile tanımlanmalıdır. Veya bir makale içeren bir alan yazıyorsanız div içerisine p etiketi yerleştirerek yazamazsınız. article etiketi ve gerektirdiği belirli attributes (öznitelikleri) kullanmak zorundasınız.
Basit Örnekler:
YANLIŞ KULLANIM:
Makale Başlığı
Paragraf
Paragraf 2
Paragraf 3
OLMASI GEREKEN:
Makale Başlığı
Paragraf
Paragraf 2
Paragraf 3
Kendi aramızda genelde Tarayıcılara Fısıldayan Adam vb. lakablar kullanırız :) Çünkü yaptığımız tek şey tarayıcıya yorumlayacak ve o yorumlar doğrultusunda istediğimiz görüntüyü verecek bir dert makalesi yazmak gibi bir şey. Nasıl ki back-end geliştiriciler bir algoritmayı tasarlarken bilinçsiz,cahil ve hiç bir şey bilmeyen bir elektronik devreye noktasına kadar tek tek cümle cümle derdini anlatıyorsa biz de aslında tarayıcılara anlatmaktayız.
Son olarakta benim back-end geçmişimin daha yoğun olmasına rağmen neden Front-End seçmiş olduğumu söyleyeyim. Tasarlamaya ve üretmeye olan aşkım ile yazılım sektörüne olan aşkımın birleştiği nadir noktalardan biri olduğu için arayüz geliştirici olmayı tercih etmiş durumdayım :)
Bir front-end geliştirici olarak benim yorumum bu şekilde. Zorluk konusuna gelecek olursak tekrar iki alanda da uzun süre aktif çalışmış biri olarak söylüyorum ki bir birinden farklı zorlukları var. Her alanın kendine has sorunları oluyor ve emin ol çözüm aramak iki alanda da ölüm gibi geliyor :)