Un'intervista con Jason Lengstorf

Jason Lengstorf è uno sviluppatore web professionista specializzato in applicazioni PHP e jQuery. È l'autore del PHP rilasciato di recente per Absolute Beginners, che è la voce di un esperto in open source. Inoltre, è coautore di un tutorial in otto parti su Creazione di un'app Web da zero con Chris Coyier. Unisciti a noi mentre discutiamo di sviluppo web, PHP e della sua vita in generale.

1. Molti di noi potrebbero conoscerti a causa del tuo libro: "PHP for Absolute Beginners". Per quelli che non hanno familiarità con te, puoi dirci qualcosa su di te e sulla tua vita?

In poche parole, sono uno sviluppatore PHP basato su Missoula, MT. Gestisco un'azienda chiamata Ennui Design specializzata in piccole aziende e nello sviluppo di singoli siti web. Sono anche in sviluppo front-end, che faccio principalmente con jQuery.

Ho 24 anni e ho lavorato nello sviluppo web per circa sei anni e ho sviluppato a tempo pieno per circa un anno e mezzo. Sono completamente autodidatta, quindi devo la mia carriera alla blogosfera e alle persone fantastiche che danno sempre una mano su forum come W3schools e simili.

Cerco anche di scrivere e ho scritto un paio di articoli sul web per siti come Smashing Magazine, CSS Tricks e Nettuts +, oltre che per il mio blog su Ennui Design. All'inizio di quest'anno, ho avuto l'opportunità di scrivere un libro per la pubblicazione di Apress uscito in ottobre, chiamato "PHP for Absolute Beginners", e attualmente sto lavorando ad un nuovo titolo per Apress chiamato "Pro PHP e jQuery".

2. Come sei entrato nello sviluppo web?

Ho iniziato nello sviluppo del web per necessità. Quando avevo 18 o 19 anni, suonavo in una band e avevamo bisogno di un sito web. Quando abbiamo iniziato a esaminare i prezzi, ci siamo resi conto che non c'era modo di poterci permettere di averne uno costruito per noi. Così ho detto al resto dei ragazzi, "Beh, penso di poterlo capire."

Ho iniziato su w3schools (dopo aver cercato "come costruire un sito web" su Google) e ho lavorato sul corso HTML, dopo di che ero sicuro di essere un web designer esperto. Così ho creato questo sito web terribile, basato su tabelle, completo di iframe e tutto lo stile in linea.

Quando ho finito, pensavo tra me e me, "Beh, sembra terribile." Così l'ho ricostruito. E di nuovo. Circa una quindicina di ricostruzioni dopo, avevo imparato un po 'di CSS e JavaScript; i siti hanno iniziato a sembrare un po 'migliori e mi sono sentito abbastanza bene costruendoli.

Proprio in quel periodo, una coppia di amici aveva bisogno di siti web e mi sono offerto di costruirli gratuitamente. L'ho fatto, ed erano entrambi felici con loro, ma mi sono reso conto che la manutenzione sui loro siti era davvero ingombrante. Questo è quando sono entrato in PHP, perché avevo bisogno di una soluzione che consentisse una manutenzione più semplice.

Dal momento che non sapevo nulla dei sistemi di gestione dei contenuti o che esistevano CMS esistenti, ho finito col rotolare il mio. Era pieno di buchi, goffo e povero di funzionalità, ma ha fatto il trucco, e mi è piaciuto costruirlo. Ho passato 14 ore al giorno nel mio coffee shop preferito a modificarlo e ricostruirlo.

Dopo il lancio dei siti dei miei due amici, ricevetti una chiamata dal mio primo vero cliente e mi resi conto che potevo davvero fare soldi per costruire siti web. Ho trascorso quattro anni cercando di diventare abbastanza bravo per costruire siti a tempo pieno, e alla fine ho raggiunto questo obiettivo nell'autunno 2008, quando ho lasciato il mio lavoro giornaliero presso un FedEx Kinko per lavorare a tempo pieno su progetti di Ennui Design.

3. Qual è il modo migliore per imparare il PHP - e in che modo la tua esperienza ha scritto questo libro?

