- Son dönemde kodlama eğitimi ortamında “tutorial cehennemi”nin yerini “vibe coding cehennemi” adı verilen yeni bir sorun almaya başladı
- Tutorial cehennemi "tutorial olmadan hiçbir şey yapamama" durumuyken, vibe coding cehennemi "yapay zeka olmadan kod yazamama ve yapay zekanın ürettiği kodun nasıl çalıştığını anlayamama" durumunu ifade ediyor
- Yapay zeka araçlarının aşırı kullanımı öğrenme motivasyonunu düşürüyor ve yapay zeka okuryazarlığı düşük olan kişilerin yapay zekayı daha fazla kullanması gibi paradoksal bir durum ortaya çıkıyor
- Yapay zeka araçları doğru kullanıldığında öğrenmeye büyük destek sağlayabilir, ancak gelişigüzel sadece ‘cevabı alma’ odaklı kullanım yapıcı anlayış geliştirmeyi engelliyor
- Öğrenme sürecinde bizzat düşünüp kendi başına çözmeye çalışma çabası kilit önemde; tutorial ve yapay zeka desteği olmadan problem çözme deneyimi biriktirme yaklaşımı önemli
Sorunun arka planı: Tutorial cehenneminden vibe coding cehennemine
- 2019’da kodlama eğitimindeki başlıca sorun "tutorial cehennemi" idi
- Tutorial’ları takip etmeyi başarırsınız ama tek başınıza hiçbir şey yapamazsınız
- Asıl programlamadan çok programlamayla ilgili videolar izlemeye daha fazla zaman harcanır ve temel kavramlar anlaşılmaz
- Sonuçta yalnızca yüzeysel bilgi birikir; iç işleyiş anlaşılmadığı için gerçek dünyada kodu kendi başına yazamaz hale gelinir
- Boot.dev bunu çözmek için üç noktaya odaklandı
- Derinlemesine müfredat: Geleneksel üniversite dışında da CS temellerini öğrenme ihtiyacını vurgulamak
- Uygulama odaklı yaklaşım: Her kavramı öğrenirken doğrudan kod yazmak
- Videodan çok zengin metni güçlendirmek: Videolar pasif tüketime dönüşme riski taşır
- 2019’da yüz binlerce, hatta milyonlarca izlenme alan uzun YouTube dersleri bugün 50 bin izlenmeye bile ulaşmakta zorlanıyor
- FreeCodeCamp, Traversy Media, Web Dev Simplified gibi kanallar bu eğilimi gösteriyor
- Ancak "learn to code" için Google Trends verileri ilginin hâlâ yüksek olduğunu gösteriyor
- Boot.dev’e her gün yaklaşık 1.300 yeni kullanıcı kaydoluyor; son 18 ayda tutorial cehennemine dair şikâyetler azalsa da yeni bir zorluk biçimi ortaya çıkmış durumda
Vibe coding cehenneminin tanımı
- Tutorial cehenneminin özellikleri
- "Tutorial olmadan hiçbir şey yapamam"
- "Dokümantasyonu anlayamıyorum, o yüzden videoya ihtiyacım var"
- "Basit işler için bile karmaşık framework’ler gerekiyor"
- Vibe coding cehenneminin özellikleri
- "Cursor’ın yardımı olmadan hiçbir şey yapamam"
- "Harika bir tower defense oyunu yaptım. Link burada http://localhost:3000"
- "Claude’un image lazy-load için neden 6,379 satır eklediğini bilmiyorum"
- Günümüzde kendi kendine öğrenenler çok şey üretiyor, ancak yazılımın nasıl çalıştığına dair zihinsel model geliştirmeyen projeler inşa ediyor
- Yapay zekanın halüsinasyonlarıyla uğraşıyor, sadece test geçirmeye odaklanan botlarla boğuşuyor ve gerçek problem çözmek yerine yapay zekanın ürettiği koda körü körüne güveniyorlar
Yapay zeka ile kodlamanın geleceği ve bugünkü gerçeklik
- Kısa vadede yapay zekanın geliştiricilerin yerini tamamen almayacağı görüşüne olumlu bakıyorum
- "Yapay zeka işleri elinden almadan önce 6 ay kaldı" denmesinin üzerinden 3 yıl geçti ama hâlâ geliştirici işe alıyoruz
- GPT-5 yayımlandı ama GPT-4’e göre yalnızca kademeli bir iyileşme sundu; bu da AGI’nin hemen kapıda olmadığının bir işareti olarak yorumlanıyor
- Her gün yapay zeka araçları kullanıyorum ama gerçekten ne kadar üretkenlik artışı sağladığından emin değilim
- Yapay zeka daha üretken mi yapıyor, yoksa daha tembel mi; belli değil
- 2025 araştırma sonucu: Geliştiriciler yapay zekanın üretkenliği %20-25 artırdığını varsaydı, ama gerçekte %19 yavaşladılar
- 7 trilyon dolarlık yatırım düşünüldüğünde hayal kırıklığı yaratan bir sonuç
Yapay zeka ve öğrenme motivasyonunun düşmesi riski
- Yapay zeka kullanım kültürü, öğrencilerin motivasyonunu olumsuz etkileyebilir
- Yapay zeka çılgınlığında (balon mu?) en kaygı verici nokta, "Neden öğreneyim ki? Yapay zeka zaten her şeyi biliyor" diyen bir kuşağın ortaya çıkması
- Eğer yapay zeka gerçekten tüm beyaz yaka işleri devralamayacaksa, yalnızca borsa balonu değil, aynı zamanda eğitimli iş gücü kıtlığı da yaşayabiliriz
- Teknik geçmişi olmayan yatırımcılar “yapay zeka zaten kodlamanın tamamının yerini aldı” diye yanlış anlıyor, kıdemli geliştiriciler ise hâlâ yapay zeka araçlarını günlük işlerine entegre etmenin faydalı yollarını bulabilmiş değil
- Yapay zeka okuryazarlığı düşük olanların yapay zekayı daha çok kullanma eğilimi endişe verici
- Bu, nihai bir ‘Dunning-Kruger’ tuzağı gibi işliyor: bilgisi az olan kişi, tam tersine, kendini olduğundan daha bilgili sanıyor
- Öğrenciler de "yapay zeka zaten biliyor" diyerek kişisel gelişimin anlamsız olduğu sonucuna varıyor
Yapay zeka öğrenme için faydalı mı?
- Toplumun kod öğrenmeye ilgisi hâlâ yüksek
- Yapay zeka öğrenmeye faydalı olabilir, ancak iki yapısal sorun var
-
Birincisi: yağcılık (sycophant) sorunu
- Yapay zeka sohbet botları, soru soranın görüşüne aşırı uyma eğilimi gösteriyor
- “ROAS (reklam harcaması getirisi) hakkında” sohbet ettiğinizde, aynı verilerle soru yönüne göre tamamen zıt sonuçlara varabiliyor ve hepsini uzman tonuyla, yüksek özgüvenle anlatıyor
- Bu da öğrencinin doğrulama, eleştirel düşünme ve hataların yüzüne vurulması deneyimini yaşamasını engelliyor
- Bir uzmana sormamızın nedeni, yanlış olduğumuzda bize bunu söylemesidir
- IRC sohbetleri ve Stack Overflow bunu iyi yapıyordu (hatta belki fazla iyi)
- LLM (büyük dil modeli) sohbet botları, mevcut öğrencilerin temel yanlış anlamalarını düzeltmekte güçlü bir eğilim göstermiyor
- Günümüz öğrencileri LLM’lerle rahat sohbetler yapıyor ve ihtiyaç duyduklarını değil, duymak istediklerini duyuyor
-
İkinci sorun: öğrenciler gerçekten bir ‘görüş’ istiyor
- Yapay zeka aşırı dengeli bir tutum sergiliyor
- "Bazıları X diye düşünüyor, bazıları Y diye düşünüyor"
- Bu da öğrencinin hangi tarafa katılacağına karar vermesini zorlaştırıyor
- "Kapitalist rolü yap" veya "Marksist devrimci rolü yap" diye prompt verilse de tatmin edici sonuçlar alınamadı
- Öğrenciler gerçek deneyimden doğan görüş ve yorumları duymak istiyor
- DHH’nin Turbo’dan TypeScript’i kaldırma nedeni
- Anders Hejlsberg’in TypeScript’in JavaScript geliştiricileri için çözdüğü şeylere dair görüşleri
- Her yazarın önyargısı ve bağlamının açıkça göründüğü gerçek görüşler sayesinde ince ayarlı zihinsel modeller oluşur
- LLM’lere özgü nötr ve temkinli yanıtlar, bilginin gerçekten içselleştirilmesini zorlaştırır
Yapay zekanın öğrenmeye gerçekten yardımcı olduğu durumlar
- Yapay zeka doğru kullanıldığında öğrenme için olağanüstü bir araçtır
- Kod öğrenmek için bundan daha kolay bir dönem hiç olmamıştı
- Boot.dev’in Boots (yapay zeka eğitim destek aracı) örneği
- Öğrenciler eğitmen çözümünü (ideal cevabı) görmektense AI tutor (Boots) ile sohbet etmeyi neredeyse 4 kat daha fazla kullanıyor
- Boots, genel amaçlı sohbet botlarından farklı olarak şu şekilde öğrenmeye yardımcı oluyor
- Cevabı doğrudan vermemesi için önceden promptlanmış durumda
- Sokratik yöntemi kullanarak öğrenciyi problem üzerine daha derin düşünmeye yönlendiriyor
- Eğitmenin çözümüne erişebildiği için doğru cevaba dair halüsinasyon üretme olasılığı çok daha düşük
- Eğlenceli bir karaktere sahip (büyücü ayı)
Vibe coding cehenneminden çıkış yolu
- Sonuç olarak, ister tutorial cehennemi ister vibe cehennemi olsun, ‘işi başkasına bırakmayıp kendin yapma deneyimi’ son derece önemli
- Tutorial cehennemi: videoyu kapatıp bizzat kod yazma deneyimi kazanmak
- Vibe cehennemi: Copilot benzeri yapay zeka otomatik tamamlamayı kapatıp, problemi kendi başına çözme deneyimi edinmek
- Kaçınılması gerekenler:
- Editör içindeki yapay zeka otomatik tamamlama
- Agent mode ve yapay zeka otomasyon araçlarıyla projeyi yürütmek
- Yararlanılabilecek şeyler:
- Soruları yanıtlayan, kavramları açıklayan ve örnekler sunan sohbet botları
- Sokratik yöntemle soru sormaya yönlendiren sistem prompt’ları ile derin düşünmeyi teşvik etmek
- İddia ileri sürerken kaynak göstermesini ve dokümantasyona link vermesini isteyen sistem prompt’ları ile bilgi güvenilirliğini artırmak
Temel ilke
- Öğrenme kaçınılmaz olarak rahatsız edici olmalı
- Tutorial cehennemi, başka birinin kod yazmasını izleyerek bu rahatsızlıktan kaçmayı sağlar
- Vibe coding cehennemi, yapay zekaya kod yazdırarak bu rahatsızlıktan kaçmayı sağlar
- Gerçek öğrenme; tıkandığınızda, hayal kırıklığı yaşadığınızda ve en önemlisi problemi çözmeye mecbur kaldığınızda gerçekleşir
- İnsan sinir ağlarının yeniden kablolanma biçimi budur
- "Öğrenme zor olmalı" fikrini aşırı genelleştirmek, berbat eğitim tasarımını meşrulaştıran bir bahaneye dönüşebilir
- Yazar bunu savunmuyor
- Bir kavram mümkün olan en iyi şekilde anlatılsa bile, öğrenci onunla yine de boğuşmalı ve onu yeni bir bağlamda kendi başına kullanabildiğinde gerçekten anlamış olur
- Gerçek öğrenme, bizzat tıkanıp, hayal kırıklığı yaşayıp, bunu kendi gücüyle aşma sürecinde tamamlanır
3 yorum
Biraz farklı bir bağlam olsa da, tutorial hell’in ortaya çıkmasının bir nedeni de framework eğitimlerinin temel bir CS eğitim materyali olarak kullanılmaması.
Django eğitimine bakıp bir poll app yapmış bir aceminin tek başına blog yapamamasının sebebi, Django eğitiminin HTTP’nin ne olduğu, template, ws’nin ne olduğu, db’nin ne olduğu gibi şeyleri zaten bilen kişilere Django’yu anlatmak için yazılmış olması; web’i anlatan bir yazı olmaması. Django eğitiminde çok fazla bağlam atlanıyor ve sanırım tutorial hell’in ortaya çıkma nedeni de bu.
Django eğitimini bugün ilk kez programlama yapmış birine yönelik olacak şekilde yeniden yazmayı denemek de güzel bir görev olabilir. Önce HTTP’nin yapısını açıklayıp, ardından Django’nun her bir öğeyi nasıl ele aldığını anlatmak gibi.
Gerçekten harika bir görüş!
Hacker News görüşü
"Tutorial Hell" sözüne çok katılıyorum; 6 saatlik bir dersi izleyip kodu adım adım takip edebiliyorsun ama iş sıfırdan bir şey yapmaya gelince elin kolun bağlanıyor, işte tipik tutorial hell tam da bu. Bu yüzden tarihsel olarak çıraklık (apprenticeship) en etkili öğrenme yöntemi olmuş; junior, senior’ın yanında yetişiyor, usta da yukarıdan bütün işi sürüklüyor, hem projeyi yönetiyor hem rehberlik ediyor. Geliştirici topluluğumuzun uzun süre lonca gibi örgütlenmemiş olması üzücü; bence 1980’lerin sonundan itibaren böyle olmaması gerekirdi. Eğer bir lonca yapısı olsaydı, geliştirici sayısı muhtemelen çok daha az olur, sektörün gelişimi de bambaşka bir yöne gidebilirdi.
Bu sadece yeni başlayanlar için değil; deneyimli geliştiriciler de kendilerine "hadi şimdi sıfırdan proje başlat" denince zorlanır. Çoğu zaman mevcut bir codebase üzerinde çalışırız, yeni bir uygulama gerektiğinde de genelde template ya da copy-paste ile başlarız. Gerçekten tamamen yeni bir şeyi en baştan yapmak nadirdir. Bir elektrikçinin yeni inşa edilen binaya tesisat döşemesi gibi, bir şirkette çalışan geliştiricinin de gerçekten her şeyi sıfırdan kurması pek sık olmaz. Çıraklık modeli de temelde bu yapıyı çok değiştirmez.
Benim deneyimime göre iyi üniversiteler, öğrencileri kademeli ve pratik ödevlerle yetiştiriyor. Önce basit veri yapıları, algoritmalar ve bulmacalar çözüyorsun; sonra OS, veritabanı, kalıcı veri yapıları, derleyici, CPU, simülasyon, makine öğrenmesi modeli yapmaya kadar gidiyor. Tek bir fonksiyondan başlayıp giderek daha büyük şeyleri kendi ellerinle inşa ediyorsun. Böyle bir eğitim aldığım için gerçekten minnettarım. İlgili bağlantı
Ben LLM’leri kodlama öğrenirken usta-çırak ilişkisine benzer şekilde kullanıyorum. LLM yalnızca ben istediğimde ilerliyor; açıklama yapıyor, yön gösteriyor ama yazmayı ben yapıyorum. Bu, yeni ders veya tutorial aramaktan çok daha iyi. Aslında tutorial hell, kendini öğretmen sanan insanların ürettiği bir olgu. Sayısız kitap ve ders de sonuçta pratikte bir şey öğretmeyi başaramıyor. Bugünkü kodlama eğitimi modelinin tamamen yanlış olduğunu düşünüyorum. Artık yeni bir dilin ya da kütüphanenin güncel dokümantasyonunu LLM’e özetletmeyi ya da planı kendim çıkarmayı tercih ediyorum. Yine de LLM’in halüsinasyon görüp görmediğinden hiçbir zaman tam emin olamamak biraz can sıkıcı.
Okulu çok erken bıraktım; sebebi sıkıcılık ve bayat eğitim yöntemleriydi. Yazılım mühendisliği çırağı olarak sahaya atıldım ve okul müfredatı bana hiç fayda sağlamadı. 90’ların sonunda her şey hata yapma ve deneme-yanılmadan ibaretti; ben, ustam ve onun ustası hepimiz doğrudan sahada öğrendik. Linux ile ISDN router yaptık, web sitesi sunucuları kurduk, HTML, Perl, PHP kullandık; gerçek DevOps ve mühendisliği yaşadık, gerçi o zaman bu terimler bile yoktu. Dokümantasyonun neredeyse hiç olmadığı, yaratıcılık ve meydan okuma ruhuyla sınırların zorlandığı zamanlardı. Bugünün AI çağındaki vibe coding ile ruh olarak benzer yanları var; baskı çok daha yüksek olsa da gerçekten keyifli anılardı.
Teknoloji sektöründe mesleğe girişte gatekeeping olumsuz görülüyor. Bunun bir kısmı sektör içindeki kibirden geliyor, bir kısmı da sermayenin iş gücü arzını artırıp ücretleri düşürme isteğinden. Sonuçta düzgün mesleki standartlar kayboldu ve leetcode gibi aşağılayıcı mülakatlar, mesleğin kendisiyle ilgisiz biçimde fiili gatekeeper hâline geldi.
Her gün Zed Pro ve GPT ile kod yazan biri olarak, bu araçların gelişiminin modern programlamadaki verimsizliği açığa çıkardığını düşünüyorum. Modern web hem hayranlık uyandırıcı hem de korkunç. Bürokrasi, karmaşık kurallarla örülü olmak demekse, modern geliştirme bunun baş temsilcisi. En basit iş için bile olasılıksal otomasyon araçlarının rehberliğine ihtiyaç duymak biraz üzücü. Eskiden gençlere hep "önemli olan belli bir dili bilmek değil, sürekli yeni şey öğrenebilme yeteneği" derdim. Bazı trendler kalıcı olur ama sonuçta sürekli yeni araçlar ve diller öğrenmek zorundasın. Yaşımdan mı bilmiyorum ama bir noktadan sonra bu karmaşıklığın taştığını hissetmeye başladım. Eskiden programlama fazla elektrik mühendisliği ya da matematik gibiyse, şimdi de başka tür bir karmaşıklık yığıldı.
Ben de bu hissi paylaşıyorum. Hep SF filmlerindeki gibi, "enerjiyi öne aktarın!" dercesine parçaların ve sistemlerin her an kolayca uyarlanıp yeniden kullanılabildiği bir bilgi işlem ortamı istemiştim. Ama gerçekte Android telefonun kamerasını bir iPhone’a takmak bile neredeyse imkânsız bir görev.
Tam olarak ne demek istediğini anlamakta zorlanıyorum ama burada bürokrasi kelimesi biraz tuhaf kaçıyor. Aslında asıl temel beceri arama yapabilmek; neyi nasıl bulacağını bilen biri her şeyi yapabilir. Otomasyon araçları da özünde kitap ya da öğretmenden çok farklı değil. Bazı insanların bu beceride zayıf olması insan doğasının değişmeyen bir yanı; araçların gelişmesini suçlamak doğru değil.
Dokümantasyon yazmak, aramak ve okumak gerçekten çok zor; asıl büyük sorun bu. Bu yüzden öğrenmek de zor ama AI sayesinde öğrenmek daha kolaylaştı. Örneğin Unreal Engine gibi şeyleri bile AI şaşırtıcı derecede iyi anlıyor.
Sırtlandığımız bu sorunların hepsi, Brooks’un 'No Silver Bullet' metninde bahsettiği arızi karmaşıklık. LLM’ler bu karmaşıklığın içinden geçip diller ve framework’ler etrafında birikmiş bilgi silolarını da yıkıyor.
Eğer sektör bu kadar spekülatif şekilde biraz daha devam ederse, bir noktada programlamanın kendisi tamamen ortadan bile kalkabilir.
Artık herkes kod yazabildiği için, organizasyon düzeyinde kod miktarı yaklaşık 10 kat arttı. Ama reviewer sayısı aynı kaldığı için bunu kaldırmak mümkün olmuyor. LLM kod sanity check bile kullanamıyorsak ne yapacağız diye düşünüyorum. Dün gerçekten uzman olmayan biri Codex ile bir optimizasyon algoritması yazdı, sonra da benden onu iyileştirmemi istedi. Sorun şu ki kod tam bir felaketti: binlerce tamsayı kombinasyonunda kaba kuvvet araması yapıyor, kısıtları da düzgün uygulamıyordu, dolayısıyla ürettiği sonuçlara güvenilemezdi. Sonunda bütün gün kodu incelemekle geçti, üstüne bunun özünde işe yaramaz olduğunu yöneticilere sunumla anlatmak zorunda kaldım.
"LLM kod sanity check" sorusunun cevabı unit test. LLM, istendiğinde test kodunu ve test edilebilir kodu da gayet iyi üretiyor. Testler gerçekten kodu çağırıyor ve edge case’leri iyi kontrol ediyorsa, code review’dan çok daha hızlı oluyor. Buna performans testleri de dâhil olabilir. Gelecekte tanımlar ve testler merkezde olacak, fonksiyonun iç implementasyonunun nasıl yazıldığı giderek daha az önemli hâle gelecek. Bu da büyük bir bakış açısı değişimi.
Excel programlama vakasına bakmak yeterli. Önce herkes bunu küçümsüyor, sonra işler patlayınca şirket batmasın diye sonradan milyonlar harcayarak toparlamaya çalışıyorlar.
"Reviewer sayısı aynı" kısmına gelirsek, LLM’ler code review’da da yardımcı olabilir. GPT-5 bile off-by-one gibi yerel hataları ya da eksik return değerlerini bulmakta iyi. Ama daha üst düzey, bütün yapıyı kavramayı gerektiren sorunlarda hâlâ sınırlı. Gelecekte muhtemelen büyük codebase’ler düzenli olarak LLM’e fine-tune edilir ve tüm değişiklikler için birinci aşama reviewer olarak kullanılır.
OR (kombinatoryal optimizasyon) problemleri, doğaçlama kod yazan insanların fark etmeden çok özel bir algoritma alanına girmiş olmalarından kaynaklanıyor. Hatta bunu onlara söylesen bile, matematiksel teoriyi anlamadıkları için yine de kendi yöntemleriyle çözmeye çalışma eğilimindeler.
Böyle durumlarda şirket liderlerine teknik sunum yapıp mevcut durumun ne olduğunu açıkça göstermek, fiilen tek savunma yöntemi olabilir.
Yine "AI junior geliştiricileri mahvediyor, dolayısıyla senior yedeği krizi geliyor" argümanı dönecek sanmıştım; bu yazı dolaylı olarak biraz oraya da değiniyor ve genel olarak katılıyorum. Ama özellikle sycophancy kısmı çok çarpıcıydı. Eskiden ChatGPT benzeri arayüzlerin öğrenmeye yardımcı olduğunu düşünürdüm, ama YouTube ROAS örneği çok etkileyiciydi. Eğer soruyu nasıl sorduğuna bağlı olarak öğrencinin öğretmenin sonucunu istediği gibi eğip bükebildiği bir yapı varsa, sayısız acemi geliştirici yanlış yöne sürüklenmeye mahkûm demektir. Hatta AI "Boot" üzerinde denenen çeşitli prompting tekniklerinin yeterli olup olmadığından bile emin değilim. Sonuçta AI çağında bile gelişebilmek için birilerinin PR’larımı tekrar tekrar reddetmesi gerekiyor. O "birileri" henüz AI olamaz.
Benim deneyimimde, AI’dan scathing critique istesen bile seni iyi hissettirme yönelimi yine de araya giriyor. Eski GPT sürümlerinde de böyleydi, yenilerde de benzer. Hafif tuhaf bir his veriyor. Sonuçta bu araçlar en çok, gerçekten yardım almak isteyen ve LLM’lerin kendine özgü sorunlarının farkında olan kişiler için yararlı.
Bu aşırı onaylayıcı tavrı azaltmak için hep ters yönde bir önyargı ekleyip aynı şeyi iki kez soruyorum. Yine de benim fark etmediğim gizli önyargılarımı da güçlendirip güçlendirmediğini bilemem.
Acemi değilim ama sürekli yeni framework, dil ve algoritma öğrendiğim için AI autocomplete’in kötü olduğunu düşünmüyorum. Eskiden IntelliSense ve ReSharper autocomplete de yeni kütüphaneleri ya da dil özelliklerini öğrenirken çok yardımcı olurdu. ReSharper, eski tarz kod yazdığında yeni özellikler önerirdi; ben de onlardan çok şey öğrendim. AI tabanlı autocomplete bana bunun çok daha gelişmiş bir versiyonu gibi geliyor. Doğal biçimde öneriler sunuyor; istersen kullanırsın, istemezsen kullanmazsın, bu yüzden öğrenmeye de yardım ediyor. Sonuçta önerileri merakla okuyup anlamaya çalışma tavrın varsa, AI sayesinde öğrenmek kolaylaşıyor. Eskiden yaptığımız şey sadece Stack Overflow’dan copy-paste etmekti.
Geleneksel autocomplete, o scope içindeki tüm method, variable ve constant’ları gösterir, ayrıca dokümantasyona da bağlar. Hangi seçeneğin uygun olduğuna kendin karar verebildiğin için öğrenmek açısından gerçekten iyiydi. AI autocomplete ise daha çok, bağlam açıklaması olmadan Stack Overflow cevabını yapıştırmak gibi. Öğrenen kişi açısından bakarsak, Stack Overflow’da kendin arama yapmak ya da gerekirse chatbot’a prompt verip o kodun neden öyle olduğunu da anlattırmak daha iyi olabilir.
Bence burada ince bir fark var. Bir miktar deneyimin varsa, yeni bir dilde autocomplete kullanmak doğal gelir. Ama temeli olmayan bir aceminin ilk kez for döngüsü öğrenmesi bambaşka bir durum.
Ben AI agentic programming’i seviyorum. Bir şeyler üretmek beni mutlu ediyor, fikirleri denemenin bir parçası gibi. Kodu production’a koymadığım için başkalarının ne düşündüğünü umursamıyorum. Teknik olarak çok güçlü insanlarla konuşabilmek için de bir şeyleri kendin deneyip öğrenmiş olman gerekiyor. 10 yaşımdan beri programlamayı seviyordum ama profesyonel geliştirici olmadım. AI çağı gelince kodlama ve deney yapma sevgim yeniden canlandı. WASM gibi geleceğin web teknolojileriyle, farklı sistemlerle, bug avıyla ve her şeyi kendi tarzımda denemekle çok eğleniyorum. Cursor AI gibi araçlar git ayarlarımı bile otomatik yapıyor, ssh ile push etmek bile kolaylaşıyor. Elbette kendim de yapabilirim ama AI’a bırakıyorum. Çocukken C sözdizimiyle başlayıp bazı alışkanlıklarım katılaşmış olsa da, python backend, flask web server ve JavaScript frontend ile uğraşmak bana keyif veriyor. WASM Python hâlâ çok eksik ama denemeye devam ediyorum. Temelleri sağlamlaştırıp kendi tarzımda öğrenmek benim hoşuma gidiyor. Ayrıca mühendislerin çoğu şeyi gereğinden fazla karmaşıklaştırma eğiliminde olduğunu da sık sık hissediyorum.
AI autocomplete müthiş bir araç. Dokümantasyona bakmadan istediğin kod önerilerini alıyorsun, birkaç satırlık oldukları için gözden geçirmek de kolay. Büyük parçaları otomatik üretmediği için öğrenmeye zarar da vermiyor.
Acemi değilim ama Copilot sayesinde Rust öğrenmek kesinlikle kolaylaştı. Intellisense ile birlikte kullanınca sözdizimi yükü azalıyor ve dilin gerçekten önemli taraflarını öğrenmeye odaklanabiliyorsun. Rust kitabını açtıktan sadece bir hafta sonra çalışan bir araç yapabildim. Tabii bu beni senior engineer yapmadı ama "0’dan 1’e" eşiğini kesin biçimde düşürdü. Ben Copilot’a kod yazdırmıyorum; onu geliştirilmiş bir autocomplete gibi kullanıyor, sadece önerileri görüyor ve kabul edip etmeyeceğime kendim karar veriyorum.
Burada tekrar eden tema şu: çok deneyimli senior’lar, yeni dili bilmese bile "nasıl kod yazılacağını" bildikleri için bu araçlardan değer çıkarabiliyor. Dil değişse de code smell aynı kalıyor. Acemiler ise "code smell" kavramının ne olduğunu bile pek bilmiyor.
Ben de eskiden Copilot’un Rust öğrenmeme çok yardım ettiğini sanıyordum ama AI olmadan kendim kod yazınca işin aslında ne kadar zor olduğunu gördüm. Gerçekten bildiğine dair yanılsamadan kurtulmanın tek yolu, AI’yı kapatıp öyle öğrenmekti.
Eğitimdeki her türlü kestirme yol aynı sorunu taşıyor. Öğrenciler özel derste ödevlerini başkasına çözdürüyor ya da yalnızca açıklamayı dinleyince sınavı da yapabileceklerini sanıyorlar. Oysa açıklamayı dinlerken basit görünen şeyle, onu gerçekten kendi başına yapabilmek tamamen farklı beceriler.
Eğer AI birkaç yıl içinde gerçekten tüm white-collar işleri devralmayacaksa, sadece borsa balonu değil aynı zamanda eğitimli iş gücü kıtlığı da yaşayacağız gibi geliyor. Bende uyandırdığı his, "kuşağımın en parlak insanlarının böyle dağılmasını izliyorum" türünden bir şok.
Makale başlığı için genel olarak kullanılabilecek temsili bir ifade bulmaya çalıştım ama uygun bir şey bulamayınca elimden geleni yaptım. Daha doğru ve tarafsız bir başlık öneriniz varsa değiştirebilirsiniz. İlgili yönerge
"Anladım ama baştan yaz desen tamamen tıkanırım" kısmına çok katılıyorum. Başta sadece tutorial takip edip sonra benzer bir şeyi tek başıma yapmaya çalışınca tıkanmak, en acı verici ve zorlayıcı kısımdı. Ama aynı zamanda bu sancılı süreç, öğrenme yoğunluğu en yüksek deneyimdi. Sonrasında çok daha karmaşık ve çeşitli şeyler öğrendim ama o yoğunlukta bir öğrenmeyi bir daha yaşamadım. Lisedeki matematikte hissettiğim o baş ağrısı ve stres duygusuna benziyordu. Herkes için ortak bir deneyim olmayabilir diye düşünüyorum.