yazılım öğrenmek oldukça kolay ve boş durmak yerine öğrenmek istemen daha şimdiden okuldaki pek çok kişinin önünde yer alacağını gösteriyor. bu iyi bir şey.
yazılım öğrenmek iki farklı şeyi öğrenmek demek, biri her hangi bir konuşma dilinde bulunan grammer bilgisi, bu yazılım dillerinde oldukça az bir alan kaplıyor ve bunları öğrenmek en fazla bir hafta hadi çok yeni ve acemisin 1 aylık bir süre diyelim. diğeri ise kavramlar, bu kavramları anlamak, neden ihtiyaç duyuyoruz ve kullanıyoruz kısmını kavramak biraz zamana ve tecrübeye ihtiyaç duyuyor ancak tecrübe kitaplar ile bizlere aktarılabiliyor.
grammer bilgisine yazılım dünyasında syntax diyoruz, yazma biçimi; bu dilden dile değişebiliyor, bazı dillerinki birbirine çok yakın bazı dillerinki ise çok uzak olabiliyor. ancak kavramların pek çoğu ortak, her dilde, her teknolojide varlıklarını sürdüyorlar. bu nedenle başlangıçta hangi dili öğreneceğini günün modasına göre belirlemen gereksiz, yazılım dünyası içerisindeki kavramları (kontrol yapıları, döngüler, değişkenler, fonksiyonlar vb. tanımlamalar/kavramlar) öğrendikten sonra, X dilinde yaptığımız Y işini, Z dilinde nasıl yapıyoruz sorusuna cevabı bulmak bir dakikadan kısa süren bir eylem çünkü sadece grammer/syntax bilgisine ihtiyacın var. yukarıda parantez içerisine aldığım şeylerin ne olduklarını "anladıktan" sonra aynı anda 2/3 dilin söz dizimini öğrenebilirsin.
Burada belirliyici olan moda değil, en fazla dökümanı olan dil olmalı. Bunlardan bazıları php, python, perl, C, Golang. bu dillerden her hangi birini öğrendikten sonra bir diğerini öğrenmek oldukça kolay olacaktır. Bulabildiğin en iyi kaynağı kullanmanı tavsiye ederim. Benim tavsiyem python olacaktır zira hem ingilizce hem türkçe oldukça fazla kaynak var, yine aynı şekilde php'de öyle.
tavsiye ettiğim iki dilinde farklı limitleri olmasına rağmen yapamayacakları iş pek yok, sadece şu soru var; X limitine sahip olan bir teknoloji ile Y işini yapmak ne kadar mantıklı? acemilik ve hatta ustalık döneminde dahi sadece yapabildiğini gösterebilmek için bir veri tabanı yazabilirsin, bu yazdığın veri tabanını hobi amaçlı kullanabilirsin, yazdığın veri tabanı gerçek dünyada kullanılamayacak bir şey olacaktır (limitlerden dolayı) ancak bunu yaparken öğrendiğin bir sürü kavramın, tecrübenin ise maddi karşılığını fazlası ile alacaksın. python ile yazılmış tcp/ip stack'i var mesela. bunu yazan kişi bu kütüphaneyi yazarken network hakkında oldukça fazla bilgi edindi, bunu kullananlar da öyle. Burada ise gelip bash ile tcp/ip stack'i yazmak istiyorum desen seninle dalga geçerler. yaptığında ise iş bulmak için sadece "iş arıyorum" diye tweet atman yeterli olacaktır.
uzmanlık ise bambaşka bir konu, bu biraz çalışma hayatın biraz da ilgi alanların ile bağlantılı. örneğin ben ölçeklenebilirlik ile uğraşmayı seven biriyim, bunun için akademik makalelerden bununla ilgili algoritma/kütüphane vb. şeyleri okurum, dilin içerisinde X şeklinde yazdığın bir kodu Y şeklinde yazarsan %2 lik performans sağlarsın kısmı benim ilgimi çekmiyor mesela. onlarca/yüzlerce bilgisayarda çalışan bir uygulamanın uyumu, networkdeki haberleşmesi, veriyi işlemesi saklaması ulaşması bunlar benim ilgi alanlarım ve bu ilgi alanımın gelişmesinde iş hayatımın katkısı çok fazla.
senin eğer bir ilgi alanın var ise, (oyunlar, cihazlar vb.) o konuya eğilebilirsin, eğer şu an için bir ilgi alanın yoksa ne olduğunu bulmayı zamana bırak. zaman içerisinde karşına çıkacak bir konu ilgini çekecek ve o konuya ağırlık vereceksin. zamanla da danışılan kişilerden biri olacaksın.
hem öğrenim hem iş hayatında kolaylık istiyor isen kavramları iyi öğren, özgür yazılımlara katkıda bulun, bu konulardaki etkinliklere katıl.
0