Imparare PHP è come imparare qualsiasi lingua. Sì, puoi fare un sacco di esercizi che non hanno un'applicazione del mondo reale ("Ripeti dopo di me: 'Cette espadon est glissante! Questo pesce spada è scivoloso!'"), Ma questo ti aiuta solo a memorizzare i concetti. Penso che devi immergerti davvero negli usi del mondo reale della lingua in modo che tu possa vedere come e perché è usato.

Questo è l'approccio che ho seguito quando ho scritto "PHP for Absolute Beginners". Copriamo i concetti di base, quindi costruiamo immediatamente un progetto reale (un sistema di gestione dei contenuti molto semplice).

Scrivere il libro è stato grandioso per me, perché mi ha costretto a difendere il mio approccio allo sviluppo. Avevo un revisore tecnico, editoriale e di progetto, il tutto tenendo d'occhio il modo in cui tutto era stato messo insieme, il che metteva la pressione per fare tutto nel modo giusto, senza scorciatoie. Imparare a farlo correttamente la prima volta è stata una buona lezione di pazienza per me. Mi aiuterà anche quando sto lavorando a progetti futuri con collaboratori, perché ora ho una presa migliore sulla scrittura di un codice auto-descrittivo, inclusa una migliore documentazione in linea, e giustificando le mie scelte di programmazione con un ragionamento concreto.

4. Recentemente, hai co-scritto una serie in 8 parti intitolata "Creare un'app Web da zero" con Chris Coyier su CSS-Tricks>. Com'è stato??

Chris Coyier è l'uomo, a mani basse. Sono un maniaco del lavoro, ma quel ragazzo riesce a farmi sentire un fannullone con la quantità di lavoro che produce in modo coerente.
La serie di tutorial è stata un ottimo modo per costringermi a tornare al blog (perché ultimamente mi sono rilassato) e l'opportunità di dare un altro esempio del mondo reale agli sviluppatori di livello principiante e intermedio. Una cosa è spiegare un concetto, ma una bestia completamente diversa quando si tenta di spiegare un concetto nel contesto di un sito di produzione reale.

I commenti che abbiamo ricevuto sono stati davvero utili, perché ci hanno mostrato pezzi dell'app a cui non avevamo pensato, come alcuni buchi di sicurezza che non avevamo considerato e funzioni che avrebbero davvero migliorato l'app.

Quella serie è stata una delle mie esercitazioni preferite su cui abbia mai lavorato e spero di metterne altre insieme su queste linee in futuro.

5. Puoi fornirci qualsiasi informazione sul tuo prossimo libro, "Pro PHP e jQuery"?

Pro PHP e jQuery saranno per sviluppatori PHP di livello intermedio o avanzato che desiderano familiarizzare con le funzionalità di jQuery. Coprirà la creazione di un calendario di eventi basati su AJAX che avrà un sacco di funzioni come suggerimenti, caricamenti di file, ordinamento di eventi e foto con trascinamento e altri concetti utili.

AJAX è davvero potente e consente agli sviluppatori di creare applicazioni web che sembrano app desktop (perché non devono ricaricarsi tutto il tempo, ecc.). L'ascesa di jQuery e di librerie JavaScript simili ha reso tutte le funzionalità AJAX veramente accessibili agli sviluppatori, e il mio obiettivo con Pro PHP e jQuery è di portare il lettore alla velocità con la creazione di app Web di prima qualità.

6. Sei proprietario di Ennui Design, che offre sviluppo web personalizzato. Com'è il tuo giorno per giorno?

Come ho detto prima, Ennui Design è il nome della società con cui lavoro come freelance. Ho cercato di diventare un esercito di un solo uomo offrendo lo sviluppo del sito da cima a fondo, dall'arte e dal design ai sistemi di gestione dei contenuti personalizzati. Recentemente ho iniziato a occuparmi di clienti che hanno bisogno di applicazioni personalizzate e questo è stato molto divertente.

