Principiante che cerca consigli sulla programmazione in generale [chiuso]

28

hai bisogno che alcuni di voi ricordino un momento in cui potresti aver avuto problemi con la programmazione ...

Sono passato al mio nuovo lavoro (come sviluppatore di software) per un paio di mesi, passato il periodo di prova. Ho poca esperienza di programmazione (solo C ++) e attualmente sto lavorando con asp.net MVC e Silverlight. Quindi c'è un sito Web su cui la società ha lavorato e io mi sto unendo allo sforzo per migliorarlo, risolvere bug ecc.

Il problema è: conoscere un sistema / sito web che è già stato realizzato, tramite lo studio visivo. Mi sento SEMPRE sopraffatto, senza mai sapere quale parte di questa linea dovrei cercare, e generalmente ho molti problemi a ottenere il quadro generale. Lo stesso studio di visualizzazione è qualcosa con cui trovo difficile fare i conti, per non parlare del framework asp.net.

Ho l'impressione che, poiché i miei colleghi hanno più esperienza di me, stanno facendo tutti i lavori giusti, e mi rimane da fare merda - cose che non sono nemmeno vagamente programmabili. Significa che stanno imparando / creando di più, e sto imparando / creando quasi nulla. Sto diventando demoralizzato e troppo spaventato per dire qualcosa.

Non sono stupido, ho letto e praticato molti dei concetti fondamentali di programmazione ... Sono solo spaventato a morte da questo dannato quadro. Lo guardo e mi sento solo paralizzato.

Il risultato è che continuo a chiedere al vecchio veterano domande, e lui si sta irritando e preferirebbe darmi dei lavori facili / privi di intelligenza / non programmazione per evitare di perdere tempo con l'aiutarmi. Poi, quando non capisco qualcosa, sto esitando a chiedermi se dovrei chiedergli o meno, e cercare di decidere se sarebbe una perdita di tempo.

Sono il tipo di persona che raccoglie le cose lentamente, ma con molta attenzione ai dettagli. Il primo credo mi stia facendo sembrare incompetente.

Chiunque arrivi da dove vengo, per favore dì qualcosa di utile ... ho paura di perdere il lavoro in pochi mesi o qualcosa del genere ...

    
posta user974685 25.10.2011 - 20:19
fonte

14 risposte

17

Elabora le persone che dovrebbero svolgere un lavoro come nuovo assunto

  1. Inizialmente guarda il codice
  2. Correzioni di bug di piccole dimensioni
  3. Correzioni di bug più grandi
  4. Richieste di funzioni - Aggiunta di qualcosa a un pezzo esistente del puzzle
  5. Novità - Creazione di qualcosa dal nulla

Correre uno sviluppatore verde senza esperienza di dominio troppo veloce causerà troppi problemi. Hai intenzione di prendere le cose del nuovo ragazzo perché devi procurarti il materiale nuovo.

Attendi lì

    
risposta data 25.10.2011 - 20:32
fonte
14

Per prima cosa. Sei il principiante. Otterrai i compiti di merda. C'è un modo no attorno a ciò. Devi capire che questo non è malizioso. Come tu stesso hai affermato, questi ragazzi hanno più esperienza e sono più abili. Probabilmente sono anche a un livello di retribuzione più alto. Il che significa, dal punto di vista del progetto, che il loro tempo è prezioso e più prezioso del tuo. Così riescono a fare i compiti più all'avanguardia (e divertenti), lasciandovi il lavoro più banale (ma comunque importante).

