25 Nis 2020

Bir yazılım geliştiricinin bilmesi gereken temel bilgiler

Tecrübeli bir yazılım geliştiricinin şurada yayınlanan önerilerini dilimize derleyip kayda geçirmek istedim. Önceki zamanlarımda bunları bilseydim, benim için birçok şey daha farklı olabilirdi:

Server/Cloud Architecture (Sunucu/Bulut Mimarisi): Ağ bağlantılı bir proje geliştirecekseniz, projenin kullanılacağı ortamda kullanılan ağ yapılarına hakimiyet şart.

API (Application Programming Interface): API'ler, kısaca uygulamaların birbirleriyle haberleşmelerini sağlayan yapılar. Derin bir konu.

Frameworks (Çerçeve, iskelet): Her dilin kendine ait, farklı işler için framework seti mevcut. Bu sistemler, hazır bir çerçeve ve çatkı sunarak, belirli şeyleri yapmanızı kolaylaştırırlar. Bir nevi kılavuz gibiler.

Git/Version Control (Sürüm denetimi): Git çevrimdışı dahi kullanabileceğiniz temel bir araç. Tekil projelerde veya takım çalışmalarında sürüm denetimi olmadan ilerlemek çok zor. Hatta düzenli kayıt gerektiren her işinizde git kullanabilirsiniz. Hemen kullanmaya başlamak için şuraya bakabilirsiniz. Github ise sürüm denetimini online yapmanızı sağlayan platformlardan biri.

CI/CD (Continuous Integration/Continuous Delivery): Sürekli birleştirme, sürekli hizmet). Geliştirdiğiniz uygulamanın hangi ortamları kullandığını ve nasıl dağıtıldığını bilmeniz sizi daha bilinçli yapacaktır.

Unit Testing/Automation: Kaliteli uygulamalar geliştirebilmek için onları test etmeniz şart. Testleri otomatize etmek de ayrı bir katma değer. Bu iş için geliştirilmiş framework'ler var :)

Development Tools (Geliştirme Araçları): Verimli çalışabilmeniz için size destek olacak araçlar her alanda gerekli. Atalar ne demiş: 'Alet işler, el övünür'. Postman, Docker, Cordova gibi birçok platform, kod yazımı, test ve müşteriye ulaştırmada büyük kolaylıklar sunarak işinizi desteklerler.

Bunların dışında bilinmesi iyi olacak derya deniz bir sürü şey var. Öğrenmenin sonu yok. Benim öğrenme yolculuğum devam ediyor. Umarım bu yazı sizin için de faydalı olur.