Fare il salto logico dal noob completo allo sviluppatore?


12

Sto programmando alla leggera da alcuni anni e non sto facendo molti progressi. È qualcosa che sicuramente mi interessa, ma non mi sono motivato. Quindi, penso di aver capito cosa mi sta uccidendo. Tutti i libri che ho letto, tutti i screencast che ho visto, sembrano aver perso una cosa importante:

Come posso passare da istruzioni di stampa, variabili, ecc. A fare cose più complicate?

Ad esempio, prendiamo un sito come Posterous. Per chi non lo sapesse, è una piattaforma di blog che accetta post di blog via e-mail. L'autore del blog ha un'e-mail speciale su @ posterous.com alla quale inviano post sul blog e vengono automaticamente formattati e pubblicati.

In che modo uno sviluppatore userebbe la sua cassetta degli attrezzi di funzioni e istruzioni per realizzare qualcosa di simile sul back-end?

Mi dispiace se questa domanda sembra davvero ampia, mi sta solo frustrando. Mi sembra di avere una discreta comprensione dei concetti di base, ma non ho idea di come fare effettivamente qualcosa.


Avrebbero analizzato l'e-mail e mantenuto la codifica e INSERITO il testo in un database. Quindi è un semplice sforzo per selezionare tutti i post e visualizzarli su una determinata pagina. Per spiegare la tua mancanza di capacità di programmazione, puoi migliorarla semplicemente facendola di più.
Ramhound,

Finora tante risposte incredibili, ragazzi. Ora sta diventando tutto un po 'più chiaro. Grazie a tutti!
Blair Beckwith,

Risposte:


12

La chiave è suddividere l'attività in passaggi discreti che sai come fare (o puoi scoprire come fare). Quello che sai fare è basato sul tuo livello di esperienza.

Facciamo un esempio di e-mail posterous:

Requisiti: accettare e-mail @ posterous.com, formattarle e pubblicarle sul sito Web.

Attività 1) Accettare l'e-mail.

Molto probabilmente le e-mail dovranno essere recuperate da un server di posta. Dovrai cercare le chiamate API per recuperare le e-mail dal tuo particolare server di posta. Dovrai anche capire come estrarre il contenuto dal corpo dell'e-mail (probabilmente un'altra chiamata API).

Attività 2) Formattare l'e-mail.

Dall'attività 1, probabilmente hai il contenuto in memoria da qualche parte. Formatta questo in modo che sia conforme al passaggio 3 ...

Attività 3) Pubblica il contenuto sul blog.

Se stai aggiungendo questa funzione email2blog, probabilmente hai già un meccanismo per pubblicare post sul blog. Usa quel meccanismo e invece di accettare da qualche parte l'input da un'area di testo sul tuo sito web, sostituiscilo con il contenuto del tuo passaggio 2.

Ora, come possiamo ottenere dalle dichiarazioni stampate, se le dichiarazioni e le funzioni per eseguire ciascuna delle attività.

Notate come nell'attività 1 ho menzionato due volte le chiamate API? Le chiamate API sono essenzialmente funzioni che qualcun altro ha scritto in modo da poter utilizzare le loro funzionalità. Se sai come chiamare le funzioni, puoi cercare la chiamata API corretta di cui hai bisogno per recuperare la posta dal server di posta.

Non ho discusso molto sulla formattazione, ma se sai come fare la manipolazione delle stringhe, allora sai come formattare. La formattazione di una pagina html è un esercizio per aggiungere tag come<b>bolded text</b> all'interno della stringa da qualche parte.

Nel Task 3, ho detto che esisteva una sorta di meccanismo per pubblicare blog. Se questa è una piattaforma di blog esistente, ne avresti abbastanza familiarità. In caso contrario, è necessario conoscere HTTP Post e altre cose relative al framework Web.

Se dopo aver letto tutto questo non hai ancora idea di cosa sto parlando, spero di averti convinto che non c'è sostituto per l'esperienza. Quindi esci e costruisci qualcosa! Non preoccuparti troppo di fare errori noob perché ogni sviluppatore era una volta un noob.


5

La cosa principale è trovare qualcosa che vuoi fare e farlo .

È così che è iniziata la maggior parte delle grandi aziende.

  • Google? Brin e Page erano appassionati di indicizzare il web.

  • MetaFilter? Matt Haughey era appassionato di scrittura e condivisione.

  • Twitter? Dorsey era appassionato di semplicità e non si ottiene molto più semplice di 140 caratteri.

  • StackOverflow? Joel e la troupe erano appassionati di risposte.

Le lingue, come PHP, Perl, Python e Ruby sono state progettate allo stesso modo. Così è stato GNU / Linux. Qualcuno ha avuto un graffio e ha iniziato a prudere quel graffio, quindi ha rilasciato i suoi strumenti per il consumo generale.

Quindi dai un'occhiata in giro e decidi dov'è il tuo prurito, quindi inizia a scrivere un programma per grattarlo. Forse ti piace giocare, quindi potresti scrivere alcuni giochi. Forse hai un problema con i tag ID3 sulla tua raccolta mp3 e devi risolverlo. O forse sei interessato alla storia familiare e vuoi eseguire la scansione del Web alla ricerca di riferimenti a persone o luoghi della tua storia. O forse vuoi in qualche modo interagire con il mondo reale. O forse vuoi sviluppare il software FLOS - dai un'occhiata a GitHub, Gitorious e Sourceforge.

