Muhtemelen Javascript dünyasındaki hızlı değişimi ve gelişmeleri farketmişsinizdir. Son yıllarda Javascript’in kabiliyetlerini artıran ve kullanımını kolaylaştıran bir çok yeni framework geliştirildi. React, Angular, Vue bunlardan bazıları.
Bu framework’ler sunulurken işlerinizi ne kadar kolaylaştırdığından bahsedildi. Siz de, “neden zor yoldan ilerleyip önce Javascript öğrenmek için zaman kaybedeyim ki, bu araçları kullanarak daha hızlı uygulama geliştirilebiliyormuş” diye düşündünüz.
Sonra birinde karar kılıp öğrenmeye çalıştınız ve eğitimler alırken oldukça moral bozucu bir şekilde hiç bir şey anlamadığınızı farkettiniz.
İşte biz buna duvara toslamak diyoruz. Neden mi? Çünkü henüz ehliyet bile almadan F1 aracı sürmeye çalıştınız. Sonuç tabii ki bir duvarda bitecekti. Diğer F1 pilotlarını geçeceğinizi mi düşünmüştünüz? Sizden önce verdikleri onca emeğe ve kazandıkları tecrübeye rağmen…
İşin özü, temeli olmayan eve çatı koymanız anlamsızdır. Bu örnek programlama dillerine biraz daha yakın oldu sanırım. Sonuçta framework dediğimiz yapının dilimizdeki karşılığı da çatı. Ve tüm frameworkler esasında bir programlama dili temeli üzerinde yer alıyor.
Hiç bir ev önce çatıyı koyarak inşa edilmeye başlamaz. Siz de önce temelini atmalısınız.
Bir framework’ü öğrenmeden önce ait olduğu dili bilmek gerekir.
Eğer bir programlama dilini öğrenmek istiyorsanız, öncelikle şu 3 şeyi bilmelisiniz;
Nereden Başlamalıyım ?
İlk cevaplamanız gereken soru; Bu programlama dilini ne kadar biliyorsunuz?
Henüz ilk adımı atan ve sıfırdan başlayan biri misiniz?
Sadece kopyala-yapıştır yaparak başkalarının kodlarını kullanabilecek kadar mı biliyorsunuz?
Programlama dili bileşenlerini sıfırdan yazacak kadar kod yazabiliyor musunuz?
Bu soruların cevabını bulduğunuzda, hangi seviyeden başlamanız gerektiğini keşfetmiş olacaksınız. Bu da önemlidir. Çünkü programlama dili hakkında birşeyler biliyorsanız ama eğitime sıfırdan başlarsanız sıkılacaksınızdır. Eğer bir miktar bildiğinizi düşünüyorsanız ama başladığınız konuda anlatılanlar size çok yabancı geliyorsa muhtemelen sizin seviyenizin üstünde kalacak ve bunalacaksınız. Doğru seviyeyi tespit etmek eğitime devamlılığınızı sağlayacağı için önemlidir.
Ancak nereden başlayacağınızı bilmek de yeterli değildir. bir sonraki adımda nereden devam edeceğinizi de bilmelisiniz.
Nereye Varmak İstiyorum ?
İnsanlar bir programlama dilini farklı hedeflere yürümek için öğrenebilirler. Sonuçta varmak istedikleri amaç farklı olabilir;
Web sitenizi inşa etmek için mi öğreniyorsunuz?
Mobil bir uygulama mı geliştirmek istiyorsunuz?
Yoksa farklı uygulamaların birbirleriyle haberleşmelerini veri alıp vermelerini sağlayan bir web uygulaması mı geliştirmek istiyorsunuz?
Bu seçeneklerden birini tercih eden bir kişinin yolu bir diğerinden farklı olacaktır. Temel başlangıç noktaları aynı olacaktır ama programlama dilinin temellerini öğrendikten sonra kendilerine çizecekleri yollar farklılaşacak ve o yönde eğitimlerine devam edeceklerdir.
Burada motivasyonunuz artırmak için hedefinizi önceden bilmeniz faydalı olacaktır. Örneğin,
Web sitemi ziyaret eden kişilerle gerçek zamanlı sohbet edeceğim.
Birden fazla pazaryerini tek uygulamadan yönetebileceğim bir web uygulaması yazacağım.
Yabancı dil öğrenmeyi oyunlarla eğlenceli hale getirecek ve kolaylaştıracak bir mobil uygulama geliştireceğim.
Hedefinizi bilmeniz ona ulaşmak için neleri öğrenmeniz gerektiğini de belirleyici olacaktır. Böylece sizin ile ilgili olmayan alanlarda bilgi edinmekle zaman kaybetmeyip daha hızlı sonuca ulaşabilirsiniz. Bu sizin öğrenme haritanızı oluşturacaktır. Ardından bu haritada adım adım ilerleyip hedefinize ulaşabilirsiniz. Sonra farklı bir hedef için diğer yollardan yürümeyi de tercih edebilirsiniz.
Hedefiniz somut olursa daha faydalı olacaktır. Eğer “işe girmek için öğren” gibi soyut bir yaklaşımla hareket ederseniz, muhtemelen karmaşa içinde kaybolacaksınız ve yolunuzu kaybettiğiniz için başarıya ulaşmanız zorlaşacaktır. Üstelik her şeyden birazcık bilen ama herhangi bir sonuç üretmemiş biri olacaksınızdır. Bu da “işe girmek için öğren” düşüncesiyle yola çıkan kendinizi baltalamanız anlamına gelir. Çünkü sizi işe almayı düşünen firmalarında geliştirdikleri projeler olacaktır ve o proje sizin başlarken somut bir hedef koyup hayata geçirdiğiniz projelerden birine yakınsa muhtemelen sizi işe daha uygun bulacaklar ve daha önceki deneyiminizi referans olarak değerlendireceklerdir.
Bu iki nokta arasındaki en kısa yol nedir ?
Öğrenme haritanızı oluşturduğunuzda, yol almanız gereken bir yön keşfedeceksiniz muhakkak. Ancak yolun dolambaçlı olup olmadığını, hedefinize giden daha kısa bir kestirme yol olup olmadığını bilemezsiniz. Sonuçta hedef giden düz yolu bilmiyorsunuz ki; yıllarca o yoldan yürümüş, daha kısa ve kolay bir yol aramış, alternatifleri denemiş ve kestirme keşfetmiş biri gibi patikaları görebilesiniz.
Bu da demektir ki, sizden daha önce bu yoldan geçen birilerinin rehberliği sizi hedefinize daha kısa bir kestirme yoldan ulaştırabilir. Bir akıl hocasının deneyiminden ve rehberliğinden faydalanmak sizi hızlandıracak ve doğru yolda yürüdüğünüzden emin olmanızı sağlayacaktır.
Bir akıl hocanızın olmadığını düşünüyorsanız da, şu an bu yazıları okurken ne yaptığınızı tam olarak keşfedememişsiniz demektir. Çünkü bu yazılar başlı başına sizi hedefinize götüren yolu aydınlatmak için yazılmaktalar.
Javascript Öğrenmek İçin Yol Haritası
Javascript öğrenmek biraz insanın gelişimine benzer aslında. Büyürken geçtiğimiz pek çok aşama vardır.
- Bebeklik Safhası
- Çocukluk Safhası
- Gençlik Safhası
- Yetişkinlik Safhası
Haydi Javascript’te hangi safhada olduğumuzu bulalım ve bir sonraki evrede nereye doğru gideceğimizi görelim.
Bebeklik Safhası
Eğer Javascript’e yeni başlıyorsanız bebeklik safhasındasınız demektir. Bu safhada, bu programlama dilinin yazım kurallarına(syntax) aşina değilsinizdir ve size yabancı görünmektedir.
Bu aşamada öncelikle yazım kurallarını iyice öğrenmelisiniz. Javascript hakkında okuduğunuz ya da duyduğunuz fonksiyonlar, diziler, nesneler gibi kavramların neler olduğunu keşfetmelisiniz.
Çocukluk Safhası
Javascript yazım kurallarını biliyorsanız eğer bu safhadasınız demektir. Bu aşamada halen bir şeyleri sıfırdan oluşturmayı bilmiyorsunuzdur. Belki başkalarına ait olan kodları kopyala-yapıştır ile Google’ın da yardımıyla düzenleyip kullanabiliyorsunuzdur. Ancak Javascript becerilerinizden halen emin değilsinizdir.
DOM nasıl çalışıyor bilmiyorsunuzdur. Bu safhada odaklanmanız gereken şey de tam da budur: Nesneleri seçme, DOM’da gezinme, DOM’daki nesneleri silme ya da yeni nesne ekleme, olay tetikleyicileri ekleme ve silme, biçimlendirme stillerini ve sınıflarını değiştirme hakkında bilgi edinmelisiniz.
Akordeon yapısıyla bilgi görüntüleme gibi basit şeyler oluşturun. Bir buton tıklandığında bir menü gösterilmesini sağlayın. Tıpkı mobil menüler gibi.
Başlangıçta kopyala-yapıştır yapabilirsiniz ama nasıl yapıldığını öğrenmenin tek yolu kendi kodunuzu yazmaktır.
Gençlik Safhası
Sıfırdan kod yazarak bir şeyler ortaya çıkarabiliyorsanız artık gençlik safhasındasınız demektir. Bu aşamada, DOM ile ilgili kodlar yazabildiğinizden eminsiniz ancak bir usta kadar rahat hissetmiyorsunuzdur.
Kodunuz basit ve düzensiz olabilir. En kısa ve iyi şekilde yazılmamış olabilir ama gerekli işlemini yerine getiriyordur. Bundan sonraki adım, ileri seviye kitaplardan ve uzmanlardan aynı uygulamaları onların hangi yoldan çözdüklerini öğrenmektir. Daha sonra pratik için önceden yazdığınız kodu daha iyi hale getirecek şekilde yeniden yazmayı deneyebilirsiniz.
Bu aşama aynı zamanda Nesneye Yönelik Programlama(OOP) ve Fonksiyonel Programlama(FP)’ya adım atacağınız yerdir. Ayrıca API sorgulama için de bilgi edinmeye başlayabilirsiniz.
Yetişkinlik Safhası
Bu safhada artık Javascript bildiğinize net olarak inanıyor ve istediğiniz her şeyi kodlayabilecek yeterliliğe sahipsiniz demektir. Artık yeni birşeyler denemenin zamanı diye düşünüyorsanız framework’leri incelemeye başlayabilirsiniz. Javascript ile düz kodlayarak oldukça çok zamanınızı alan işlemleri frameworkler ile hızlıca halledebileceğinizi göreceksinizdir.
Burada nereye varmak istediğiniz ile ilgili tercih edebileceğiniz yollar karşınıza çıkacaktır. Artık hedefinize götürecek yolda ilerleyebilirsiniz. Eğer Frontend Framework öğrenmeyi tercih ederseniz, çok zaman alacak olan web uygulaması arayüz geliştirmeyi kolaylaştırabileceğinizi öğrenir, Node ile Backend Framework dünyasına adım atarsanız da Full Stack Developer olma yolunda ilerlemiş olursunuz.
Kestirme Bir Yol Var mı?
Burada sözünü ettiğimiz yol haritası izleyebileceğiniz en kestirme yoldur. Daha kestirme bir yol aramak, yoldan çıkmanıza sebep olur.
React, Angular, Vue, Node gibi framework’lerin dünyasına dalmadan önce Javascript’in temellerini öğrenmelisiniz.