Blog yazmaya başladığımdan beri bilgisayar mühendisliği ve yazılım üzerine yazılar yazdım. Bu yazılarımın bazıları kişisel birikime dayalı idi. Bazıları da öğrendiğim şeyleri yazıya dökme amaçlı idi. Bu yazıda biraz birikim biraz da tahminlerime dayanarak yapay zekânın yazılımcıların yerini alıp almaması gerektiğini yazacağım. Muhtemelen duyduğunuz ve bildiğiniz ve gördüğünüz gibi yapay zekâ teknolojileri günümüzde her hafta yeni bir devrimle karşımıza çıkıyor sanki. Bu hızlı değişim ve gelişim sürecinde etkilenen alanlardan birisi de, belki de en çok etkilenenlerden birisi olan yazılımcılık alanı. Bu yazıyı yazdığım tarihlerde yakında bütün yazılım kodlarını yapay zekânın yazabileceği ve yazılımcıya gerek kalmayacağı gibi deli saçması iddialar havada uçuşuyor. 4 yıllık eğitimcilik ve 10 yıllık geliştiricilik tecrübeme dayanarak bu konuyu inceleyeceğim. Özetle, yapay zekâya karşı değilim, yapay zekâ ile kendimizi geliştirmek yerine kontrolü yapay zekâya devretmeye karşıyım. Sebebini merak ederseniz buyurunuz okuyunuz.
Bu yazıyı okumadan önce birkaç yazımı okumuş olmanızı öneririm. Öncelikle yazılım nedir diye sorduğum yazıma göz atabilirsiniz. Sonra yazılımı gerçekleyen yazılımcı kimdir sorusunu incelemiştim. Ayrıca daha çok tecrübe gerektiren yazılım mimarlığı konusuna da değinmiştim. Bir de eğitimcilik tecrübem ile yazılım eğitimleri konusunda yazmıştım. Bu yazıları okuduğunuzda yazılımın azımsanacak veya küçümsenecek bir alan olmadığını fark edeceksiniz. Yazılımcının da geniş bir alanda yetenekler kazanmak ve güncel kalmak gibi zorunluluklarının olduğunu anlayacaksınız. İleri seviyede mimari işine girişildiğinde sorumluluk alanının daha da genişlediğini ve uzmanlık kelimesinin ne kadar önemli olduğunu göreceksiniz. Bütün bu süreçler içerisinde yazılım öğrenmenin çok emek gerektirdiğini ve bir öğretici yol göstermediğinde yolda kaybolunacağını da anlamış olursunuz diye düşünüyorum.
Şimdi konuyu 3 başlığa ayıralım. 1. Yapay zekâ nedir neler yapar diye soralım. 2. Yazılım konusunda yapay zekânın ne kadar maharetli olabileceğini konuşalım. 3. İşleri yapay zekâya devretmenin olası sonuçlarından bahsedelim. 4. Sonunda anti yapay zekâ gibi bir tarikat kurup bir mağaraya kapanalım :)
Yapay zekâ bir çıkarım makinesidir. Çıkarım nedir? Elinizde 2 adet top varsa bunların rengini birbirinden ayırmak akıldır. Çıkarım ise gelecek olan yeni bir topun renginin ne olabileceğini kestirmektir. Çıkarım yapmak için önceden verilen bazı bilgilere, istatistiklere veya çıkarımlara ihtiyaç duyarsınız. Bu şekilde öğrendiğiniz şeyler üzerinden elinizde olmayan şeyleri türetebilirsiniz. Çok basit bir mantık aslında. Detaylara inmemizin gereği yok. Aslında benim de çok detaylı bilgi sahibi olduğum söylenemez. Ama zamanında makine öğrenmesi konusunda sınıflandırmaları görmüş ve bir java projesinde uygulamıştım. Bu uygulama yüksek lisans tezimdi ve insanların yüz ifadesini ayırt edebiliyordu. Bunun için önce yüz ifadelerinin ne şekilde göründüğünü öğretiyordum. Sonra da kamera karşısına geçip çeşitli suratlar yapıyordum. O da önceden bildiği yüzlerle karşılaştırıp çıkarım yapıyordu. Aslında yarım yapay zekâ sayılabilir.
Peki bu basit mantık günümüzde nerelerde kullanılabilir, yapay zekâ neler yapabilir? Aslında gündelik hayatta neredeyse her yerde yapay zekâ devreye girebilir. Çünkü hayatımızda sürekli veriler akıp durmaktadır. Çok basit örnekler vereyim: Satış rakamları veya istatistikleri, sanayide arabaların bozulma oranları, insanların yaptıkları alışverişler, insanların beraber takıldığı kişiler, telefonlarımızla çektiğimiz resimler, tıbbi görüntülemeler, moleküler yapılar, savaşta taktikler, insanların kullandıkları diller... Daha çoook uzun bir liste sayılabilir. Bunların hepsi veri içeriyor kendi doğasınca. Verinin olduğu her yerde bir sınıflandırma vardır genelde. Mesela 1000 adet araba satmış olsanız bu başarı olabilir ama 50 adet başarısız sayılabilir. Bakın hemen sınıflandırdık ve bu sınıflandırmayı öğrendik. Bu da gösteriyor ki hayatta yaptığımız birçok şeyi verilerle ifade edebilir ve sınıflandırırsak, yapay zekâya bunu öğretebiliriz. Sonra yapay zekâ da bu öğrendikleri ile 70 adet satışın kötü sayılabileceğini söyleyebilir mesela.
Burada benim yıllardan beri merak edip tekrar tekrar sorduğum bir soruyu tekrar soracağım. Günümüz yapay zekâları bu muazzam bilgiye nasıl sahip oldu acaba? Çünkü ChatGPT, Gemini, Perplexity, DeepSeek gibi yapay zekâ araçları ile insan gibi konuşurken neredeyse her konuda çok detaylı bilgi sahibi olduklarını görüyorsunuz. Acaba bu verileri bizim rızamız olmadan veya rızamız olduğunun farkına varmadan mı alıyorlar? Neyse bu sorunun muhatabı aslında siz değilsiniz. Muhataplarının da beni umursayacağını düşünmüyorum şimdilik :)
Yani görünüşe göre hayatta veri ürettiğimiz her alanda yapay zekâ mümkündür. ChatBot diye aradığınızda karşınıza bir sürü dev proje çıkıyor. Yazdığınız ifadeyi resime veya videoya dönüştüren birçok araç da var. Bunlar, internetin yayılmasından sonraki en büyük devrim. (Agent 'ları sonra konuşacağız) Elimizde eskisine oranla belki de 100 kat daha fazla potansiyel var. Birşeyler öğrenmek veya üretmek istediğimizde yapay zekâ bize internette arama yapmaktan fazlasını sunuyor. Bize birşeyler öğretebiliyor, bizi yönlendirebiliyor, hatalarımızı giderebiliyor. İnsanın kendini geliştirmesi için çok elverişli bir zamanda yaşıyoruz. Bu yüzden herkesin mutlaka az yada çok yapay zekâ ile uğraşması gerektiğini düşünüyorum. Ben biraz fransızca öğrenmek için örnekler istemiştim ve excel dosyasına doldurmuştu. Ayrıca kitap ve yazar tavsiyesi de almıştım.
Şimdi gelelim işin yazılım kısmına. Kod yazmak bazen yemek yapmak gibi gerekli malzemeleri gerektiği şekilde karıştırmak gibidir. Aslında 3-5 satır kodu alt alta yazdığımızda çok da bir marifet göstermiş değiliz. Hatta günümüzde bazı kodlar o kadar sıradan hale geldi ki, 10 yıllık geliştirici de olsa 1 yıllık geliştirici de olsa kodunu ayırt edemeyebilirsiniz. Zaten boilerplate dediğimiz sürekli herkesin yazdığı aynı kodlar da tekrar eder durur projelerde bazen. Peki şimdi ben neden bu kadar gömdüm yazılımcılığı? :)
Aslında amacım yazılımcılığı küçümsemek değil. Yapay zekânın önceden bildiği şeyler üzerinden bir algoritma ile yeni birşey çıkardığını söylemiştim. Kod yazma konusunda yapay zekâ insan zekâsının alamayacağı kadar bilgiye sahip olup, bunları değerlendirip, doğru sonucu bulmak konusunda gerçekten muazzam yeteneğe sahip. Bu yadsınamaz bir gerçek. Dünya üzerinde gelmiş geçmiş hiçbir insan, yapay zekâ kadar koda hâkim olamaz. Peki ben şimdi de insanları neden gömdüm :)
Aslında kötü birşey söylemiyorum. Yapay zekâ tabi ki dünyada yazılmış milyarlarca satır kodu alıp işleyebiliyor ve hatta hangisinin iyi veya kötü olduğunu bile yorumlayabiliyor. Bu tam olarak da bir yazılımcının ihtiyaç duyduğu şey. Ama dikkat ederseniz yapay zekâdan faydalanmayı önceliyorum. Nasıl olsa yapay zekâ biliyor diye yan gelip yatmayı ve işleri yapay zekâya bırakmayı mantıklı görmüyorum. O şekilde yeteneklerimizi kaybederiz ve yetenek kaybetmek pahalıdır, para ile yerine koyulabilir.
Şimdi benim yazılım hakkında yazdığım eski yazılarıma da bakarsak şunları sormak istiyorum. Yapay zekânın bir projede, projeyi bozmadan, en az satır kod ile değişiklik yapmasını istediniz mi hiç? Veya eski bir kütüphaneyi kullanmak zorunda olarak uygulamanın bir modülünü güncelleştirmesini istediniz mi? Veya beraber kullanıldığında birbirini etkileyebilecek olan kütüphanelerin var olup olmadığını hiç sordunuz mu? Veya eski bir projede gereksiz kodların silinmesi için o projeye bağlı olan farklı projeleri analiz etmesini istediniz mi? Veya bir bankanın mobil ekranında kredi çekerken alınan bir hatanın arkadaki web serviste nerede kaynaklanabileceğini sordunuz mu?
Aslında "yapay zekâ sıkıyorsa bunu da yapsın" diye bakmıyorum olaya. Günümüzde bu yazıyı yazarken son çıkan Manus gibi otonom yapay zekâ araçları var. Tek komut ile size bir uygulamayı baştan sona yazabiliyorlar. Eminim yukarıda saydığım işlemler ile ilgili de birşeyler yapabilir, kodlar elinin altında olduğu sürece. Ama ben sorulara devam etmek istiyorum.
Mesela çok fazla yük altında bir uygulamanın hangi dilde kodlandığında nasıl davranabileceğini sordunuz mu? Veya aynı anda binlerce kişinin bir youtube videosunu beğenmesi durumunda beğeni sayısının sistemde nerede nasıl tutulabileceğini, arayüzün nasıl olması gerektiğini, veri tabanı ile nasıl konuşulması gerektiğini sordunuz mu? Veya reactjs uygulamasında durduk yere component 'in re-render edilmesi durumunda projeyi çökertmeden nasıl kodları değiştireceğini sordunuz mu? Veya hibernate ile one-to-many ilişkilerde cascade 'in arayüzden işlem yapılırken neden transaction hatası verdiğini sordunuz mu?
Eminim bunlar konusunda da yapay zekânın bir fikri olacaktır. Aslında hala yapay zekânın önüne geçebilmiş değiliz. En iyi ve en tecrübeli yazılımcı bile yapay zekânın engin bilgisi karşısında küçük kalıyor. Fakat sorularda birşey dikkatinizi çekiyor mu? Sorularımın neredeyse hepsi belli bir yazılım bilgisi altyapısı veya sistem bilgisi veya proje bilgisi gerektiriyor. Yani bu soruları soran kişi boş değil ve benim 10 yıllık birikimim olmasa bu soruları soramam bile. O zaman da yapay zekâya bana kod üret dediğimde ürettiği kod ile ilgili hiçbir fikrim olmaz. O zaman "Vibe Coding" denen saçmalıkta ölene kadar bocalar dururum. Yapay zekânın hatalarına hata katma ihtimali ile korkudan tir tir titrerim. Yapay zekâ tanrılarına kodu anlaması ve bana iş bırakmaması için dua eder dururum. Sürücüsünü bilmediğim bir araca atlayıp gitmiş olurum. İşte risk burada.
Günümüzde zaten fullstack developer diye bir kavram yazılımda ustalaşmanın altını oydu epeyce. Sonra "her türlü kod yazılır" gibi bir yaklaşımı benimseyenler türedi. Şimdi de en tehlikelisi: Artık kod yazmaya gerek yok düşüncesi geliyor. Yapay zekâ sırf milyarlarca satır koda hâkim olduğu için tecrübe ve vizyon dediğimiz şeye de sahipmiş gibi davranılıyor. Zaten ayağa düşürülmüş olan yazılımcılık iyiden iyiye çoluk çocuk işi gibi lanse ediliyor. Tabi burada yapay zekâ araçlarının reklam amaçlı sallamaları da söz konusu.
Normal bir yazılımcı projesini önce tasarlar. Sonra bu tasarımı gerçeklerken vizyonunu kaybetmeden ve olası hataları gözeterek kodunu büyütür. Kodu bittiğinde güncelleme gerektiğinde yine vizyonu kaybetmeden, kodları daha karmaşık hale getirmeden güncelleme yapar veya gerekirse esnek mimariler ile yeni modüller ekler. Bütün bunları iş gereksinimlerini de göz önüne alarak yapar. İnsanlarla ilişkiler kurar, işlerin tamamlanması için tahminler ve araştırmalar yapar...vs. Daha bu yazdığım en basit yazılımcı seviyesi.
Şimdi de şunu söyleyebilirsiniz. Peki o zaman olası hataları ve açıkları da yapay zekâya soralım. Proje dökümantasyonunu verelim. Bize projenin yazılacağı dili de öğretsin ve öğrenmemiz için yol haritası çizsin. Böyle sanılıyor ki yapay zekâya sihirli kilit sorular sorarım ve bana konunun bütün detaylarını anlatır ben de bir çırpıda uzman olurum. Velev ki yapay zekâ size java öğrenmenin kilometre taşlarını sıraladı. Sonra bunları açıkladı. Bu size bir projede çalışma deneyimi mi kazandıracak? Bu size sistem üzerinde düşünme vizyonu mu kazandıracak. Hadi diyelim yapay zekâya yazdığı bütün projeyi dökümante etmesini söylediniz. Elinizde sizin yazmadığınız ve muhtemelen anlamadığınız bir proje var. Hayırlı olsun, 10 dakikada legacy koda sahip oldunuz. Bu koda kendiniz dokunmak zorunda kalırsanız, ki yapay zekâ araçlarının fiyatları bir anda katlanırsa buna mecbur kalabilirsiniz, önünüzde dağ gibi iş var. Dili öğreneceksiniz, detaylarını öğreneceksiniz ki hatalar yapmayasınız, sonra proje dökümantasyonu ile projeye hâkim olacaksınız. O zaman junior - mid yazılımcı oldunuz zaten günün sonunda :)
Hayır diyelim ki yine de inat ettiniz. Sektörde yaşlananları yüksek maaş alıyorlar diye şutladınız. Junior yazılımcılara büyük kompleks projeleri yapay zekâ ile yaptırdınız. Bu kişiler kendilerini geliştirmezse bundan 5-6 yıl sonra elinizde yetişmiş yazılımcı kalmayacak. Yapay zekâ mahkûmu olacaksınız. Yada gece gündüz startup 'lar gibi çalışıp ya kodları baştan yazacaksınız yada deneyimsizlere gökten deneyim download etmeye çalışacaksınız.
Peki diyelim ki yapay zekâyı öğrenmek için kullanmak istediniz. Yazılımcılar yapay zekâ ile konuşarak kendilerini geliştirsin istediniz. Bu sayede düşük maaşlı elemanlar da çalıştırabileceksiniz. Eğitim tarafında şöyle bir sıkıntı var. Eğitim sadece okuyarak veya izleyerek olan birşey değildir. Elinizi koda batırırsınız. Ama dahası da var. Görsel ve işitsel olarak girdileriniz olur. Hoca size birşey sorar bazen bilemezsiniz. Bazen kafanıza takılan bir soruya hoca tam beklediğiniz cevabı verir ve cuk oturur. Bazen hoca bir espri yapar ve o espri ile konu aklınızda kalır. Dahası birisi size tecrübelerini de aktarır. Bu tecrübeleri sayesinde öğrendiğiniz şeyler uygulandığında veya uygulanmadığında nelere sebep olabileceğini de görürsünüz, fikriniz olur. Bazen hoca size kendi projelerinden bildiği detayları gösterir. Bazen sektörde gördükleri üzerinden size vizyon katar. Hatta belki de hoca bir kelimeyi sürekli yanlış söylüyordur ve hafızanıza kazınır. Yani eğer bir gün yapay zekâ ile java fullstack developer eğitim videoları hazırlanırsa, ki bu da pek zor değil, ilk bakacağım şey bu videoların insan gibi olup olmadığı olacaktır. Dediğim gibi yapay zekânın sektör tecrübesi ve yaşanmışlıkları yok. Bu eksiklik mutlaka hissedilecektir diye düşünüyorum.
Yapay zekâ işleri hızlandırmak ve gerektiğinde danışılmak üzere kullanılmalı. Aksi takdirde birikiminizi ve yeteneğinizi kaybedersiniz. Daha az eleman çalıştırmak veya daha düşük maaş teklif etmek için "senin yaptığın işi yapay zekâ da yapar" gibi saçma sapan bir argüman üretmeyiniz. Yapay zekâ sizin süper gücünüz değil, süper imkânınız. Günün sonunda "işini bilmeyen çavuşlar döner ... avuçlar" sözü hala geçerli. Ben mesela resim tekniklerini bilmediğim için yapay zekâya 2 saatte bir resmi zor çizdirdim. Çünkü renkleri dağıt dediğim zaman saçma şeyler sundu bana. Aslında belki de sulu boya resmi falan demeliydim belki de ama daha resim nasıl ifade edilir onu bile bilmiyordum ki.
Peki şimdi yapay zekâ karşıtı bir tarikat mı kuracağız? Tabi ki hayır. Artık kendimizi geliştirmek için rehberimiz olabilecek ve hiç sıkılmayan bir ortağımız var. Kendisinden faydalanarak kendimize yeni yetenekler katmalıyız. (Aslında spesifik yetenekler aradığınızda veya yeteneğinizi paraya çevirecek müşteriler aradığınızda benim öğret bakalım isimli projemi de kullanabilirsiniz.) Tabi ki yazılım dünyasında artık basit bir proje için 1 saat harcamak yerine Manus veya ileride çıkacak alternatiflerini kullanmak mantıklıdır. Veya bir sistem tasarlamak için fikir danışmak da mantıklıdır. Ama bu hazırcılık furyası yazılımcılardan vazgeçtirecek seviyeye gelirse, esasında gelişen şey yapay zekâ değildir, değerini yitiren şey yazılımcılığın alamet-i farikasıdır.
Teknoloji meraklısı bir bilgisayar mühendisi olarak yapay zekâ beni epeyce heyecanlandırıyor. Ama gerçekçi olmak lazım. Merak ediyorum, bu kadar süper bilgisayar (bir yandan da kripto madenciliği) çalışırken bunun bir maliyeti olmuyor mu? Bu konuda elektrik ve su kullanımı bence sorgulanmalı. Dünyayı zaten kirletiyor ve değiştiriyoruz. İnsan beyni milyarlarca nörondan ve belki trilyon tane yoldan oluşuyor. Bilmek ve yapabilmek maliyetli bir iştir. Biz şimdilik ucuza kullanıyoruz gibi geliyor bana. Bir de yapay zekâ tekelleri oluşursa daha da fena. Neyse, belki bir gün yapay zekânın oluşturabileceği sorunları da konuşuruz. Yapay Fırtına diye bir kitap yazmayı düşünmedim değil, bir kısmını yapay zekâya yazdırsam falan belki enteresan olabilir. Bir sonraki yazıda görüşmek üzere :)
Bir yorum yazabilirsiniz