Yapay Zeka Çağında Körelmemek: Bir Yazılımcı Olarak Kendimi Nasıl Güncel Tutuyorum?

Yapay zeka çağının hayatımıza girmesiyle birlikte kod yazma alışkanlıklarımız ciddi derecede değişti. Aslına bakarsanız, bazen elimizden kod yazmanın o saf zevkini aldıklarını hissediyorum. Eskiden bir web sayfasını, mobil uygulamayı ya da bir API endpoint’ini satır satır, handler’larıyla, şemalarıyla kendimiz yazardık. Şimdi ise daha ilk satırı yazarken Claude veya OpenAI fark etmeksizin, iyi bir context verdiğimizde yapay zekanın bizden çok daha iyi dökümante edilmiş bir kod yazacağını biliyoruz. Bu durum, daha ilk satırdan itibaren insanın kod yazma hevesini kırabiliyor, devam edesi gelmiyor.
Bu durum çok sinsi bir soruna yol açıyor: Uzun zaman boyunca sadece agent’ları orkestre ederek, yani onları yönetip yönlendirerek projelerde ilerleyince, en basit bir for döngüsünde veya dilin kendi syntax detaylarında bile el antrenmanımız gidiyor. Çünkü artık kod yazmak eski zevkini vermiyor ve tembelliğe alışıyoruz.
Peki, yapay zeka sonrası dönemde bir yazılım geliştirici olarak kendimi geriye gitmekten nasıl koruyorum ve geliştirmeye devam ediyorum? Kendi hayatımda uyguladığım yöntemi 4 basit adımda anlatmak istedim.
1. El Antrenmanını Kaybetmemek (LeetCode & HackerRank Deneyimi)
Artık yapay zekayı tamamen hayatımızdan çıkarmak ve her şeyi sıfırdan yazmaya çalışmak gerçekçi bir seçenek değil. Ancak o mesleki reflekslerimizin ve pratikliğimizin de yok olmasını istemiyoruz. Bu sorun için kendi geliştirdiğim bir rutini paylaşayım.
LeetCode ve HackerRank gibi platformlardaki algoritma sorularına eskisinden çok daha fazla önem vermeye başladım. Yapay zeka öncesinde de bu soruları çözer, bazen takılır, araştırarak bir sonuca ulaşırdım. Şimdi bir soruyu AI’a verdiğinizde saniyeler içinde çözümü önünüze koyuyor. Ama bunu yaptığımızda ne beynimiz çalışıyor ne de elimiz klavyeye alışıyor.
Yapay zeka döneminde hep söylenen bir şey var: Önemli olan sistem kurmak, orkestre etmek, yapay zeka yapsa bile arka planda ne yaptığını bilmek… Yani computer science ve algoritmalar hâlâ çok önemli.
Ben de bu yüzden haftada birkaç kez, yapay zekadan çözüm aşamasında hiçbir yardım almadan bu platformlardan soru çözüyorum. Bunu tek başıma yaparken hem işin algoritma mantığına odaklanıyorum hem de ana dilim olarak kullandığım Golang ve JavaScript gibi dillerin syntax kısımlarında el antrenmanımı güncel tutuyorum. Çözümü yaparken de düşünce şeklimi sanki teknik bir mülakattaymışım gibi açıklama satırlarına (comment) tek tek yazıyorum.
Altın kuralım şu: Soruyu çözerken kesinlikle yardım almıyorum.
Soruyu kendi başıma çözüp bitirdikten sonra yapay zeka tekrar devreye giriyor. Yazdığım kodu ve açıklama satırlarındaki düşünce yapımı alıp farklı LLM modellerine besliyorum. “Mülakatta olsam bunları söyleyecektim, şimdi beni değerlendir” diyorum. AI beni algoritma mantığı, programlama diline yatkınlık ve Big(O) karmaşıklığı gibi konularda analiz ediyor.
Özellikle Medium ve Hard sorularda mutlaka bir eksiğim çıkıyor. Soruyu çözmüş olsam bile AI ile en optimal yolu tekrar öğrenip çözümümü yukarı çekiyorum. Varsa LLM modeliyle birlikte follow-up sorularını veya “Soruda verilen parametre limiti daha fazla olsaydı ne yapardık?” kısmını tartışıyoruz. Verdiğim prompt gereği bana tartışma sırasında asla doğrudan kod vermiyor, sadece ipuçları vererek beni optimal çözüme ulaştırmaya çalışıyor.
Ek bir avantajı da şu: Büyük bir uygulama veya network servisi yaparken LLM’in daha iyisini yapacağını bildiğiniz için hevesiniz kaçabiliyor demiştim ya, bu algoritma sorularında hedef tek bir odak noktası olduğu ve bir metodun core (çekirdek) kısmını yazdığınız için canınız hiç sıkılmıyor. Hem zihnim çalışıyor hem de el antrenmanım güncel kalıyor. Hatta bazen kendimi zorlamak için tamamen farklı konular ve farklı programlama dilleriyle de denemeler yapıyorum.
2. Sektörün Kült Kitaplarını Derinlemesine Okumak
Daha önce okumak isteyip de bir türlü fırsat ya da zaman bulamadığım o kalın, sektörel kitapları artık yapay zeka ile birlikte çok daha verimli okuma fırsatı yakalıyorum.
NotebookLM gibi sistemler sayesinde bu kitapları part part, bölüm bölüm içeri alıyorum. Okurken merak ettiğim ya da havada kalan konularda hem yapay zekanın gücünü hem de internetteki kaynakları kullanarak derinleşiyorum. Bunu yapay zeka öncesinde yapmak, saatlerce süren kaynak taramaları anlamına geliyordu ve çok zaman alıyordu.
Şu anda ise süreç inanılmaz hızlı işliyor. Bu sayede beynimi tekrar çalıştırmış oluyorum. Daha önce araştırması gözümde büyüyen konulara artık çok daha hızlı giriş yapıp, proof of concept (PoC) çalışmalarını çok hızlı hazırlayabiliyorum. Özetle, daha hızlı ve daha derin öğreniyorum.
3. Low-Level Konular ve Network Programlama
Daha önce denemek istediğim ancak zaman azlığından, fırsat bulamamaktan ya da daha doğrusu internette yeterince temiz kaynak olmamasından dolayı giremediğim alanlar vardı: Binary inceleme, low-level programlama dilleri, network programlama gibi konular… Artık bunlara çok daha hızlı dalış yapabiliyorum.
Örneğin önceki şirketimde ihtiyaç duyduğumuz spesifik bir protokolü araştırmıştım. Genellikle bu tarz konularda internette hazır döküman veya kaynak bulmak çok zor oluyor. O dönem bir proof of concept hazırlamam günlerce sürmüştü.
Ancak artık LLM’ler sayesinde bu protokolün tam olarak ne olduğunu, içinde ne taşıdığını, RFC standartlarını ve OSI modelini hızlıca özetleterek bulabiliyorum. Çok hızlı bir demo hazırlayıp protokolün mantığını kavrayabiliyorum. Aslında bu durum, yapay zekanın biz geliştiricilere verdiği muazzam bir süper güç.
4. Büyük Open Source Projeleri Analiz Etmek
İncelemek istediğim ama kod tabanının büyüklüğü ve vakit darlığı yüzünden gözümün korktuğu açık kaynaklı (open source) projeleri artık yapay zeka ile birlikte analiz ediyorum.
Özellikle GitHub’da bulunan, uzun zamandır bakmak istediğim ancak çok zamanımı alacağını düşündüğüm için ertelediğim büyük projelere yapay zeka modelini de ortak ediyorum. Kod tabanını açıp projenin tam olarak ne iş yaptığını kendime özetletiyorum. Projenin core metotlarını ve modüllerini bulduruyorum. İçeride hangi algoritmaların, nasıl bir mimariyle kullanıldığını çözümlüyorum.
Yapay zeka öncesinde bu kadar büyük codebase’lerin içinde kaybolup gitmek çok kolayken ve inanılmaz zaman alıyorken, artık süreci çok daha hızlı ve efektif bir şekilde yönetebiliyorum. Bu da doğrudan mimari vizyonumu geliştiriyor ve kendime yeni şeyler katmamı sağlıyor.
Özetlemek gerekirse; yapay zeka elimizden amelelik diye tabir edebileceğimiz uzun kod bloklarını yazma işini aldı evet, ama bizi daha stratejik ve derin düşünmeye zorluyor. Önemli olan bu araçları bizi tembelleştiren birer unsur olarak değil, bizi yukarı taşıyan birer kaldıraç olarak kullanabilmek.