Mi sono prefissato l'obiettivo di diventare uno sviluppatore decente entro l'anno prossimo. Con ciò intendo la piena esperienza dello sviluppo "ciclo di vita", alcune buone app / siti / webapps sotto la mia cintura e, soprattutto, la possibilità di lavorare a un ritmo costante senza essere messo da parte per ore da qualche dovrebbe-sapere-questa-già tecnica.
Non sto iniziando da zero. Ho scritto molto html / css, SQL, javascript, python e VB.net, e ho studiato altri linguaggi come C e Java. Conosco su cose come OOP, schemi di progettazione, TDD, complessità, linguistica computazionale, puntatori / riferimenti, programmazione funzionale e altri argomenti accademici / teorici. Non posso dire che ho fatto queste cose ancora.
Quindi voglio arrivare alla velocità, e voglio sapere quali cose posso lasciare fino a una data successiva. Ad esempio, studiare gli algoritmi e la matematica dietro di loro è interessante e tutto, ma finora non ho quasi avuto bisogno di scrivere altro che i loop nidificati più elementari. Investigare l'assemblea per avere un quadro più chiaro delle operazioni a basso livello sarebbe bello ... ma immagino che raramente violi il lavoro quotidiano. D'altra parte, guardare un linguaggio di programmazione funzionale potrebbe aiutarmi a scrivere programmi più comprensibili e meno inclini a fallimenti nascosti (al momento sto trovando la difficoltà maggiore quando la complessità dell'app supera la mia capacità di capirlo - per esempio il passaggio dei dati è andato bene ... fino a quando ho dovuto iniziare a farlo con AJAX, che è stato un doloroso passo avanti). Potrei passare il tempo a lavorare su casi di studio di modelli di progettazione, ma non sono sicuro di quanti di essi vengano usati nella "vita reale".
Sono un programmatore con abilità di base: quali competenze dovrei concentrarmi sullo sviluppo?
(anche le mie capacità di Unix sono molto deboli, e anche la conoscenza della configurazione di Windows ... non sono sicuro di quanto tempo dovrei spendere per farlo)