Dalla scrivania del brillante strambo #1:
“La differenza tra lo sviluppatore di software e di un ingegnere del software è la stessa differenza tra grandi e grandi.” — Sconosciuto.
Quello che stai per leggere ruota principalmente attorno ai miei pensieri personali, deduzioni e immaginazione insolita.
Se hai sentimenti diversi, aggiungili nella sezione commenti e contestiamo!
Così, l’argomento di oggi…
Personalmente, fa incazzare. Ogni volta che vedo un articolo su questo argomento, il mio conto in banca emotivo viene derubato. Sono tutti su SEO. Parole chiave inappropriate spremute in frasi minuscole solo per ottenere classifiche migliori. Nessun intento di intrattenere o illuminare il lettore di sorta. A volte, tali articoli possono anche essere completamente sbagliato.
E anche se lo scopo di questo post del blog può essere quello di generare traffico, ho cercato di renderlo più di uno sproloquio significativo di un saggio accademico senza vita.
Quindi, vediamo come ti senti quando hai finito di leggere questo articolo.
Senza ulteriori indugi:
Poiché non ci sono interpretazioni corrette di entrambi i termini, molte persone li usano in modo intercambiabile.
Tuttavia, alcune aziende considerano questi termini come titoli di lavoro.
La tendenza generale “programmatore-sviluppatore-ingegnere” va sulla falsariga di:
- Un programmatore è qualcuno che sa come codificare, capisce gli algoritmi e può seguire le istruzioni. Eppure, non va oltre per quanto riguarda le responsabilità.
- Uno sviluppatore è qualcuno superiore al programmatore. Ad eccezione della codifica, fanno anche progettazione, architettura e documentazione tecnica del componente software che stanno costruendo. Potrebbero essere indicati come leader, ma non necessariamente.
- Infine, un ingegnere implica che tu sei il vero affare. Ti sei laureato con una laurea, hai una certa conoscenza tecnologica e preferibilmente esperienza… e sei in grado di progettare un sistema software (una combinazione di componenti software che i tuoi peoni, i programmatori, hanno costruito). Sei come un sorvegliante. Si può vedere il quadro più ampio. Ed è tua responsabilità spiegare chiaramente quella “immagine” alla tua squadra.
“In genere, gli ingegneri del software svolgeranno il ruolo di team leader, essendo in prima linea nel trattare con i clienti e assumendo diversi progetti per il team che lavora sul retro.”- Talha Waseem, editor di contenuti tecnologici di InvoZone.
A proposito, può anche dipendere dal paese in cui ti trovi. Ad esempio, in Francia, puoi definirti un ingegnere solo se ti sei laureato in una scuola di ingegneria riconosciuta dalla Commission des Titres d’Ingénieur.
“In Canada, il termine “Ingegnere” è limitato a coloro che sono certificati da un’associazione provinciale. Così, non tutti possono definirsi un “ingegnere” in Canada.”- Briana Brownell, fondatrice e CEO di PureStrategy.
Altri ipotizzano che questi potrebbero essere solo termini fatti con lo scopo di marketing. Forse le aziende vogliono le loro liste di lavoro e le descrizioni di lavoro a guardare fresco e attirare più candidati. Brillante!
Va bene, immergiamoci in profondità.
Ecco alcuni…
- le differenze principali tra un ingegnere del software e sviluppatore
- Che diamine è un ingegnere del software?
- Va bene, quindi cos’è uno sviluppatore di software?
- Cosa fa un ingegnere del software
- Cosa fa uno sviluppatore di software
- Software engineer/sviluppatore stipendi
- Software engineer vs software developer — competenze, ruoli e responsabilità
- Istruzione come un ingegnere del software/sviluppatore
- La vita di uno sviluppatore di software vs software engineer
le differenze principali tra un ingegnere del software e sviluppatore
Secondo Felim O’Donnell, direttore delle operazioni presso la Libertà sviluppatori di lavoro, in particolare sulla fornitura di software all’interno di stretti parametri. Non hanno bisogno di vedere l’intera immagine. Gli sviluppatori devono solo concentrarsi sull’attività che è stata loro assegnata dagli ingegneri del software.
D’altra parte, O’Donnell dice, un ingegnere del software è qualcuno che prende una vista di 50.000 piedi sul software sviluppato. Comunicano con altre parti interessate per chiarire i requisiti del progetto e sono costantemente alla ricerca di modi per ottimizzare il processo di lavoro. Spesso si chiedono — ” C’è un modo migliore per farlo?”
Quindi, in pratica, ciò che fa la differenza tra uno sviluppatore e un ingegnere è la mentalità con cui si avvicinano al loro lavoro e il loro appetito per imparare.
“A meno che tu non stia lavorando in un posto come Google e stia inseguendo quella prestigiosa promozione da” Software Engineer Level 4 ” a “Software Engineer Level 5″, quale versione del titolo di ingegneria del software che qualcuno usa per lo più indica solo come pensano al ruolo da soli.”- Justin Pincar Fondatore & CTO di realizzabile.
Onestamente, essere chiamato un ingegnere del software o uno sviluppatore va bene. Quello che non va bene viene chiamato un programmatore. Le persone che ci chiamano programmatori sono in genere piccole persone luddiste prive di qualsiasi conoscenza IT. Disgustoso. Come osano they
Voglio dire, passi tutti quegli anni a ottenere la tua laurea in CS, lavorando come ingegnere software d’élite (o sviluppatore), solo per finire per essere chiamato un semplice “programmatore”.”
Dai, la programmazione era qualcosa che ho fatto nella mia stanza alle 03:00 am all’età di 15 anni.
“Ingegneria del software” è la mia carriera, cap. Un po ‘ come chiamare un contabile un preparatore fiscale o tuo padre con il suo nome di battesimo.
Oh, e a proposito, non sei un vero sviluppatore di software se non lavori su Linux e hai una tastiera meccanica rainbow light di Razer.
” Perché ne ho bisogno?”- Ti sento urlare.
Bene, l’aspetto della tua configurazione di lavoro definisce la qualità del tuo lavoro. Se non lo sai, ora lo sai.
“Signore, questo è di Wendy.”
Lo so, lo so.
Sto divagando.
Diamo un’occhiata ai fatti
Che diamine è un ingegnere del software?
per definizione, un ingegnere è una persona che progetta, realizza o gestisce i motori, le macchine, o strutture.
Wikipedia descrive il termine “ingegnere del software” come qualcuno che applica i principi dell’ingegneria del software, alla progettazione, sviluppo, manutenzione, test e valutazione del software per computer.
Tuttofare.
“Preferisco definirmi un ingegnere del software perché sembra più solido e professionale.”- Gene Mal, CTO at Static Jobs
Va bene, quindi cos’è uno sviluppatore di software?
per definizione, uno sviluppatore di software è qualcuno che si sviluppa qualcosa di abbastanza giusto.
Cosa significa” sviluppare ” allora?
Sviluppare, per definizione, significa crescere o far crescere e diventare più maturi, avanzati o elaborati.
Va bene.
Vediamo cosa pensa Wikipedia degli sviluppatori di software:
Uno sviluppatore di software è una persona che crea software. La frase “sviluppo software” spesso significa più che progettare o scrivere il software, di solito significa qualcuno che gestisce il progetto o fa solo le cose principali. La maggior parte degli sviluppatori di software sono ancora guidati da un ingegnere del software di piombo che guida il progetto.
Accidenti, anche Wikipedia è di parte.
Va bene, discutiamo un po ‘ i programmatori ora.
I miei due centesimi:
Se qualcuno mi chiama programmatore mi associo a with un peone lazy un peone pigro in un peone pigro nel World of Warcraft.
Penso che i programmatori possano anche essere chiamati sviluppatori junior. Il loro compito è quello di seguire il piano che è stato sviluppato da sviluppatori senior o il lead tecnologico.
Un fatto interessante: i programmatori in genere trascorrono il 90% del loro tempo nel loro editor di codice preferito o su Stack Overflow alla ricerca di correzioni. L’altro 10% del loro tempo va a giocare a Fortnite.
Cosa fa un ingegnere del software
Come qualcuno considerato avere una laurea in ingegneria ed esperienza, gli ingegneri del software possono incarnare il ruolo di uno sviluppatore di software senior (o di un team tecnico di piombo), il che significa, portano responsabilità più elevate rispetto al programmatore medio.
Alcuni studenti considerano l’ingegneria più di un lavoro di architettura: pianificare una soluzione software. Lo sviluppo del software, d’altra parte, è più di armeggiare con roba e provare cose nuove.
“Nei nostri programmi di apprendistato, usiamo Software Engineer per descrivere gli apprendisti che lavoreranno su problemi algoritmici più impegnativi e soluzioni aziendali più orientate all’impresa. I nostri sviluppatori di software lavorano su una linea più piccola di applicazioni aziendali, applicazioni mobili e siti Web che richiedono UX con un grado più elevato di lucidatura.”- Mike Roberts, CEO di San Diego Code School
Cosa fa uno sviluppatore di software
Secondo la definizione di Wikipedia, sembra che gli sviluppatori di software abbiano responsabilità piuttosto simili agli ingegneri del software. Tuttavia, il titolo dell’ingegnere si colloca al di sopra di quello dello sviluppatore di software.
Ecco cosa mi sembra giusto:
Uno sviluppatore di software è qualcuno a cui vengono date istruzioni specifiche da seguire, ma hanno la libertà e la creatività con cui giocare per adottare l’approccio che trovano più adatto.
Non sono “monkey see, monkey do” tipo di programmatori con qualsiasi mezzo, ma comunque follow seguono una serie di istruzioni chiare. A volte, gli sviluppatori di software possono anche essere considerati come sviluppatori/ingegneri full-stack.
Software engineer/sviluppatore stipendi
Come detto in precedenza, il software engineer and developer termini possono essere usati in modo intercambiabile.
Solo per alcune aziende o individui significano cose diverse.
Quindi, quando stiamo guardando gli stipendi, possiamo considerare uno come sviluppatore junior e un altro come sviluppatore senior o un team tecnico.
Diciamo, solo per esempio, che i programmatori tendono ad essere considerati come sviluppatori entry-level. Pertanto, possiamo chiamarli sviluppatori junior.
Poiché gli sviluppatori di software sono al di sopra dei programmatori, possiamo chiamarli sviluppatori senior.
E poiché gli ingegneri del software hanno il ruolo di un sorvegliante (secondo Wikipedia), facendo più cose di gestione che di codifica, possiamo chiamarli lead tecnologici.
Sulla base di Glassdoor, lo stipendio medio di uno sviluppatore junior riassume circa $63,502 / anno.
Lo stipendio mediano per uno sviluppatore senior è di circa $82.518/anno.
E lo stipendio medio di un team tecnico secondo Payscale è di circa $101,381 / anno.
Veramente, uno dei principali vantaggi di essere un ingegnere del software è avere uno stipendio che ti mette nella top 1% della popolazione mondiale per quanto riguarda la sicurezza finanziaria.
Software engineer vs software developer — competenze, ruoli e responsabilità
Penso che le soft skills siano altrettanto importanti delle tue capacità tecniche. Essere un buon comunicatore come sviluppatore di software può farti un contributo inestimabile al team.
Ad un certo punto della tua carriera, dovrai affrontare compiti che avresti difficoltà a completare da solo. Essere in grado di ascoltare gli altri membri del team con attenzione invece di interrompere, e fare coppia di programmazione — questo è ciò che vi aiuterà a stabilire una posizione come un buon sviluppatore di software/ingegnere.
Qui ci sono tre buone regole empiriche che credo vi aiuterà a diventare uno sviluppatore di software migliore e salire la classifica.
1. Fai domande.
2. Mai multitasking.
3. Se vuoi che il risultato sia 10, prova per 9 e 11. Risultati errati possono creare una soluzione solida.
Fondamentalmente, qualcuno che vuole essere considerato un ingegnere del software (sviluppatore senior o un lead tecnologico) dovrebbe essere in grado di ottenere le cose difficili da cui tutti gli altri corrono.
Istruzione come un ingegnere del software/sviluppatore
La cosa migliore da fare è, ovviamente, per ottenere un grado del Bachelor.
Questo è ciò che la maggior parte della gente pensa almeno. Se avete il tempo, denaro e pazienza si potrebbe anche macinare qualche extra per ottenere un master. Qui puoi trovare alcune delle migliori scuole di ingegneria del software.
Una grande fetta di sviluppatori professionisti, intervistati da StackOverflow, ha dichiarato che i loro studi si sono concentrati sull’informatica e sull’ingegneria del software.
Una percentuale minore degli intervistati ha dichiarato di essersi specializzata in campi correlati all’ingegneria del software come la programmazione di computer, l’ingegneria informatica o l’IT.
Quando si tratta dell’importanza di avere un’istruzione formale come sviluppatore di software, la maggior parte degli sviluppatori afferma che non è necessario averne uno. Quello che pensano sia molto più importante è la capacità di imparare da soli e far crescere le tue conoscenze al di fuori dell’orario scolastico being essere autodidatta.
Molti sviluppatori consigliano di seguire corsi online o campi di codifica. Questi possono sicuramente aiutare a terra il tuo primo lavoro.
Imparare attraverso i libri e fare esami online può anche essere considerato come una pratica altamente efficace per migliorare le vostre abilità di codifica.
Contribuire all’open source è molto apprezzato anche tra gli sviluppatori. Puoi andare su GitHub e creare il tuo portfolio di sviluppatori di software contribuendo ad altri progetti e ampliando il tuo ambito di conoscenza.
Puoi anche provare a cercare un mentore.
LinkedIn, credo, è il luogo perfetto per trovare un mentore nel 2020.
Devi solo distinguerti dal tipico ragazzo alla ricerca di un mentore.
Se atterri nella casella di posta del tuo futuro mentore con un messaggio che va sulla falsariga di “Ehi caro Mike, ti ho seguito per un po’, amo le tue cose. Sto cercando un mentore. Sei disponibile?”chances è probabile che non avrai molte risposte.
Invece, sii spiritoso. Dopo tutto, sei un ingegnere del software.
Ricorda questo: “se riesci a far sorridere o ridere qualcuno, avrai una probabilità molto più alta di iniziare una conversazione significativa.”
Ho trovato un certo successo nelle seguenti righe:
” Hey Mike. Volevo presentarmi in un modo che mostrasse che ero interessante, intelligente e spiritoso — Ahimè, ho scritto questo messaggio invece.”
E poi andare avanti per spiegare perché si sta inviando loro un messaggio.
Naturalmente, potrebbe non funzionare dalla prima volta. Infatti, se funziona la prima volta, allora lo chiamo un MIRACOLO f*cking.
Stringi i denti e continua a inviare messaggi. Alla fine troverai un mentore adatto. E quando lo trovi, assicurati di aver esagerato. Essere disposti a lavorare gratuitamente per assorbire quante più conoscenze e abilità possibili (pensieri personali).
Tuttavia, il tuo mentore dovrebbe essere qualcuno che vuoi essere tra 10 anni (altrimenti, qual è il punto di ottenere un mentore?).
LinkedIn però, potrebbe non funzionare sempre per la vostra situazione. In questo caso, Google up meetup di sviluppatori locali nella tua città.
O andare a seminari e non essere timido di impegnarsi con i relatori.
O forse andare alle università e trovare persone che la pensano lì. (Questo può essere un po ‘ difficile a causa dell’attuale situazione COVID, ma ottieni il punto.)
Un’altra opzione è quella di applicare per i lavori in cui sarete circondati da sviluppatori senior e in grado di assorbire la conoscenza quotidiana.
Basta così.
La vita di uno sviluppatore di software vs software engineer
Tutti i tipi di sviluppatori che probabilmente iniziare la giornata con una tazza di caffè in mano, mentre il controllo di loro e-mail.
Una volta che le loro riunioni scrum si sono concluse, vanno avanti con i loro compiti abituali.
I programmatori (o sviluppatori junior) molto probabilmente si concentreranno sulla codifica.
Gli sviluppatori di software (sviluppatori senior) potrebbero controllare il team per vedere se qualcuno ha difficoltà a completare un particolare compito.
Il software engineer (tech team lead) potrebbe avere altre riunioni a cui partecipare per assicurarsi che gli obiettivi e i requisiti del progetto siano trasmessi chiaramente al team di sviluppo.
Dopo il lavoro, escono con gli amici o si siedono sui loro computer, facendo un lavoro freelance, guardando video di YouTube, ascoltando musica o giocando a Fortnite cercando di assicurarsi finalmente la vittoria del 1 ° posto dopo il loro 47 ° tentativo.
La loro routine di andare a dormire consiste in video di anime binge-watching (non tutti immagino lol), leggendo libri motivazionali consigliati da Opah o scorrendo le notizie degli hacker davanti ai loro occhi.