Trova qualcosa che ti appassiona e inizia a programmare, e molto presto avrai programmi enormi prima di realizzarlo. Ed è per questo che pianificare una specie è una buona idea;)


2

Lentamente e gradualmente.

Di solito per progetti di grandi dimensioni, non si inizia semplicemente immergendo un codice di scrittura. Qualcuno da qualche parte deve avere un piano. Scrivono qualcosa, le caratteristiche del sistema che vogliono. Quindi iniziano con la prima pagina / finestra / qualunque cosa. Quindi ne aggiungono un altro. Nel frattempo aggiungendo lentamente funzionalità dopo funzionalità, correggendo bug dopo bug. Non solo nasce, deve esserci un quadro generale, un design complessivo.

Per migliorare, hai bisogno di pratica! Inizia con un piccolo progetto. Qualcosa di semplice e che ti interessa anche. Pianifica cosa stai facendo prima di farlo, vedrai che non è così difficile " fare davvero qualcosa".


1

Puoi guardare tutti i screencast, leggere tanti libri e seguire tutti i tutorial che vuoi ma non hai mai voglia di andare da nessuna parte. Devi capire qualcosa che ti interessa creare. Quindi suddividilo e prova a crearlo. Verrai in molte cose che potresti non sapere. Ma li cerchi e impari i compiti più complessi mentre vai.


1

Ho anche incontrato questa sfida, e in generale ho trovato la mia soluzione: avevo bisogno di una fonte esterna per spingermi ad essere più produttivo.

Puoi essere affascinato dalla tecnologia come chiunque, entusiasta della programmazione come chiunque e intelligente e veloce da imparare come chiunque, e significherà così tanto solo se non ti sporchi le mani e fai cose. Ma può essere difficile sapere da dove cominciare e anche se hai idea di dove iniziare, può essere difficile far rotolare la palla.

Se sei un buon avvocato, probabilmente hai solo bisogno di alcune idee. Prova alcuni enigmi di programmazione o guarda le semplici utility che usi regolarmente e chiediti "Potrei farlo? Se lo facessi, cosa cambierei?"

È davvero scoraggiante sedersi di fronte a un editore aperto o un foglio bianco e dire "Ok, cervello, crea! " Ma se lo rompi, pensa a che tipo di cose potresti avere un motivo per fare, e guidati da lì, puoi andare più lontano.

E, se scopri che non riesci proprio a creare il codice, chiedi a qualcuno di darti un lavoro da fare, con una scadenza, i requisiti e tutto il resto. Ti metterà in marcia.


1

Il fatto che tu abbia una conoscenza di base è positivo: io non sono un professionista, ma posso vendere quello che faccio, quindi devo fare qualcosa di giusto. Ti consiglio di imparare le basi della tua lingua e della piattaforma per cui stai sviluppando (e sembra che tu abbia).

Per prima cosa, analizza ciò che stai cercando di fare e ottieni un'idea di come lo farai, si tratta di far bollire le cose in modo specifico, in quanto ti aiuta a capire le cose più velocemente. Quindi solo Google cosa stai cercando di fare nella lingua che stai usando se sei bloccato - anche fare domande su Stack Overflow (io stesso ho già fatto più di 70 domande, hehe)!

Personalmente ho imparato giocando a google, all'inizio non ho nemmeno capito le basi, cosa che avrei dovuto fare, anche se già quando stavo facendo delle cose abbastanza buone, non sapevo ancora cosa fosse un "array". ;)


0

Penso che per sviluppare le tue abilità sul back-end delle interfacce dovresti iniziare a manipolare i dati. I progetti più grandi riguardano lo spostamento, la trasformazione e la visualizzazione di dati.

So da solo che non ho avuto una buona conoscenza di progetti più grandi fino a quando non mi sono sentito a mio agio con diversi tipi di accesso ai dati e manipolazione dei file.


0

Saltare in qualcosa che è un po 'sopra la tua testa e capirlo può essere un ottimo modo per espandere le tue abilità. Potresti provare a guardare alcune delle serie di libri di cucina O'Reilly:

http://oreilly.com/store/series/cookbooks.html

I suoni formato Problema / Soluzione / Discussion come potrebbe essere esattamente quello che stai cercando, il codice 'ricette' che FARE qualcosa di interessante e un po 'di discussione su come funziona.


1
Se decidi di acquistare, assicurati di trovare prima un codice coupon: retailmenot.com/view/oreilly.com
DKnight

0

Penso che non riesci a sfidare te stesso per fare di più.

Se sei davvero curioso di come fare qualcosa, cercalo! Se vuoi sapere come funziona Posterous prova a iniziare con qualcosa di piccolo come la ricerca del tipo di strumenti di cui hai bisogno, come ottenere informazioni da una casella di testo a un sito Web. Quindi gradualmente ci costruisci sopra. La domanda successiva potrebbe essere la creazione di una connessione e-mail a un sito Web e un database.

Hai lo strumento migliore di cui avrai mai bisogno, Internet.


0

Oltre a suddividere il progetto in attività, la chiave è anche imparare il riutilizzo del codice. Dividi il tuo codice in moduli che puoi riutilizzare in altri progetti in cui devi fare la stessa cosa.

Ad esempio in questo progetto di esempio, probabilmente eseguirai un lavoro di database per la memorizzazione dei post del blog. È possibile scrivere una classe di database per connettersi al database, eseguire query, ottenere i risultati, ecc. Quindi in tutti i progetti futuri è possibile utilizzare quella stessa classe ed essere in grado di lavorare facilmente con il database.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.