Come posso capire se la programmazione è giusta per me? [chiuso]


22

Ho un background IT ed ero abbastanza fiducioso fino a quando non è arrivata l'opportunità di andare al lavoro in programmazione (C #). Non ho mai programmato prima di questo e il software per cui sto programmando è un programma che non avevo mai usato prima (un software di modellazione 3D).

Sono passati 6 mesi da allora e ho voglia di arrendermi. Non mi sono allenato molto ... circa 3 settimane di allenamento si sono estese negli ultimi 6 mesi.

Penso che sarei bravo a programmare, ma questa esperienza mi sta facendo ripensare alla mia decisione. Non sono sicuro se sono solo io, o se questa frustrazione è normale.

Come posso capire se la programmazione è giusta per me?


11
Sei uno studente ovunque? Solo curioso perché MS ha un sito chiamato DreamSpark dove puoi ottenere Visual Studio, SQL e la maggior parte dei server per il tuo computer di casa. Questo può darti l'opportunità di creare il tuo software, per te stesso e provare cose da solo. Inoltre, MS ha un sito di formazione piuttosto ordinato chiamato Channel 9 che ha alcuni progetti ben definiti. Lo consiglio solo perché se ti piace programmare, alcuni di questi dovrebbero effettivamente essere divertenti, non funzionano.
iMortalitySX,

5
Quando si è presentata questa opportunità, quali ragioni hai avuto per prenderla?
AakashM,

1
@iMortalitySX: gli strumenti disponibili da DreamSpark sono diversi dalle versioni VS Express?
FrustratedWithFormsDesigner,

4
@ User66414 La tua domanda ha attirato un paio di voti stretti, quindi l'ho modificata leggermente per focalizzarmi sulla domanda principale che sembra farti, che penso sia buona per il sito. Sentiti libero di ripristinare la modifica se ho frainteso la tua domanda :)
Rachel,

2
@ Rachel: Forse dovremmo avviare una petizione per salvare i siti StackExchange dalla folla Close-All-The-Questions. :-)
Warren P

Risposte:


87

Ci sono alcune cose da notare riguardo alla programmazione.

Prima di tutto, non saprai mai tutto sulla programmazione. Probabilmente non ti avvicinerai mai nemmeno a conoscere una frazione di tutto. E se mai dovessi pensare di sapere qualcosa, uscirà qualcosa di nuovo e ciò che sai sarà obsoleto.

Quindi, devi essere OK imparando costantemente cose nuove e insegnando a te stesso cosa deve essere fatto. Se non stai bene spendendo molto tempo imparando, facendo ricerche e capendo le cose attraverso "prove ed errori colti", non entrare in programmazione.

In secondo luogo, è la logica che conta, non la sintassi. Il solo apprendimento di una lingua, un framework o una tecnologia non è necessariamente un buon programmatore. Devi davvero avere il tipo di mente in grado di comprendere la logica dietro il codice: come i pezzi si incastrano, quale tipo di logica viene utilizzata e come il computer interpreterà il tuo codice.

Sembra che tu stia lavorando con un singolo software e linguaggio, ma tieni presente che ci sono molte più lingue e tecnologie là fuori. Non giudicarli tutti in base alla tua esperienza con uno di loro. Se la sintassi ti sta frustrando, tieni presente che ci sono sempre altre opzioni. Ma se hai problemi a cogliere la logica dietro il codice, forse la programmazione potrebbe non essere adatta a te.

E infine, non scegliere un lavoro che odi. La programmazione può essere frustrante, ma può anche essere molto gratificante. Se riesci a gestire i momenti in cui vuoi sbattere la testa contro il muro con un po 'di codice o eliminare tutto frustrato dal tuo computer e continuare a goderti la codifica, sei bravo :)


11
Avrei pubblicato la mia risposta, ma questa mi piace. Volevo aggiungere che la programmazione riguarda la realizzazione attraverso la creazione di qualcosa che funzioni. Se riesci a confrontare le tue sensazioni tra la creazione di software rispetto alla manutenzione (patch) di un server, allora avresti la tua risposta. Inoltre, consiglio vivamente a tutte le nuove persone che sono "pronte" di apprendere a cercare di entrare in un team SCRUM, in modo da lavorare a stretto contatto con altri sviluppatori e imparare velocemente (ma devi essere in grado di tenere il passo).
iMortalitySX,