Ora, l'importante è non rimanere incastrati nella carreggiata per sempre. Prendi ogni momento possibile per familiarizzare con il progetto e gli strumenti a portata di mano. Puoi giocare a Minesweeper quando sei morto. So che imparare una nuova piattaforma e iniziare a lavorare su un progetto esistente è una prospettiva molto opprimente. Il trucco è tagliarlo a pezzi più piccoli e affrontarli uno a uno. Nei tuoi panni farei qualcosa del genere:

  • Al lavoro, per prima cosa si individua l'architettura generale dell'intera applicazione. Non c'è bisogno di entrare ancora nei dettagli. Identifica solo i principali blocchi di codice; vale a dire dove è l'interfaccia utente? Quale parte accede al database? Quale prende le decisioni aziendali? Non aver paura di chiedere in giro. Dimostrali che sei impaziente di imparare e le persone generalmente si contraccambiano. Se c'è una buona (e recente) documentazione su come usarlo.
  • Ora che conosci i pezzi principali, è il momento di approfondire un po '. Prova ad iniziare da uno degli fini . L'interfaccia utente o il livello del database, quindi, si dirigono verso l'altra estremità. Dai un'occhiata generale al pezzo che stai studiando. Dai un'occhiata a come funziona. Quali funzioni e metodi espone. I dettagli possono venire più tardi. Prendi appunti abbondanti, disegna grafici e diagrammi di flusso, fai tutto ciò che ti aiuterà a vedere tutto in seguito.
  • Solo quando senti di capire come la logica scorre nell'applicazione puoi iniziare davvero a guardare il codice. Questo è un buon momento per familiarizzare con Visual Studio. Fai clic con il tasto destro su qualsiasi oggetto / funzione nel codice e otterrai un menu di scelta rapida molto utile. "Vai alla definizione" e "Trova tutti i riferimenti" sono particolarmente utili e potenti. Se un comando ti sembra criptico, fai clic su F1.
  • A casa o nel tempo libero, leggi di più su ASP.NET MVC e Silverlight (o su qualsiasi piattaforma tu usi). In particolare, leggi di più sui bit che hai visto al lavoro oggi.
  • Man mano che la tua comprensione della piattaforma e del progetto aumenterà, alla fine vedrai sempre più opportunità per contribuire al codice. Cogli quei momenti!

Se sembra molto lavoro, è perché lo è. Ma i dividendi che alla fine raccoglierai sono più di un ampio compenso.

    
risposta data 25.10.2011 - 21:25
fonte
5

I get the impression that because my coworkers have more experience than me, they are getting all the good jobs, and I am left with crap to do - stuff which is not even vaguely programming. Meaning they are learning/creating more, and I am learning/creating near nothing.

Quanto sei sicuro di questo? Chiedo come qualcuno che generalmente quando si inizia qualcosa di nuovo ci sono tutti i tipi di apprendimento che non si possono realizzare. Quanto sei abituato a Visual Studio? Ricordo che è piuttosto spaventoso apprendere l'IDE da zero quando ho iniziato a lavorare nel 1998, ma in qualche modo è stato un periodo interessante. Quanto bene conosci il software di tracciamento dei bug? Quanto hai un'idea di tutte le diverse persone della squadra? Ci sono probabilmente più cose che stai imparando anche se potresti non vederle come cose importanti da imparare.

Il mio consiglio sarebbe di considerare di parlare con alcuni colleghi di lavoro o il tuo capo di vedere quanto bene o no stai facendo. Potrebbero dire "Sì, stai andando bene" o "Sei fantastico!" che è qualcosa che potresti dover accettare anche se alcuni potrebbero semplicemente dire che hanno paura di dire la verità. Allo stesso tempo, riconosci che è qui che scopri dove ti trovi e poi fai qualcosa a riguardo. Essendo lì per un paio di mesi, dovresti sapere alcune cose e quindi essere in grado di fare meglio di quello che hai fatto la tua prima settimana.

Its like, "fix this bug, should only take a line", and then I take ages just finding out where I THINK that line should go.

Ho sentito e detto questo tipo di battute dozzine di volte nella mia carriera, davvero. Ci sono un paio di punti diversi che vorrei fare su una linea del genere:

  • Potrebbe essere una stima e quindi la persona potrebbe aver dimenticato qualche caso bizzarro che rende la correzione una manciata di linee. So che ho avuto momenti in cui pensavo, "In qualche modo dovrebbe essere fatto in una riga di codice", solo per scoprire in seguito ciò che mi mancava.

  • Alcune linee di codice possono essere ridicolmente complicate. Hai mai visto un esempio di dove ci sono dozzine di parentesi per enfatizzare qualche logica in cui ci sono volute una manciata di volte per leggere correttamente la condizione? Lo so.

