16 puan yazan GN⁺ 2025-02-07 | 6 yorum | WhatsApp'ta paylaş
  • Yazılım mühendisleri LLM’ler konusunda genel olarak iki büyük kampa ayrılıyor
    • Bir kesim bunun sektörü sarsacak devrim niteliğinde bir teknoloji olduğuna inanıyor
    • Diğer tarafta ise bunun sadece abartılmış bir seraptan ibaret olduğunu düşünenler var
  • Yazının yazarı, kişisel olarak LLM’leri faydalı kullandığını düşünüyor ve bunlardan etkili biçimde nasıl yararlandığını anlatıyor

Prodüksiyon kodu yazma

  • Kod yazarken Copilot otomatik tamamlama özelliğini her zaman kullanıyor
    • Otomatik tamamlama önerilerinin çoğu, fonksiyon argümanları veya tip girişleri gibi tekrarlayan boilerplate işlere karşılık geliyor
    • Asıl çalışma alanında (ör. Ruby on Rails), kendi yazdığı kodun daha iyi olduğunu düşünüyor
  • Uzmanlığının daha düşük olduğu alanlarda Copilot’un önerdiği mantığı daha fazla kabul ediyor
    • Örn: Golang veya C gibi dillerde küçük, taktiksel değişiklikler yapması gerektiğinde
    • Daha az aşina olduğu dillerin sözdizimini ve idiomatik kod stilini Copilot yardımıyla hızlıca kavrıyor
    • Bu alanlarda uzman bilgisi sınırlı olduğundan, mutlaka ilgili alan uzmanından inceleme alıyor
    • Böylece bir ölçüde “zeki bir stajyer” seviyesinde iş çıkarabiliyor, ancak doğrulama süreci şart

Tek seferlik kod yazma

  • Prodüksiyona alınmayacak tek seferlik kod yazarken LLM’leri çok daha agresif biçimde kullanıyor
    • Araştırma amacıyla bir kez çalıştırılıp atılacak kodlarda bakım ihtiyacı düşük oluyor
    • Örn: Bir API’den açık veriyi çekip sınıflandırmak ve regex uygulayarak basit doğrulamalar yapmak
  • Bu durumda LLM’lerle 2 ila 4 kat daha hızlı ilerleyebildiğini söylüyor
  • Bir kez kullanılıp atılacak kod yazımında LLM’ler son derece verimli

Yeni alanlar öğrenme

  • En yüksek fayda sağlayan kullanım örneği olarak, LLM’leri isteğe bağlı özel ders öğretmeni gibi kullanmayı gösteriyor
    • Örn: Unity’yi ilk kez öğrenirken ChatGPT-4o gibi modellere sürekli soru soruyor
    • Sadece “X nasıl çalışır?” değil, “X’in Y ile ilişkisi nedir?” gibi takip soruları da sorabiliyor
    • “Anladığım şey doğru mu?” gibi sorularla kendi kavrayışını da kontrol ettiriyor
  • Öğrenme sürecinde yazdığı notları doğrudan kopyala-yapıştır ederek gözden geçirtmek için de kullanıyor
  • Halüsinasyon endişesi
    • GPT-3.5’ten sonra halüsinasyonların genel olarak çok belirgin olmadığını hissetmiş
    • Günlük olarak öğrenmeye çalıştığı alanların çoğu zaten iyi oturmuş konular olduğu için yanlış yanıt riski düşüktü
    • Şimdiye kadar LLM’ler yüzünden yanlış bilgi öğrendiği bir durum yaşamamış

Son çare hata düzeltme

  • Gerçekten tıkandığında Copilot veya Claude’a tüm dosyayı ve hata mesajını gösterip yardım istiyor
    • Çoğu durumda LLM’ler kafa karıştırıyor ve doğru çözümü sunamıyor
    • Yine de arada, gözünden kaçan bir noktayı işaret edip zaman kazandırdığı birkaç örnek olmuş
  • Performansı beklendiği kadar iyi olmadığından, bunu tekrar tekrar denemek yerine genelde bir kez soruyor

Yazım hataları ve mantık hatalarını düzeltme

  • Yazılarını (ADR’ler, teknik özetler, iç dokümanlar vb.) tamamen LLM’lere yazdırmıyor
    • Kendisi daha net yazabildiğini düşünüyor ve LLM’lere özgü üslubu sevmiyor
  • Dilbilgisi kontrolü veya yazım hatası düzeltmesi için taslağı LLM’e verip geri bildirim aldığı oluyor
    • LLM’ler yazım hatalarını iyi yakalıyor ve bazen ilginç bakış açıları da öneriyor
  • Tekrarlı biçimde düzeltme önerisi almaktansa, daha çok bir kez genel çerçevede geri bildirim alıyor

