Yazılım Mühendisi olmak için Ultimate Rehber


Yazılım mühendisliği, yazılım mühendislerinin ve programcılarının, avukatlar ve avukatlar ve kiralanan muhasebecilerle birlikte İngiltere’de en çok aranan profesyoneller arasında olduğunu gösteren işe alım ve istihdam konfederasyonunun araştırmaları ile yüksek talep alandır.

Peki, yazılım mühendisliğine nasıl giriyorsunuz, hangi becerilere ve yeteneklere ihtiyacınız var ve ne tür bir kariyer önde olabilir?

Nasıl girerim?

Yazılım mühendisi olmanın olağan yolu, endüstrideki rolden önce yazılım uygulamalarını kodlamayı ve tasarlamayı öğreneceğiniz için bilgisayar bilimi, elektrik mühendisliği veya bilgi teknolojisi derecesidir. Genel olarak gördüğümüz ve çok uygun olan diğer dereceler, deneklerin son derece analitik doğası nedeniyle matematik ve fiziktir.

Bununla birlikte, zamanlar değişiyor-ve geleneksel derece liderliğindeki yolun yanı sıra birçok alternatif rota var. Gerçekten de, bu teknoloji endüstrisi genelinde daha geniş bir trendin bir parçasıdır. Harvey Nash 2024 Global Tech Yetenek ve Maaş Raporu, teknoloji profesyonellerinin sadece yarısının bir derece veya üniversite düzeyinde yeterliliğe sahip olduğunu buldu-geri kalanı çıraklık, endüstri eğitimi ve diğer planlar dahil olmak üzere rotaların bir karışımı aracılığıyla sektöre girdi. Örneğin, bootcamp’ler her zamankinden daha popüler hale geliyor. Bunlar, genellikle 8-16 hafta süren ve hızlandırılmış bir zaman çizelgesinde bir yazılım mühendisliği işi almak için ihtiyacınız olan becerilerin öğrenilmesini yoğunlaştıran kısa, yoğun kurslardır. Kursların genellikle binlerce kişiye koşan bir maliyetle geldiğini unutmayın. Bir iş bulmanıza yardımcı olma vaadini içeren kişileri arayın.

Bu arada, bazı insanlar kendi kendine öğretilir, belki de Udemy gibi platformlarda nispeten ucuz bir kurs alarak tepesinde. Bununla birlikte, bu ilk rolü güvence altına almak çok daha zor olduğu için sektördeki en küçük kohort.

Hangi gerçek roller var?

Yazılım, çeşitli beceri setlerine ve ilgi alanlarına göre uyarlanmış çeşitli kariyer sunar. Yazılım rolleri için çeşitli terimler göreceksiniz – yazılım programcısı veya kodlayıcı, yazılım mühendisi, yazılım geliştiricisi ve daha fazlası. Genellikle, bu roller az çok değiştirilebilir ve sadece farklı şirketler onlara farklı isimler veriyor. Ancak, yaptıkları işte vurgu farklılıkları olabilir. Bir yazılım programcısı veya kodlayıcı genellikle kod yazmaya odaklanırken, bir geliştirici tasarım dahil uygulamalar ve sistemlerden sorumlu daha geniş bir göreve sahip olabilir. Bu arada bir yazılım mühendisi, tüm yazılım çözümlerini tasarlamaya ve sürdürmeye odaklanan tam yığın, tüm yaşam döngüsü görevine sahip olacaktır.

Ayrıca, ön uç/web geliştiricisi, arka uç mühendisi, tam yığın geliştirici, mobil mühendis ve diğerleri dahil olmak üzere çeşitli daha spesifik rol adlarını görebilirsiniz.

Ya AI?