Considera quale tipo di immagine dell'applicazione hai ora e in che modo vedi diversi pezzi che si adattano insieme, quali convenzioni generalmente utilizza il codice, quali tipi di metodologia di sviluppo sono utilizzati e quali strumenti vengono utilizzati per vari processi, ad es. c'è un server di integrazione continuo, c'è una story board, ecc.

    
risposta data 25.10.2011 - 22:16
fonte
4

Ci vuole tempo. Un paio di mesi è poco tempo. A meno che tu non veda alcun futuro nella tua attuale compagnia, gli darei più tempo.

È normale lavorare su prodotti esistenti. Di fatto lo farai più spesso dei nuovi sistemi. Occorrono molte competenze per migliorare i sistemi esistenti già in produzione. Non è necessariamente una brutta cosa.

Buona fortuna per il tuo nuovo lavoro.

    
risposta data 25.10.2011 - 20:31
fonte
2

Continua a fare domande, ma dimostra l'iniziativa , anche se; fai il più possibile prima di chiedere. È un po 'come fare domande qui su Stack Exchange.

    
risposta data 25.10.2011 - 20:36
fonte
2

Prendi un buon libro su asp.net e probabilmente anche su .net framework e leggili esaurientemente sull'orario di lavoro. Ti sentirai piuttosto fiducioso al lavoro una volta che li avrai letti. È anche sorprendente lavorare praticamente su ciò che stai imparando. Il codice avrà senso per te mentre leggi e quindi anche la lettura sarà più divertente. Dovresti sfruttare al meglio il tempo che hai in questo momento, non ti vengono lanciati molti compiti, quindi usa saggiamente questa volta.

    
risposta data 25.10.2011 - 21:15
fonte
2

Penso di poter parlare per molti di noi dicendo che per un momento mi sono chiesto se il mio io passato si fosse trasferito nel futuro per chiedere a me stesso questa domanda su programmers.se. Questo è più o meno quello che direi al mio passato se fossi stato faccia a faccia con lui quando era nei tuoi panni:

Non scoraggiati - sarà dura e in alcuni giorni odierai ciò che stai facendo e vorresti poter diventare un giardiniere o qualcos'altro allo stesso modo non programmando. Raccogliti da terra, rispolverati e continua ad andare avanti, perché migliorerai e il lavoro che fai migliorerà.

Usa StackOverflow e Google - non essere un "Copia e incolla programmatore", ma renditi conto che ci sono tonnellate di persone intelligenti su SO e sul resto del web che sono disponibili, pronte, e felice di offrire aiuto. Inoltre, la risposta SO o il post sul blog non ti brontoleranno e non ti daranno sguardi sporchi se continui a rileggerli per assicurarti di averlo.

Continua a porre le domande - finché stai facendo la tua parte per capire che cosa puoi, non c'è niente di sbagliato nel chiedere a qualcuno con più conoscenza ed esperienza di aiuto. Se il tuo collaboratore vuole essere un coglione, trova un altro collaboratore che è più disponibile ad aiutarti, o come altri hanno detto, portalo su con lui o lei e guarda cosa dicono. Una piccola comunicazione in situazioni come questa può fare molto.

Continua a provare : non rinunciare a questo. La programmazione è difficile, ma è parte della ricompensa. Ci vuole un sacco di tempo e fatica per imparare un nuovo strumento, framework, linguaggio, paradigma, ecc ... ma ne vale la pena perché ogni volta che diventi migliore e l'atto di superare quell'esperienza di apprendimento ti preparerà meglio per la prossima volta che lo affronti. Sto lavorando a un codice molto più grande di quello che ho fatto nel mio primo lavoro, ma sono stato in grado di capirlo molto più rapidamente a causa dell'apprendimento che ho avuto lungo il cammino.

Datti un po 'di credito : sei riuscito a trasformare l'esperienza C ++ in un lavoro che funziona con ASP.NET MVC e Silverlight. Sei su programmers.stackexchange in cerca di aiuto. Stai lavorando e provando e facendo ciò che puoi per migliorare. Stai facendo le cose giuste, e sei già una buona parte del modo in cui sei in grado di ottenere un lavoro di programmazione. Tieniti aggiornato e sarà più facile.