1
Ricorda anche che migliore è la programmazione, maggiore è la potenza che devi scegliere per i lavori che ti piacciono, invece del codice che paga solo le bollette.
Zoot,

7
... programming can be frustrating, but it can also be very rewarding.Questo è ciò che chiamo effetto "montagne russe" della professione di programmatore. I minimi sono molto bassi, possono arrivare molto rapidamente e può essere difficile uscirne. Ma i massimi sono mozzafiato e il brivido crea dipendenza.
Ryan Kinal,

1
Bella scrittura. Così vero. Purtroppo, anche il personale delle risorse umane non sembra aver capito questo, che un vero professionista del software è uno che può eseguire intimamente bene con MOLTI framework, poiché dimostra di aver trasceso il regno della semplice sintassi in core, Logic (OOP, design pattern, ecc.) quando si tratta della loro arte.
Glstunna,

2
@RyanKinal Sono abbastanza sicuro che i programmatori condividano diversi tratti dei giocatori compulsivi. Quando si abbassa, diventa molto difficile staccarsene fino alla schiena. E quando arrivi a un punto più alto, di solito, tutto ciò che hai in mente è arrivare a un altro punto più alto ..
Earlz,

24

Il mio amico è stato un frequent flyer per molti anni, ma ha sempre voluto essere un pilota di linea. Un giorno colse l'occasione per far volare il Boeing 747. Dopo circa sei mesi ebbe voglia di arrendersi: pensò che sarebbe stato bravo a volare in aereo, ma questa esperienza degli ultimi sei mesi gli fece ripensare la sua decisione.

Ovviamente sto scherzando: non ho un tale amico. E questo è per una buona ragione: qualsiasi compagnia aerea sarebbe pazza a lasciare che qualcuno prendesse i controlli di un 747 prima di passare qualche anno a pilotare un Cessna, seguito da alcuni anni a bordo di aerei multimotore, seguito da alcuni anni di getti volanti , seguito da alcuni mesi di addestramento approfondito sul 747.

Il punto della mia storia inventata è che anche il più semplice pacchetto di modellazione 3D sarebbe l'equivalente dello sviluppatore software di volare con un 747. Molti programmatori ne sarebbero intimiditi, anche dopo un decennio o due nel settore. Non sorprende che ti senta frustrato: hai assunto un compito sbagliato per il tuo attuale livello di abilità!

Cosa dovresti fare In primo luogo, uscirei dal negozio di modellazione 3D, farei un corso online o un vero corso di programmazione e mi procurerei un progetto per animali domestici su cui puoi lavorare nel tuo tempo libero. Dopo aver terminato il corso, prova a ottenere una posizione entry-level in un negozio che produce applicazioni aziendali, app mobili o siti Web sofisticati. Impara il più possibile sul lavoro e fai pratica a casa per migliorare ulteriormente le tue abilità. In pochi anni sarai in grado di tornare alla tua azienda di modellazione 3D e lavorare lì senza la minima frustrazione.


9
Questo va bene, ma non avrei necessariamente smesso. Se il tuo lavoro è duro, ma il tuo capo è d'accordo con te che hai bisogno di tempo per metterti al passo, allora potrebbe essere una grande opportunità. Inoltre, le applicazioni aziendali potrebbero non essere molto utili con la modellazione 3D. Ho realizzato principalmente applicazioni aziendali e mi sarei completamente perso se avessi provato a scrivere un programma di modellazione 3D.
Ripristina Monica il

22

Potresti non aver scelto il percorso migliore per imparare la programmazione :)

Scherzi a parte, la modellazione 3D è un dominio molto complesso anche per un programmatore esperto, quindi avere questo come il tuo primo progetto sarà difficile. Suggerirei di procurarti dei buoni libri e di lavorare su semplici progetti per conto tuo. Se ti piace lavorare su quelli, continua a collegarti e ci arriverai. Se non ti piace, potrebbe essere il momento di ridurre le perdite.

