Come essere un buon programmatore
Aggiornamento: Aggiunta una lista di fantastici podcast di programmazione per imparare in movimento.
Oggi, meglio che mai, la tecnologia è diventata una delle parti più fondamentali per l’innovazione in tutti i settori. Questo ha portato ad un’enorme richiesta di programmatori e sviluppatori in tutto il mondo. Il bello della tecnologia è che è molto accessibile, quindi…
NON DEVI ESSERE UNO SCIENZIATO DEL ROCKET PER ESSERE UN PROGRAMMATORE DECENTE.
Può sembrare difficile, ma la verità è che… Può essere più facile di quanto pensi. Ma… non è quello che fai ogni giorno?
Prima di tutto. Prima ancora di iniziare a disturbare la tua mente per un punto e virgola (Forse non lo capirai ora, ma credimi, lo capirai più tardi 😂 ) avrai bisogno di una buona risorsa di basi di informatica e un buon editor di testo. Anche se ce ne sono molti là fuori, ti darò quelli più alla moda.
Teach Yourself Computer Science
Questo sito ti dà un buon punto di partenza per imparare l’informatica e la programmazione. Copre un sacco di importanti argomenti di base e ti aiuta ad avere un buon background sulla CS.
Git
Git è un sistema di controllo delle versioni per…beh, mantenere le versioni del tuo codice. Ti permette di tornare a un’altra versione se cambi qualcosa e qualcosa va storto nella nuova. Questo sito è un buon posto per iniziare ad imparare git.
Github
Questa è una risorsa molto importante. Quasi ogni azienda di programmazione ti chiede di avere esperienza con qualche tipo di sistema di controllo delle versioni. GitHub è un servizio di hosting basato sul web per il controllo di versione che usa git. È usato principalmente per il codice del computer. Offre tutte le funzionalità di controllo della versione distribuita e di gestione del codice sorgente di Git, oltre ad aggiungere le proprie caratteristiche. Permette anche di collaborare con altri programmatori. Potreste anche usarlo come hosting HTML statico per memorizzare i file del vostro progetto personale. Puoi effettivamente servire un sito web dall’interno di Github.
Bitbucket
Bitbucket è lo stesso di Github, meno la piattaforma sociale. Un’altra grande differenza tra questi due è che Bitbucket ti permette di creare repository privati, mentre in Github devi pagare per questa funzione. Potresti anche usarlo come un hosting HTML statico per memorizzare i file di un progetto personale. Puoi effettivamente servire un sito web dall’interno di Bitbucket.
Impara il comando
La linea di comando è dove avviene la maggior parte della magia. Quindi è davvero importante ottenere alcune competenze sulla linea di comando.
Gli editor di testo:
Dolce vecchio Sublime. A mio parere, questo editor è uno dei migliori là fuori. Ha un sacco di plugin e snippet di codice. È anche molto affidabile in termini di prestazioni e produttività. Lo uso ancora, ma mi piace provare cose nuove, così recentemente sono passato a Visual Studio Code. Supportato su: Windows, Mac OS e Linux
Visual Studio Code
Visual Studio Code è stato sviluppato da Microsoft, anche se è abbastanza nuovo, si è fatto strada tra i migliori editor di testo del 2017. Così bene che ho finito per passare da Sublime text e devo dire che è un editor di testo piuttosto sorprendente. Finora non ho avuto rimpianti. Supportato su: Windows, Mac OS e Linux
Atom
Questo editor di testo di Github è stata la mia scelta preferita. È davvero splendido ed è molto facile da configurare. L’unica cosa che mi ha fatto tornare a Sublime è il fatto che può diventare piuttosto lento a volte e andava in crash ogni volta che aprivo un file minificato. Ma nel complesso è un editor di testo decente. Supportato su: Windows, Mac OS e Linux
Notepad++
Notepad++ è un editor di testo di base con le caratteristiche necessarie per scrivere un programma decente. Alcune persone preferiscono questo per la sua semplicità. Personalmente, mi trovo ad essere più produttivo con editor di testo più audaci come VS code o Sublime. Supportato su: Windows
VIM
Hacker, questo è per te. Questo editor di testo è più tecnico e richiede più configurazione. Viene fornito di default su Mac OS e sulla maggior parte dei sistemi basati su UNIX. Supportato su: Mac OS, Linux e recentemente su Windows
Ricorda: puoi sempre usare l’editor di testo che preferisci. Questi sono solo i migliori basati sulle tendenze e la mia esperienza.
Detto questo, ecco alcune risorse di apprendimento che ti aiuteranno a sviluppare le tue capacità di programmazione:
Free Code Camp è un percorso di apprendimento gratuito della programmazione per sviluppatori web e sviluppatori full stack. Questa è una delle prime risorse che ho usato per iniziare la mia carriera di sviluppo web. E mi è piaciuto molto. Ti forniscono anche progetti di vita reale senza scopo di lucro per lucidare le tue abilità.
Code Academy
Code Academy è effettivamente una delle migliori risorse per iniziare. Offre un’esperienza generale di programmazione di base. Ha anche un editor di testo dal vivo proprio sulla pagina della lezione in modo da poter fare pratica mentre si impara.
Ruby Monk
Ruby Monk è un ottimo tutorial iniziale per imparare Ruby. Offre un corso semplice e diretto per i principianti ed è davvero facile da seguire.
CodeWars
Code Wars è un modo davvero interessante per imparare a programmare. Ti offre l’opportunità di affinare le tue abilità interagendo con altre persone in vere sfide di codice.
Railsforzombies.org
Questo è un altro bel modo per imparare la programmazione, anche se ti consiglio di avere qualche conoscenza di base di Ruby prima di provare questo sito. Questo sito ti permette di imparare Ruby con un gioco interattivo.
CodeSchool
CodeSchool offre una ricca varietà di corsi con un percorso di apprendimento che ti permette di determinare quale traccia di programmazione seguire in base ai tuoi interessi.
Egghead.io
Questa risorsa è una delle mie preferite. Si concentra maggiormente sulle tecnologie di sviluppo web. Offre tutorial e corsi di codifica di alta qualità per sviluppare meglio le competenze Javascript.
Udacity
Ho usato Udacity solo poche volte, ma ho letto molto su di esso ed è abbastanza impressionante. Offrono corsi gratuiti per principianti e ciò che chiamano “Nanodegrees”. I Nanodegree sembrano piuttosto promettenti, sono fondamentalmente una lista curata di corsi da principiante ad avanzato per un argomento specifico. Per esempio, il Nanodegree Full Stack Web Developer copre tutto, dallo sviluppo web front-end allo sviluppo web back-end. Devo sottolineare che questi Nanodegree sono creati in collaborazione con grandi aziende come Google, Amazon, IBM e altri. Ora, non so se questi corsi valgono davvero i soldi (perché sono costosi), ma sto progettando di prenderne uno, quindi quando lo farò, mi assicurerò di scrivere un articolo su di esso.
Udemy
Ho quasi dimenticato questo. Udemy è forse una delle piattaforme di apprendimento più popolari. Hanno più di 15.000 corsi e di solito sono abbastanza economici. Questa risorsa è abbastanza buona per quando si è di fretta e si ha bisogno di imparare una certa abilità velocemente. Ho usato molto questa risorsa quando ero al college (attualmente hanno più di 80 corsi). Anche se devo ammettere che non ho finito ognuno di loro 😂.
Devslopes
Devslopes è iniziato come una campagna Kickstarter e me ne sono subito innamorato. Offre una varietà di corsi di programmazione di alta qualità con progetti da utilizzare nel vostro portfolio. Come primo finanziatore ho avuto la possibilità di contribuire al loro progetto e in cambio ho accesso a vita a tutti i corsi e le versioni che rilasciano, gratuitamente. Ora, se volete avere questo vantaggio potreste essere in grado di averlo perché stanno per lanciare Devslopes 2.0 e avevano una promo su di esso. Non sono sicuro che sia ancora disponibile. Ma è una delle migliori offerte che ho avuto. Dopo tutto la conoscenza non ha prezzo.
Treehouse
Francamente, non ho mai considerato questo prima, ma dopo essere stato suggerito da Tomáš Vorel e settimane di apparizione su Facebook & annunci di Youtube, ho deciso di fare un tentativo. Devo dire che questa risorsa di apprendimento è molto ben organizzata e amo assolutamente i metodi di insegnamento. Hanno sempre qualche rappresentazione visiva per gli argomenti e io amo molto i contenuti visivi.
BrainFood
Sì, devi ancora leggere se vuoi diventare davvero bravo in questo. Questo è il modo più tradizionale e talvolta il più efficace per imparare nuove abilità.
Questa è una lista di libri che ho trovato utili:
Questo libro potrebbe essere un po’ “noioso” ma copre le basi dell’informatica e degli algoritmi. Questo libro è un must se vuoi davvero capire come funzionano il codice e gli algoritmi.
Cracking the Coding Interview
Questo libro copre una panoramica generale delle domande di programmazione che ti potrebbero essere poste in un colloquio di lavoro. E come affrontarle.
Gli Innovatori: How a group of Hackers, Geniuses, and Geeks Created the Digital Revolution
Questo libro è più sulla storia dell’innovazione e della tecnologia. Fondamentalmente copre tutte le persone che hanno contribuito in un modo o nell’altro alla tecnologia che ha reso l’innovazione di oggi una realtà.
Impara Python nel modo più duro
Questo libro è fondamentalmente un libro di lavoro. Si impara facendo pratica. Ti dà delle sfide per esercitarti su base giornaliera. Copre gli argomenti di base di Python.
Soft Skills: Il manuale della vita dello sviluppatore
Il manuale della vita dello sviluppatore di software è una guida unica, che offre tecniche e pratiche per una vita più soddisfacente come sviluppatore di software professionale. In esso, l’autore affronta una vasta gamma di importanti argomenti “soft”, dalla carriera e la produttività alla finanza personale e gli investimenti, e anche il fitness e le relazioni, tutto da un punto di vista incentrato sullo sviluppatore.
Involgiti nella comunità
Questa è una delle parti più importanti per diventare un buon sviluppatore. La maggior parte delle persone salta questa parte perché pensa che sia inutile, ma la verità è che AIUTA MOLTO. Sarete stupiti di quanto potete imparare da un’ora o due di conversazione con altri sviluppatori. Solo per darvi un esempio, nel mio primo meetup ho avuto la possibilità di incontrare uno degli sviluppatori di Advanced Custom Fields (un plugin WordPress acclamato a livello mondiale per gli sviluppatori). E sono anche riuscito a diventare un membro dello staff per la Wordcamp Miami 2018 WordPress Conference.
Detto questo, ecco alcune delle piattaforme che uso per i meetup e le conferenze:
Questa app ti permette di cercare conferenze di codifica nelle vicinanze.
Meetup
Questa app ti permette di cercare conferenze di codifica nelle vicinanze.
Spazi di co-working
Potresti facilmente trovare uno spazio di co-working nelle vicinanze semplicemente cercando “Co-working space <YourCity>” . Gli spazi di co-working ti permettono di condividere le conoscenze con altri sviluppatori e di ottenere un feedback reale sul tuo codebase.
Playgrounds
Playgrounds sono fondamentalmente editor virtuali per fare pratica in movimento, senza la necessità di sovraccaricare il tuo laptop o PC. Questo vi aiuta a risparmiare tempo e a migliorare in qualsiasi linguaggio di programmazione. La parte migliore di questi parchi giochi virtuali è che si può accedere da qualsiasi luogo.
Cloud9
Questo parco giochi virtuale è in realtà un IDE completo basato su Linux. Significa che si può fare tutto ciò che si fa su una macchina Linux tramite il terminale, anche installare librerie. Questo mi ha aiutato molto al college.
Codepen
Lo uso molto. Codepen è il Santo Graal per gli sviluppatori web. È più una comunità online per testare e mostrare i frammenti di codice HTML, CSS e JavaScript creati dagli utenti.
Glitch
Glitch è quasi lo stesso concetto di Codepen. Solo che è un po’ più “amichevole”. È anche abbastanza potente. Mi piace ancora di più Codepen.
Orion
Orion è un IDE online per giocare con Java.
Python Fiddle
Python ha guadagnato molta popolarità negli ultimi anni. Questo è un ambiente di codifica per quelli di voi che vorrebbero aggiungere python al proprio set di competenze (dovreste imparare almeno le basi).
Codeanywhere
Codeanywhere è un IDE cloud multipiattaforma. Consente agli utenti di scrivere, modificare, collaborare ed eseguire istantaneamente progetti di sviluppo web da un browser web e da qualsiasi dispositivo mobile.
Reply.it
Questo è stato suggerito da Vic A. e devo dire che sembra piuttosto promettente. Questa piattaforma di programmazione virtuale permette di creare parchi giochi virtuali per sviluppare, testare e persino distribuire applicazioni. Include anche una funzione di piattaforma di insegnamento piuttosto impressionante 🔥 con un proprio sistema di classificazione.
Codesandbox.io
Ho scoperto questa risorsa pulita mentre partecipavo al 10° Miami Wordcamp. Uno dei relatori ha usato per una demo di codifica dal vivo e me ne sono innamorato. È un’altra soluzione veloce e affidabile basata sul cloud per creare prototipi di applicazioni in movimento.
Si è bloccato? Chiedi a qualcuno
Il bello di essere uno sviluppatore che vive nel 2018, è che c’è un sacco di gente che è già passata attraverso la maggior parte delle lotte che avrai. C’è un’alta probabilità che qualcun altro abbia avuto lo stesso problema che stai avendo con un pezzo di codice. A meno che non stiate lavorando su un codice proprietario. E anche così, dovreste essere in grado di trovare suggerimenti su come affrontare quei brutti bug. Ora, questo è tutto basato sulla mia esperienza.
Ecco una lista di siti e risorse per aiutare nella lotta, in modo da non finire con una crisi esistenziale, piangendo in un angolo. (Non l’ho mai fatto 😅🤣):
Stack Overflow
Conosciuto anche come la bibbia del programmatore. Stack Overflow è una, se non la più grande comunità online per i programmatori per imparare, chiedere, condividere e anche trovare un lavoro. Quindi assicurati di avere questo nella tua scheda dei preferiti.
Stack Exchange
Stack Exchange è un semplice sito di domande e risposte. Una specie di forum, per aiutarti a chiarire quei dubbi di codifica.
Quora
Vedo Quora più come una versione pro di Stack Exchange. Quora è un posto per guadagnare e condividere la conoscenza. È una piattaforma per fare domande e connettersi con persone che contribuiscono con intuizioni uniche e risposte di qualità. Questo permette alle persone di imparare gli uni dagli altri e di capire meglio il mondo.
Github
Ancora una volta, Github è una delle comunità online più utilizzate. Usalo, impara, condividilo e contribuisci ad esso.
Scommetto che hai già sentito parlare di questo. Ma avete pensato di usarlo come risorsa per imparare e rispondere alle domande? Beh, lasciate che vi dica che Twitter, con la sua grande quantità di utenti, ha una buona quantità di esperti in materia. Basta twittare la tua domanda e il tag hash ### it
No, non è solo per Meme e gif. Reddit può anche essere una risorsa potente per trovare soluzioni o imparare nuove tecnologie. È dotato di un sistema di thread per organizzare meglio gli argomenti.
Hacker News
Questa risorsa è un feed molto semplice di importanti aggiornamenti e notizie sull’industria tecnologica. Davvero utile.
Producthunt
Ora, Producthunt… Non posso esprimere quanto amo questo sito. Lo uso letteralmente ogni giorno. Rilascia costantemente una lista curata di nuovi strumenti, app, framework, siti web e anche gadget da cercare. Per la maggior parte è tutto legato alla tecnologia! Così puoi sempre provare e imparare cose nuove. Presenta anche una ricerca di lavoro e una sezione per domande e risposte.
Podcasts
Ho iniziato ad ascoltare i podcast quasi due anni fa ed è una delle migliori risorse che ho avuto. Guido molto e ascoltare i podcast mi permette di imparare in movimento, quindi non sto mai perdendo tempo.
Syntaxfm
Questo è il mio preferito. Ospitato da Full Stack Developers, Wes Bos e Scott Tolinski, Syntaxfm è un podcast di “gustosi trattamenti web” con un sacco di risorse utili e consigli per gli sviluppatori web. Coprono da framework JavaScript come React, agli ultimi progressi in CSS per semplificare gli strumenti web.
Shop Talk Show
ShopTalk è un podcast sul front end web design, sviluppo e UX. Ogni settimana Chris Coyier e Dave Rupert sono raggiunti da un ospite speciale per parlare di lavoro e rispondere alle domande degli ascoltatori.
The Web Ahead
Una risorsa piuttosto buona per rimanere aggiornati sulle ultime tendenze del web. Conversazioni con esperti mondiali sulle tecnologie che cambiano e sul futuro del web. Ospitato da Jen Simmons.
Code Pen Radio
Chris Chris Coyier, Alex Vazquez, e Tim Sabat, i co-fondatori di CodePen parlano dei pro e dei contro della gestione di un business di software per il web. Questo podcast è un must-have.
Impara a codificare con me
Il podcast Impara a codificare con me, creato da Laurence Bradford, è per aspiranti tecnici e codificatori autodidatti che cercano di passare all’industria tecnologica.
Conclusione
Leggi, Pratica, Condividi, Chiedi…Ripeti
Questo è tutto un percorso di apprendimento. Basta impegnarsi e avere molta pazienza. Nessuno è nato esperto in quello che fa. Anch’io ho ancora molto da imparare. Ricordate, una delle parti più importanti per diventare un buon sviluppatore, è quella di far parte della comunità. Quindi, datevi la possibilità di provare qualcosa di diverso, andate ad un incontro, incontrate nuove persone, ricevete dei feedback, criticate del codice e divertitevi.