Merhaba arkadaşlar, uzun yıllardır aktif olarak yazılım geliştirmekteyim. Çevremdeki bir çok insandan yazılıma nereden başlamalıyım, nelere odaklanmalıyım ve kendimi nasıl geliştiririm gibi sorular alıyorum. Bu konuda naçizane fikirlerimi yazmaya çalışacağım.
Yazılım geliştirme sadece kod yazmaktan ibaret değildir. Farklı becerilerinizi de geliştirmeniz gerekmektedir.
- Ne yapmak istediğinize karar verin: Kısa zamanda her şeyi öğrenmemiz mümkün değildir. Bu yüzden başlangıç olarak hangi alanda yazılım geliştireceğimize karar verirsek ve ona odaklanırsak daha verimli olacaktır. Mobil uygulama mı? Web uygulamaları mı? Masa üstü uygulamalar mı? Otomasyon uygulamaları mı? Veya diğer uygulamalar mı?
- Yazılım süreçlerini öğrenin: Bir yazılım projesinin fikirden son kullanıcının kullanılmasına kadar süreçte hangi evrelerden geçer bunları öğrenin. En temel aşamaları şunlardır: Analiz > Tasarım > Geliştirme > Test > Yükleme. Bu aşamaların neler olduğunu, bu aşamaların hangi yöntem ve araçlar ile kullanıldığını öğrenin.
- Programlama diline odaklanın: Ne yapmak istediğinize karar verdikten sonra bir programlama dili seçin. Seçilen dilin temellerini, kabiliyetini, best praticslerini , unit testlerini araştırın. Geliştirme araçları nelerdir? Bu aracın gereksinimleri nelerdir öğrenin. Daha önce bu dil ile yapılmış örnekleri inceleyin, trace edin, çalıştırın ve derinlemesine inceleyin.
- Projeler yapmaya çalışın: Pratik yapmak öğrenmenin pekiştirilirmesine büyük katkı sağlayacaktır. Yazılan kodların çalıştırılması ve görülmesi geliştiren kişiye motivasyon sağlayacaktır. Küçük küçük projeler yapın. Daha önce yapılmış projelerin aynısını da yapabilirsiniz. Projeler yapmak yazılım geliştirmeyi öğrenmenin en etkili yollarından birisi olduğunu düşünüyorum.
- Tasarım prensiplerini öğrenin: Yazılım geliştirme ilk başlarda bireysel bir etkinlik gibi görünse de büyük projelerin içine girdikçe bir takım işi olduğunu göreceksiniz. Kendi yazdığınız kodların ekip üyeleri tarafından anlaşılabilmesi, düzeltilebilmesi ve geliştirilebilir olması gerekmektedir. İyi yazılmış kodlar bu gibi durumlara daha açıktır. Bundan dolayı temiz kod yazmayı öğrenin. Temiz kod yazmanın temeli tasarım prensiplerinin doğru zamanda ve doğru yerde uygulanmasıdır. Bu yüzden tasarım prensiplerini teorik olarak derinlemesine öğrenip pratik yapmak gerekiyor.
- Veritabanı mimarisi ve sqli öğrenin: Projelerin büyük bölümünde veri saklama ihtiyacı olmaktadır. Veritabanı tasarımı temellerini ve sqli öğrenmek size çok fayda sağlayacaktır. Veritabanı objeleri olan tablo, procedure, view vb. kavramları öğrenin. Örnek veritabanı şemalarını inceleyin onlar üzerinde join sorguları yazmaya çalışın. Veritabanı tasarımı yaparak geliştirdiğiniz uygulamalarda kullanın.
- Tutkulu / disiplinli olun: Sıfırdan bir şeyler öğrenmek veya bildiğini belli bir seviyeye getirmek/tutmak gerçekten kolay değil. İyi bir disipline sahip olmamız gerekiyor. Bu bir kişisel özellik biliyorum ama geliştirilebilir olduğunu düşünüyorum. Küçük hedefler koyarak ve ona ulaşarak disiplinimizi geliştirebiliriz. İşimize/öğrenmeye tutkuyla bağlanmamız gerekiyor. Önümüzde uzun bir yol var öğrenmekten ve gelişmekten taviz vermeden devam etmeliyiz.
- İletişim seviyenizi yükseltin: Yazılım geliştirme bireyselin dışında bir ekip işidir. Geliştirme ekibi dışında yazılımı kullanan son kullanıcılarımız vardır. Eğer bir şirkette çalışıyorsak yöneticilerimiz vardır. Yani tek değiliz. Tüm arkadaş ve paydaşlarımızla iletişimimizi iyi tutmamız gerekiyor. İletişimin yüksek olması daha sağlıklı bir ortam oluşturacağı için geliştirdiğimiz projelerden daha fazla mutluluk duyarız.
Okuduğunuz için teşekkür ederim.