Yazılımcılık bitecek mi?

Çok güzel demişsiniz

ancak bu dediklerinizi junior coder da yapamıyor, kendi imkanlarıyla "yazılımcılık" öğrenmiş kişi de yapamıyor, yeni mezun okullu da yapamıyor. Yapay zeka asistanın veremediği ne verebilir bu kişiler, mimariyi sen oluştur der misiniz bu kişilere ya da testleri sen yap sonra projeyi müşteriye teslim edelim der misiniz?
Zaten ben her zaman insanların mühendislik okuması gerektiği tarafında oldum, bunları yapamayan yeni mezunları artık işe kolay kolay almıyorlar, zaten okul okumamış kişilere İK bakmıyor bile artık. Mimari oluşturmak tek kişi değil ekip işi zaten.
 
Peki HTML, CSS, JS dillerinden ayrılıp Yapay zeka öğrenmeye geçmeli miyim? Evet Blackbox AI biliyorum ama onda kodu tane tane yazdıramıyorsunuz tek seferde ve ingilizce olması gerekiyor bildiğim kadarıyla. GPT'ye tek tek koda ekleterek yazdırabildiğimiz için daha iyi olduğunu düşünüyordum. Ve şuan olmadığı ileride olmayacağı anlamına gelmez. Yani evet şuan tam adam akıllı yazamıyor kodları ama 3-4 yıla mükemmel yazabilir büyük ihtimalle. Bundan dolayı Yapay Zeka öğrenmeye mi geçmeliyim yoksa olduğum işte mi mükemmelleşmeliyim?
Yapay zeka çoğu yazılım diline hakimleştikten sonra HTML,CSS i çok iyi yapabildikten sonra "yapay zeka" alanında ne kadar kötü olabilir ki?

Ben bu mantığı pek anlamıyorum. Tamam kendi kendini geliştiremez diyelim, büyük yapay zeka modellerinin arkasında insanlar olur ama belki sizin geliştireceğiniz ya da orta ölçekli çoğu teknoloji firmasının yapay zeka kodunu geliştirecek yine yapay zeka olacak? Yapay zeka modelleri geliyor diye yapay zeka öğrenmek mantıklı bir kaçış değil.

Bence şuan ki durumda yapay zekaya en geç tamamen teslim edilecek alan DevOps ve siber güvenlik olabilir bilemiyorum.
 
Yazılım bitmez, bizim hal
Herkese merhaba, iyi sosyaller. Biliyorsunuz ki ChatGPT'nin yeni sürümü 4O ile beraber ChatGPT artık çok daha basit ve iyi sonuçlar veriyor. Tabii bu yazılım alanında da böyle. Ben liseye geçtim geçeli yazılımcı olmak istiyordum, şu an 11. sınıfım. Gelgelelim işte bu GPT-4o benim istediğim mesleği açıkça tehdit ediyor. Yani benim düşüncem bu meslek en fazla 10 yıl içinde bitecek. Yaptığım şey de zaten HTML, CSS, JS idi. Bunları kendisi çok kolay bir şekilde halledebiliyor. Şimdi sizce yazılım okumaya devam mı etmeli yoksa başka bir alana mı yönelmeli? Eğer başka alansa hangi alan olmalı? Yapay zeka bölümüne gidilir mi? Bu arada puan sorunum yok, derslerim gayet iyi İTÜ gibi bir yere gitmeyi planlıyordum buna göre üniversite de önerebilirsiniz.

Yapay zeka çok iyi seviyede kod bile yazsa bu kodu nerede kullanacağını bilen ve yapay zekaya yazdırdığı kodu projeye entegre edebilen kişiye, yani yazılımcıya her zaman ihtiyaç duyulacaktır. Yapay zeka amaç değildir, araçtır. Kodlama da amaç değildir, araçtır. Yapay zeka yokken de kimse gidip kodu tek tek yazmıyordu, zaten iyi bir yazılımcı işe yarar kodları internetten araştırıp bulup projesine uyarlayabilendir, şimdi yapay zekaya sorduğumuz için zamandan tasarruf ettik. Ancak projeye uyarlamak için yine yazılımcının kodu revize etmesi gerekiyor. Ayrıca yazılım alanında para kazandıran iş aslında proje. Projeyi kod ile yaptığımız için sanki iş kodmuş gibi görülüyor ama yazılım mühendisliği aslında daha çok proje yönetimidir, yeni bir ürün üretebilmek yapay zekanın algoritması gereği yapabileceği bir şey değil. İyi bir derleyici, ilerleyen dönemlerde çok daha başarılı ve hatasız bir derleyici olabilir ancak ürün üretemediği için işi hızlandırıp yazılımcıya yardımcı olmanın ötesine geçemiyor.
 
