Fullstack Mentor {% giriş %}
Fullstack Mentor nedir?
Merhaba Arkadaslar öncelikle yazıma baslamadan Fulstack kavramını açıklamak istiyorum.
Fullstack Yazılımcı demek yazılımın hem Frontend hem Backend kısmını geliştiren kişidir. Frontend bir yazılımın görsel kısmını dizayndan alarak code’lar ile görsele çeviren HTML CSS ile görünür hale getiren kişidir. Backend ise Yazılım içerisinde bulunan Formlar, Buttonlar gibi kullanıcının yaptıgı herbir islemi aktiv etmek icin bu Codelar’ın DATABASE ile ilişkisini yazan onlara işlevsellik kazandıran kişidir. Fullstack ise herikisini yapan heriki görevide üstlenen kişidir.
Fullstack Yazılımcı , Frontend ve Backend teknolojileri hakkında profesyonel bilgiye sahiptir ve neredeyse tüm programlama dillerine aşinadır. Bu nedenle, bir web sitesinin arka planında çalışan işlemlerden ve kullanıcıya gösterilen tasarımdan sorumludurlar.
Fullstack Yazılımcı birçok farklı sektörde aranır ve eğitimlerini veya çalışmalarını başarıyla tamamladıktan sonra Frontend ve Backend de çeşitli projeler üzerinde çalışabilirler. Frontend ve Backend görevlerinin yanı sıra sistem yöneticileri veya veri bilimcileri rolünü de üstlenebilirler.
Bu saydığım sebeplerle bilmesi gerekli yazılım dili vede gerekli programların (tool) sayısı bir hayli fazladır.
Ve de Birçok değişik Fullstack Paterni de mevcuttur.
Suan Bir Bootcamp de Fullstack mentor olarak çalışmaktayım ve mentorluk yaptıgım Fullstack Yazılımcı adayı arkadaşlarıma maksimum verimi saglamak maksadıyla bir çerçeve belirlemek ve bunun icin yapılması öğretilmesi gerekli diller teknolojiler toollar ve birçok detay hakkında tavsiye ve öneriler yazmak istiyorum. Bu yazım bir Fullstack mentorun kılavuz olarak baz alabileceği bir formatta olması icin çalışacağım.
Full Stack Developer olmak için birçok programlama diline hakim olmanız gerekmektedir. Temel bilgiler ışığında HTML ve JavaScript’i çok iyi derecede bilmeleri gerekmektedir.
FRONTEND Kısmında;
HTML: İngilizce “Hyper Text Markup Language” cümlesinin baş harflerinden oluşan bu biçimlendirme dili ile Fullstack web developer olmak adına bir başlangıç yapabilirsiniz. Bu biçimlendirme dili ile bir web sitesine ait içeriği tanımlar ve yapılandırırsınız.
CSS: HTML ile birlikte öğrenebileceğiniz hazırlamış olduğunuz web sayfaları için stil özellikleri tanımlayabileceğiniz stil sayfası dilidir. Aynı şekilde Fullstack web developer olmak adına HTML ile birlikte öğrenilmesi gereken en temel eğitimlerinden biridir.
JavaScript: Tam zamanlı olarak derlenmiş bir programlama dilidir. Web sitenize dinamik özellikler eklemenizle birlikte yazımızın devamında nitelendireceğimiz, Back-End geliştirme adına da oldukça fazla bir şekilde kullanacağınız dil olacaktır. JavaScript öğrenilmesi tavsiye edilen ve oldukça kolay bir programlama dilidir. Yapay zekâ ile desteklenmesi gibi ilgi çekici kullanımları ile web sayfaları için sohbet uygulamaları geliştirilmesi bir yapay zekâ kullanım örneği olabilir.
Bootstrap: Mobil öncelikli ve aynı şekilde responsive yapıya sahip uygulamalar geliştirmek için kullanabileceğiniz harika bir CSS Framework’udur. Web sayfanızın kolay ve hızlı tasarlanmasına yardımcı olmaktadır. İçeriğinde JavaScript ve CSS barındırmaktadır. Formlar ve Form Elemanları, Butonlar, Tablolar vb. için tasarım şablonlarını beraberinde getirmektedir. Aynı zamanda JavaScript eklentilerini de desteklemektedir.
VueJS: Tek sayfalı uygulamalar geliştirmek için kullanabileceğiniz bir JavaScript Framework’udur. Boyut olarak kompakt olmakla birlikte oldukça performanslı bir yapıya sahiptir. Fullstack web developer olmak adına yeni başlayanlar için güzel bir seçenektir. Angular ve React gibi diğer teknolojilerin en seçkin özelliklerini beraberinde getirmektedir. Son zamanları en çok kullanılan teknolojilerinden biridir. Fakat ustalaşmak adına sürekli proje geliştirmek her zaman dilden bağımsız gereklidir.
ReactJS: Facebook tarafından geliştirilen diğer teknolojiler gibi açık kaynak kodlu bir framework’tür. İlgi çekici kullanıcı ara yüzleri geliştirmek için kullanılmaktadır. Aynı zamanda mobil uygulama geliştirmeniz için gerekleri nitelikleri beraberinde taşımaktadır.
AngularJS: Google tarafından geliştirilen bir JavaScript Framework’udur. Şablon dili olarak HTML kullanılmaktadır. Veri bağlama ve bağımlılık gereken durumlarda kullanılmaktadır.
BACKEND Kısmında;
Python: Yüksek seviyeli ve genel amaçlı kullanılan bir programlama dilidir. Web uygulamaları oluşturmak adına kullanılabilmektedir. Nesne tabanlı bir dil olması ile birlikte günümüzde oldukça fazla kullanılmakta ve tercih edilmektedir.
Ruby: Ruby, Python gibi yüksek seviyeli bir programlama dilidir. Özellikle web geliştiricileri arasında sıklıkla tercih edilmektedir. Verimlilik ve basitliğe dayalı bu programlama dili ile web geliştirme yapabilirsiniz.
PHP: Web geliştirme deyince belki de aklan gelen ilk programlama dilidir. HTML ile birlikte gömülü olarak kullanılabilir. PHP oldukça zevkli ve kolay bir programlama dilidir. Özellikle sürüm 7 ile birlikte popülerliğini arttırmaktadır. Bu yazıyı yazarken PHP 8 in gündemde olduğunu ve kullanıma sunulduğunu sizlere belirtmek isterim. PHP dünyasına adım atmanızı kesinlikle tavsiye ederim.
Express: Express.js bir programlama dilinin aksine bir framework’tür. Node.Js için bir web uygulaması olarak kullanılmaktadır. NodeJS’in bir modülüdür. İstemcilerden gelen istekleri dinleyebilecek ve ilgili cevabı dönebilecek bir sisteme sahiptir. Tek, Çok sayfaları web uygulamaları geliştirmek için kullanılabilecek oldukça iddialı bir teknolojidir.
NodeJs: JavaScript v8 motorunun tarayıcı dışına çıkarılması ile birlikte oluşan bir teknolojidir. Günümüzde sıklıkla kullanılan ve tercih edilen aynı zamanda kolay öğrenilebilen bir yapıya sahiptir. NodeJs bir JavaScript ortamıdır.
Django: Django, Python tabanlı Model-View-Template mimarisini takip eden bir web frameworküdür. Karmaşık veri tabanı odaklı web sayfaların geliştirilmesi için kullanılabilmektedir. Hızlı , öğrenimi kolay, güvenli ve temiz bir tasarımı desteklemektedir.
Ruby on Rails: Ruby diline dayalı bir sunucu odaklı web geliştirme frameworküdür. Veri tabanları, web servisleri ve sayfaları için yapıyı beraberinde getirmektedir. Model-View-Controller mimarisi üzerine kuruludur.
VERITABANI Kısmında;
MySql, SQLite, PostgreSQL
BiLiNMESi GEREKLi DiGER SEYLER
Git: En popüler hızlı ve etkili dağıtılmış bir versiyon kontrol sistemidir. En küçükten En büyüğe doğru projelerin düzenlenmesi ve depolanması için kullanılmaktadır. Programcılar arasında koordinasyonu sağlamak ve herhangi bir kod üzerinde yapılan değişikliği görmek amacıyla kullanılmaktadır. Başlamadan önce mutlaka git kullanımı ile ilgili temel bilgileri araştırmanızı öneririm. GitHub en yaygın olarak kullanılan kod deposudur.
Temel Linux Kullanımı: Bu beceriye sahip olmak zorunluluk değil aksine sahip olmanız gereken bir beceridir. Öğrenmesi tamamen size bağlı olan bir beceri türüdür. Size proje yönetimi veya deploy edilmesinde oldukça fazla avantaj sağlayacaktır. Manuel yapacağınız birçok işi Linux komutları ile hızlı bir şekilde halledebilirsiniz.
Veri Yapıları ve Algoritmalar: Veri yapıları, veri depolamanın yollarıdır. Algoritma ise bir problemi veya gereksinimi çözmek için genel bir yaklaşım yöntemi olarak tabir edilir. Her geliştiricinin bu kavramlara aşina olması gerekmektedir. Veri yapılarının kullanıldığı projelerde verimlilik ve performans ön plana çıkmaktadır. Full stack web developer olmak isteyenler için son derece yardımcı olacak bir konudur.
KULLANILMASI Gereken TOOL’lar
VisualStudioCode Microsoft tarafından Windows, Linux ve MacOS için geliştirilen bir kaynak kodu düzenleyicisidir.
WordPress: Kodlama bilgisine ihtiyaç duymadan içerik üretmenize ve internette yayınlamanıza olanak sağlar. Aldığınız hosting ve domain üzerinden internet sitenizi kurmanızı kolaylaştırır.
Google Drive: Online olarak belgelerinizi depolayabileceğiniz, üzerinde değişiklik yapabileceğiniz ve ekip arkadaşlarınızla paylaşabileceğiniz platformdur. Yaptığınız her değişiklik anlık olarak kaydedilir. Böylece ekip arkadaşlarınızla anlık olarak çalışmanızı paylaşabilirsiniz. Aynı zamanda Google Drive, aynı dosya üzerinde birden fazla kişinin çalışmasına da olanak sağlar.
Canva: Ücretsiz bir tasarım uygulamasıdır. Kolayca bir poster ya da afiş tasarlamanıza olanak verir. İçinde yüzlerce tasarım bulunduran Canva, farklı tasarımlar yapmayı da kolaylaştırır. En önemli özelliği de kullanabilmek için hiçbir teknik bilgiye ihtiyacınızın olmamasıdır. İstediğiniz imgeyi sürükleyip tasarımınıza ekleyebilirsiniz.
GÖRDÜGÜNÜZ ÜZERE SUAN YAZMADIGIM VEYA YAZAMADIGIM O KADAR COK DETAY VARKI:
Bu yazımın devamı niteliğinde planladığım bazı bölümler:
- Fullstack developer izlenecek rota öğrenilmesi gerekli bilgilerin sırası
- Fullstack developer dokümantasyon icin kullanılması gerekli araçlar ve dikkat etmesi gerekli hususlar
- Fulstack developer olacak adayın vazgeçmemesi adına öneriler
- Fullstack developer adayının yapması gereken projeler ve sıralaması
- Fullstack developer adayının browser kullanımı hususunda tavsiyeler
- Fullstack developer UDEMY kurs tavsiyeleri