paint-brush
Popüler Olmayan Görüş: İyi Bir Yazılım Mühendisi Olmak Her Zamankinden Daha Zorile@mjuraj
8,281 okumalar
8,281 okumalar

Popüler Olmayan Görüş: İyi Bir Yazılım Mühendisi Olmak Her Zamankinden Daha Zor

ile Juraj Malenica5m2023/10/15
Read on Terminal Reader

Çok uzun; Okumak

Hayatta kalan teknolojinin hızlı şeridi: Mühendislerin, heyecanın ve değişen dünyada gerçekten önemli olan şeylere odaklanmanın hikayesi
featured image - Popüler Olmayan Görüş: İyi Bir Yazılım Mühendisi Olmak Her Zamankinden Daha Zor
Juraj Malenica HackerNoon profile picture
0-item

Neredeyse on yıl boyunca bir startup ortamında çalışmak bana hızlı tempolu bir inovasyon, keşif ve hızlı başarısızlık yaklaşımı kültürüne ayrıcalıklı erişim sağladı. Standart ilerleme merdivenini takip ettim: stajyer, asistan, orta, kıdemli ve sonunda mühendislik yönetimi yoluna geçtim. Zamanla birlikte büyüdüğüm birçok kişi başka şirketlerde çalışmaya başladı ve orada son derece saygın katkıda bulunanlar haline geldi. İyi mühendis olduklarını söylemek doğru olur.


Akranlarımın, mentilerimin ve kendimin yolculuğuna dönüp baktığımda, iyi bir mühendis olmanın her zamankinden daha zor olduğunu görüyorum.

İyi bir mühendisin tanımı

Mühendis olmak ne anlama geliyor? Yazılım mühendisleri olarak biz:

  • Karmaşık sorunları verimli ve ölçeklenebilir çözümlere dönüştürmekten sorumlu
  • Kullanıcı gereksinimlerini analiz etme, yazılım mimarisi tasarlama, kod yazma ve yazılımı test etme ve hata ayıklama ile görevlendirilmiş
  • Trendleri takip etmesi, yeni iş fırsatları ve mevcut ürünleri iyileştirmenin yollarını araması bekleniyor

Yani hayır; mühendislik programlamaya eşit değildir. Bazen bu en küçük kısımdır. Aşağıdaki şekilde gösterildiği gibi, kişi daha fazla deneyim kazandıkça kesinlikle öyle görünüyor.

Role göre iş dağılımı

İyi bir mühendis olmak ne anlama gelir? Çok sayıda röportaja dayanarak ve danışanlarımın ilerlemesini destekleyerek, farklı uzmanlık seviyelerine sahip kişilerin farklı cevaplar verebileceğini fark ettim.


Yeni başlayan biri, bunun bir geliştiricinin bildiği dil ve çerçevelerin sayısı olduğunu düşünebilir. Daha deneyimli bir mühendis, kullandıkları dili bile umursamayabilir, bunun yerine kod kalitesini vurgulayabilir - tüm kodlama ilkelerine bağlı kalarak ve hızlı hareket ederken QA gerçekleştirerek .


Son derece deneyimli mühendisler değer yaratmaya büyük önem veriyorlar. Bazen bir hipotezi kanıtlamak için tüm kuralları çiğneyen, kullanıp atabileceğiniz bir kodu hızla yazarız; bazen birkaç satırlık kritik görev kodu yazmak için günler harcarız. Ancak çoğu gün mimari kararlar alıyoruz, kritik görev konularını tartışıyoruz, süreçleri iyileştiriyoruz vb. Neden? Çünkü çoğu zaman en fazla değeri bu getirir.


Her zaman kuralın istisnaları olsa da, iyi bir mühendisin, bir hedefe ulaşmada maksimum değeri elde etmek için çabalarını verimli bir şekilde odaklayan kişi olduğunu söyleyebiliriz.

Büyüyen pazarlar ve rekabet

Teknoloji pazarı sürekli gelişiyor. WhatsApp'tan Uber'e, Airbnb'ye ve TikTok'a kadar hepimiz yıllar içinde büyük başarılara tanık olduk. Bunlar istisna olsa da, bu tür örnekler genellikle insanlar için Kuzey Yıldızını belirler; bu da onların çabalaması gereken bir şeydir. Bu düşünce tarzı mühendisler üzerinde ekstra baskı oluşturur. Yanlış bir şey yaptıklarını düşünerek içeriden ve insanların şirketlerini birçok rakiple karşılaştırmasından dolayı dışarıdan stres hissediyorlar.

Toplam teknoloji piyasa değeri

Böyle bir ortamda başarılı olmak için şirketlerin, ünlü Facebook sloganının söylediği gibi "hızlı hareket etmeleri ve işleri bozmaları" gerekiyordu. Bugün bu her zamankinden daha açık; neredeyse her şirket bir “ Yapay Zeka Şirketi ” haline geliyor. Herkes ChatGPT'yi çoğunlukla gerçek bir neden olmaksızın, nasıl değer getireceğine dair bir strateji olmadan entegre ediyor.


Temel prensipten - müşterilerimize nasıl daha fazla değer getirebiliriz - uzaklaşarak ve heyecan trenindeki rekabeti yenmeye doğru ilerleyerek, mühendislerin başarısızlığa mahkum işlevler geliştirmesini sağlıyoruz.

Dünya kafa karıştırıcı bir yer.

