Punzoni di un programmatore PHP professionale [chiuso]

8

Sono uno studente di 19 anni a cui piacciono davvero VERAMENTE la programmazione, e spero di raccogliere i tuoi anni di esperienza qui. Al momento, sto studiando PHP ogni volta che ne ho l'opportunità, e sono stato per circa 3 anni, anche se non ho mai preso lezioni formali. Mi piacerebbe un giorno diventare programmatore a tempo pieno e farne una buona carriera.

La mia domanda per te è questa: quali consideri come tratti distintivi o tratti distintivi di un programmatore professionista? Principalmente nel campo del PHP, ma anche altre qualifiche più generalizzate sono più che benvenute, poiché penso che PHP sia più un linguaggio hobbistico e potrebbe non essere la lingua di scelta agli occhi dei potenziali datori di lavoro. Per favore correggimi se sbaglio. Soprattutto, non voglio perdere tempo in qualcosa che non vale la pena.

Al momento mi sento abbastanza fiducioso nella mia conoscenza del linguaggio PHP, e so che potrei creare tutto ciò di cui ho bisogno e farlo funzionare, ma mi sento gravemente carente nei concetti di design e nella struttura del codice. Posso persino scrivere un codice orientato agli oggetti, ma secondo la mia opinione personale, non vale la pena una collina di fagioli se non è organizzata bene. Per questo motivo, ho comprato il libro di Matt Zandstra "PHP Objects, Patterns and Practice" e ne ho letto un po 'tutti i giorni.

Comunque, sto iniziando a fare una piccola digressione qui, quindi torniamo alla domanda originale. Che consiglio daresti a un aspirante programmatore che vuole avere un impatto in questo campo?

Inoltre, su una nota a margine, ho lavorato a un progetto con un mio amico che avrebbe dato una buona idea di dove sono al codice di saggio. Darò un link, non voglio che nessuno si senta come se stia spingendo o spamming qui, quindi non fare clic su di esso se non vuoi. Ma se sei interessato a dare qualche feedback anche lì, puoi vedere il codice su github. Sono conosciuto come The Craw there.

link

    
posta Scotty C. 10.11.2012 - 04:42
fonte

3 risposte

13

1. Codice di alta qualità

È facile scrivere codice, ma molto più difficile scrivere codice buono e pulito. E per buono intendo codice leggibile che corrisponde a uno stile specifico, è abbastanza commentato ma non troppo, ha metodi brevi, nomi di variabili auto-documentanti, ecc.

2. Vasta conoscenza