Teknoloji ile ilgili her şeyde olduğu gibi, AI’nın kesinlikle bir etkisi var. Bununla birlikte, yazılım profesyonelleri muhtemelen AI eğrisinde neredeyse herkesten daha uzun sürdü – işin nasıl sunulduğunun bir parçası haline geliyor. Üretken AI, kodlayıcılar ve geliştiriciler için güçlü bir yardım aracı olabilir, kod yazmalarına, test etmelerine ve hataları kontrol etmelerine yardımcı olabilir. Süreci hızlandırır ve doğru şekilde kullanılır, daha yüksek kalite çıktıları elde etmeye yardımcı olur. Ancak, hala bazı uyarılar var. Halen üretken AI alanında, çok az sayıda uygulama geliştiricisi, bu araştırma parçasının gösterdiği gibi, kendilerini uzman olarak sıralıyor. AI geliştirme süreci etrafında standardizasyon eksikliği vardır. İnsana genel bakış ve kontrol kesinlikle hala gereklidir – AI’yı işe koyup bırakamazsınız. Doğru istemi mühendisliği ile, üretici AI bir geliştiriciyi yolda iyi bir yol bulabilir, ancak henüz AI’nın tüm işi uçtan uca güvenli bir şekilde yerine getirebileceğimiz sahnede değiliz.

Bu nedenle, “Bir yazılım geliştiricisi olmak için güçlü AI becerilerine ihtiyacım var mı?” Sorusuna, cevap çoğu durumda zor bir gereklilik değil – ama kesinlikle yardımcı olacak ve muhtemelen daha beklenen hale gelecek. Pek çok şey, uzmanlaştığınız yazılım diline de bağlıdır. Python gibi daha yeni ve daha gelişmiş diller ve Rust ve Go gibi spin-off’lar doğal olarak AI ve makine öğrenimi ile bağlantı kurar, bu nedenle AI becerileri burada daha kritiktir.

Hangi kodlama dilleri ve teknik beceriler talep ediliyor?

Şu anda, Python’un en çok talep edilen beceri seti olduğunu ve ardından Java ve JavaScript izliyoruz. Birçok şirketin yeni projeler için Python’u seçtiğine inanıyoruz çünkü öğrenmesi ve çalışması kolay, AI ile uyumludur ve son derece çok yönlüdür. Ayrıca şirketlerinin pozisyonları için düzenli olarak tam yığın geliştiricileri aradığını görüyoruz, bu da adayların hem ön uç hem de arka uç programlama dillerinde deneyime ihtiyaç duymaları gerektiği anlamına geliyor. DevOps ilkelerinin kullanımı aynı zamanda Docker veya Kubernetes gibi konteynerleştirme araçlarının kullanımı ile üst düzey geliştiriciler için bir zorunluluk haline gelen bir beceri setidir. Bulut mühendisliği, düzenli olarak istenen başka bir beceridir, Azure şu anki en popüler platform ve ardından AWS ve Google Cloud Platform (GCP).

Başka hangi beceri ve özelliklere ihtiyacım olacak?

Çoğu şirketin bir başlangıç ​​noktası olarak arayacağı güçlü teknik yeteneğin yanı sıra, bir dizi daha yumuşak beceri de gerçekten yardımcı olur. İyi bir yazılım mühendisi, mantıksal ve metodik olarak çalışma yeteneği ile detaylara (doğruluk gerçekten önemlidir) yüksek dikkate sahiptir. Problem çözme yeteneği anahtardır, ancak sağlıklı bir yaratıcılık çizgisi, bir problemin etrafında yolunuzu düşünmek ve yenilikçi bir çözüm bulmak için kötü bir şey değildir.

Bir programcının stereotipik görüntüsü, genellikle kulaklıkları açıkken, kendi dünyalarında emilen bir köşede oturan biridir. Bununla birlikte, iyi kişilerarası beceriler genellikle gerçekten önemlidir – çünkü iş kullanıcılarından gereksinimleri anlamanız ve çevirmeniz gerektiğinin yanı sıra, daha geniş bir iş perspektifinden inşa edeceğiniz şeyin tasarımı ve kullanımı hakkındaki tartışmalara sahip olmanız gerekir.

Ayrıca bir mühendislik ekibinin bir parçası olarak çalışmanız gerekir ve özellikle kariyerinizin başlangıcında birçok soru sormak önemlidir. Daha üst düzey mühendislerden öğrenme ve hareket halindeyken adapte olma yeteneği, daha iyi bir yazılım mühendisine dönüşmede hayati önem taşıyacaktır. Bazı işletmelerde, yazılım ekipleri, kıdemli ve genç bir geliştiricinin bu gelişmeye yardımcı olmak için birlikte çalıştığı bir ‘çift programlama’ yaklaşımı benimser – sık sık kodlayıcı ve gözden geçiren arasında geçiş yaparlar, bu da genç geliştiricinin öğrenmesine yardımcı olur ve ayrıca kıdemli geliştiricinin çıktısına ikinci bir çift göz getirir. Genellikle iyi bir öğrenme ve geliştirme modeli olarak görülür.

