Yazılımın ilk 250 günü - Intro

5 dk okuma

Giriş

Bu blog serisinde yazılım ile ilgili bir işe girdikten sonra çırak olarak ustama yazmış olduğum "rapor-günlük"ler bulunuyor. İçerik olarak ciddi ve resmi bir raporda olması gerekenler ile, duygusal birçok his, yapılan hatalar ve başarılar sunuldu. Nazım Hikmet'ten bir şiir de bulunmaktaydı bir raporda, OOP'nin varoluş amacı ve nesne yönelimli bir dilin çıkış amacı ile hangi SOLID prensibinin örtüştüğüne dair Alan Key'in belirttiği düşüncelere kadar. Bug fix'leme ve bulma raporlarından, kendimi salak gibi hissettiğim bir günde yazmış olduğum rapordaki "yine de bu işi yapabileceğime ve başarabileceğime dair inancıma" kadar. Kullandığm dillerin yapılarının en detaylı kısımları üzerine düşünceler ve kavrayışlardan, UML diyagramlarına kadar. Blog içeriği tamamen ustamın günlük raporlar sunmamı istemesi ile kendiliğinden oluşmaya başlamıştı. Her gün yaşadıklarımı detaylı olarak anlattığım için de büyük bir içerik oluşmuştu. Ve bu içeriği de paylaşmak istedim. Hem kendimi ifade etmek için, hem başka bir "yeni başlayan"a fikir verebilmesi için, hem de bu yaşananların bir yerde anı olarak kalması için.

Kısaca yazılıma nasıl başladığımı ve bu mesleğe (hobiye) nasıl devam ettiğimi açıklayayım:

Askerliğimi yaparken rutin hayatıma kısa bir ara verip geleceğim üzerine bol bol düşünürken yazılımcı olmayı iyice kafama yerleştirmiştim. Askerlik bittikten 3 ay sonra da istediğim işi buldum. Şanslıydım belki. İlk 2 ay sonunda artık bu işi çözdüğümü, ve birçok şey yapabileceğimi düşünmüştüm. Yanılmıştım elbette. Sonrasında yeni görevler verildikçe hem çok salak olduğumu hem de çok akıllı olduğumu defalarca kendime söylemiştim her farklı durum hakkında. İşin en zor kısmı egoyu bir kenara bırakabilmekti. Bir dilde yeterince çok şey yaptıktan sonra ve uygulamalarını pekiştirdikten sonra yepyeni bir dil veya framework'ü sıfırdan öğrenmek, tekrar abaküsle sayı saymaya başlamak gibi oluyordu. Burada sabır, yapılan işte kararlılık, ve her zaman en iyisini denemek ön plandaydı. Ego yerle bir oluyordu. Fakat başarılı olunca ve emeğin karşılığı alınınca ego tekrar yükselip çok kararsız bir dalga fonksiyonu gibi hareket ediyordu.

Çalışmaya başladığımda kendimi Junior bir yazılımcı olarak görüyordum hep. Fakat 4 ay sonrasında ustamla yaptığım konuşmada benim hala onun gözünde bir junior olup olmadığıma karar veremediğini hissettirmişti. Ona göre ben bir intern olarak işe başlamıştım. Oysa ben junior'ımdır derdim. Bu da ilginç bir anekdottu.

6 ay boyunca çok sıkı çalıştım. Neredeyse sıfırdan yazılım konularına dahil olduğum için (Üniversitedeki C dersi ve matlab ile ilgili projelerin bir şey kattığını pek söyleyemem. Hatta hemen unutulmuşlardı) 6 ay neredeyse gece gündüz çalıştım. OOP, Solid, Design Patterns gibi konuları ve hem backend hem frontend tarafında çokça kez bir şeyler üretip sistemin işleyişini çözmeye çalıştım. 6. ayın sonunda ustamla olan toplantımızda bana inandığını ve iyi bir yazılımcı olacağımı düşündüğünü söylemişti. Havalara uçuyordum çok belli etmemeye çalışsam da o an. Çünkü o çok iyi bir yazılımcı ve iyi bir insandı ve ondan bunları duymak çok mutlu etmişti. Ve artık bana bir şey öğretemeyeceğini, çünkü benim araştırıp gerekli kavramları ve konuları öğrenip uygulayabileceğimi belirtmişti. İdare eder bir zekaya sahip olduğumu düşündüğüm için anlamıştım ki çok çalışınca bir şeyler yapılabiliyormuş. Gerçi eşeği bile 8 saat bilgisayarın başına koysanız bir şeyler öğrenip uygulayabilir gibi :)

En temel seviyede dillerin nasıl çalıştığını, belli yazılım kalıplarını ve neden varolduklarını çözdükten sonra ve o dillerde en temel konuları sıfırdan basit bir şekilde yaptıktan sonra (Örneğin basit bir MVC yapısının oluşturmayı, bir SSO sunucusunun nasıl işlediğini öğrenip sıfırdan oluşturmayı gibi) artık framework'leri de öğrenmemin zamanı yaklaşıyordu. Başlangıçta bir framework'e karşı çok önyargılıydım çünkü çok çok fazla şey sunuyorlardı ve düz bir şekilde PHP'de ya da başka bir yazılım dilinde yalın olarak backend yazmanın daha iyi olacağını düşünüyordum fakat öğrenme sürecinin ilk kısmındaki "inkar" durumuydu bu. Frameworklerle de çalışıp uygulamalar ortaya koyabilince temel olarak konulara hakim olmaya başladığımı hissetmeye başladım. Ama öğrenilecek birçok şey vardı ve asla bitmiyordu. Bu durumu çok seviyordum çünkü sonsuza kadar sıkılmadan yeni şeyler öğrenebilirim, araştırabilirim, uygulayabilirirm diyordum. Hala aynı düşüncedeyim.

En büyük şansım usta-çırak ilişkisi ile bu işi öğrenmeye başlamam oldu diye düşünüyorum. Tıpkı ustamın da kendi ustasından öğrenmesi gibi. Ve yine en büyük şanslardan biri de ustamın çok iyi bir insan olmasıydı ve bu iş ile ilgili bildiği her şeyi elinden geldiğince gösterip öğretmeye çalışmıştı. Altın bir bileziği bana kazandıran insana ne kadar teşekkür etsem azdır.

Şimdi mi? Hala öğreniyorum. Her gün. Her zaman. Kalıplara sığmayıp Bruce Lee'nin dediği üzere "su gibi olmak" düsturuna uymaya çalışarak...

İyi okumalar :)