Fullstack developer doğulmaz, fullstack developer olunur. Peki o zaman fullstack developer nedir? Fullstack deceloper olanlar neleri bilmelidir?
“Her şey hakkında bir şey öğrenmeye ve bir şey hakkındaki her şeyi öğrenmeye çalışın.” demiş Thomas H. Huxley. Uzmanlık alanında geliştirme yapmak, bu felsefeye uygun olsa da, fullstack olmak her şey hakkıında biraz daha fazla şeyler bilmeyi gerektirir.
O halde fullstack developer olanların alet çantasında neler bulunmalıdır? Başlıklar halinde belirtmek gerekirse;
- Front End
- Back End
- Database
- Mobile
- Dev/Ops
Front End
- Temel Bilgiler
- HTML
- CSS
- JS
- Framework ve Kütüphaneler
- Angular
- React
- Vue
- Arayüz Tasarım Araçları
- Bootstrap
- Material Design
- Paketleme araçları
- Babel
- Webpack
Back End
- Programlama Dilleri
- C#
- Java
- Python
- Javascript (Nodejs)
- Ruby on Rails
- ORM Araçları
- Entity Framework
- NHibernate
- Hibernate
- Cache Araçları
- Redis
- Memcached
- Mesaj Kuyruk Yapıları (Message Queuing)
- RabbitMQ
- Kafka
- Programlama Paradigmaları ve Disiplinleri
- Object Oriented Programming
- Functional Programming
- Design Patterns
- API (REST/SOAP)
- SOLID Prensipleri
Database
- RDBMS (Relational Database Management Systems)
- PostgreSQL
- Oracle
- MsSQL
- MySQL
- SQLite
- NoSQL
- MongoDB
- Cassandra
- CouchDB
Mobile
- Android
- Java
- Kotlin
- iOS
- Objcetive-C
- Swift
- Hybrid
- React Native
- Ionic Framework
- Xamarin
- Unity
DEV/OPS
- Altyapı (Infrastructure)
- AWS
- Azure
- Google Cloud
- Heroku
- Otomasyon (Automation)
- Azure Devops
- Jenkins
- GitLab
- Github
- Travis CI
- Circle CI
- TeamCity
- Sanalaştırma (Virtualization)
- VMWare
- Hyper-V
- VirtualBox
- Konteynırlaştırma (containerization)
- Docker
- Hyper-V Containers
- Kubernetes
- Openshift
Fullstack developer olanlar yukarıda belirtilen araçların hepsini birden çantasında bulundurmak zorunda değildir. Ancak her başlıktan bir araç seçerek o araç hakkında bilgi sahibi olmalıdır. Avantaj ve dezavantajlarını hakkında fikir sahibi olmalıdır. Bu sayede developer, bir projede hangi aracı kullanması gerektiği hususunda bilgi sahibi olacaktır.