Non ho intenzione di iniziare alcun argomento sui migliori libri di programmazione, ma penso che troverai molte domande su SE sui riferimenti di programmazione.

FWIW, sto programmando in MS Windows dalla 2.x, e se mi tuffassi in un progetto di modellazione 3D esistente, penso che sarei frustrato anche per un po ':)


Sono d'accordo. La programmazione 3D non è esattamente una passeggiata nel parco. Le applicazioni aziendali nel campo finanziario, medico o tecnologico sono il posto migliore per iniziare la tua carriera in C #.
ROFLwTIME,

Il +1 per indicare la modellazione 3D non è un buon punto di partenza, è un sacco di matematica anche IMO. Penso che questa sia la cosa principale qui, inizia sempre con le cose facili, quando provi a correre troppo veloce
finisci

8

Come sviluppatore di software abbastanza alle prime armi (2 anni di lavoro part-time), ciò che mi fa andare avanti è la prospettiva a lungo termine .

Ogni nuovo progetto che ho avviato, ho una migliore comprensione di come gestirlo senza problemi. Ogni nuova lingua diventa meno difficile. Le mie soluzioni iniziano a sentirsi più complete.

Ecco la mia lista di cosa dovresti continuare come programmatore:

  • Dovresti ed essere in grado di imparare da solo. (ad es. lavoro con libri, forum, documentazione, ...)
  • Ti piacerebbe organizzare i tuoi pensieri: la programmazione è un modo per portare i processi di pensiero sulla carta ( al computer ).
  • Dovresti avere una resilienza sufficiente, quando si tratta costantemente di un elenco apparentemente infinito di piccoli problemi, che devono prima essere identificati prima che possano essere risolti.

Oltre a ciò, penso che ci siano molte ragioni per amare la programmazione, e più lo fai, più sperimenterai la gioia di lavorare in un campo così creativo e non ripetitivo.

Modifica: se hai problemi con qualcosa, prova a individuare esattamente qual è il problema, quindi portalo in uno dei siti Stack-Exchange, se alla tua domanda non è già stata data risposta, sei obbligato a ottenere un buona risposta. A lungo termine, sarà anche utile leggere alcuni libri strutturati su paradigmi di programmazione, ingegneria del software e algoritmi. Tuttavia, la maggior parte delle importazioni continua a scrivere codice e, come suggerisce la maggior parte delle risposte, trova del tempo per lavorare su programmi non correlati a ciò che stai già facendo, anche se ciò significa che devi inventare i tuoi progetti per lavorare da casa.


4

È semplice: ti piace farlo? Se non fossi pagato per farlo, lo faresti nel tuo tempo libero, per divertimento? Se la risposta è no, probabilmente la programmazione non è adatta a te.

Questo non vuol dire che non potresti imparare a farlo abbastanza bene da essere impiegato con profitto nel farlo. Ma se non lo ami, non sarai mai bravo a farlo. E, se non ti piace, qual è il punto?

Ho iniziato a programmare quando avevo 12 anni e l'ho fatto perché volevo. Avevo 20 anni (ea metà del college) prima che mi venisse in mente che forse avrei potuto farlo per vivere. Era solo una cosa che ho fatto perché l'ho adorato.

Credo che la maggior parte delle persone che sono brave in qualcosa (qualsiasi cosa) non lo sono perché non hanno un'abilità innata, ma perché hanno un'ossessione malsana per quella cosa.


1
Non sono sicuro del motivo per cui qualcuno ha votato in negativo. Non potrei essere più d'accordo.
fine

Potrei, ad esempio, apprezzare il lavoro del PO se dovessi imparare qualcosa di veramente interessante sulla matematica 3D e mi piace imparare i sistemi 3D e la loro matematica correlata. Oh e dettagli di OpenGL o DirectX e schede video.
Warren P

2

Il mio consiglio è di passare un po 'di tempo da soli con C # e la programmazione in generale.

