Günümüzün ve muhtemelen önümüzdeki tüm zamanların en popüler konularından biri olan yazılım konusunu bugün sizler için ele almak istiyorum. Yazılıma nerden başlayabilirim, hangi programlama dili ile başlamalıyım, ne kadar sürede yazılım işini öğrenirim gibi soruları olanlar varsa bu yazıyı okumanızı tavsiye ederim. Hadi iyi okumacalar...
Ben yazılım geliştirmeyi öğrenebilir miyim?
Öncelikle şunu söyleyerek işe başlayayım. Hiç kimse anadan doğma yazılım bilerek bu dünyaya gelmedi. Dünyada bu kadar insan yazılım geliştirmeyi öyle ya da böyle bi şekilde öğrendiyse sizde gayet tabii öğrenebilirsiniz. Burda önemli olan azimdir. Çünkü yazılım geliştirme süreci ucu bucağı olmayan bir yolculuktur. Siz 3 ay sonunda iyi ya da kötü bir yazılımı ortaya çıkarabilirsiniz belki ama bunun tasarımı daha iyi yapabilirsiniz, hızını daha da arttırabilirsiniz, kod bloklarınızı daha da azaltabilirsiniz. İşte böyle daha daha daha derken zaten bu işin sonu gelmiyor.
Yazılıma nerden başlayabilirim?
Yazılım geliştirme süreci bir inşaatı yapmak gibidir. Adım adım gidilmezse, sürekli üstüne konarak ilerlenmezse mutlaka bi yerde patlak verecektir. O yüzden mutlaka ilk önce bu işin mantığını öğrenmelisiniz. Yani çıkış noktanız şunlar olmalı; "Sunucu nedir?", "Sunucu tabanlı programlama dilleri (server-side programming language) nasıl çalışır?", "İstemci tabanlı programlama dilleri (client-side programming language) nasıl çalışır?", "Front-end nedir?", "Front-end kodlama hangi programlama dilleri ile yapılır?", "Back-end nedir?", "Back-end kodlama hangi programlama dilleri ile yapılır?", "Veritabanı nedir?", "Hangi veritabanının ne avantajı var?" gibi. Bunları öğrendikten ve iyice kafanıza yerleştirdikten sonra öğrenme süreciniz daha hızlı olacaktır.
Bunları neden öğrenmeliyim diyenleriniz olacaktır. Bunu açıklamaya çalışayım;
Size bir proje geldiğinde, bunu belki bütün dillerle geliştirebilirsiniz. Ama her projenin ayrı ihtiyaçları ve gereksinimleri vardır. O yüzden, sizin projeye uygun bir dil seçmeniz gerekmektedir. Örneğin; sizden bir kurum içerisindeki görevlerin ve iş akışlarının yönetileceği bir sistem isteniyorsa bunu PHP programlama dili ve MySQL veritabanı ile yapabilirsiniz. Çünkü PHP dili sizin bu sistem özelinde tüm ihtiyaçlarınızı kaşılayacaktır. Ancak sizden grafiksel işlemlerin yapılacağı bir sistem isteniyorsa burada PHP programlama dili sizin ihtiyaçlarınızı çok iyi karşılamayacaktır. Burada C# dili sizin için daha iyi olacaktır.
Burada aklınıza "Bütün dilleri bilmem gerekiyor mu?" diye bir soru gelmesin. Tabiki böyle bir şeye gerek yok. Ama temel düzeyde bir programlama dili size ne sunar, neleri yapabilir, neleri yapamaz bunları bilmeniz gerekmektedir.
Hangi programlama dili ile başlamalıyım?
Bu soruya tek bir cevap vermek mümkün değil. Bu soru tamamen sizin ilgi ve alakanıza bağlı olarak cevaplanır. Eğer web programlamaya yönelmek istiyorsanız PHP, ASP.NET (veya MVC), Reacti veya VueJS ile, mobil programlamaya yönelmek istiyorsanız Swift, Java, Flutter veya React ile, yapay zeka işlemlerine yönelmek istiyorsanız Python ile başlayabilirsiniz. Bu saydığım diller içerisinde şu daha kolaydır bu daha zordur diye birşey söyleyemem. Elbette herbirinin bir birine göre avantaj ve dezavantajları vardır.
Şu inkar edilemez bir gerçektir; "Bir dili öğrendikten sonra diğer dilleri öğrenmek çok daha kolay olacaktır". O yüzden hangisinden başlayayım diye düşünerek zaman kaybetmektense biran önce birini seçip başlayın.
Yazılımı ne zaman tamamen öğrenmiş olurum?
Buna çok net bir cevap verebilirim.
Hiçbir zaman!
Çünkü yazılım teknolojileri o kadar hızlı ilerliyorki, siz bugün "PHP'yi öğrendim artık tamamım" deseniz yarın yeni bir dil çıkıyor ve bu dille projeler geliştirilmeye başlanıyor. Veya yeni bil dil çıkmasada, mevcut dil üzerine bir framework geliştiriliyor. O yüzden sürekli kendinizi güncel tumalı ve yeni gelişmelere hemen adapte olabilmelisiniz.
Sonuç
Sonuç olarak;
- Yazılım geliştirmeyi her yaş grubundan, her eğitim düzeyinden, her meslek grubundan kişiler öğrenebilir. Süreç uzun olur veya kısa olur. Ama azimli olursanız mutlaka öğrenirsiniz.
- Yazılıma başlamak için öncelikle temelinizi sağlam oturtun. Temel sağlam olursa, üstüne istediğiniz gibi istediğiniz mimaride kat çıkabilirsiniz.
- En kolay, en basit, en güçlü programlama dilini aramayın. Bi yerden başlayın ve süreki çalışın.
- Yazılımı tamamen öğrenmek diye bir şey söz konusu değildir. Yapmanız gereken, dünden daha ileriye gidebilmek olmalıdır.