Dijital artistin birini işinden atmışlar. Geçmiş 8 yılında adam işler zor yetişiyor diye işten başını kaldıramıyormuş, sonlara doğru rahat rahat daha az çalışmaya başlamış, bugün de adamlar artistin yaptığı çalışmaları da kullanarak kendisini yapay zekayla değiştirmişler.
Her ne kadar korkutucu olsa da işinin ehli yine işinde kalabilir ama şirketlerin de kazancına baktığını ve ne kadar masraf varsa kısmak istediğini unutmamak lazım.

Benim önerim yazılıma başladıysan devam et, yapay zekayı da kullanabileceğin her yerde alet olarak kullan. Motorlu testere varken pala (el testeresi) kullanmazsın. Umarım çalışma şekline bir şekilde uyar ve yararına kullanmanın yollarını da bulursun dostum
 
Yazılım bitmez, bizim hal


Yapay zeka çok iyi seviyede kod bile yazsa bu kodu nerede kullanacağını bilen ve yapay zekaya yazdırdığı kodu projeye entegre edebilen kişiye, yani yazılımcıya her zaman ihtiyaç duyulacaktır. Yapay zeka amaç değildir, araçtır. Kodlama da amaç değildir, araçtır. Yapay zeka yokken de kimse gidip kodu tek tek yazmıyordu, zaten iyi bir yazılımcı işe yarar kodları internetten araştırıp bulup projesine uyarlayabilendir, şimdi yapay zekaya sorduğumuz için zamandan tasarruf ettik. Ancak projeye uyarlamak için yine yazılımcının kodu revize etmesi gerekiyor. Ayrıca yazılım alanında para kazandıran iş aslında proje. Projeyi kod ile yaptığımız için sanki iş kodmuş gibi görülüyor ama yazılım mühendisliği aslında daha çok proje yönetimidir, yeni bir ürün üretebilmek yapay zekanın algoritması gereği yapabileceği bir şey değil. İyi bir derleyici, ilerleyen dönemlerde çok daha başarılı ve hatasız bir derleyici olabilir ancak ürün üretemediği için işi hızlandırıp yazılımcıya yardımcı olmanın ötesine geçemiyor.
(Daha önce proje yönettiniz mi bilmiyorum, proje yönetimi ne demek doğru bilip bilmediğinizden de emin değilim) Şöyle sorayım;

Bir startup firmada yazılım ekibi olsun 5 tane junior, 2 tane senior, 1 tane lead geliştirici, 2 tane tester, 1 tane devopsçu, bir tane de product owner var diyelim, hepsi de dediğiniz gibi yazılım mühendisi. Bir tane de girişimci/patron olsun, yazılımla alakası olmasın, fikir bulsun, satış ayarlasın vs.

"Yazılım mühendisliği proje yönetimidir" mottonuza göre tüm ekip demokratik bir şekilde, mesela dönemsel yöneticiler seçip projeyi mi yönetiyor ya da her işlem için oylama mı yapıyorlar?

Yoksa patron, ürünü patron adına yöneten ve ona hesap veren product owner,product ownerın üstediği şekilde ürünü ekibine yaptırmaya çalışan lead; yani 3 kişi dışındakilerin ürün yönetimi, proje yönetimi vs. ile alakası yok mudur? Çoğunluk uslu uslu kendi işini yapmaya çalışmaktadır ve yapay zeka bu kişilerin çoğunun işini bir gün kolayca elinden alabilir mi? Neticede bu arkadaşlara değil proje; repo bile tek başına teslim edilmiyor, bu şahısların yazdığı kodun pull requestler ile review edilmesi, sonra da testerlarca test edilmesi gerekiyor, e yapay zeka kullanılsa da bu kadar ilave işlem gerekecek zaten.