Özet

  • LLM kullanım alanları
    • Copilot ile “akıllı otomatik tamamlama”
    • Çok iyi bilinmeyen alanlarda kısa, taktiksel değişiklikler (uzman incelemesi şart)
    • Bir kez kullanılıp atılacak araştırma kodu yazma
    • Yeni teknoloji veya alanlar öğrenirken durmadan soru sorma
    • Tıkanınca son çare olarak hata çözmeyi deneme
    • İngilizce doküman taslaklarında genel yazım/dilbilgisi ve mantık hatalarını düzeltme
  • LLM’lerin henüz kullanılmadığı alanlar
    • İyi bildiği alanlarda tüm Pull Request yazımını devretmek
    • ADR gibi teknik dokümanları baştan sona yazdırmak
    • Büyük bir kod tabanı içinde karmaşık mimariyi anlamaya çalışmak

6 yorum

 
fortune 2025-02-07

Bu da mı... staff engineer...?

 
smallzoo 2025-02-10

GitHub staff engineer'ı gibi, aynen.

 
vwjdalsgkv 2025-02-07

Bana da bunun staff engineer düzeyinde göründüğü söylenemez... bence tam olarak asistan seviyesi denebilir.

 
flaps3 2025-02-07

Başlıkta bir çeviri hatası var; staff engineer처럼 değil, staff engineer로서 olmalı.

 
fortune 2025-02-07

👍!!

 
GN⁺ 2025-02-07
Hacker News görüşleri
  • Bir "staff engineer" olarak LLM'ler, idiomatik kod yazma ya da öğretme konusunda oldukça zayıf; aksine kod incelemesine daha fazla zaman harcamaya neden oluyor. LLM'lerle kod yazmak, kötü pratikler öğrenme ve kod miktarına, boilerplate'e ve belirsiz çıktılara bağımlı hale gelme riski taşıyor. LLM'ler fikir üretimi ya da güvenilmez bilgileri keşfetmek için faydalı olabilir, ancak kod üretimine güvenmek delilik.

  • Hata düzeltirken Copilot kullanıp tüm dosyayı ekleyerek ve hata mesajını yapıştırarak yardım isteme yöntemi var. "reasoning" modelleri bundan çok daha iyi sonuç veriyor; tüm kod tabanını yapıştırıp hata mesajını açıkladığınızda çoğu zaman sorunun kök nedenini buluyor.

  • LLM'ler boilerplate kod ya da otomatik tamamlama için yararlı, ancak karmaşık işlerde sınırlı. Çünkü iş mantığını anlamıyorlar. Buna karşın kurumsal dokümanları hızlı yazmakta çok faydalılar.

  • GitHub'da çalışırken Copilot'a doğrudan katkıda bulunmuş bir deneyim var.

  • Statik tipli bir dil ve iyi bir IDE kullanıyorsanız, "smart auto complete" özelliği daha az faydalı olabilir. Intellij'nin otomatik tamamlama özelliği çoğu durumda sanki akıl okuyormuş gibi hissettiriyor.

  • Yazılım mühendislerinin LLM'lere karşı neden olumsuz duygular beslediğine dair bir değerlendirme. Pek çok kişi mutlak ölçütlerle yargılama eğiliminde ve bu da aracı etkili kullanma becerisini sınırlıyor.

  • Python proje bakımında AI kullanma yöntemi. Diğer dillerdeki yöntemleri Python'a dönüştürmede yardımcı oluyor.

  • ChatGPT ile utility kodu yazma deneyimi olumluydu. Kod incelemesinde sık sık küçük sorunlara işaret etse de, iyileştirme alanlarını bulduğu sürece hâlâ değerli.

  • VSCode'dan Cursor'a geçtikten sonra, Sonnet ile agent modu etkileyici geldi. Deneyimli bir geliştirici bunu yönlendirirse üretkenliği ciddi ölçüde artırabilir.

  • LLM'leri dokümanlardaki yazım hatalarını ve mantık hatalarını düzeltmek için kullanma deneyimi. Graphite Reviewer'ı gerçek bug'lara ve hatalara odaklanacak şekilde ayarlıyor. AI kusursuz değil ama bir kod düzeltme aracı olarak faydalı.