Trova qualcosa da fare sul lato - facendo una programmazione troppo dura o troppo banale o qualsiasi altra cosa che possa rapidamente consumare il tuo divertimento. Trova un progetto su cui puoi lavorare separatamente dal lavoro, che non sia troppo impegnativo, ma che manterrà il tuo interesse e ti entusiasmerà per la programmazione. Non solo ti salverà dall'odiare codifica, ogni pezzo di codice che scrivi ti aiuterà ad affinare le tue abilità e i progetti personali staranno bene sui curriculum se decidi che questo lavoro non è adatto a te.

Scusa se sembra troppo grande per parlare. Sono appena stato nei tuoi panni e so come ci si sente. Speriamo che questo e l'altro consiglio delle persone qui saranno di aiuto. Oh, e un'altra cosa: hai iniziato la tua domanda con questa linea:

need some of you to remember back to a time when you might have been bad at programming...

Lo sono ancora! Noi siamo tutti! Continuiamo a lavorarci e proviamo a a succhiare meno ogni anno .

    
risposta data 26.10.2011 - 00:51
fonte
1

Succede a tutti nella programmazione. Persino i programmatori con molti anni di esperienza avranno una curva di apprendimento sostanziale di fronte a un sistema complesso che esiste da molti anni. È raro imbattersi in un lavoro con quasi tutte le conoscenze di cui avrai bisogno. Puoi aspettarti di sentirti sopraffatto per un po ', a meno che tu non stia lavorando su uno sviluppo del 100% in una società / divisione relativamente nuova o in un sistema molto semplice.

    
risposta data 25.10.2011 - 20:38
fonte
1

Penso che la tua preoccupazione sia davvero valida. Ma non dovresti preoccuparti troppo .

Come nuovo dipendente, ovviamente avrai i compiti che nessuno vuole fare. Come compito da svolgere, compiti più meccanici e spiacevoli.

Sento davvero il tuo dolore, perché tutti qui, come me, sono già stati lì. Ciò che ti serve è fare le cose velocemente e fare il meglio che puoi .

In questo modo: la gente vedrà che puoi fare cose sempre più difficili, che stai dando il massimo e che migliorerai davvero, che ti consentirà di ottenere prestazioni migliori e lasciare una buona impressione (nel modo giusto).

E anche sii paziente . Ci vuole un po 'di tempo, ma ne vale la pena.

    
risposta data 25.10.2011 - 21:33
fonte
1

Pazienza. 20 anni fa, quando ero il nuovo ragazzo, mi stavano rimandando nella stanza dei server per riavviare i router che si bloccavano continuamente. Suggerimento rapido: per apprendere un nuovo framework quando si dispone di codice esistente, provare ad aggiungere un altro campo a un modulo esistente e quindi trasferirne gli effetti fino al punto in cui verrà inserito in un database. Seguendo il valore di un altro campo già in quella forma. Imparerai una tonnellata.

    
risposta data 26.10.2011 - 03:34
fonte
0

Tra le tue opzioni: trova un lavoro in cui non ti aspetti di scendere a terra. Non tutte le aziende sono un buon posto per un lavoro entry-level. Un'importante società di consulenza (ad esempio Dell o Accenture) potrebbe essere un vero e proprio buco infernale per rimanere come programmatore regolare, ma dovrebbero avere solidi programmi di formazione e le risorse per affrontare il sovraccarico dei dipendenti con il tuo stile di apprendimento.

Il corollario è che è del tutto possibile che tu sia il tipo di impiegato sbagliato per il tuo attuale datore di lavoro e viceversa. Mentre perdere il tuo lavoro è una proposta spaventosa, potrebbe essere meglio tagliare le tue perdite.

Naturalmente, non sto dicendo che dovresti arrenderti. Ci sono buone probabilità che ti serva ancora un po 'di tempo per superare la parte peggiore della curva di difficoltà e arrivare al punto in cui tutto "fa clic".

