Herkese merhabalar! bugün sizlerle yazılımcı kavramının soğuk karanlığını fethedeceğiz. Başlangıçta yazılım kavramına ne kadar uzak olduğumuzu, bu kavramın neden bizden bu kadar uzak olduğunu sonrasında Yazılmcı’nın üzerindeki buz sarkıtlarını temizleyeceğiz. Keyifli Okumalar.

Doğmak:

Yazılım kavramı, geçtiğimiz 10 yılda karşımıza en çok çıkan kavramdır belki de. Ne kadar çok bu kavrama çok yakın olduğumuzu düşünsek de bir o kadar uzağız çünkü yazılım kavramını ne tam açıklayabiliyor ne de tam uygulayabiliyoruz. İnsanoğlu her ne kadar yazılıma bağlı gözükse de yazılımın insanoğluna bağlı olduğu gözle görülebilir bir gerçek. Bu yüzden yazılım kavramını son 10 yılda bu kadar fazla duyuyoruz çünkü insanoğlu bu işin daha başında. Yazılım öğrenmek isteyen insanın kavraması gereken birçok şey var. Öncelikle unutması gerek; bu zamana kadar öğrendiği ilkokuldan başlayarak ortaokula kadar eğitim hayatının önceliği olan şeyleri unutmalı çünkü bir birey geleceğini kodlar üzerinde çizecekse bu saate öğrendiği hiçbir şeyin yararı olmayacak çünkü bu işin altyapısı çok önemli ve özeldir ve unutulmamalıdır ki bu yepyeni bir boyut ve bu aynı zamanda yepyeni bir sayfa. Ancak ne bu boyutun kuralları var ne de bu sayfanın çizgileri tamamen parmaklarınızdan çıkacak fonksiyonlara bağlı olarak değişkenlikler ve sınırsızlıklar yaratılabilir. İnsanoğlu bu işin başlangıcında bile değil buna rağmen yazılım size sınırsızlık etmenini sunabiliyor. Çünkü bu kavram insanoğlunun hayal gücüyle entegre olabilecek güce sahip. Yazılımcı adayı, unutmamalıdır ki bahsettiğimiz kavram bireye daha önce sahip olamayacağı bir dünya görüşü, bakış açıları ve sayısız soru işaretleri verir, kendini her dakika geliştirmeli yeniden doğmaya elverişli olmalı, bu kavramda asla ama asla tekdüze bir şey olmadığını bilmeli, sürekli güncellenen siber çağa ayak uydurmalıdır. 

Emeklemek:
“Matematik bilmeyen yazılım yapamaz” iddiasını herhangi bir yazılımcıya söylediğinizde yüzünün gülmesini sağlayacak bir şaka gibi gelebilir. Aslında yazılımın en önemli unsuru iddia edilenin üzerine matematik değil analitik zekadır. Algoritmalar üzerine kurulu bu yapıda problem çözme yeteneğiniz ne kadar iyiyse algoritmayı kurup yapısını anlayabilmeniz o kadar kolay olur, bu da matematiğin değil analitik zekanın önemini ortaya koyar. Analitik zekası yüksek olan birinin matematiğe ilgisi olmayabilir ama bu algoritma yazamayacağı anlamına gelmez. Tüm iş sadece bir matematik üzerine kurulu olsaydı tüm matematikçiler doğuştan birer yazılımcı olurdu. Çokça duyulan bir diğer iddia ise “İngilizce bilmeyen yazılım yapamaz.” Bu bir önceki iddiaya göre daha doğru bir tespit. Çoğu profesyonele göre mekanik ingilizce dediğimiz tamamen grammer bilgisine dayalı İngilizce yeterlidir. Lakin yeni başlayacak bir aday günde belki abartısız 100 kere Github, Stackoverflow gibi yazılım forum sitelerden index alışverişi yapacağı/yapmak zorunda olduğu için İngilizce bir seçenek değil zorunluluk olacaktır. “Yazılımcı olmak için iyi bir üniversite kazanılmalı” Bu da ilk iddia gibi her yazılımcının gülmesini sağlayacak şakalardan biridir. Bu şakanın neden bu kadar komik olduğunu anlamak için yazılım kavramına odaklanmak gerek. Yazılım bir duvardır ve bu duvara yalnızca sürekli kendini geliştirmeye açık olan insanlar tutunabilir. Bu özellikten mahrumsanız bu duvarın çıkıntılarında dünyanın en iyi üniversitesinden mezun bile olsanız tutunamazsınız çünkü bu duvar seçicidir ve bakacağı en son şey hangi üniversiteden çıktığınızdır. Dünyanın en kapsamlı üniversitesinin bu kadar kapsamlı olmasının sebebi eğitimi değil adı ve saygınlığıdır, network ve referans edinmeye açık olması dışında rastgele bir yerdeki rastgele bir üniversite ile çok bir farkı yoktur. Çok basit bir kıyaslamayla Anadolunun en uzak köşesindeki üniversiteden mezun aldığı eğitimin üzerine her gün bir şeyler koyup kendini geliştirmiş bir yazılımcı bu duvara tutunabilirken Amerikanın en gösterişli üniversitesinden mezun kendini geliştirmemiş bir “yazılımcı” bu duvara tutunamaz, bu duvara hayatını adamak gerekir.