Benim gibi meraklı biri daha iyi bir mühendis olmak için ne yapmalı? Temiz kod ve mimari felsefelerini geliştirerek kodlama becerilerini mükemmelleştirmenin bariz seçiminin yanı sıra, günümüzde gizlenen pek çok cazip şey var. TypeScript'i ve her şeyi değiştiren en yeni çerçeveyi öğrenmek, blockchain ve kripto dünyasına dalmak, sayısız AI ürünüyle deneyler yapmak… Seçenekler sonsuzdur.

Tüm javascript kütüphaneleri

Dürüst olmak gerekirse, sektörde bu kadar yıl geçirdikten sonra ChatGPT, GitHub Copilot ve diğer gelişen teknolojilerin getirdiği yeni değişim dalgasının beni hala tehdit altında hissettiğini hissettim. Beynim pek çok şeyden habersiz kaldığım senaryolar hayal etmeye başladı. Değer katacak doğru şeylere mi odaklanıyorum? Maksimum potansiyelimi kullanıyor muyum?


Bir süre sonra bir heyecan içinde olduğumuz anlaşıldı. Bu da geçecek ve geriye yalnızca uzun vadeli değer yaratan yapay zeka şirketleri kalacak. ABD'de son beş yılda yapay zeka şirketlerinin sayısı iki katına çıktı; birçok yeni girişim, yeni çıkan GPT-3'ün üzerine yeni bir özellik ekledi. Daha sonra aynı şeyi ancak daha iyisini yapabilecek ChatGPT veya GPT-4'ün piyasaya sürülmesiyle öleceklerdi. Ancak bu, Twitter'ın ve diğer platformların yutturmaca ordusunun yeni dünya düzenini ilan etmesini engellemiyor.


Yıllarca teknoloji alanında çalışmama rağmen bu abartılı reklama kapıldım. Acemi hatası!


Programlama dilleri ve sürekli olarak yeni çerçevelerin piyasaya sürülmesi de kafa karışıklığını artırıyor. Tailwind, TypeScript, Haskell ve Rust'un hepsi harika; her birinin kendilerine avantaj sağlayan bir açısı var. Ancak insanlar sıklıkla bunları öğrenmeyi kendilerine avantaj sağlayacak bir şey sanıyorlar. Olmayacak ya da en azından yapmamalı. Bunlar sadece bilinmesi güzel olan ancak deneyimin yerini alamayacak araçlardır. Bu nedenle iş tanımlarımıza asla dil/çerçeve gereksinimleri koymuyoruz. Yetenekli bir mühendisi TypeScript'i, hızlı mühendisliği veya mikro hizmetleri bilmediği için kaçırırsam aptallık etmiş olurum.


Benim tavsiyem şu; yeni trendlere ve heyecanlara kapılmayın ve değer katma odağınızı kaybedeceksiniz.

Hızlı tempo ve yüksek beklentiler

Yeni zorluklar ararken, olumsuz stresten kaçınırken olumlu stres için çabalamak zor olabilir. Olumlu stres, stresli bir durumu iyi bir sonuca götüren bir fırsat olarak algıladığımız durumdur; olumsuz stres ise aşağıdaki resimde görüldüğü gibi fiziksel ve zihinsel sağlık üzerinde zararlı etkileri olabilecek bir durumdur. Sonuçları sıkı bir program dahilinde sürekli olarak sunmak streslidir ve özelliklerin yanlış nedenlerle oluşturulması ikincisine doğru yönelir.

Pozitif stres ve negatif stres

Hem bir akıl hocası hem de çalışkan biri olarak stresin tükenmişliğe yol açtığını gördüm. İstisnasız olarak, birinin tükenmişlik yaşaması, iş yükünü azaltmaktan, ara vermekten ve uzun vadede optimizasyon yapmaktan daha az çıktıyla sonuçlanır. Bu nedenle periyodik ekip güncellemeleri, birebir görüşmeler ve destekleyici bir kültürle tehlike işaretlerini yükseltmeyi her zaman mümkün olduğunca basit hale getirmeye çalışıyoruz.


Yine de işler ters gidecek. Bunu yaptıklarında kapsamı daraltırız, yardım edebilecek kişileri dahil ederiz veya lansmanı ertelemek için müşterilerimizle iletişim kurarız.


Baskı her zamankinden daha yüksek; hem içeriden hem de dışarıdan geliyor. Odaklanın ve etrafınızı uzun vadede optimizasyon yapan destekleyici bir ekiple çevreleyin.

Nasıl daha iyi yapabiliriz?

Hepimizin yetersiz mühendisler, akıl hocaları veya meslektaşlar gibi hissettiğimiz kötü anları vardır. Hiçbir şey mükemmel ya da kolay olmayacak, olmamalı da. Hata yapmadan ve zor zamanlar geçirmeden öğrenemeyiz. Ancak verimliliği artırabilecek bazı şeyler olduğunu düşünüyorum.

Etki seviyeleri

Bireysel olarak gerçekten önemli olana sadık kalın. Teknolojiler gelir ve gider ama önemli olan dünyaya kattığınız değerdir. Çok çalışmayı ve deneyimi taklit etmek zordur.


Bir şirket olarak karar alırken neden ile başlayın. Değer getirecek işlevsellikler sunmanın en iyi yolu budur. Ayrıca çalışanların nedenini bildiğinden emin olun. Deneyimlerime göre daha iyi kararlar verecekler, değerli geri bildirimler verecekler ve daha mutlu olacaklar.


Kültürel olarak çalışanları destekleyecek, uzun vadede optimize edecek süreçler oluşturun. Meslektaşlarınızla birlikte bir güven, destek ve şefkat kültürü oluşturun. Bu şekilde hepiniz birbirinizden en iyi şekilde yararlanacaksınız.