Crea un piccolo gioco. Crea uno strumento semplice per organizzare le tue foto. Rendi qualsiasi cosa davvero.

Se trascorri il tuo tempo individuale, potresti scoprire che ti piace programmare. In caso contrario, la programmazione non è la carriera per te. Ad ogni modo, continua a lavorarci.

Una risorsa che può essere utile per l'apprendimento di alcuni concetti:

http://msdn.microsoft.com/en-us/library/618ayhy6.aspx (Riferimenti per C #)


2

Dov'era il tuo background se non hai mai programmato prima? La maggior parte dei ruoli IT avrebbe l'opportunità di programmare qualcosa, anche se solo una macro o uno script per automatizzare qualche piccolo pezzo del puzzle.

Hai diritto alle tue emozioni. Tuttavia, la domanda migliore è cosa stai facendo di questa frustrazione? Stai capendo le cose e vai avanti? Che tipo di feedback ricevi sul lavoro che stai svolgendo? Se stai ricevendo feedback sul fatto che è fantastico, potresti avere aspettative irrealistiche di te stesso. D'altra parte, se stai ricevendo un feedback minimo o nullo, allora potrei capire di avere delle paure.


2

Ricordo di aver iniziato con l'assemblatore su un Commodore VIC20. All'inizio, ho appena seguito le istruzioni per gli hack che sono stati pubblicati nelle riviste di gioco per darmi infinite vite su Jet Set Willy o qualunque cosa stavo cercando di imbrogliare. Ho avuto una curiosità e un desiderio che mi hanno portato a voler creare i miei hack e capire come e perché hanno funzionato. Questo è il turno che mi ha portato a scrivere i miei primi programmi.

Il punto è che sono rimasto totalmente confuso per un bel po 'di tempo (non fino a 6 mesi ma sono d'accordo che probabilmente è una funzione di iniziare con la modellazione 3D) ma poi, il penny è improvvisamente caduto. Ho iniziato a capire come il codice che ho scritto tradotto in istruzioni CPU e riferimenti di memoria e presto, ho potuto scrivere un assemblatore abbastanza competente. Certo, ora stai lavorando 20 livelli sopra la CPU ma, sono sicuro che se hai l'attitudine, quel momento della lampadina accadrà.

Immagino di ribadire i punti sollevati in termini di curiosità, apprendimento e frizzante quando crei qualcosa di veramente sinergico.

Se può dare un consiglio è "perseverare e apprendere le basi della programmazione orientata agli oggetti". In bocca al lupo.


2

Fondamentalmente non hai avuto alcuna formazione e sei stato investito in un progetto difficile. In genere, le persone trascorrono almeno tre anni a imparare cose prima ancora di iniziare progetti non banali. Non c'è imbarazzo, né significa che la programmazione non fa per te, se la trovi troppo difficile.

Anche io ho faticato nella mia quarta settimana di programmazione: P


Mi ci sono voluti alcuni anni prima che potessi creare programmi non banali che non avevano molti bug. Una volta raggiunto un punto di non ritorno, il mio tasso di miglioramento è esploso, e questo è successo alcune volte. Ricordo quando ho iniziato a sfondare per la prima volta e ho potuto concettualizzare le idee in un modo che prima non potevo. Era tutto in discesa da lì.
jett,

2

La tua frustrazione è del tutto normale; è probabile che 3 settimane di allenamento siano profondamente insufficienti. Non puoi sapere se la programmazione è giusta per te venendo lanciato per primo in un difficile progetto di programmazione con il tuo stipendio in linea.