Ne kadar kazanacağım – ya da kalıcı ve yükleniciye ne dersiniz?

Yazılım mühendisliği iyi ücretlidir, bu da kariyer olarak cazibesine katkıda bulunur. Bununla birlikte, maaşlar deneyim, konuma ve uzmanlaşmaya bağlı olarak oldukça önemli ölçüde değişebilir. Giriş seviyesi pozisyonları genellikle yıllık 30.000 ila 35.000 £ sunarken, deneyimli profesyoneller 60.000 £ ila 90.000 £ kazanabilir. Özellikle Londra ve diğer büyük merkezlerde üst düzey roller, daha büyük bütçelere sahip büyük şirketlerin varlığı nedeniyle yılda 100.000 £ ‘ı aşabilir. Finansal hizmetler ve oyun gibi sektörler en yüksek maaş ve oranları ödeme eğilimindedir.

Sonra sözleşme var – bu aslında kalıcı bir rolden daha fazlasını ödeyecek. Bazılarına karşı sezgisel görünebilir, ancak bazı disiplinlerde ilk yol, sonunda kalıcı bir pozisyon güvence altına almak amacıyla geçici veya sözleşme çalışması yoluyla, birçok insan için yazılımda (belki de 5-10 yıl sonra) yüklenici olmak amacıyla (belki de 5-10 yıl sonra) kalıcı bir rol oynarsınız. Burada, işin doğası ve sözleşmenin uzunluğu da dahil olmak üzere birçok değişken olacak, ancak bir Java geliştiricisi için gün oranı 625 £ ‘ı kolayca aşabilir ve Londra’daki oranlar belki de 750-800 £’ a ulaşabilir. Bazı müteahhitler günde 1.000 £ komuta bile yapabilir.

Başka bir faktör, yüklenici rolünün IR35’in içinde veya dışında olup olmadığıdır. Bu muhtemelen kendi içinde bir makalenin konusudur – ancak bir rol IR35’e düştüğü kabul edilirse (böylece yüklenici bir çalışana eşdeğer olarak kabul edilir ve PAYE’ye benzer şekilde vergilendirilir), o zaman işletme, yüklenicinin telafi etmek için belki de% 20’lik bir prim ödeyebilir. Rol IR35 dışındaysa, oran biraz daha düşük olacaktır – işveren parasını tasarruf etmek, ancak kaynaktaki vergi indirimini kaybetmedikleri için genellikle yüklenici için daha caziptir.

Sığacak mıyım?

Yazılım mühendisliği ekipleri, özellikle Londra’da teknoloji manzarasının ne kadar olgun olduğu göz önüne alındığında, dünyanın tüm bölgelerinden İngiltere’ye gelen geliştiricilerle genellikle çok kültürlüdür. Yazılım mühendisliği bir bütün olarak tarihsel olarak çok erkek egemen bir endüstri olmuştur, ancak son zamanlarda piyasadaki kadın adayların sayısının her geçen yıl arttığını gördük, bu da çok cesaret verici.

Beni nereye götürecek?

Yazılım mühendisliğinin güzelliği, kariyerlerini nasıl geliştirdiklerinin gerçekten bireye bağlı olmasıdır. Bazıları için kod yazmaya ve geliştirme ekibinin bir parçası olmaktan memnunlar. Diğerleri için, daha fazla ekip ve yönetim sorumluluğunu üstlenerek, mühendislik başkanlığı veya belki de siber güvenlik veya veriler gibi bitişik alanlara geçmek ve hatta sonuçta CDO, CTO veya CIO gibi bir teknoloji C-suite rolü üstlenerek. Bir kez gittikten sonra, gerçekten oynamak için.

Emmanuel Skelkey ​​kıdemli bir danışman ve Harvey Nash’de müdür danışmanı Morgan Fox



Source link