A partire da questo mese, sto espandendo Ennui Design e sto cercando di costruire una rete di colleghi freelance per aiutarmi a gestire il carico del mio cliente. Ho appena portato Drew Douglass di recente, e sono davvero entusiasta di lavorare con lui. Sto ancora cercando un front-end designer che mi aiuti con la grafica e la conversione da PSD a XHTML, quindi se conosci qualcuno ... :)

7-Qual è il tuo framework di applicazioni web preferito e perché?

Perché non ho mai saputo che esistessero framework di applicazioni web, non ho mai imparato nessuno di loro. Mi iscrivo al concetto di architettura multilivello e ho persino scritto un articolo a riguardo di Nettuts+.

Ho esaminato altri modelli, come MVC, e penso che siano fantastici, ma cerco di non impantanarmi nel programmare i dogmi; se è facile da leggere, facile da mantenere e DRY per la maggior parte, ritengo che sia un buon codice.

8. Puoi dirci qualcosa sui tuoi progetti personali?

Attualmente sto lavorando per preparare il mio CMS per una versione open source con Drew Douglass e altri amici. Sto anche pianificando di sviluppare una versione 2.0 di Liste colorate con Chris Coyier (l'app che abbiamo creato nella nostra serie "Building a Web App from Scratch" in 8 parti). Ho anche alcuni plugin jQuery che voglio riordinare e rilasciare a volte in futuro.

Recentemente ho deciso di cimentarmi anche nel design del prodotto e ho lanciato una società di abbigliamento chiamata Humblecock con una coppia di amici intimi. Volevamo camicie di alta qualità e ultra-confortevoli per noi stessi e abbiamo deciso che il modo migliore per ottenerle era di crearle da soli. È un'avventura nuova di zecca, e mi sto divertendo molto fino ad ora. È stato uno dei miei siti Web preferiti da progettare ed è stato davvero fantastico progettare prodotti fisici.

Il mio blog, purtroppo, è caduto vittima del mio programma di lavoro sovraccarico. Tra il carico e le scadenze del mio cliente con il mio editore, ho avuto pochissimo tempo libero. Tuttavia, con l'aggiunta di Drew e (si spera) altri freelance alla rete di Ennui Design, spero di avere più tempo per blogare ancora.

9. Quali sono le tue risorse online preferite per rimanere aggiornato sul settore dello sviluppo web?

Cerco di stare al passo con il maggior numero possibile di blog, davvero. Se avrò un momento libero proverò a leggere il maggior numero possibile di articoli per vedere se eventuali nuovi sviluppi influenzano direttamente il lavoro che sto facendo. Alcuni dei siti che frequento sono:

  • Nettuts+
  • Ajaxian
  • Il blog di David Walsh
  • Il blog di Jonathan Snook
  • ThemeForest

Chris Shiflett ha anche molti buoni articoli sulla sicurezza nel suo catalogo posteriore che uso regolarmente per riferimento.

10. Qual è la tua opinione su WordPress e Drupal?

Ne ho usato a malapena, quindi non penso di essere davvero qualificato per rispondere a questa domanda.

11. Quando lavori, come ti concentri mentre scrivi il codice e qual è il tuo editor di codice preferito?

Generalmente lavoro alla mia scrivania di casa quando sto facendo qualsiasi tipo di scrittura o sviluppo pesante. Tuttavia, quando ho bisogno di un cambiamento di atmosfera, sono conosciuto per frequentare un bar locale (in realtà ho passato così tanto tempo lì che mi hanno fatto costruire il loro sito web).

Io uso XAMPP, Eclipse e Firefox (con Firebug / FirePHP / Web Developer Toolbar) per la maggior parte del mio sviluppo. Eclipse è basato su Java, ma è anche open source e supporta tutto ciò di cui ho bisogno. Ho giocato brevemente con alcuni altri IDE, ma ci sarebbe voluto un argomento abbastanza solido per convincermi a passare a questo punto.

12. Cosa pensi che il futuro abbia per PHP?

Nell'immediato futuro contiene ottime notizie come funzioni anonime e spazi dei nomi (con l'adozione di PHP 5.3). Non vedo l'ora che ci sia un ampio supporto da parte delle società di hosting per iniziare a usarli. :)