Ya da bu kadar junior, medior, senior cart curt ünvanlı adamlar yerine patron kendisine 3-4 tane yapay zekayı çok efektif kullanan adam alıp ekipte geri kalanlara maaş ödemeden de ürününü çıkartabileceğini fark eder, ekibin büyük bölümüne yol verir mi?
 
(Daha önce proje yönettiniz mi bilmiyorum, proje yönetimi ne demek doğru bilip bilmediğinizden de emin değilim) Şöyle sorayım;

Bir startup firmada yazılım ekibi olsun 5 tane junior, 2 tane senior, 1 tane lead geliştirici, 2 tane tester, 1 tane devopsçu, bir tane de product owner var diyelim, hepsi de dediğiniz gibi yazılım mühendisi. Bir tane de girişimci/patron olsun, yazılımla alakası olmasın, fikir bulsun, satış ayarlasın vs.

"Yazılım mühendisliği proje yönetimidir" mottonuza göre tüm ekip demokratik bir şekilde, mesela dönemsel yöneticiler seçip projeyi mi yönetiyor ya da her işlem için oylama mı yapıyorlar?

Yoksa patron, ürünü patron adına yöneten ve ona hesap veren product owner,product ownerın üstediği şekilde ürünü ekibine yaptırmaya çalışan lead; yani 3 kişi dışındakilerin ürün yönetimi, proje yönetimi vs. ile alakası yok mudur? Çoğunluk uslu uslu kendi işini yapmaya çalışmaktadır ve yapay zeka bu kişilerin çoğunun işini bir gün kolayca elinden alabilir mi? Neticede bu arkadaşlara değil proje; repo bile tek başına teslim edilmiyor, bu şahısların yazdığı kodun pull requestler ile review edilmesi, sonra da testerlarca test edilmesi gerekiyor, e yapay zeka kullanılsa da bu kadar ilave işlem gerekecek zaten.

Ya da bu kadar junior, medior, senior cart curt ünvanlı adamlar yerine patron kendisine 3-4 tane yapay zekayı çok efektif kullanan adam alıp ekipte geri kalanlara maaş ödemeden de ürününü çıkartabileceğini fark eder, ekibin büyük bölümüne yol verir mi?

Proje yönetiminden kastım iş analistinin, product owner'ın rolü değil, kodu nereye koyacağını ve projenin nasıl şekillendireceğini bilen teknik insan anlamında dedim.

Junior, mid, senior roller olmadan tam olarak yapay zeka ile 10 kişinin yaptığı işi nasıl 3-4 kişi yapacak? Yapay Zeka'yı efektif kullanan adam dediğin junior birisi olamaz zaten, işi bilen, bir nevi senior oluyor. Şu anda junior'lar şirketlerde katma değer ürettiği için durmuyor ki, işi öğrenmesi için yani yatırım amaçlı bir de işi öğrenene kadar basit seviye işleri halletmesi için tutuluyor. İleride sırf yapay zeka geldi diye junior almazsanız, bir gün mevcut senior'lar daha yönetim veya ekip liderliği rollerine geçtiğinde, veya iş değiştirdiğinde ne yapacaksınız?
 
Proje yönetiminden kastım iş analistinin, product owner'ın rolü değil, kodu nereye koyacağını ve projenin nasıl şekillendireceğini bilen teknik insan anlamında dedim.
Tamam, yanlış demişsiniz, proje yönetimi; kodu nereye koyacağını bilmek değil. Kurumsalda, büyük projede, proje yöneticisi kod bile yazmaz hatta.
Junior, mid, senior roller olmadan tam olarak yapay zeka ile 10 kişinin yaptığı işi nasıl 3-4 kişi yapacak?
Bakın şöyle düşünün, mesleğinize başlayalı şimdiki gibi kısa bir süre değil, uzun yıllar olmuş, pek çok teknoloji kullanmış, mimari öğrenmiş vs. bir senior geliştiricisiniz. Bir proje fikriniz var yahut sipariş alıyorsunuz ve kendi firmanızı kuruyorsunuz.

