Qual è la differenza tra programmazione universitaria e programmazione aziendale? [chiuso]


28

Ho appena completato la mia laurea in campo IT. Ho un profondo interesse per la programmazione e voglio davvero esserne un professionista. Ora, a parte i corsi universitari, ho imparato a programmare da solo (C #) (la programmazione a livello universitario è troppo semplice). Ora sento di aver bisogno di un po 'più di tempo per essere vicino al programmatore professionista. Ma alcuni dei miei anziani affermano che la programmazione del mondo aziendale è troppo diversa dalla programmazione bookish, quindi non ha senso perdere tempo. (Non sono programmatori stessi, questo potrebbe essere probabilmente quello che hanno sentito).

Vorrei beneficiare del raggiungimento di un livello avanzato di C #? o poiché un livello mediocre è sufficiente per interrompere le interviste, i livelli più alti non contano per le aziende perché fanno affidamento sulla loro formazione puramente per insegnare come funzionano le cose nel mondo aziendale e imparare di più non mi aiuterà molto? Per favore, se ci sono alcuni programmatori professionisti che possono aiutare, prometto che questo è qualcosa che ogni studente interessato alla programmazione vuole chiedere al mio palcoscenico. "Come si passa effettivamente da discente a professionista nel campo della programmazione?" - continuare a studiare fino a quando non si è perfetti o entrare in un'azienda è necessario una volta che le basi sono coperte?


24
La scuola non ha mai avuto a che fare con le competenze necessarie per trovare un lavoro. Si tratta di darti gli strumenti necessari per trovare un lavoro. Nulla sostituisce l'esperienza del mondo reale, ma hai ancora bisogno della scuola.
Robert Harvey,

5
Penso che il titolo presenti una domanda utile, ma il corpo della domanda sta chiedendo consigli di carriera che sono fuori tema su questo sito.
Bryan Oakley,

È possibile trovare il canale di chat per Programmers.SE (la lavagna) come un posto utile per porre tali domande - spesso ci sono persone con una vasta gamma di competenze dal mondo aziendale.


3
In attesa??? Questo NON richiede consigli sulla carriera. Sì, questa domanda riguarda poco la discussione ma è responsabile. Ci sono così tante belle risposte a questa domanda in nessun modo questa domanda dovrebbe essere rimossa o qualcosa a meno che stackexchange stia esaurendo la memoria. Vedi le risposte accettate. Sta dando qualche consiglio di carriera ??
vish213

Risposte:


32

Ci sono molte differenze tra la programmazione a scuola e nel mondo reale. Non sono sicuro che esista una programmazione aziendale .

A seconda di dove stai effettivamente lavorando, ci saranno enormi differenze. Ci saranno anche enormi differenze a seconda dei compiti da svolgere.

Tuttavia ci sono ancora alcuni problemi comuni.

  • il ciclo di vita del codice del mondo reale è molto diverso dai compiti del college. Nella programmazione del mondo reale di solito stai lavorando su una base di codice esistente. Uno dei maggiori problemi è evitare la rottura della compatibilità con il codice utilizzato dai clienti (che possono essere clienti interni o clienti esterni, a seconda del luogo di lavoro e del caso effettivi). Il codice che stai scrivendo verrà probabilmente utilizzato anche per anni (questo dipende: il problema non è lo stesso per un sito Web o un codice incorporato in alcuni dispositivi). Se vuoi prepararti per questo, prendi l'abitudine di scrivere unit test e test funzionali per ogni pezzo di codice. Questo non è sempre fatto con il codice del mondo reale, ma dovrebbe semplificarti la vita sia al college che nel mondo aziendale.

  • design / requisiti sono di solito molto più confusi nel mondo reale che in un'atmosfera collegiale. Quando si scrive un codice professionale, qualcuno deve definire lo scopo del codice e non vengono semplicemente forniti problemi relativi ai giocattoli o problemi noti. È molto probabile che prima o poi sarai tu a progettare! I clienti di solito non sanno cosa vogliono (e anche quando sanno cosa vogliono, potrebbe non essere quello di cui hanno bisogno), e i manager di solito descrivono semplicemente il quadro generale, lasciando molti dettagli e scelte ai programmatori. A seconda dei metodi seguiti ("agile" -vs- "V ciclo", ecc.), Prima o poi potrebbero verificarsi scelte e definizione dettagliata del problema, ma dovresti almeno tenere una mente aperta e chiederti se stai effettivamente facendo ciò che è obbligatorio. È inoltre possibile considerare la modifica dei requisiti se l'attività in corso è troppo difficile da codificare o è inefficiente. Potresti finire per scrivere qualcosa di inutile o eccessivamente complicato perché il cliente o il tuo manager non hanno capito bene o non sono d'accordo con te. Tuttavia, dovresti sempre mettere in discussione i requisiti (è un'abilità di sopravvivenza). Inoltre, tieni presente che i requisiti possono cambiare nel mezzo di un'attività e dovresti essere pronto per questo.

  • al college quando ricevi un incarico di solito dovresti scrivere del codice. Nel mondo reale, di solito si inizia controllando se è possibile utilizzare invece il codice esistente: riutilizzare o modificare parti di un progetto, utilizzare o acquistare librerie, ecc. Se si trova il codice esistente che si adatta al compito, si può finire per usarlo oppure no (potrebbero esserci problemi di manutenzione, problemi di prestazioni, diritti di copyright o persino problemi di prezzo), ma in genere dovrebbe essere presa in considerazione l'opzione di riutilizzare il codice esistente.