A un livello meno specifico, penso che PHP e altri linguaggi "web" cominceranno a diventare sempre più rilevanti per uno sviluppo serio. Il mondo intero si sta spostando online e le app web stanno iniziando a importare tanto quanto le app native, se non di più. Sono entusiasta di vedere cosa succederà per PHP.

13. Qualsiasi codice pet peeves?

Personalmente, odio vedere il codice che si estende. Mi infastidisce davvero quando il codice è scritto come una lunga serie di azioni invece di essere suddiviso in piccole funzioni o metodi che gestiscono un'azione. Questa mancanza di separazione porta a file incredibilmente gonfiati, difficili da mantenere, e tende ad esserci un sacco di codice ripetitivo. Implica solo gli errori quando hai due blocchi di codice che fanno esattamente la stessa cosa.

In generale, spero solo che tutti codifichino come se ci fosse qualcun altro che lavora con te che ha bisogno di capire di cosa diavolo stai parlando. L'arroganza che porta qualcuno a pensare: "Se non sei abbastanza intelligente da capire come funziona il mio codice, non dovresti essere nel mio codice sorgente," mi infastidisce davvero; Penso che una domanda migliore sia: "Se non sei abbastanza intelligente da scrivere codice chiaro che qualsiasi sviluppatore funzionale può capire, non dovresti parlare con nessuno".

14. Che tipo di musica ti piace? Qualsiasi hobby?

Sono cresciuto con la musica country, poi ho iniziato ad ascoltare le cose della Top 40 quando sono diventato un po 'più grande. Mi sono introdotto al metal, poi punk e hardcore, poi hip-hop, poi folk. Ho trovato qualcosa di buono in tutto questo, ma ora ascolto principalmente folk / alternative e hip-hop. Trascorro una quantità eccessiva di tempo ad ascoltare musica e la seguo tutta attraverso Last.fm.

Sono piuttosto impegnato, quindi non ho molti hobby, ma faccio uno sforzo per mantenerli non-geek (voglio dire, a un certo punto avrò bisogno di impressionare le signore, giusto?). Sollevo pesi alcune volte a settimana e mi piace cucinare. Sono anche un grande appassionato di birra, e adoro trovare nuovi birre e birre speciali (soprattutto birre e facchini). Preparo la mia birra ogni mese o due per divertimento, che è molto più divertente di quanto sembri. Inoltre, non c'è niente di meglio che bere una birra che hai imbottigliato. Cerco anche di viaggiare il più possibile. Sto pianificando un paio di viaggi su strada che passano da alcune delle mie birrerie preferite in primavera, e spero di uscire dal paese il prossimo autunno e di uscire un po 'in Europa per un po'.

15. Quali sono i tuoi piani futuri?

Se ottengo tutto ciò che spero, farò un po 'meno in termini di lavoro freelance e concentrerò maggiormente sull'aspetto didattico della programmazione. Mi piacerebbe continuare a produrre tutorial approfonditi accanto a influenti blogger della community, come Chris Coyier. Spero anche di iniziare a parlare alle conferenze nel 2010, se sono abbastanza fortunato da avere l'opportunità.

Apress è stato grandioso e spero di continuare a scrivere libri sullo sviluppo del web. Voglio anche tornare a scrivere articoli per siti come Nettuts + (non ho dimenticato quell'articolo, Jeffrey! Lo prometto!) E regolarmente blog su Ennui Design.

Voglio anche provare a coltivare Humblecock il più possibile, se non altro per cui voglio essere in grado di realizzare esattamente i vestiti che voglio indossare.
E a un certo punto dovrò crescere più di una vita sociale e iniziare a frequentare. Mia madre avrà un infarto se continuo a tornare a casa da sola per Natale. :)

Grazie mille per il tuo tempo prezioso, Jason! È stato un piacere parlare con te!

  • Seguici su Twitter o iscriviti al feed Nettuts + RSS per i migliori tutorial di sviluppo web sul web. Pronto

Sei pronto a portare le tue abilità a un livello superiore e a trarre profitto dagli script e dai componenti? Dai un'occhiata al nostro marketplace, CodeCanyon.