Un piccolo sfondo
Oggi ho 28 anni e non ho mai avuto una formazione formale nello sviluppo di software, ma ho due gradi di istruzione superiore equivalenti a una laurea in relazioni pubbliche e un Executive MBA focalizzato sulla gestione dei progetti. Ho lavorato su questi campi per circa 6 anni in totale e, 2,5 anni fa, ho lasciato / perso il lavoro e ho deciso di cambiare direzione.
Dopo un mese di riflessione ho deciso di iniziare a lavorare come freelance sviluppando piccoli siti Web in WordPress. Mi sono autodidatta e oggi posso dire di avere una carriera umile ma di successo, sviluppando da zero temi e plugin per i miei clienti, principalmente agenzie che esternalizzano parte del loro lavoro di sviluppo per siti Web medio / grandi.
Ma a volte sento solo che non aver studiato abbastanza matematica o non avere una comprensione formale delle cose mi tiene davvero indietro quando devo competere o lavorare con sviluppatori più esperti. Sono costantemente alla ricerca di modi per saperne di più, ma mi sembrano mancare le basi.
Sfortunatamente, passare altri 4 anni in Informatica non è un'opzione in questo momento, quindi sto cercando di imparare tutto ciò che posso da libri e risorse online. Questo metodo non mi farà mai impiegare dalla NASA, ma al momento non mi interessa. Il mio obiettivo è quello di passare prima la barra e di potermi definire un vero programmatore.
Attualmente sto trascorrendo il mio tempo libero a studiare Java per programmatori (per ottenere una sospensione su una lingua che tutti dicono sia difficile / impegnativo), leggendo brani di Code Complete (per acquisire le migliori pratiche) e anche Code: The Hidden Language of Computer Hardware e software (per comprendere il funzionamento interno dei computer).
TL; DR
Quindi, la mia situazione attuale è questa: sono sostanzialmente in grado di scrivere qualsiasi sistema completo in PHP (con l'aiuto di Google e alcuni libri), integrando Ajax, SQL e quant'altro, e forse un po 'più lentamente di quanto un sviluppatore esperto si aspetterebbe grazie a tutte le ricerche coinvolte.
Ma ieri sono rimasto bloccato cercando di capire (non Google) una soluzione per il test FizzBuzz perché non avevo memorizzato l' operatore del modulo di if($n1 % $n2 == 0)
metodo .
Cosa suggeriresti come un buon modo per risolvere questo dilemma? Quali argomenti / libri dovrei studiare per farmi risolvere i problemi più velocemente e forse di più "in modo programmatore"?
EDIT - Sembra che ci fosse un po 'di confusione su ciò che non sapevo per risolvere FizzBuzz.
Forse non mi sono espresso bene: sapevo i passaggi necessari per risolvere il problema. Ciò che non ho memorizzato è stato l'operatore del modulo. Il problema era nel trasporre la matematica di base al programma, non nel conoscere la matematica di base.
Ho fatto il test per divertimento, dopo averlo letto su Coding Horror . Ho appena deciso che era una buona linea di confronto di base tra me e gli sviluppatori formalmente addestrati.
Ho appena usato questo come esempio di come non aver affrontato la matematica in un ambiente informatico prima di farmi perdere tempo a cercare cose di base come gli operatori di moduli per essere in grado di risolvere semplici problemi.
stuck b/c I didn't memorize %
problema, vale la pena notare che ci sono altri modi per farlo: (assumendo $ n2! = 0) if (is_int ($n1 / $n2))
o if (($n1 / $n2) == (int) ($n1 / $n2))
Conoscere le parole chiave è una cosa e sapere come esprimere le idee sottostanti in assenza di una soluzione integrata è un altro.
I'm basically capable of writing any complete system in PHP (with the help of Google and a few books)
e lo combino con te non sapendoif($n1 % $n2 == 0)
, mi chiedo l'esposizione che hai avuto alle cose scritte in PHP. Penso che la maggior parte delle cose che fai vadano oltre un semplice calcolo del modulo. Potresti dare qualche informazione in più su ciò che pensi di essere in grado di fare?