1-Atıyorum 10 * 30k -> 300k maliyet ile 10 tane junior işe alacaksınız ve çalıştıracaksınız. Ancak bu kişiler pek bir şey bilmiyor, size kısa vadede faydaları yok, düzgün kod yazamıyorlar, yazdıkları kodun maliyeti (düşük code quality, review süresinden side effectine her şey yani) çok yüksek. Buna ilaveten
Yapay Zeka'yı efektif kullanan adam dediğin junior birisi olamaz zaten
dediğiniz gibi yapay zekayı da kullanamıyorlar, en basit angarya işler var hani şu şu fieldları olan classlar yarat, dao sınıflarını yaz, şunu alıp şunu hesaplayan method yaz vb. amelelik diye tabir edilen ve juniorlara itelenen işleri bile yapay zekaya düzgün bir şekilde yaptıramıyorlar. Proje ilerlemiyor, sizin bütün gününüz onları eğitmekle, toplantılarla, kodlarını düzeltmekle geçiyor.

2-Onun yerine 3 tane sizin ayarınızda arkadaşınızı işe alacaksınız, mesela 3*90k -> 270k maliyet ile projeyi ilerletebilecek tecrübeli bir ekibiniz oluyor, yapay zekayı da kullanabildikleri, neyi nasıl yapacaklarını bildikleri için angarya işleri yapay zekaya birkaç dakikada yaptırabiliyorlar ve çok daha ustalık gerektiren senior seviye işlere odaklanabiliyorlar.

Şu anda junior'lar şirketlerde katma değer ürettiği için durmuyor ki, işi öğrenmesi için yani yatırım amaçlı bir de işi öğrenene kadar basit seviye işleri halletmesi için tutuluyor.
Projenizi ürettiniz. Mesela baya sağlam bir oyun yaptınız, 1 yıl sürdü. İşleri öğrendi bu junior arkadaşlar, mid seviye geliştirici oldular. Yeni bir oyun yapmak isteseniz ekibiniz hazır artık, şimdi birkaç ayda aynı oyunu çıkarabilirsiniz.
Bundan 10 sene öncesi olsaydı böyle olurdu, çalışana yatırım yapılır, çalışan da uzun yıllar firmada kalırdı, öyle ciciş, aile ortamı gibi ortamı olan firmalar vardı.
Şimdi ise şöyle oluyor, özellikle pandemi sonrası remote/hibrit çalışmanın standartlaşmasıyla çalışanlar çok kolayca firma değiştiriyor, yani işini bilen adama alakasız bir şehirdeki firmadan da yurt dışından da vs. teklif gelebiliyor, sirkülasyon çok fazla, ben bu adamı yetiştirdim o zaman 20 sene burada çalışır olayı çok nadir, mesela bankacılık, aselsan tarzı askeriye teknolojisi ya da telekomünikasyon sektörlerinde böyle, bu adamların zaten gidebileceği firma sayısı sınırlı, a operatöründeki senior developer ancak b operatörüne, c operatörüne geçebiliyor mesela, bu sebeple aynı firmada 20 yıl çalışmayı kabul edebiliyor, firmalar da uzun vadeli çalışan bakıyorlar, hem teknik olarak kusursuz hem de soft skilleri uzun yıllar beraber çalışmaya uygun.

Neyse uzatmadan örneğimize dönelim, bundan 10 sene öncesi değil, günümüz olduğu için sizin çalışanınıza yaptığınız yatırım, yetiştirdiğiniz çalışanlar startupınızı bırakıp gidince puff diye uçtu gitti. Siz de yatırım amaçlı junior çalıştırmanın günümüz trendi olmadığını öğreniyorsunuz.