Difficilmente si può definire uno sviluppatore professionista se conosce solo un linguaggio di programmazione. Comprendere i diversi paradigmi (come l'orientamento agli oggetti, funzionale o riflessivo) è un must anche.

Inoltre, come sviluppatore web, si dovrebbe conoscere HTTP, JavaScript, SQL, REST e troppe cose da elencare qui. Uno sviluppatore web professionale dovrebbe essere in grado di fare da solo un sito web di media grandezza, ad eccezione del design e della grafica visiva. Non dovrebbe essere buono come un sito web creato da un team di persone altamente specializzate, ma dovrebbe comunque essere accettabile.

Anche conoscere i tuoi strumenti è un requisito. Dovresti essere abbastanza familiare con controllo di versione, IDE, ecc.

3. Esperienza solida

Non diventi un professionista dopo due anni di college. Qualcuno con dieci anni di esperienza professionale avrà probabilmente più possibilità di essere chiamato uno sviluppatore professionista.

Naturalmente, ci sono diversi tipi di esperienza. Lavorare in una piccola azienda in cui nessuno importa della qualità del prodotto non è molto prezioso.

Anche l'esperienza in un progetto su larga scala è piacevole. È abbastanza facile creare un sito Web di piccole dimensioni, ma è molto più difficile farlo correttamente quando si tratta di un sito Web che deve essere distribuito su una serie di server, fare molto affidamento sul caching, ecc.

4. Motivazione personale

Se una persona è veramente motivata dallo sviluppo del software, dovrebbe essere in grado di mostrarla. Quando intervisto una persona che sostiene di essere appassionata di programmazione e ha 15 anni di esperienza nello sviluppo di software, ma non può rispondere alla semplice domanda: "Parlami del tuo ultimo progetto personale legato alla programmazione", so che c'è qualcosa di sbagliato con questo candidato.

Avere progetti open source con codice sorgente disponibile per il download. Avere un blog Partecipa allo Stack Exchange. Tutte queste cose sono preziose quando ti presenti come sviluppatore professionista.

    
risposta data 10.11.2012 - 05:52
fonte
9

Da 8 anni sviluppo con PHP da quando avevo 16 anni. Incontro persone di tutte le età, forme, dimensioni e sfondi. Sono d'accordo con la maggior parte dei punti di MainMa, ma vorrei aggiungere un po 'di enfasi e alcuni punti di mio.

Passione e amp; Motivazione

Questa è la cosa più importante di gran lunga. Sforzati di essere il migliore (puoi essere), e alla fine lo farai. Ci vuole la vera passione per risolvere i problemi e affinare il tuo mestiere. Puoi dire in 5 secondi se qualcuno è appassionato. Quando fai loro una domanda, si impegnano immediatamente o danno una risposta in due parole? Se raccomandi qualcosa, tornano indietro e te ne parlano dopo?

Dedizione

Lo sviluppo del software è un mestiere che può richiedere decenni per essere padroneggiato. Dicono che ci vogliono 10.000 ore per padroneggiare qualcosa, ma penso che quando si lavora con un obiettivo in movimento come lo sviluppo di software, è molto di più. Se lavori a tempo pieno, colpirai quel marchio ogni pochi anni in modo da poterti costantemente reinventare. Essere in grado di restare con qualcosa così a lungo richiede un'enorme quantità di pazienza e amp; di nuovo, passione. Diffida delle persone con 10/15 anni di esperienza che non sono incredibili. Non sono dedicati e probabilmente hanno perso la passione dieci anni fa. 15 anni di esperienza non equivalgono a 1 anno di esperienza 15 volte.

Fame per la conoscenza

Ci vuole costante apprendimento e sconfitta. Dovrebbe essere decisamente imbarazzante / deprimente guardare il codice dell'anno precedente Se non lo è, allora non stai imparando abbastanza. Trova le persone che sono in cima e scopri tutto ciò che puoi da loro. In genere sono i principali contributori open source (per PHP: sviluppatori Symfony, Zend, PHPUnit / Behat / etc). Sono quelli che addestrano tutti gli altri. Quando qualcuno ti dice che X è meglio di Y, fai le tue ricerche. Di solito sono pecore a cui è stato detto 5 anni fa e che continuano a predicare. In realtà questo sito è una risorsa straordinaria. Trovo una vasta gamma di contenuti che in genere riconducono alle stesse persone chiave o ai principali (Martin Fowler, Uncle Bob, ecc., DDD, ecc.)

PHP Sucks

Qualunque cosa. Se le persone vogliono raggirare te / PHP, non lasciarti abbattere. Se segui i principi chiave di sviluppo e in realtà crea il software , continua ad andare avanti. PHP ha fatto molta strada e non è il brutto anatroccolo che era. Impara dalle altre lingue e divertiti con gli altri una volta ogni tanto. Forse ti piaceranno di più, o forse no. In ogni caso, amplierà le tue conoscenze e ti introdurrà a nuovi modelli o pratiche che non sono popolari o addirittura possibili in PHP.

Rete

Inizia a costruire un marchio per te. Blog. Partecipare a meetup / conferenze. Raggiungi gli altri su Twitter. Trova una comunità / nicchia con cui impegnarsi. Contribuire a progetti open-source. La programmazione è un lavoro molto sociale ora. Non isolarti e fai conoscere il tuo lavoro. Prima farai questo, prima creerai relazioni con grandi sviluppatori che ti porteranno sotto la loro ala, e prima troverai clienti decenti / datori di lavoro piuttosto che quelli schifosi per cui tutti gli altri lavorano.

    
risposta data 10.11.2012 - 07:05
fonte
3

Oltre a ciò Adrian Schneider e MainMa ha scritto (che sono entrambi buoni), penso che una caratteristica di un programmatore professionista, indipendentemente dalla lingua, sia la consapevolezza che il codice ha una lunghezza estremamente lunga -life - molto più a lungo di quanto comunemente ci rendiamo conto o, per questo, ci aspettiamo quando lo scriviamo.

Sì, ci sono casi estremi di sistemi risalenti a 50 anni ancora in uso attivo (applicazioni business-critical scritte in COBOL negli anni '60 e '70 ancora in uso), ma non è necessario che siano così estreme. Ovviamente all'estremo opposto è scritto un codice ad hoc da eseguire solo una volta. Una delle applicazioni su cui lavoro è fondamentalmente un'applicazione CRUD basata sul web. Un sacco di punti di vista tavolo, alcune viste specializzate, alcuni rapporti, alcune curiosità e fini circostanti. Davvero, niente di eccezionale nel grande schema delle cose. Con alcune delle classi principali e il codice di database risalenti a oltre 10 anni al momento, credo che si adatti piuttosto bene alla mediana. Il linguaggio e il framework (C # .NET, in questo caso particolare) si sono naturalmente evoluti nel tempo e le persone coinvolte hanno acquisito esperienza nell'usarlo, ma il vecchio codice rimane sul posto perché funziona e funziona abbastanza bene, vedendo minori cambia di tanto in tanto, ma spesso fornisce solo le fondamenta su cui poggia l'intero sistema. Il mio impiego prima era incentrato sulla sostituzione di un sistema di invecchiamento progettato per un singolo utente e con parti scritte 15+ anni prima con qualcosa di leggermente più moderno. Lasciatemi riformulare quello. Alcune delle parti più importanti del sistema a cui sono stato assegnato il compito di sostituire Windows 3.0 precedente.

Un programmatore professionista, quando scrive un codice che non è esplicitamente codice throwaway progettato per risolvere un problema molto specifico di una volta sola, considera il fatto che il il codice che scrive oggi rimarrà probabilmente in qualche forma per molti anni. Se si tratta di una parte fondamentale del software, è probabile che rimanga per una parte significativa della vita del prodotto. È probabile che sia necessario un intervento di manutenzione da parte di un programmatore che non ha nulla a che fare con il team di sviluppo originale. Diamine, potrebbe anche aver bisogno di manutenzione da parte del programmatore che originariamente lo ha scritto! (Se non lo ottieni, considera il fatto che il codice che hai scritto sei mesi fa possa essere stato scritto da qualcun altro - quindi prova sei anni anziché sei mesi.)

Da ciò deriva la consapevolezza che il codice deve essere facile da leggere e capire , facile da modificare e facile da estendere per adattarsi nuovi usi o soddisfare i requisiti in evoluzione. Deve inoltre essere facile da eseguire il debug , nonché preferibilmente facile da seguire senza eseguirlo tramite un debugger interattivo.

    
risposta data 11.11.2012 - 19:41
fonte

Leggi altre domande sui tag