Ci sono ovviamente molte altre questioni relative al lavoro di squadra, alla scala del progetto, ecc. Ma i punti sopra riportati sono problemi che è molto probabile che tu veda negli ambienti aziendali ma che non devi considerare nei compiti del college.


Per programmazione aziendale intendevo l'ambiente di programmazione nelle aziende. Bella risposta tra :-)
vish213

3
Buona risposta @kriss. Aggiungo che è importante imparare a parlare nella lingua del cliente, non in "programmese". Questo aiuterà te e il tuo cliente.
Paddy Landau,

38

La differenza principale tra la programmazione aziendale e la programmazione universitaria è la scala. A scuola non ricevi mai un incarico che una persona non possa iniziare e finire in un semestre. Come professionista potresti lavorare con dozzine di altri programmatori su software che dura per anni senza essere "finito".

A livello micro il lavoro non è poi così diverso. Dopotutto, se fosse troppo diverso, una laurea non avrebbe alcun valore per le aziende. Ma è un po 'come la differenza tra cuocere 12 biscotti e cuocere 12.000 biscotti. Puoi essere davvero bravo nel primo e completamente privo di sensi nel secondo.

A scuola ti preoccupi principalmente di fare un programma corretto . Al lavoro, la corretta correzione del software non è sufficiente. Deve essere mantenibile, verificabile, efficiente e in grado di essere lavorato contemporaneamente da più persone. È qualcosa che le scuole cercano di insegnare, ma non puoi davvero impararlo completamente se non facendolo.


Nella mia esperienza, la maggior parte del "codice aziendale" non si sforza di essere sostenibile, verificabile ed efficiente, ma abbastanza buono da risolvere il problema in questione in un breve lasso di tempo. In molti casi il codice non è nemmeno "corretto", ma solo "abbastanza corretto".
simon

26

Questa domanda si basa su un presupposto non valido:

"Come si passa effettivamente da discente a professionista nel campo della programmazione?"

Diventi un professionista venendo pagato per farlo. Non smetti mai di essere uno studente. Se lo fai, la tua carriera è finita.

Esci nel mondo e trova lavoro. Il tuo entusiasmo per l'apprendimento è un vantaggio.


4
È tutto un buon consiglio, ma non risponde davvero alla domanda, vero?
Bryan Oakley,

6
Concordo sul fatto che un programmatore professionista non smette mai di essere uno studente, ma non essere pagato ti rende un professionista. Ho incontrato molti dilettanti che sono stati pagati per scrivere un codice terribile e terribile. Il professionista si occupa di fare il lavoro giusto - e di fare il lavoro giusto - non di essere pagato per sfornare il codice.
Bevan,

@Bevan Si può anche sostenere che questa è la differenza tra un "programmatore" e uno "sviluppatore". Non sono sicuro di dove mi trovo, però.
Izkata,

3
@Bevan: la parola "professionista" è veramente ambigua; i sensi elencati nella voce Wikizionario includono sia "Di, appartenenti a, o in conformità con gli standard (solitamente elevati) di una professione" e "Questo è realizzato per denaro, soprattutto come mezzo di sostentamento". Essere pagati automaticamente ti rende un programmatore professionista in quest'ultimo senso, anche se non dice nulla sul primo.
Ruakh

12

Risposta breve, sì: il mondo aziendale è abbastanza diverso rispetto a molti ambienti universitari.

Detto questo, le aziende lo sanno. Ci aspettiamo che i laureati siano quasi inutili. Se hai trascorso del tempo a imparare a programmare, è fantastico. Non è necessario essere super fantastici da applicare, ma capire che rimanere mediocri non lo taglierà.