Öğrenmek:
Yazılım yeri geldiğinde bir duvar olduğu gibi aynı zamanda da bir ağaçtır; dalları gökleri, bulutları aşıp uzaya kadar çıkan bir ağaç. Bu ağacın her yaprağında farklı bir bilgi her dalının ucunda farklı bir yol vardır. Yazılımcı adayı kendi yolunu çizmeden önce bu dalların nerelere ulaştığını bilmesi gerek. Bir dal bulutların ortasında dururken diğer dal dağların tepesine bir başka dal ise uzaya kadar gidebilir. Bu dallar Web sitelerinden, masaüstü/mobil aplikasyonlara, savunma sanayinden mutfağımızda kullandığımız buzdolabına kadar gelişen siber çağda her biri için farklı bir dal var bu da birçok paradigma doğuruyor. Dalların uzun olması ve insan zekasının kabiliyetlerinin sınırlı olması sebebiyle dallardan düşmeden yürümenin en büyük sırrı sabırda yatmakta. Yapay zeka ile ilgileniyorsanız başlangıç için 

Python önerilirken Web ile ilgileniyorsanız başlangıç için  HTML önerilebilir, bu işin değişkenliğine bağlı olarak kullanılan dil de değişecektir örnek olarak. Yabancı dil öğreneceksiniz ve başlangıç olarak “kolay” diye Rusçayı seçtiniz ama iş için İngiltere’de olmanız gerekiyor, Rusça orada hiç bir işinize yaramayacak tıpkı yazılımda olduğu gibi. Bu sebepten ötürü hangi dilden başlayacağınıza değil hangi daldan başlayacağınız önemli.

Bu paradigmalarının hepsini teker teker açıklamayı çok isterdik ama yazılımcı adayı kendini geliştirmeye tam buradan başlamalı başkalarının yazdığı şeyleri somut alıp yürümekten ziyade  bu paradigmaları araştırıp sarkıtlarını kendi temizlemeli. Doğmalı, emeklemeli ve öğrenmeli bu yolda giderken geriye bakmaktan çekinmemeli hata yapmalı ve hata yapmayı normalleştirmeli ve sevmeli. Her an her şeyin üzerine bir şeyler ekleyebilmeli ve daha da önemlisi eklediğini çıkartabilmeli. Unutmayalım ki bu işe yetenek işi gibi bakıp daha başlamadan bırakanlar olsa da yetenekler doğuştan kazanılır bu doğuştan kazanabileceğiniz bir şey değil. 

Okuduğunuz için teşekkürler, bol sinerjili günler.