Yanıtlar:
İşe alırken, sistemimizi tasarlamamıza, süreçleri tanımlamamıza, teknik özellikler oluşturmamıza, gelişmiş yeniden düzenlemeyi yapmamıza, vb. Kontrol programından programlama görevlerini tamamlamamıza yardımcı olacak bir kişi arasında bir ayrım arıyoruz. . Eskiden Yazılım Mühendisi ve sonuncusunu da Programcı olarak adlandıracağınıza inanıyorum .
Bir mezhep veya başka bir şeyi uygulamak için yasal bir çerçeve bulunmadığını veya en azından benim bilmediğim ve bunun ülkeden ülkeye değişebileceğini düşündüğümden gerçekten şirkete kalmış (örneğin, terimin kullanımı “mühendis” aslında Fransa'da oldukça düzenli bir şekilde düzenlenmiştir, ancak “kötü niyetli” durumlar için izin verilen çeşitler vardır).
Genel eğilim şöyle devam ediyor:
Bir programcı pozisyonu genellikle bir bilgisayar programının kodunu üretmek için işe alınan profesyonellerden biridir . Kod yazmayı bildiğiniz , bir algoritmayı anlayabileceğiniz ve teknik özellikleri takip edebileceğiniz anlamına gelir . Ancak, genellikle sorumluluk açısından orada durur.
Bir geliştirici pozisyonu genellikle programcı pozisyonunun bir süper tipi olarak kabul edilir . Aynı sorumluluklarını kapsar artı tasarım ve mimarı bir yazılım bileşeni yeteneği , ve teknik belgeleri yazmak (şartnamelere dahil) bunun için. Sen mümkün - en azından teknik olarak - kurşun diğerleri (böylece, programcılar), şart olmamakla birlikte bir ekip (hav gelir ki ...)
Bir mühendis pozisyonu, genellikle belirli bir dereceye sahip , biraz mühendislik bilgisi olan ve bir sistem tasarlama yeteneğine sahip bir geliştirici olduğunuz anlamına gelir (şu şekilde: bir bütün olarak bütün bir bütünlüğü oluşturan yazılım bileşenlerinin / modüllerinin bir kombinasyonu) . Temel olarak, daha geniş bir resim görüyorsunuz, onu tasarlama ve açıklama ve daha küçük modüllere ayırma yeteneğine sahipsiniz .
Ancak, tüm bunlar tartışılabilir ve dediğim gibi , ABD / İngiltere ülkelerinde bildiğim hiçbir yasal zorunluluk yok . Bu söylenirse, Fransa'da kendinize yalnızca bir mühendislik okulundan geliyorsanız ("Komisyon des Titres d'Ingenieurs veya benzeri bir şey tarafından tanınan) kendinize bir" mühendis "diyebilirsiniz. Bir "Mühendislik Derecesi" olduğunu söyleyemezsiniz, ancak mühendislik ve teknolojiler portresine giren bir disiplin okuduysanız "Mühendislik Derecesi" ye sahip olduğunuzu söyleyebilirsiniz.
Bazı ülkelerin benzer bir ayrımı olabilir, ben sadece bilmiyorum.
Yazılım mühendisi unvanına geri dönün… Bir zamanlar öğretmenimden biri sınıfımıza - ve haklı olarak - bugünden itibaren “yazılım mühendisliği” diye bir şey olmadığını söyledi . Çünkü bir şeyi mühendislik yapmak (bir bina, araç, donanım parçası ...), tasarımını ve üretiminin tüm aşamalarını öngörebilmeniz ve ihtiyaç duyacağınız kaynakları ve dolayısıyla ihtiyaç duyacağınız doğrulukla tahmin edebilmeniz anlamına gelir. üretim maliyeti.
Bu, çoğu "gerçek" mühendislik disiplini için geçerlidir. Elbette dalgalanmalar vardır (örneğin, malzemelerin fiyatları zamanla değişecektir), ancak çok sınırlı teorik modeller (tasarım ve planlama için) ve deneysel modeller (eskilerin herhangi birini erişilebilir kısıtlar içinde tutmak için) vardır. Bu, bir projenin bitiş tarihini ve kaynak kullanımını tahmin etmenizi sağlar.
Yazılımdaki en büyük sorun, henüz orada olmamasıdır. Yazılım mühendisliğini hedef almak istiyoruz, ancak henüz orada değiliz. Çünkü çok akışkan ve dinamik bir çevreye, projeler için çok değişken kısıtlamalara ve süreçlerimizde geçmişe baktığımızda hala vade eksikliğine sahibiz. Tabii ki daha iyi olabileceğimizi söyleyebildik (çok zor verilerle tartışılabilir), ancak sadece 60'lardan beri (daha önceki projeler aslında sadece donanımsal bilgisayarlara daha yakındı, bu nedenle gerçek mühendisliğe, ironik olarak daha yakındı) ). Oysa bir asırdan fazla süredir motorlu taşıtlar, birkaç bin yıldır genel olarak taşıtlar üretiyoruz ve daha da fazla bin yıldan beri taşıtlar üretiyoruz (ve aslında dünyanın bazı bölgelerinde oldukça iyi davranıyorduk. '
Biz sistematik doğru tarihleri tahmin etmek başarısız biz sistematik doğru maliyetlerini tahmin etmek başarısız biz sistematik verimli ve deterministik doğasında ve dış riskleri belirlemek ve azaltmak için başarısız . Yapabileceğimiz en iyi şey, yeterince iyi tahminler üretmek ve döngüleri ve ek yükü azaltmak için süreçleri optimize etmek için elimizden gelenin en iyisini yapmaya çalışırken bazı tamponlara uyum sağlamaktır.
Ama bakın, belki de mühendislik budur. İşte bu, birisi bir "yazılım mühendisi" hakkında konuşurken, düşünmeli ve amaçlamalıdır.
Bu nedenle, basit programlama rutinleriyle veya daha gelişmiş uygulamalarla başa çıkabiliyoruz.
Yine de, her şey bir trend meselesidir. Son zamanlarda, takımdaki herkesin bir Kıdemli Yazılım Geliştiricisi olduğu (evet, başkentler, çünkü bizi özel hissettiriyor, öyle değil mi?), Gerçek yaş ayrımı yapmadan (yeterince adil) fikir) ve becerilerin (uh-oh ...) ve sorumlulukların (şimdi tamamen PR vızıltıları için ayrı olmaktan uzak, iyi olamaz) ayrılığı.
Aynı zamanda bazen bir alışkanlık kuvveti ve bir endüstrinin kültürüne ve jargonuna özgüdür.. Gömülü yazılım üretimi için daha fazla pozisyon yazılım mühendisleri için başlıkları kullanır. Çoğunlukla, muhtemelen bu alanda da donanımla her zaman bir dereceye kadar uğraşmak zorunda kalacağınız anlamına geleceğinden, açıkça üretimin ve ürettiğiniz tüm "sistemin" diğer yönleriyle ilgileniyorsunuzdur. Sadece içindeki bitlerin içine değil. Spektrumun diğer tarafında, finansal yazılım üretim pozisyonlarında kullanılan mühendis terimini gerçekten görmüyorsunuz. Bunun nedeni, bu endüstrinin öncüllerinden birinin (mesela gömülü mühendislik, otomobil mühendisliğinde köklerini bulması gibi) mimetik bir evrimi olması ya da sadece bir pozisyona az ya da çok kredi vermek istedikleri için.
Ve siste bulunan herkesi gevşettiğinizden emin olmak için, her ikisini de karıştıran diğer başlıkları ("Yazılım Geliştirme Mühendisi" veya "Testte Yazılım Mühendisi" gibi!) Ve daha sonra diğer alanlarla daha da çılgın köprülere vurgu yapan diğer başlıkları bulacaksınız ( "Yazılım Mimarı" nı ve "yazılım mimarisinin" kelimelerin utanmaz bir hırsızlık olabileceğini düşünün). Ve onların gelmesini sağlayın: Mühendisi bırakın, Geliştirme Müdürü değiştirin, Yapı Mühendisi (ki o da bir ffaaarrrrr'a gider). Ve bazen sadece basitçe "mühendis".
Bu gerçekten bir cevap olmasa da, yardımcı oldu umarım.
Oh, ve bu, yeni şirketinizin sizi ya yeni bir unvanla cezbetmeye çalıştığını ya da unvanları gerçekten önemsemediklerini ya da gerçekten daha yüksek bir pozisyona sahip olacağınız anlamına geliyor. Bilmenin tek yolu mesleğinizin özelliklerini okumak, onlarla konuşmak ve en sonunda kendinize bir şans tanımak. İkinci seçenek ve bununla mutlu olmanı umuyorum (ve potansiyel olarak daha fazla para kazanın). ;)
Yazılım mühendisleri , kendilerine yazılım yazan kişileri "yazılım mühendisleri" olarak adlandıran şirketlerde çalışan kişilerdir.
Programcılar , kendileri için yazılım yazan kişileri "programcılar" olarak tanımlayan şirketlerde çalışan kişilerdir.
De vardır geliştiriciler veya yazılım geliştiricileri . Sırasıyla, "geliştiriciler" veya "yazılım geliştiriciler" için kendilerine yazılım yazan kişileri arayan şirketlerde çalışan kişilerdir.
Yani "Yazılım Mühendisi", "Programcı" ve ayrıca "Geliştirici", "Kodlayıcı" ve "SOA uzmanını" asla unutamazsınız.
Bunların hepsi özgeçmişlerinde, önceki pozisyonlardaki asıl rolleri (sadece iş unvanı değil) gibi anlamlı bir şey söyleyemeyen insanlar için pazarlama terimleridir.
İş ilanlarında fark, İK kişisine bağlıdır.
Alt satır: Her insanın "kodla çalışan iyi bir çalışanı neyin yarattığını" yapan bir şey vardır ve bazıları bu tür becerileri bu tür başlıklarla ilişkilendirmeyi sever.
Ne yapmak gerekiyor? İş ilanları, gerekli beceriler hakkında açıklayıcı olmalı ve CV'ler, adayın deneyim detaylarını açıklamalıdır.
Fark yok. Onlar aynı şey. Ancak şirketler, terimleri kullanarak resmi iş tanımlarına sahip olabilir ve daha sonra bu terim için şirkete özgü bir anlam olabilir.
Bu gerçekten şirketin pozisyonları nasıl tanımladığına bağlı. Bir yazılım mühendisi olarak daha fazla tasarım kararı fırsatına sahip olabilirsiniz, oysa geliştirici olarak size UML diyagramları verecek ve programı yazacaksınız.
Ancak gerçek bir tanım yoktur, böylece başlığa dayanarak insanlar ne yaptığınızı ya da ne kadar tecrübeli olduğunuzu bilir.
Bir mimar / geliştirici olduğumda, unvanım bilgisayar bilimciydi, ama insanlara bir programcı olduğumu söylerdim, ilk ikisi kolay tanımlanmadığı için, ama çoğu insan bir programcının ne yaptığını bilir.
Bir başlık sizin için önemliyse, mühendis geliştiriciden daha yüksek olduğu için yenisini kabul edin.
Tecrübelerim için herhangi bir "resmi farklılık" olduğunu sanmıyorum:
Ayrıca, aynı zamanda değişen moda terimleri vardır ... İlk önce terim "programcı", sonra "yazılım mühendisi" ve şimdi "geliştirici" gibi görünüyor ...
İş tanımını veya şirketteki birine okumak daha iyi olur.
Yazılım Mühendisleri, örneğin 5 ila 16 yıl gibi bir çok insanın yıllar sürmesi çok büyük sistemler üzerinde çalışma eğilimindedir. Programcılar, sadece kodlamanın bu stereotipini ve başka bir şeyi yapma eğilimindedir. Ancak bu gerçekten çalıştığınız kuruma ve İK'nın yukarıda açıklandığı gibi rolü nasıl pazarladığına bağlıdır. Onlar aslında aynı şeydir. Sadece bir başlığa fazla da bağlanma çünkü eşanlamlı.