Non imparerai molto di ciò di cui hai bisogno negli affari da solo. Fai domanda il prima possibile mentre continui ad imparare da solo.


4

Vorrei beneficiare del raggiungimento di un livello avanzato di C #?

No. Ci aspettiamo che gli studenti siano inutili per diversi mesi mentre li facciamo irrompere. Il grado è solo una posta in gioco. Il tuo entusiasmo per imparare e seguire le istruzioni sono le tue risorse migliori. Quando intervista i diplomati del college, voglio un giocatore di squadra che non si adatti a un colpo di scena che sconvolge il gruppo.

... i livelli più alti non contano per le aziende perché fanno affidamento sulla loro formazione puramente per insegnare come funzionano le cose nel mondo aziendale e imparare di più non mi aiuterà molto?

Questo è diverso per ogni azienda, ma in generale le aziende più grandi avranno una formazione più strutturata. Questa è la tua prima grande decisione, ti piace la formazione formale e un alto grado di struttura? In tal caso, cerca lavoro che lo fornisca.

Come si passa da discente a professionista nel campo della programmazione?

Passa da uno studente a un professionista ottenendo un lavoro. Consiglio agli anziani di collaborare con un'azienda attraverso la tua scuola. È il modo migliore per bagnare i piedi e superare l'ansia di una nuova professione.

Continuare a studiare fino a quando non si è perfetti o entrare in un'azienda è necessario una volta che le basi sono coperte?

Trova un lavoro, non aspettare. È comune essere nervosi, ma essere onesti sulle proprie capacità e non nascondere il proprio entusiasmo per saperne di più. È comune cambiare azienda diverse volte, soprattutto all'inizio della tua carriera.

Congratulazioni per aver completato la tua laurea e buona fortuna per il tuo viaggio verso la programmazione professionale.


1

Direi che la differenza fondamentale tra la programmazione a livello aziendale rispetto a quella universitaria è che la programmazione a livello aziendale è molto più un processo collaborativo di quello che incontrerai in un contesto di classe e l'enfasi è molto più sullo sviluppo del prodotto che sull'apprendimento pedagogico.


1

Se ti aspetti davvero che la programmazione del mondo aziendale sarà una cultura di programmazione avanzata di alto livello, penso che rimarrai piuttosto deluso. La programmazione nel mondo aziendale riguarda più la capacità di assumersi la responsabilità del codice che si scrive e mantenerlo mantenibile.

Ma alla tua domanda

Come si passa da discente a professionista nel campo della programmazione?

Ciò non ha nulla a che fare con la programmazione a livello aziendale e universitario, ma la programmazione in generale. Se vuoi davvero imparare inizia a costruire il tuo software, qualcosa che vuoi costruire o iniziare a lavorare in progetti software open source. Poni delle domande che devi affrontare. E leggi il codice di altre persone.


1

La risposta di Karl sulla scala è esatta. Non puoi ordinare un array di 15 numeri, dovrai ordinare un set di dati di un milione, diciamo, numeri di conto.

Una classe di strutture di dati e algoritmi probabilmente ti dirà una dozzina di modi diversi per ordinare. In un'applicazione reale è probabile che tu inserisca una clausola order by e consenta al database di ottimizzarla.

Per quanto riguarda la preparazione per il mondo aziendale, ci sono due modi in cui suggerirei: a) Fare uno stage anche a basso costo o senza retribuzione ti permetterà di guardare gli altri lavorare. b) Con tutti gli app store intorno a te potresti provare a scrivere e pubblicare un'app negli store Apple / Google / MS. Ciò ti aiuterà a comprendere meglio i flussi di lavoro, il valore dei test, la necessità di impostare l'ambiente e gli strumenti giusti e altro ancora.


1
Volevo solo aggiungere oltre ad App Store che puoi provare a fare volontariato per un progetto su piccola scala. Il mio primo incarico è stato quello di aiutare il posto di lavoro di mia madre a presentare rapporti di ferie e straordinari :)
SidJ,

0

La cosa principale di cui hai bisogno per fare bene nella programmazione aziendale è la pazienza e la capacità di comunicare con utenti che non comprendono la tecnologia. Assicurati di utilizzare il test unitario, il controllo della versione, il debug accurato e la traccia / registrazione corretta. Le lingue possono cambiare, ma rimanere calmi e cercare attentamente i problemi funzionerà sempre.


-1

oltre all'eccellente risposta fornita, la "programmazione aziendale" riguarda anche requisiti che non sono chiari o che cambiano.

Cosa faresti se il tuo professore cambi i requisiti dei tuoi compiti di programmazione due giorni prima che tu debba consegnarli?

Nell'industria questo è abbastanza comune.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.