Come diventare uno sviluppatore full-stack: parte 2
Pubblicato: 2017-12-02Questo è il secondo di una serie di post sull'apprendimento della programmazione e sullo sviluppo completo. Se non hai controllato la prima parte, sull'apprendimento dei fondamenti di CS, algoritmi, principi di progettazione e sviluppo front-end, puoi farlo qui.
Motivazione
Ora sai come creare siti Web statici utilizzando HTML, CSS e Javascript. Sebbene Internet sia stato originariamente progettato per condividere pagine Web statiche, le capacità (e le aspettative) di una moderna app Web sono aumentate enormemente. Quasi tutte le app richiedono l'autenticazione degli utenti, la risposta e la replica di scenari reali il più fedelmente possibile.
Per fare quanto sopra, è necessario ottenere i dati da un utente (o un'API), elaborarli e produrre un output. Devi anche salvare questi dati e disporre di un meccanismo per identificare l'utente la prossima volta che tornerà a utilizzare la tua app. Per eseguire queste funzioni, il nostro stack attuale non è sufficiente.
Intervista con Ankit Tomar, co-fondatore e CTO, Bizongo
I server sono necessari per elaborare i dati degli utenti, archiviare file, convertirli in HTML/CSS/JS. Quindi, questi server lo servono al browser in una forma che può essere presentata all'utente. È necessario un database per archiviare i dati importanti per la tua app. Per programmare il server, abbiamo bisogno di un linguaggio di scripting lato server e per il database, abbiamo bisogno di un database (duh) e di un linguaggio per comunicare con esso. Questo è esattamente ciò che faremo nei prossimi passaggi. Per i primi sette, fare riferimento al post precedente!
Sommario
Passaggio 8: linguaggi di scripting lato server
Come accennato in precedenza, per programmare e comunicare con il tuo server, dovrai conoscere una lingua che comprende. A differenza del front-end in cui Javascript è l'unica scelta, ci sono una miriade di opzioni disponibili per la programmazione sul back-end. I più popolari sono Java, PHP, Python, JavaScript e Ruby.
PHP ha i suoi difetti, ma ha la curva di apprendimento più delicata tra tutti i linguaggi e i framework che ho usato finora. E PHP riguarda la codifica di soluzioni rapide (e sporche). Quindi, in un periodo di tempo estremamente breve, puoi creare un'app Web di cui essere estremamente orgogliosi.

Java è un linguaggio di programmazione generico e probabilmente il linguaggio più popolare di tutti i tempi. È estremamente popolare per la creazione di app mobili (sulla piattaforma Android) e ampiamente utilizzato nella maggior parte delle principali aziende tecnologiche. Head First Java è un posto eccellente per imparare questo linguaggio onnipresente.
Per imparare Python, consiglio vivamente Learn Python the Hard Way di Zed Shaw e Automate the Boring Stuff with Python di Albert Sweigart. Se hai deciso di utilizzare PHP, puoi imparare le basi del linguaggio su Codecademy.
Conoscete già abbastanza sintassi JavaScript per sporcarvi le mani con i framework JS Node e back-end (come Express). Tratterò Ruby più avanti insieme a Rails poiché è usato raramente come linguaggio autonomo.
Passaggio 9: impara SQL
Per il passaggio successivo, dovresti probabilmente prendere un po' di SQL (Structured Query Language). È la lingua con cui comunicano i database. E anche se potresti non usarlo direttamente quando passi all'utilizzo dei framework, aiuta comunque sapere come comunicare direttamente con il tuo database. La buona notizia è che SQL è incredibilmente facile da imparare. Dovresti essere in grado di capirlo bene nel giro di poche ore. Head First SQL è un'ottima risorsa per questo scopo.
Come diventare uno sviluppatore full stack: parte 1
Passaggio 10: impara un framework Web full-stack "convenzionale".
Ora è un buon momento per sperimentare framework web che possono fare la maggior parte del lavoro di livello inferiore per te.
Non c'è carenza di ottimi framework in grado di soddisfare ogni scopo immaginabile. Rails (scritto in Ruby), Spring (scritto in Java) e Django (scritto in Python) sono tra i framework comunemente usati oggi. Puoi dare un'occhiata a The Rails Tutorial di Michael Hartl, disponibile gratuitamente.
Per quanto riguarda Django, il tutorial sul sito ufficiale è un buon punto di partenza. Una volta che ti senti a tuo agio con le basi del framework, dai una lettura a Two Scoops of Django . È uno dei migliori libri di tecnologia di sempre.
Se hai deciso di intraprendere la strada della primavera, ti consiglio vivamente di iscriverti al programma di sviluppo software di UpGrad e IIIT-B. Il programma ti offre una panoramica molto olistica del framework e ti aiuta a costruire un back-end robusto e scalabile.


Passaggio 11: framework Javascript Full-Stack e MEAN Stack
Non molto tempo fa, lo sviluppo del backend si basava sul concetto del ciclo richiesta-risposta. Ad esempio, il browser ha inviato una richiesta e il server ha risposto sputando una pagina Web in HTML. Tuttavia, dall'inizio del 2010, sempre più applicazioni sono diventate in tempo reale.
La struttura di un'intera pagina Web cambia senza essere aggiornata e si comporta in modo dinamico in base all'input e all'interazione dell'utente (Think chat, Mi piace, commenti, video in diretta e reazioni, ecc.).

In uno scenario del genere, un semplice ciclo di richiesta-risposta semplicemente non è sufficiente. Pertanto, c'è stato un recente aumento di interesse verso la programmazione asincrona e rendendo le richieste AJAX la norma. I framework Javascript tendono a eccellere in questo. Quindi, ha senso conoscere uno dei principali framework JS disponibili sul mercato. I due più popolari sono MEAN Stack e MeteorJS.
Intervista a Farooq Adam, co-fondatore, Fynd
L'apprendimento di MEAN è leggermente più complicato a causa della sua natura asincrona e l'inferno di callback Node di solito tende a scatenarsi. Ma ora che sei uno sviluppatore esperto, sei abbastanza maturo per affrontare le sue idiosincrasie.
Meteor è un framework JS full-stack con cui sto attualmente sperimentando. Il concetto di Meteor è assolutamente delizioso: un framework in un linguaggio che si prende cura di tutti i componenti di un'applicazione (front-end, back-end e database). Tuttavia, questo va a scapito della libertà di personalizzazione. Dopo aver creato qualcosa in Meteor, è praticamente impossibile modificare il database o il framework di back-end se si sceglie di farlo. Tuttavia, penso ancora che questa sia una tecnologia utile da imparare. Meteor è noto per essere estremamente potente. È in grado di eseguire operazioni in centinaia di righe di codice laddove altri framework convenzionali ne avrebbero richiesto un migliaio.
Conclusione
Questa è la fine della parte 2. In questo post, abbiamo trattato le risorse riguardanti lo sviluppo del back-end e le varie tecnologie full-stack disponibili. Ora puoi definirti con orgoglio uno sviluppatore full-stack. Congratulazioni!
Ma la storia dello sviluppo web completo non finisce qui. Con l'introduzione dell'iPhone, c'è stata una rivoluzione degli smartphone in tutto il mondo. Sempre più persone si stanno spostando verso l'utilizzo degli smartphone al posto dei desktop. In uno scenario del genere, è imperativo imparare a creare app per due delle piattaforme più popolari in circolazione: Android e iOS. Ne parleremo nella prossima e ultima parte di questa serie. Inoltre, esamineremo anche i framework che ci consentono di creare app native utilizzando Javascript (Ionic, React Native, ecc.).
Fino ad allora, è un addio.
I vostri commenti e suggerimenti sono i benvenuti!