Altre osservazioni casuali:

I ALWAYS feel HUGELY overwhelmed, never knowing which part of this line should I look up, and generally having lots of trouble getting the big picture.

La ragione principale per cui colpire il terreno con nuovi progetti diventa più facile con l'esperienza è perché avrai lavorato con la maggior parte di ciò che consistono in tali sistemi, quindi non sono realmente "nuovi". Non esiste "esperienza generale", solo familiarizzarsi con molti concetti, strutture e strumenti e attingere al problema relativo alle cose che si hanno familiarità. Per un programmatore entry-level essere sopraffatto da un sistema non banale è perfettamente normale. (Come per un programmatore esperto se lavora su un sistema con abbastanza cose che gli sono nuove: la programmazione è una bestia complessa e la maggior parte dei programmatori ha una "zona di comfort".)

    
risposta data 25.10.2011 - 21:08
fonte
0

La programmazione è un processo di apprendimento senza fine. Non entrerò in ciò che ti renderà migliore, ma affronterò quella sensazione sopraffatta, essendomi stata lì e ogni tanto sentendomi ancora così. Entrare in un grande progetto mentre si impara l'IDE e la tecnologia utilizzata è una tonnellata da gestire. Sono in un lavoro in cui utilizzo VS 2010, C #, WPF, SQL Server e MVVM per la prima volta. Quindi, niente è diventato facile senza tonnellate di Google.

Considera alcune cose: hai passato il periodo di prova, quindi a loro piace quello che fai. Credono in te come dipendente. Sanno anche che sei nuovo e non ti aspettano che tu possa assorbire 10 anni di esperienza aprendo VS un paio di volte. Ti permetteranno di crescere. Sei un investimento e una risorsa: non vogliono che tu fallisca e se mostri progresso e desiderio, ti terranno in giro per riuscire.

Per quanto riguarda il ragazzo anziano "irritato", ha sbagliato al 100%. Se stai mostrando un debole per lo sforzo e la ricerca prima di chiedere, non ha motivo di irritarsi. Parte di essere un leader sta conducendo - qualcuno direbbe che è una grande parte. =) Se sta guidando da quel povero di un esempio, hanno scelto l'uomo sbagliato (o donna). Affronta l'argomento con lui e fagli sapere che apprezzi l'aiuto. Gli sviluppatori possono essere tipi scontrosi e spesso possono essere un po 'pieni di se stessi. Se è un problema, parlane con il tuo manager. Ancora una volta, sei un vantaggio e avere qualcuno che stunt la tua crescita non aiutando come dovrebbe fare male alla squadra.

Soprattutto, non preoccuparti. Se metti avanti uno sforzo e ti piace quello che fai, è una garanzia che ti sentirai meglio e che un giorno farai parte di quella squadra o di uno come lui. Se sono intelligenti, ti daranno morsi che puoi masticare.

Infine, ho 6 anni e sto ancora imparando. A volte, quando non lo "capisco" immediatamente, mi sento un po 'giù. Io, come te, devo solo dirmi: 'Calmati, il mondo non finisce. È. Netto per l'amor di Dio. '

    
risposta data 25.10.2011 - 21:40
fonte
0

In primo luogo, accetta il fatto che non sei bravo a programmare. Se non vuoi accettarlo, sarà un problema. Sei un noob. Sii pratico. E sii sincero con te stesso. Periodo. Accettato? Quindi continua a leggere.

In secondo luogo, prova, a te stesso (ea nessun altro, ripeto, nessun altro tranne te) che non sei più un noob e che puoi crackare, creare, eseguire il debug del codice più sporco e più atrocemente scritto. Puoi superare le classifiche, aspettarti che la scala salariale più alta del tuo buon Boss ti provi che non sei un Noob Anymore .

Quindi ora, arrivando alla risposta effettiva: Come diavolo dovresti fare quello tra il tuo stretto orario di lavoro, la tua famiglia, il tuo tempo libero? Sì. so che non è facile. Il modo in cui lo faccio E di gran lunga, penso che sia il più efficace:

