Programmazione di alto livello vs basso livello. Devo davvero scegliere? [chiuso]

13

Ogni tanto mi viene chiesto in interviste che mi piace il livello più basso o alto. Mi sembra che il messaggio implicito sia che sono entrambi una specialità e vogliono sapere in quale direzione mi sto dirigendo. Il problema è che mi piacciono entrambi. Il livello basso è estremamente impegnativo e spesso richiede una grande quantità di conoscenza esoterica. L'alto livello è il luogo in cui accadono tutte le cose sexy: applicazioni che le persone utilizzano direttamente, risultati che possono essere facilmente dimostrati (mostrati) in un modo accessibile a tutti, e lavorare con strumenti davvero avanzati e interagire con le nuove tecnologie.

Mi piacerebbe davvero fare entrambe le cose, anche se ciò significa alternare tra loro (dubito che ci siano lavori che mi consentiranno di farlo simultaneamente), ma suppongo che il settore premia gli specialisti più dei generalisti. Sarà davvero problematico in termini di carriera se non sceglierò mai l'uno rispetto all'altro? È pratico alternare i due nel senso che se dovessi lasciare un lavoro a fare uno di loro, non dovrei sperimentare alcun "attrito" cercando di ottenere un lavoro facendo l'altro (supponendo che sia ragionevolmente nel ciclo)? Ci sono opportunità di carriera dove puoi fare entrambe le cose?

Devo davvero scegliere uno rispetto all'altro?

    
posta EpsilonVector 06.03.2011 - 19:57
fonte

5 risposte

5

In primo luogo, qualunque percorso tu scelga, tieni presente che ciò che ti circonda potrebbe cambiare. :)

Inoltre, non penso che tu debba scegliere tra l'uno o l'altro. Piuttosto, le tue opzioni dipendono maggiormente dal progetto e dal gruppo con cui stai lavorando.

  • È probabile che applicando per un lavoro specialistico in una grande azienda, troveresti difficile eseguire altre attività.
  • È anche probabile che un ruolo generico non ti dia il tempo di scavare più a fondo in una piccola parte.
  • È altrettanto probabile che avere delle competenze generaliste ti renda più efficiente nel lavoro specialistico, dal momento che non dovrai fare affidamento sugli altri per andare avanti.
  • È anche possibile che un ruolo generalista abbia bisogno di conoscenze specialistiche, e se cerchi una piccola azienda o una startup che lavora nell'area in cui sei specializzato, potresti avere ampie opportunità di brillare nel tuo campo specialistico.

In realtà sto affrontando questi problemi nel mio attuale lavoro ..

Mi sono specializzato in C ++, OpenGL, simulazioni 3D, architettura del motore di gioco e cose del genere, ma l'anno scorso ho usato un saldatore piuttosto (mischiando schede USB, prototipi, servi e motori, come oltre a sintonizzare e programmare questi servo controller). Potrei anche dover creare alcuni prototipi di siti web per alcuni servizi di cui abbiamo bisogno.

È divertente, ma non vorrei farlo per sempre, dato che la mia specializzazione svanisce un po ', e probabilmente ci sono anche altri che lo sono comunque. Speriamo che l'azienda cresca e che possiamo assumere altri ingegneri. Al momento siamo solo in due C ++ / Python (con il 60-75% del mio tempo dedicato all'hardware).

Quindi, seleziona attentamente i tuoi progetti e non devi abbandonare nulla, ma devi controllare dove si sta dirigendo la tua carriera di tanto in tanto (come fanno tutti).

    
risposta data 06.03.2011 - 21:37
fonte
13

Nella mia esperienza, le grandi aziende hanno bisogno di specialisti e le aziende più piccole hanno bisogno di generalisti. Se vuoi essere un generalista, cerca e applica nelle aziende più piccole.

    
risposta data 06.03.2011 - 20:04
fonte
2

Nel nostro campo, penso che dobbiamo essere generalisti su un certo livello e allo stesso tempo sviluppare una specialità o anche alcune specialità. Non fa mai male sviluppare le nostre capacità in molte aree, poiché alcuni progetti potrebbero richiedere di essere versatili. Come è stato già detto, più grande è l'azienda, più è probabile che abbiano bisogno di te per concentrarsi in una sola area. In queste situazioni, penso che la domanda di cui preferisci sia più che probabile che cerchi di capire dove ti metterebbero se ti assumessero.

    
risposta data 06.03.2011 - 20:32
fonte
2

Penso sia bello fare questa domanda, quindi sanno a cosa mirate, ma la spiegazione che avete postato qui è anche un'ottima risposta: "Mi piace fare entrambe le cose". I linguaggi di alto livello e di basso livello attraggono diversi tipi di persone, mentre i linguaggi di basso livello attirano persone che amano conoscere i piccoli dettagli del sistema, come funziona, ecc., I linguaggi di alto livello attraggono le persone più interessate al processo aziendale e all'organizzazione si. Così tante persone apprezzano molto i linguaggi di alto livello, ma non possono sopportare un livello basso (o viceversa).

Quindi è molto importante ottenere il tuo profilo e le tue intenzioni, ma la tua risposta come hai postato è completamente accettabile.

    
risposta data 06.03.2011 - 22:53
fonte
1

Non devi scegliere, anche se la tua vita sarebbe più facile (se non più felice) se lo fai. La maggior parte delle aziende cercherà l'una o l'altra, ma se trovi un posto dove vogliono qualcuno che conosca entrambi i mondi, otterrai il jackpot.

Ciò che non devi assolutamente fare è applicare l'approccio sbagliato a un problema.

E, naturalmente, a volte le cose non vanno come previsto, ho iniziato con l'amore per il montaggio e C e una sfiducia in tutto OO e sono diventato uno sviluppatore Java. Ora troverei difficile tornare indietro, perché ho perso dieci anni di apprendimento e nuove tecnologie. Quindi la lezione qui è che se vuoi cambiare, assicurati di rimanere in contatto.

    
risposta data 06.03.2011 - 22:29
fonte

Leggi altre domande sui tag