Se vuoi davvero sapere se la programmazione è "giusta per te", allora impara un nuovo linguaggio di programmazione durante il tuo tempo libero e fai alcuni progetti di programmazione per hobby. Se ti piace questa esperienza (l'esperienza di programmazione senza scadenze e pressioni di lavoro che incombono sulla tua testa), allora la programmazione è giusta per te.

Ora ... se quel particolare lavoro di programmazione è giusto per te ... Personalmente mi spingerei verso un no . Parla con il tuo manager della tua frustrazione e prendi in considerazione l'idea di ottenere un lavoro che sia più adatto al tuo attuale insieme di competenze o che prometta un migliore programma di formazione. Non riesco a conoscere i dettagli della tua situazione particolare, ma mi sembra che sia stato un disservizio sia per te che per la compagnia assumerti in quella posizione senza fornire un adeguato tempo di formazione; se non avessero intenzione di fornire una formazione migliore, non avrebbero dovuto assumerti. Tuttavia, la scuola dei duri è una scuola buona come una qualsiasi; ancora una volta, il miglior modo di agire qui è parlare con il tuo manager e vedere come valuta la tua performance attuale e risponde alla tua frustrazione.


2

Sono io o ho ragione di essere frustrato?

La domanda che devi davvero porti è:

a) Ti piace programmare? b) Ti senti la persona più felice del mondo quando l'applicazione funziona? - Se la tua risposta è SÌ , smetti di preoccuparti, continua a imparare e migliorare le tue capacità di programmazione.

In generale, la modellazione 3D - è un'area completamente diversa nel mondo della programmazione come una programmazione di gioco. Ciò può spaventarti o non guidare il tuo interesse. Non aver paura , mantieni la motivazione imparando cose che non conosci. Imposta i tuoi obiettivi a breve e lungo termine su ciò di cui hai bisogno per recuperare e imparare.

Modifica: il "software di modellazione 3D" non è un'area di programmazione del flusso principale. Pertanto, potresti trovarti nell'apprendimento di conoscenze / tecniche molto specifiche che non vengono applicate in altre aree (CRM, contabilità, assistenza sanitaria, ecc.) Se trovi che la "modellazione 3D" NON è interessante, cerca solo diverse aree di business della programmazione che guida il tuo interesse.


2

La programmazione grafica 3D è una nicchia in cui anche gli sviluppatori di software più affermati preferirebbero non entrare. Lavoro molto con OpenGL e lo conosco di persona. Spero che tutto il tuo lavoro coinvolga lavorare con sceneggiature di livello superiore, ma se sei nel profondo del suo intimo come me. Per un nuovo programmatore, è come un bambino che corre ... in uno sprint di 100 metri ... con artisti del calibro di Usain Bolt ... con la pressione aggiuntiva di persone che hanno aspettative realistiche che il bambino vincerà la gara.

Tuttavia, i miracoli accadono e ogni speranza non è persa.

Confido che lo stai già facendo, ma non solo devi fare tutorial sulla programmazione (questa è di gran lunga la sfida più piccola), devi leggere cose sui fondamenti 3D e sui sistemi di coordinate. Comprendi la matematica coinvolta nel disegno di poligoni, traduzione, rotazione (Dio ti aiuti se Quarternion), matrici, ecc.

Ma seriamente, sei sicuro di voler andare avanti con questo? Cosa c'è di più importante per te? questo lavoro o una serie completa di capelli?


1

Ho appena buttato via un libro su C # di recente, poiché non ha alcun valore per me.

Ma posso confermare, la frustrazione e i bug sono considerati "normali".

Anche se non è una scadenza che si siede nella parte posteriore del collo, non preoccuparti.

D'altra parte - una volta che funziona come un incantesimo può essere davvero divertente.

Quando si ottengono risultati straordinari, potrebbero chiamarti "Signore" :)

Per quanto riguarda la tua domanda se è il lavoro giusto per te - questo dipende, se vuoi imparare cose nuove ogni giorno - se o no. Inoltre, se hai la pazienza e le noccioline per affrontare i problemi.

Applico costantemente la metodologia TDD - ma questo richiede diversi anni per imparare. Avere un corso di avvio rapido di 3 settimane potrebbe non portarti da nessuna parte, si tratta solo di fare errori e imparare da loro.

Tutti odiano i bug e i malfunzionamenti, ma si può crescere con loro. Quello che voglio dire è che commettere (o persino provocare) errori non è necessariamente una cosa negativa.

Probabilmente il miglior consiglio che posso darti è di scomporre le cose in traguardi più piccoli.