Ottieni le nozioni di base giuste Nutshell: i cocepti di OOP dovrebbero essere integrati nel cervello.

Codici di progettazione (al posto dei Castelli) in the Air So che sembra assurdo, ma vedere le ruote delle macchine come funzioni aiuta il cervello umano ad abituarsi al mondo della programmazione!

Pratica su carta per prima! Il mio professore mi ha detto questo trucco. Pratica su carta prima. A secco Esegui i tuoi programmi sulla carta stessa. Ti aiuterà a entrare nel flusso di un compilatore + aprirà quelle porte logiche nel tuo cervello.

Progetta il tuo progetto sì. si tratti di un calcolatore basato su CLI. progetta il tuo codice. Rendilo unico. Perché il tuo programma unico? Perché ti costringerà a pensare "Come dovrei farlo?" e non costringerti a sentirti frustrato. E quando hai dei dubbi, chiedi a Herbert Schildt (perdonami se l'ortografia non è corretta) o Google o fai una domanda qui. Questo è il modo migliore per studiare da sé e improvvisare le tue abilità.

Quando sono stato presentato a C, anch'io ho avuto un brutto momento. Specialmente con Strutture n Pointers n Blahs n blahs. Ho imparato queste cose straordinarie ... nel modo più duro, se puoi chiamarlo. E poi, quando mi sono rotto, non ho perso la speranza. Ho comprato un libro di riferimento e ho iniziato a creare un programma che ho sempre desiderato. Dopo 3 mesi (sì, puoi ridere!) Ho finalmente realizzato una versione CLI di un programma che prenderà il tuo nome come input e mostrerà la tua personalità come output. Acrophonology.

Sì. Mi sto vantando perché ne sono orgoglioso! Perché ho visto i volti dei miei anziani che mi prendevano in giro. È tutta una determinazione, amico mio! La programmazione non è scienza missilistica! Se fosse stato allora non avresti passato attraverso la libertà vigilata! È facile!

La mia convinzione personale: se hai una logica nel tuo cervello e capisci cosa è di buon senso, puoi essere un buon programmatore.

E la buona notizia è che avete entrambi! Perché se non lo avessi fatto, non avresti fatto il passo giusto condividendo il tuo problema con noi!

Se ti senti bene ora, sono felice. E sì, ora puoi ignorare la prima riga di questa risposta .. era necessario allora .. Non necessario ora! Cheers!

    
risposta data 25.10.2011 - 23:40
fonte
0

Disclaimer: Sono dell'opinione che il tuo problema, sebbene specifico per il programmatore, sia affrontato da nuovi professionisti / professionisti in tutti i campi. Voglio dire, nessuno sa niente per i primi mesi, e i nuovi ragazzi ottengono sempre i compiti peggiori ( tranne forse quando queste attività sono troppo critiche).

A time when you might have been bad at programming

Ancora non ci riesco. Nessun ripensamento.

I get the impression that because my co-workers have more experience than me..

Ancora una volta, ricorda che ogni giocatore era un ball boy una volta. Per ottenere una buona idea su cui lavorare, devi prima dimostrare il tuo valore in cose che non ti piacciono, e questo è comune in tutti i campi, non solo programmazione.

I look at it and just feel paralysed.

Cosa ti fa sentire paralizzato? Hai paura di tornare al framework ancora un'altra volta , o hai solo odio guardarlo del tutto?

Cerca sempre di infrangere i tuoi problemi in uno o più passaggi semplici. Quindi vai a ciascuno separatamente. Non c'è nessun proiettile magico qui, se non per restare aggrappati, e questo è ciò che conta.

Getting into control

Come nuovo ragazzo, vorrà affrontare problemi nel conoscere gli strumenti lavori con (VB, ASP ecc.) e cose lavori su (il quadro ). Questo è naturale Lo affrontiamo tutti. La tua priorità principale dovrebbe essere quella di andare avanti.

Continua ad imparare le lingue, continua a fare domande, continua a cercare nei framework, e ripeti!

    
risposta data 26.10.2011 - 12:58
fonte

Leggi altre domande sui tag