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

28

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

Potrei trarne beneficio raggiungendo un livello avanzato di C #? o come livello mediocre è sufficiente per interrompere le interviste, i livelli più alti non sono importanti per le imprese perché si basano sulla loro formazione solo per insegnare come funzionano le cose nel mondo aziendale e imparare di più non mi aiuterà molto? Per favore, se ci sono dei programmatori professionisti che possono aiutarti, prometto che questo è qualcosa che ogni studente interessato alla programmazione vuole chiedere al mio palcoscenico. "In che modo cambierai da studente a professionista nel campo della programmazione?" - continuare ad apprendere fino a quando non si è perfetti o unirsi a un'azienda è necessario una volta che le basi sono trattate?

    
posta vish213 13.07.2013 - 22:32
fonte

10 risposte

32

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

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

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 qualche base di codice esistente. Uno dei problemi principali è 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). Il codice che stai scrivendo sarà probabilmente usato anche per anni successivi (dipende da: il problema non è lo stesso per un sito web o un codice incorporato in alcuni dispositivi). Se vuoi prepararti a questo, prendi l'abitudine di scrivere test unitari e test funzionali per ogni pezzo di codice. Ciò non è sempre fatto con codice del mondo reale, ma dovrebbe renderti la vita più semplice 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 codice professionale, qualcuno deve definire lo scopo del codice e non vengono semplicemente dati problemi di giocattoli o anche problemi ben noti. È molto probabile che prima o poi sarai tu a fare la progettazione! I clienti di solito non sanno quello che vogliono (e anche quando sanno quello che vogliono potrebbero non essere ciò di cui hanno bisogno), e i manager di solito descrivono solo il quadro generale, lasciando molti dettagli e scelte ai programmatori. A seconda dei metodi seguiti ("agile" -vs- "ciclo V", ecc.), Le scelte e la definizione dettagliata del problema potrebbero verificarsi prima o poi, ma almeno dovresti mantenere una mente aperta e ti chiedi se stai effettivamente facendo cosa è obbligatorio. È inoltre possibile prendere in considerazione 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 comunque perché il cliente o il tuo manager non hanno capito il tuo punto di vista o non sono d'accordo con te. Tuttavia, dovresti sempre mettere in discussione i requisiti (è un'abilità di sopravvivenza). Ricorda inoltre che i requisiti potrebbero cambiare nel bel mezzo di un'attività e dovresti essere pronto per questo.

  • al college quando ricevi un incarico di solito devi scrivere del codice. Nel mondo reale, in genere si inizia controllando se è possibile utilizzare 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, è possibile utilizzarlo. oppure no (potrebbero esserci problemi di manutenzione, problemi di prestazioni, problemi di copyright o persino problemi di prezzo), ma in genere si dovrebbe prendere 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 precedenti sono problemi che è molto probabile vedere negli ambienti aziendali ma non devi prendere in considerazione i compiti del tuo college.

    
risposta data 14.07.2013 - 01:49
fonte
38

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

A un 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 con il primo e completamente incapace in quest'ultimo.

A scuola sei principalmente interessato a creare un corretto programma. Al lavoro il tuo software sta correndo non è abbastanza. Deve essere manutenibile, 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.

    
risposta data 13.07.2013 - 23:31
fonte
26

Questa domanda si basa su un'ipotesi non valida:

"How do you actually change from learner to professional in field of programming?"

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

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

    
risposta data 13.07.2013 - 22:44
fonte
12

Risposta breve, sì - il mondo aziendale è molto diverso da quello di molti ambienti universitari.

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

Non imparerai molto di ciò che ti serve nel mondo degli affari da solo. Fai domanda il più presto possibile mentre continui a imparare da solo.

    
risposta data 13.07.2013 - 23:46
fonte
4

Would I benefit by reaching an advance level of C#?

No. Ci aspettiamo che gli studenti siano inutili per diversi mesi mentre li interrompiamo. La laurea è solo posta in gioco. Il tuo entusiasmo nell'apprendere e seguire le istruzioni sono le tue migliori risorse. Quando intervisto i laureati universitari voglio un giocatore di squadra che non si adatti a interrompere il gruppo.

...higher levels do not matter to firms because they rely on their training purely to teach how things work in corporate world and learning more won't help me much?

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

How do you actually change from learner to professional in field of programming?

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

Keep learning until you are perfect or joining a firm is must once basics are covered?

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

Congratulazioni per aver terminato la tua laurea e buona fortuna nel tuo viaggio verso la programmazione professionale.

    
risposta data 14.07.2013 - 13:04
fonte
1

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

    
risposta data 14.07.2013 - 06:24
fonte
1

Se ti stai davvero aspettando che la programmazione del mondo aziendale sarà una cultura di programmazione di alto livello, credo che rimarrai deluso. Programmare nel mondo aziendale significa più essere in grado di assumersi la responsabilità del codice che scrivi e di mantenerlo gestibile.

Ma alla tua domanda

How do you actually change from learner to professional in field of programming?

Questo non ha nulla a che fare con la programmazione aziendale e universitaria ma con 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. Fai domande che affronti. E leggi il codice di altre persone.

    
risposta data 14.07.2013 - 07:09
fonte
1

La risposta di Karl riguardo alla scala è azzeccata. Non è possibile ordinare una serie di 15 numeri, sarà necessario ordinare il set di dati di un milione, ad esempio, numeri di conto.

Una classe di strutture e algoritmi di dati probabilmente ti dirà una dozzina di modi diversi di ordinare. In un'applicazione reale è probabile che tu inserisca un ordine in base alla clausola e che il database lo ottimizzi.

Per essere preparati per il mondo aziendale ci sono due modi che suggerirei a) Ottieni uno stage anche a basso reddito o senza pagamento ti permetterà di vedere gli altri lavorare. b) Con tutti gli app store in giro potresti provare a scrivere e pubblicare un'app nei negozi Apple / Google / MS. Ciò ti aiuterà a capire meglio i flussi di lavoro, il valore dei test, la necessità di configurare l'ambiente e gli strumenti giusti e altro ancora.

    
risposta data 14.07.2013 - 09:11
fonte
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 capiscono la tecnologia. Assicurati di utilizzare il test delle unità, il controllo della versione, il debug accurato e la corretta tracciabilità / registrazione. Le lingue possono cambiare, ma stare calmi e cercare attentamente i problemi funzionerà sempre.

    
risposta data 14.07.2013 - 03:23
fonte
-1

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

Che cosa faresti se il tuo professore cambia i requisiti dei tuoi compiti di programmazione due giorni prima che tu debba consegnarlo?

Nell'industria questo è abbastanza comune.

    
risposta data 14.07.2013 - 10:24
fonte

Leggi altre domande sui tag