Öncelikle herkese merhaba.
Programlamayı hiçbir eğitim almadan kendi çabalarımla, deneme yanılma yöntemiyle öğrenen biri olarak 2 yıllık tecrübelerime dayanarak konuşuyorum. Bir kişiye bile faydam olsa kârdır.
Forumda sık sık karşılaştığımız bir soru olduğu için böyle bir konu açma gereği duydum. Arkadaşlar hangi programlama diliyle başlamalıyım sorusundan önce şu soruların cevabını soralım kendimize.
1- Düzenli ve tertipli bir insan mıyım?
2- Saatlerce kod yazmak gerçekten bana uygun mu?(Aksi halde gerçekten sıkıntı yaşayacaksınız.)
3- Ne üzerine çalışmalar yapacağım?
4- İngilizcem nasıl?
Neden bu soruları soruyoruz, çünkü;
1- Düzen ve tertip yoksa emin olun işin içinden çıkamazsınız. Plan dahilinde çalışan bir insan değilseniz programlama sizi kabul etmeyecektir.
2- Saatlerce kod yazmak dışarıdan çok çekici görünebilir. Satır satır kod yazmışsınız hepsinin bir anlamı var ancak emin olun o süreç o kadar zor ve ağır ki belirli bir eşik değerini geçtiğiniz zaman(bende bu eşik değeri 6 saat) kafanız güzel oluyor. Bu şaka değil samimi söylüyorum eğer varsa beni anlayan birileri zaten onaylayacaktır.
3- Mobil programlama, web programlama, ... diye gider. Siz ne üzerine çalışacaksınız öncelikle bunu bir belirleyin. Hangi dili öğreneceğinize de sonra karar vereceksiniz. Şu an piyasada, benim bildiğim diller içinde, diğerlerinden farklı bir söz dizimine sahip olan tek dil Objective-C'dir. Onun dışında bütün programlama dilleri benzerdir. Yani bir kere algoritma yapısını öğrenirseniz, programlama modeli oluşursa kafanızda gerisi kolay olacaktır. Şu an 8 tane programlama dili biliyorum. Bunların içinde Swift hariç hiçbirini örnek kodlara bakmadan yazamam. Neden mi? Çünkü programlama mantığı var. Ancak her dilin de gerektirdiği bazı özel karakter kuralları var. Örnek olarak Swift dilinde ";" koyulmasa da olur ancak PHP'de mutlaka her satır sonunda ";" koyulmalıdır. Bunun dışında programlama aslında aynıdır. Çünkü belirli bir sonuca, belirli bir şart sağlandığında veya sağlanmadığında gidilecekse "if-else" yapısı kullanılacaktır. Durumlar 2'den fazla ise ve belirli ise "switch-case" yapısı ... Örnekleri çoğaltılabilir.
4- İngilizcem ne seviyede. Bunu size söylediğime bakmayın benim de ingilizce çok iyi seviyede değil. Ancak Türkiye'de yeterince önem verilmeyen programlama konusunda yeterli kaynak bulunmaması sebebiyle az buçuk öğrenmiş olduk. En azından stackoverflow bizi anlıyor. Eğer vaktiniz var ise ingilizcenizi de geliştirin ki literatürü takip edebilesiniz. Bir güncelleme çıktığı zaman çeviri okumayı beklemek yerine, dilin kendi sitesindeki duyuruyu okuyup, bilgiyi kaynağından öğrenesiniz. Bilgi ne kadar saf ve temiz olursa o kadar emin ve kullanışlı olur. Aşağıda örnek vereceğim, tahminimce süreç şöyle oluyor. Hepsi için değil ancak geneli böyle oluyor. Bunu zaten Türkçe kaynakları okurken siz de anlayacaksınız.
1- Çeviri yapan hödük herşeyi copy-paste ile google translate e teslim ediyor.
2- Google translate de kendi algoritmasına göre çeviri yapıyor.
3- Bizim hödük aklı sıra güzel çeviri yaptırayım diyerekten cümle düşüklüklerini olabildiğince azaltıyor. Ancak ortaya farklı ifadeler, farklı anlamlar çıkabiliyor.
4- Hödük umursamıyor ve çevirisini olduğu gibi koyuyor.
5- Kod satırlarını da yazıyor. Hatta kodlardaki açıklama satırlarını bile değiştirmiyor.
6- Altına da nereden alıntı yaptığını dahi yazmıyor.
7- Teşekkürler hödük ve hödük gibiler Türkiye'de programlama sektörü ilerlemiyor.
Şimdi süreç böyleyken kayıpları siz düşünün. Bu kadar zaman kaybedeceğime oturur ingilizce kasarım, ingilizce kaynakları aslanlar gibi kendim okur kendim anlarım.
Sonuç olarak kendimizi tanıyalım, uygun isek kararımızı verip ona göre hazırlıklar yapalım.
Umarım faydalı olmuştur. Saygılar