Yazılım Stajıma Adım Atarken: Disiplinin Kod Kadar Önemli Olduğunu Öğrenmek
Fırat Üniversitesi Yazılım Mühendisliği üçüncü sınıf öğrencisiyim ve zorunlu stajımı Truncgil'de, 20 iş günü boyunca uzaktan tamamladım. Bu yazıda, stajın teknik detaylarından çok, sürece nasıl adapte olduğumu ve bu deneyimin çalışma biçimimi nasıl değiştirdiğini anlatmak istiyorum.
Beklentim ve Gerçek
Staja başlarken kendimi teknik olarak hazır hissediyordum. Daha önce kişisel projeler geliştirmiştim, kullanacağımız teknolojilere genel olarak hakimdim ve yapay zeka araçlarıyla proje geliştirmenin de yabancısı değildim. Yani "neyi nasıl yapacağımı biliyorum" diyerek başladım.
Ama stajın bana asıl kazandırdığı şeyin teknik bilgi olmadığını kısa sürede fark ettim. Daha önce de projeler yazmıştım; ancak hiçbirini bu kadar disiplinli ve düzenli bir süreçle yapmamıştım. İşte bu stajın beni gerçekten geliştirdiği nokta burasıydı: bir işi bitirmek ile bir işi profesyonelce yürütmek arasındaki farkı görmek.
Uzaktan Çalışmaya Adaptasyon
Staj tamamen uzaktan yürüdü. Uzaktan çalışmanın en büyük riski, insanın kendi kendine bir düzen kuramamasıdır; kimse başında durmadığında günün nasıl kayıp gittiğini fark etmeyebilirsiniz. Bu yüzden en başından itibaren kendime net bir günlük rutin oturttum ve buna sadık kalmaya çalıştım.
Açıkçası bu konuda adaptasyon sorunu yaşamadım. Her sabah düzenli olarak yapılan toplantılara eksiksiz katıldım ve günün akışını bu ritim üzerine kurdum. Uzaktan bir stajda en çok işe yarayan şeyin, bu tür sabit çıpalar — her sabah aynı saatte toplantı, her günün sonunda defter — olduğunu gördüm.
Bir Günüm Nasıl Geçiyordu?
Stajın bana kazandırdığı en somut şey, tekrarlanabilir ve profesyonel bir iş akışıydı. Tipik bir günüm şöyle işliyordu:
Sabah ilk iş, günün planını gözden geçirmek ve o gün ne yapacağımı netleştirmekti. Saat 10'daki toplantıya bu hazırlıkla giriyordum. Toplantıda önceki gün ne yaptığımı, o gün ne yapacağımı ve varsa karşılaştığım bir sorunu paylaşıyordum. Bu kısa günlük paylaşım, hem kendi ilerlememi takip etmemi hem de takımın benim nerede olduğumu bilmesini sağlıyordu.
Toplantının ardından asıl geliştirmeye başlıyordum. GitHub'da ilgili issue üzerinden temiz bir branch açıp o günün işine odaklanıyordum. Geliştirmeyi parça parça, anlamlı commit'ler halinde ilerletiyordum — her şeyi tek seferde değil, mantıklı adımlara bölerek. İş bittiğinde tek bir Pull Request açıp Ümit Bey ve Berkay Bey'i inceleyici olarak ekliyordum. Onlar uygun gördüğünde PR ana dala birleştiriliyordu.
Günün son adımı ise o gün ne yaptıysam staj defterime (Truncgil'in stajyer panelinden) kaydetmekti. Bu adım tamamlanınca gün kapanmış oluyordu.
Kod Yazmaktan Fazlası: Versiyon Kontrolü ve İnceleme Kültürü
Bu akışın bana öğrettiği en değerli şey, yazılımın sadece kod yazmaktan ibaret olmadığıydı. Kişisel projelerimde commit'leri özensizce atar, PR açma alışkanlığım hiç olmazdı. Bu stajda ise her işin bir issue ile başladığı, temiz bir branch'te geliştirildiği, anlamlı commit'lere bölündüğü, bir PR ile sunulduğu ve başka birinin gözünden geçtikten sonra ana koda katıldığı bir kültürün içine girdim.
PR inceleme sürecinin özellikle öğretici olduğunu söylemeliyim. Kodumun bir başkası tarafından okunacağını bilmek, onu daha dikkatli ve daha açıklanabilir yazmamı sağladı. Ümit Bey; sorularımızla, projelerimizle ve PR incelemelerimizle yakından ilgilendi. Bir yerde takıldığımızda ona danışabiliyor olmak, uzaktan bir stajda kendimi yalnız hissetmememi sağladı.
Yapay Zeka ile Çalışırken Değişen Sorumluluk
Projeyi geliştirirken yapay zeka araçlarından yoğun şekilde faydalandım — bu benim için yeni bir yöntem değildi. Ancak bu stajda fark ettiğim şey şuydu: yapay zeka ile hızlı üretim yapabiliyor olmak, sizi değerlendirme sorumluluğundan kurtarmıyor, tam tersine bu sorumluluğu artırıyor. Üretilen her çıktıyı planla karşılaştırmak, doğrulamak, test etmek ve gerektiğinde reddetmek benim işimdi. Yani asıl beceri kod üretmek değil, üretileni yönetmek ve kalitesinden sorumlu olmaktı.
Dürüst Bir İtiraf
Her şeyin kusursuz gittiğini söyleyemem. Günlük staj defterini doldurma disiplinini birden fazla kez aksattım. Sürecin en kolay ihmal edilen ama aslında en faydalı parçalarından biri buymuş — çünkü her günü yazıya dökmek, o gün gerçekten ne yaptığımı ve neyi neden yaptığımı düşünmeye zorluyordu. Bu küçük aksamalar bana, disiplinin tek seferlik bir karar değil, her gün yeniden verilen bir karar olduğunu gösterdi. Genel olarak iyi bir iş çıkardığımı düşünüyorum, ama bu detay, bir dahaki sefere daha tutarlı olmam gerektiğini öğretti.
Sonuç
Bu staj bana, hakim olduğumu sandığım teknolojilerin ötesinde bir şey kattı: profesyonel bir yazılım geliştirme sürecinin nasıl işlediğini. Planlama, günlük iletişim, versiyon kontrolü, kod inceleme ve dokümantasyon — bunların hepsi, tek başına kod yazmanın çok ötesinde bir olgunluk gerektiriyor.
Teknik olarak zaten belli bir seviyede başlamıştım; ama bu stajdan çıkarken, bir yazılımcının değerinin sadece ne kadar hızlı kod yazdığıyla değil, işini ne kadar düzenli, izlenebilir ve sürdürülebilir biçimde yürüttüğüyle ölçüldüğünü anlamış olarak ayrıldım. Disiplinin, en az kod kadar önemli olduğunu öğrenmek — stajımın bana kazandırdığı en kalıcı şey buydu.