Süreç nasıl işliyor peki? Siz ihtiyacınız olan adam için ilan açıyorsunuz, yani inat edip junior ilanı da açabilirsiniz gene, vasıflı vasıfsız 1000 tane kişi başvurur. Ya da filanca filanca diplomaya sahip, şunu şunu bilen, şu kadar tecrübeli, şunu kullanmış, bunu kullanarak bla bla geliştirmiş diye mid/senior ilanı koyuyorsunuz, bi 300 kişi de ona başvuruyor. Çünkü piyasada muazzam bir yazılımcı arzı var şu anda, firma işi öğrensin diye junior aramıyor yani, junioru medioru firmaların kapısında yatıyor, para almayayım da yeter ki işi öğreneyim, yeter ki tecrübe kazanayım da cv'me yazabileceğim bir şey olsun modundalar. Bu her seviye için öyle, aylarca işsiz kalan hem de pek yetenekli senior dev arkadaşlarım da mevcut, yurt dışında layoff ile komple takımıyla beraber çıkan ve yine aylarca iş arayan arkadaşım da mevcut, iş yok, firmalar gider kısıyor, kadro eksiltiyor, bir işi 2 kişi yapabiliyorsa 3. kişiyi çıkartıyorlar, enflasyon yüksek, maliyet fazla, yatırım azaldı vb. bin tane sebep var, öyle junior yetiştireyim diyen yok yani, yetiştirilmek üzere işe alınacak juniorun da diğer rakiplerine fark atacak seviyede kaliteli, kendini geliştirmiş, acemi olmasına rağmen çatır çatır kod yazabilecek kalibrede, rambo gibi bir şey olması lazım günümüzde, yani 1000 kişi işe başvuruyor, 10 kişi alınıyor, 990 tanesi aylarca işsizliğe devam ediyor. Bakın, öyle junior yetiştirelim falan günümüzde yok, hatta kadrolu yazılımcıdan komple vazgeçip yok hintli birini bulup ona yaptıralım, yok outsource firmayla anlaşalım olayına girmiyorum bile, uzamasın daha fazla.

İleride sırf yapay zeka geldi diye junior almazsanız, bir gün mevcut senior'lar daha yönetim veya ekip liderliği rollerine geçtiğinde, veya iş değiştirdiğinde ne yapacaksınız?
Firmalarda birbirini yedekleme olayı vardır.
Örneğin Senior seviye Ahmet sistemi biliyordur, mimariyi o tasarlamış, kodun önemli bir bölümünü o yazmıştır.
Mid seviye Mehmet de bazı şeylerde Ahmet ile beraber çalışmıştır, onun yedeğidir.
Mesela 10 tane juniordan biri olan Cevdet de iyi özelliklere sahiptir, yani yazdığı kodun kalitesi, zamanında teslim etmesi vs. ile göze girmiştir, Ahmet'in yedeği de odur.
Eskisi gibi, öyle berbat bir mimari var ki, öyle leş bir kod yazılmış ki ondan sadece Ahmet anlıyor, Ahmet firmadan çıkarsa mahvoluruz, ne maaş istiyorsa verelim.
şeklinde bir düşünce kalmadı. Kod kalitesine dikkat ediliyor, firma içi eğitimler veriliyor, tecrübe/teknik aktarım yapılıyor, dokümantasyon ile uğraşışıyor vb. Senior dev ayrılırsa, yerine gelen senior devin de koda mimariye falan bakıp sisteme kısa sürede adapte olabileceği bir ortam yaratılıyor, bankalarda falan var ancak öyle legacy kod, aynı adam 20 senedir maintenance ediyor kodu, başka kimse yapamıyor çünkü.

Firmanın Ahmet'e bağımlılığı kalmıyor yani. Ahmet başka bir iş bulup çıkıyor, firma Ahmet ile konuşuyor, belki bizde kal sana şunu şunu veririz diye bir karşı teklif sunuyor ama öyle Ahmet'in peşinden koşmuyor, kul köle olmuyor, hadi kurumsal bir yerse çıkış mülakatı yapılır, hayırlısı olsun, başarılar vs. dilenir, Ahmet yoluna gider.

Mehmet işleri/sorumlulukları devralıyor. Mehmet işten çıkarsa Cevdet onun yerini dolduruyor. Firma gerekirse iş ilanı açıyor, ya da Mehmet gerçekten Ahmet'in yerini doldurabiliyorsa onun pozisyonuna terfi de ettirilebilir, ha Mehmet henüz yeterince tecrübeli değilse uygun özelliklerdeki senior çalışan gelene kadar işleri idare edebilir, onun dışında teknik eğitimden liderlik iletişim vb. eğitimlerine kadar eğitim sağlıyor zaten kurumsal bu önemli gördüğü çalışanlara.