Perché se gli obiettivi che hai fissato sono completamente fuori portata, questo è ciò che provoca frustrazione.

Ho imparato il debug su un Nintendo SNES: stavo barando come una zappa e ho ottenuto soldi da una rivista di console per aver fornito loro nuovi trucchi. Più tardi ho ottenuto un Atari ST e ho imparato a programmare Omikron Basic ... e sono ancora qui, attualmente autonomo come mago JS :)

La tua situazione, come descritto, è piuttosto "impararla nel modo più duro" ... Suggerirei anche di impararla con applicazioni molto più semplici di così. Un buon riferimento linguistico è tutto ciò che serve, e forse buoni esempi.


1

La programmazione richiede molta spinta e dedizione per arrivare al punto in cui sai cosa stai facendo e sei eccezionale nel fare ciò che sai.

Perché tu abbia veramente successo, la programmazione deve diventare un modo di vivere; piuttosto che una professione desiderata. Deve diventare un'ossessione che parte dal resistore e si estende a tutta la rete che comprende Internet.

Personalmente, ti consiglio di restare fedele perché anch'io ho faticato molto. Non sono stato in grado di iniziare a pensare come un programmatore fino a circa un anno e pochi mesi dopo aver iniziato a studiare informatica a tempo pieno (spesso più di 12 ore al giorno).

Ho trascorso tutto il tempo a studiare tutto ciò che potevo comprendere su Internet in relazione ai computer. Ho usato la complessità della programmazione per rendermi ancora più testardo e motivato ogni volta che ero sopraffatto. Ho passato molto tempo a leggere il codice di altre persone e a digitarlo manualmente in me stesso. Ogni volta che trovavo qualcosa che non capivo, la cercavo. Ogni giorno, tuffo sempre più a fondo nel mio fascino e ossessione forzati. (Ho anche iniziato a fare sogni di programmazione in cui stavo comunicando con programmi via binario, troppo profondo! Lmao)

Non è stato sempre facile. Sicuramente mi sentivo come se non fossi tagliato per TUTTO IL TEMPO, ma un giorno sono stato in grado di collegarmi e iniziare a scrivere codice come un matto. Ha appena iniziato ad avere sempre più senso per me, con ogni linea che ho immaginato. Tutto iniziò a riunirsi al punto in cui potevo tornare indietro e riscrivere il mio codice in modo più ottimale ed efficace solo poche ore dopo.

Dopo ciò non ho mai dubitato di essere in grado di diventare un programmatore. Devi volerlo davvero. Non ci sono molte persone che hanno la dedizione necessaria per superare la tempesta necessaria per evolversi in un informatico.

Tuttavia, quando arrivi al punto in cui puoi costruire sistemi software complicati che sono nati dalla tua creatività e ingegnosità, la ricompensa dei risultati che senti supera di gran lunga la lotta che hai dovuto affrontare per raggiungere il successo.


1

Penso che la cosa più certa da chiedersi sia "ti piace imparare".

Con questa semplice domanda saprai se la programmazione è giusta per te con una buona probabilità. Se non ti piace l'apprendimento, allora no, probabilmente non ti piacerà la programmazione. La programmazione è del 5% sulla scrittura del codice, il 10% sulla progettazione di come dovrebbe funzionare il codice e l'85% sull'imparare a scrivere codice migliore e realizzare progetti migliori. (e questo non cambia! Sto programmando da più di 8 anni e sto ancora imparando costantemente!)

Ora, ovviamente, ti piace imparare e non programmare, ma dato che ti piace imparare, prova a fare dei programmi! Tuttavia, non puoi rinunciare alla curva di apprendimento iniziale, soprattutto con così tante lingue facili ora. Quindi esci e scrivi un po 'di codice!


0

La programmazione riguarda prima la risoluzione dei problemi. La lingua è secondaria. Non appena ti viene assegnato il compito di scrivere il tuo primo programma (a proposito, non scriverai il codice la prima volta - perché è stato tutto scritto) e scopri il puzzle ... crea la connessione, lo saprai proprio allora e lì se vuoi essere un programmatore.

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.