från skrivbordet på den lysande Weirdo #1:
”skillnaden mellan mjukvaruutvecklaren och en mjukvaruingenjör är densamma som skillnaden mellan stora och stora.” — Okänd.
vad du ska läsa handlar mest om mina personliga tankar, avdrag och udda fantasi.
Om du har olika känslor, Lägg till dem i kommentarsektionen och låt oss bestrida!
så dagens ämne…
personligen gör det mig förbannad. Varje gång jag ser en artikel om detta ämne blir mitt känslomässiga bankkonto rånat. Allt handlar om SEO. Olämpliga nyckelord pressas in i små meningar bara för att få bättre ranking. Ingen avsikt att underhålla eller upplysa läsaren alls. Ibland kan sådana artiklar till och med vara helt fel.
och även om syftet med detta blogginlägg kan vara att generera trafik, försökte jag göra det mer av en meningsfull rant än en livlös akademisk uppsats.
Så, låt oss se hur du känner när du är klar med att läsa detta papper.
utan vidare ado:
eftersom det inte finns några korrekta tolkningar av båda termerna använder många människor dem omväxlande.
vissa företag anser dock att dessa villkor är jobbtitlar.
den allmänna trenden ”programmerare-utvecklare-ingenjör” går i linje med:
- en programmerare är någon som vet hur man kodar, förstår algoritmer och kan följa instruktioner. Ändå går det inte längre när det gäller ansvar.
- en utvecklare är någon överlägsen programmeraren. Förutom kodning gör de också design, arkitektur och teknisk dokumentation av programvarukomponenten de bygger. De kan kallas ledare, men inte nödvändigtvis.
- slutligen innebär en ingenjör att du är den verkliga affären. Du har examen, har viss teknisk kunskap och helst erfarenhet… och du kan designa ett mjukvarusystem (en kombination av programvarukomponenter som dina peons, programmerarna, har byggt). Du är som en övervakare. Du kan se den större bilden. Och det är ditt ansvar att tydligt förklara den ”bilden” för ditt team.
”vanligtvis kommer mjukvaruingenjörer att spela rollen som lagledare, vara på framsidan när det gäller att hantera kunder och ta på sig olika projekt för laget som arbetar på baksidan.”- Talha Waseem, teknisk innehållsredigerare på InvoZone.
förresten, det kan också bero på det land du är baserad i. Till exempel, i Frankrike, kan du bara kalla dig ingenjör om du har examen från en ingenjörskola som har erkänts av kommissionen des Titres d ’ ing Audnieur.
”i Kanada är termen ”ingenjör” begränsad till dem som är certifierade av en provinsförening. Så, inte alla kan kalla sig en” ingenjör ” i Kanada.”- Briana Brownell, grundare och VD på PureStrategy.
andra spekulerar i att dessa bara kan vara villkor gjorda med syftet med marknadsföring. Kanske vill företag att deras anställningslistor och arbetsbeskrivningar ska se coola ut och locka fler sökande. Brillante!
Okej, låt oss dyka djupt.
Här är några…
- viktiga skillnader mellan en mjukvaruingenjör och utvecklare
- Vad är en mjukvaruingenjör?
- Okej, så vad är en mjukvaruutvecklare då?
- Vad gör en mjukvaruingenjör
- Vad gör en mjukvaruutvecklare
- programvara ingenjör/Utvecklare löner
- Software engineer vs software developer-färdigheter, roller och ansvar…
- utbildning som mjukvaruingenjör/Utvecklare
- livet för en mjukvaruutvecklare vs mjukvaruingenjör
viktiga skillnader mellan en mjukvaruingenjör och utvecklare
per definition är en ingenjör en person som konstruerar, bygger eller underhåller motorer, maskiner eller strukturer.
Wikipedia beskriver termen ”mjukvaruingenjör” som någon som tillämpar principerna för mjukvaruutveckling, design, utveckling, underhåll, testning och utvärdering av datorprogramvara.
Jack av alla branscher.
” Jag föredrar att kalla mig en mjukvaruingenjör eftersom det låter mer solid och professionell.”- Gene Mal, CTO vid statiska jobb
Okej, så vad är en mjukvaruutvecklare då?
per definition är en mjukvaruutvecklare någon som utvecklar något — rättvist nog.
vad betyder ”utveckla” då?
utveckla, per definition, betyder att växa eller orsaka att växa och bli mer mogen, avancerad eller utarbetad.
okej.
Låt oss se vad Wikipedia tycker om mjukvaruutvecklare:
en mjukvaruutvecklare är en person som skapar programvara. Uttrycket ’mjukvaruutveckling’ betyder ofta mer än att bara designa eller skriva programvaran, det betyder vanligtvis någon som hanterar projektet, eller gör bara de viktigaste sakerna. De flesta mjukvaruutvecklare leds fortfarande av en ledande mjukvaruingenjör som styr projektet.
Fan, även Wikipedia är partisk.
Okej, låt oss diskutera programmerare lite nu.
mina två cent:
om någon kallar mig en programmerare associerar jag mig med… en peon… en lat peon… en lat peon i World of Warcraft.
Jag tror att programmerare också kan kallas juniorutvecklare. Deras jobb är att följa planen som har utvecklats av ledande utvecklare eller tech lead.
ett intressant faktum: programmerare spenderar vanligtvis 90% av sin tid antingen i sin favoritkodredigerare eller på Stack Overflow som söker efter korrigeringar. De andra 10% av sin tid går till att spela Fortnite.
Vad gör en mjukvaruingenjör
som någon anses ha en examen i teknik och erfarenhet kan mjukvaruingenjörer belysa rollen som en senior mjukvaruutvecklare (eller en teknisk teamledare), vilket betyder att de har högre ansvar än den genomsnittliga programmeraren.
vissa undergrads anser att teknik är mer av ett arkitekturjobb-planerar en mjukvarulösning. Mjukvaruutveckling, å andra sidan, handlar mer om att tinka med saker och prova nya saker.
”i våra lärlingsprogram använder vi mjukvaruingenjör för att beskriva lärlingar som kommer att arbeta med mer utmanande algoritmiska problem och affärslösningar som är mer företagsorienterade. Våra mjukvaruutvecklare arbetar med en mindre rad affärsapplikationer, mobilappar och webbplatser som kräver UX med en högre grad av polska.”- Mike Roberts, VD på San Diego Code School
Vad gör en mjukvaruutvecklare
enligt Wikipedias definition ser det ut som programutvecklare har ganska liknande ansvar för mjukvaruingenjörer. Ändå rankas ingenjörstiteln ovanför mjukvaruutvecklarens.
Här är vad som verkar rättvist för mig:
en mjukvaruutvecklare är någon som får specifika instruktioner att följa, men de har friheten och kreativiteten att leka med för att ta det tillvägagångssätt som de tycker är mest lämpliga.
de är inte” monkey see, monkey do ” typ av programmerare på något sätt men ändå… de följer en uppsättning tydliga instruktioner. Ibland kan mjukvaruutvecklare också betraktas som fullstackutvecklare/ingenjörer.
programvara ingenjör/Utvecklare löner
som sagt tidigare kan programvaruingenjören och utvecklarens termer användas omväxlande.
endast för vissa företag eller individer betyder de olika saker.
så när vi tittar på löner kan vi betrakta en som en junior utvecklare och en annan som en senior utvecklare eller en teknisk teamledare.
låt oss säga, bara till exempel, att programmerare tenderar att betraktas som nybörjarutvecklare. Därför kan vi kalla dem juniorutvecklare.
som mjukvaruutvecklare rankas över programmerare kan vi kalla dem seniorutvecklare.
och eftersom mjukvaruingenjörer har rollen som en övervakare (enligt Wikipedia), gör mer hantera saker än kodning, kan vi kalla dem tech leads.
baserat på Glassdoor summerar den genomsnittliga lönen för en juniorutvecklare cirka $63,502/yr.
medianlönen för en senior utvecklare är ungefär $82,518 / yr.
och den genomsnittliga lönen för ett tekniskt team leder enligt Payscale är cirka $101,381/yr.en av de största fördelarna med att vara mjukvaruingenjör är att ha en lön som sätter dig i topp 1% av världens befolkning när det gäller ekonomisk säkerhet.
Software engineer vs software developer-färdigheter, roller och ansvar…
Jag tycker att mjuka färdigheter är lika viktiga som dina tekniska färdigheter. Att vara en bra kommunikatör som mjukvaruutvecklare kan göra dig till en ovärderlig bidragsgivare till teamet.
vid någon tidpunkt i din karriär kommer du att möta uppgifter som du skulle ha svårt att slutföra på egen hand. Att kunna lyssna på andra teammedlemmar noggrant istället för att avbryta och göra parprogrammering — det är det som hjälper dig att skapa en position som en bra mjukvaruutvecklare/ingenjör.
Här är tre bra tumregler som jag tror hjälper dig att bli en bättre mjukvaruutvecklare och höja dig upp rankningen.
1. Ställ frågor.
2. Multitask aldrig.
3. Om du vill att resultatet ska vara 10, testa sedan för 9 och 11. Felaktiga resultat kan skapa en solid lösning.
i grund och botten bör någon som vill betraktas som en mjukvaruingenjör (senior developer eller en tech lead) kunna få de hårda sakerna som alla andra kör från gjort.
utbildning som mjukvaruingenjör/Utvecklare
det bästa du kan göra är uppenbarligen att få en kandidatexamen.
det är vad de flesta tycker åtminstone. Om du har tid, pengar och tålamod kan du lika gärna slipa lite extra för att få en magisterexamen. Här hittar du några av de bästa programvaruteknikskolorna.
en stor del av professionella utvecklare, undersökta av StackOverflow, sa att deras studier fokuserade på datavetenskap och mjukvaruutveckling.
en mindre andel av de tillfrågade respondenterna sa att de studerade relaterade programvarutekniska områden som datorprogrammering, datateknik eller IT.
När det gäller vikten av att ha en formell utbildning som mjukvaruutvecklare, säger de flesta utvecklare att det inte är nödvändigt att ha en. Vad de tycker är mycket viktigare är förmågan att lära sig på egen hand och växa din kunskap utanför skoltiden… att vara självlärd.
många utvecklare rekommenderar att du tar onlinekurser eller kodningsläger. Dessa kan definitivt hjälpa dig att landa ditt första jobb.
att lära sig genom böcker och göra online-tentor kan också betraktas som en mycket effektiv praxis för att förbättra dina kodningsförmåga.
att bidra till öppen källkod värderas också högt bland utvecklare. Du kan gå över till GitHub och bygga ut din mjukvaruutvecklarportfölj samtidigt som du bidrar till andra projekt och breddar ditt kunskapsområde.
Du kan också försöka söka efter en mentor.
LinkedIn, tror jag, är den perfekta platsen för att hitta en mentor 2020.
Du måste bara sticka ut från den typiska killen som letar efter en mentor.
Om du landar i din framtida mentors inkorg med ett meddelande som går i linje med ”Hej kära Mike, jag har följt dig ett tag, Jag älskar dina saker. Jag letar efter en mentor. Är du tillgänglig?”…chansen är att du inte får mycket svar.
var istället kvick. När allt kommer omkring är du en mjukvaruingenjör.
Kom ihåg detta — ” om du kan få någon att le eller skratta, har du en mycket större chans att starta en meningsfull konversation.”
Jag har hittat en hel del framgång i följande rader:
”Hej Mike. Jag ville presentera mig på ett sätt som visade att jag var intressant, smart och kvick — Ack, jag skrev detta meddelande istället.”
och sedan gå vidare för att förklara varför du skickar dem ett meddelande.
naturligtvis kanske det inte fungerar från första gången. Faktum är att om det fungerar första gången kallar jag det ett f*cking-mirakel.
Grit tänderna och fortsätt skicka meddelanden. Så småningom hittar du en lämplig mentor. Och när du hittar det, se till att du överlevererar. Var villig att arbeta gratis för att absorbera så mycket kunskap och färdigheter som möjligt (personliga tankar).
din mentor bör dock vara någon som du vill vara 10 år från och med nu (annars, vad är meningen med att få en mentor?).
LinkedIn men kanske inte alltid fungerar för din situation. I det här fallet, Google upp lokala utvecklarmöten i din stad.
eller gå till seminarier och var inte blyg för att engagera sig med högtalarna.
eller kanske gå till universitet och hitta likasinnade människor där. (Det kan vara lite svårt på grund av den nuvarande COVID-situationen men du får poängen.)
ett annat alternativ är att söka jobb där du kommer att omges av ledande utvecklare och kunna absorbera kunskap dagligen.
tillräckligt med det.
livet för en mjukvaruutvecklare vs mjukvaruingenjör
alla typer av utvecklare kommer sannolikt att börja dagen med en kopp kaffe i handen medan de kontrollerar sina e-postmeddelanden.
när deras scrum-möten har avslutats går de vidare med sina vanliga uppgifter.
programmerare (eller juniorutvecklare) kommer sannolikt att fokusera på kodning.
mjukvaruutvecklare (senior developers) kan kontrollera teamet för att se om någon har svårt att slutföra en viss uppgift.
programvaruingenjören (tech team lead) kan ha andra möten att delta för att se till att projektets mål och krav förmedlas tydligt till utvecklingsteamet.
Efter jobbet hänger de antingen med vänner eller sitter på sina datorer, gör lite frilansarbete, tittar på YouTube-videor, lyssnar på musik eller spelar Fortnite och försöker äntligen säkra den 1: a plats segern efter deras 47: e försök.
deras sänggåendet rutin består av binge-watching anime Videor (inte alla jag antar lol), läsa motiverande böcker Oprah rekommenderas, eller bläddra igenom Hacker nyheter innan deras ögon ger ut.