Birbirini yedekleyen çalışanlar daha doğrusu bu hiyerarşinin üst seviyesi hariç geri kalan herkes önemsiz, feda edilebilir. Öyle mühendis diploması varmış, yok filanca teknolojiyi biliyormuş falan, hikaye, junior adayın yerine saniyede 50 tane aynısından bulabilme lüksü var artık firmaların (arz fazlası junior yazılımcı). Sadece birkaç kişi, yani mesela
lead->seniorlar->mid seviyede ve yüksek performanslı olan birkaç tanesi->yüksek potansiyelli bir iki junior
harici geri kalan kişilerin pek bir kıymeti yok yani.

Şimdi bir de işin içine yapay zeka girdi diyorum. Yani juniora yatırım yapmanın saçmalığı, zaten aylarca işi öğrenene kadar katkı sunamaması, sokakta bu adamın muadili yüzlerce binlercesinden olması vs. derken bir de senior developer bu arkadaşın yapacağı angarya işleri, basit bugfixleri yapay zeka ile kısa sürede yapabileceği için en ufak olumsuz durumda junior arkadaşın firma tarafından harcanma potansiyeli var, en ufak,
-ben bu arkadaşa filanca servisi anlattım, 1 kerede anlamadı
-bu arkadaş x nolu bug'ı çözdüm demişti, düzgün çözülmemiş, test ekibinden geri döndü
-bu arkadaş 2 günde bitmesi öngörülen işi 3 günde bitirebildi
vb.
Yapay zeka günümüzde bu sürece nasıl giriyor;

Şimdi işi öğrensin diye genç bir arkadaşa known issue bir bug atadım, pandeminin ilk zamanları olması lazım, daha chatgpt falan yok yani ama evden çalışmaya başlanan dönem, 2020 olmalı.
Daha önce hiç görmediği bir repoda idi bu bug.
Benim kodda ilgili yeri bulup düzeltmem 10 dakika sürer, zaten çok az sınıftan oluşan küçük bir repoydu bu, kodun çoğunu ben yazmıştım.
Bu repoda hiç çalışmamış başka bir arkadaşın kodun çalışmasını anlaması, debuglayıp sorunu bulup düzeltmesi hadi bilemediniz 30 dk sürsün.
Bu genç arkadaş saatlerce uğraştı, arada soru sordu, burası şöyle mi çalışıyor, burası şuna mı yarıyor vb. diye yanıtladım. Çözemedi. Beraber bakmaya başladık, anlattım, bak şurada sorun olabilir, bak acaba şuraya breakpoint mi koysam vb. diye çaktırmadan da yönlendirdim, güç bela çözdü, en son benim saatlerce anlatmaktan sesim gitmişti.

Şimdi olsa, ben bu bug'ı o genç arkadaşa atasam, o classlardaki kodları chatgpt'ye parça parça copy paste etse, kodu anlayıp ona anlatmaya başlar, bu proje bir mongodb veritabanından şunu şunu çekip, şöyle şöyle işlem yapan bir koda benziyor der. Mesela bana atanan bug'a göre zaman zaman şöyle bir sorun oluyor diye söylese gpt'ye, veri tabanından çekilen veri formatında biraz örnek data verse, hatanın olduğu yeri ve sebebini gösterir hatta kodu şöyle yaparsan düzgün çalışır diye çözüm sunar.

E zaten sorunu gpt'ye ben de anlatabiliyorum, çözümü ben de uygulayabiliyorum, o zaman bu genç arkadaşa ihtiyaç yok diyebilirim. Maliyeti kısmaya çalışan pek çok şirket de böyle düşünebilir. Bunu kast ediyorum, eğer bu arkadaş onu farklı kılan bir yeteneğe, kodu görür görmez anlama ve çözme, yeni teknolojileri araştırma ve anlama kabiliyetlerine sahipse amenna, değilse günümüzde sıkıntılı bir durum içerisindedir.

Yapay zeka gelecek, tüm yazılımcılar işsiz kalıp pazarda limon satacak diyemem elbette ama her zaman yazılımcıya ihtiyaç olacak, rahatlayın arkadaşlar mantığı çok yanlış. Bakırcılık yeniden revaçta bu açıdan bakılırsa da bakır tencereler var oldukça kalaycılık mesleğine de ihtiyaç var yani, yanı hesap.
 

Geri
Yukarı