Come iniziare a codificare: A Practical Guide For Beginners (Updated 2020)

Step 3: Start a project to practice what you have learned

Guardare i corsi da soli non ti aiuterebbe a interiorizzare il concetto. Dovresti mettere in pratica il concetto. Il modo migliore per farlo sarebbe quello di creare dei progetti.

Se hai un’idea per un progetto o hai un problema che vuoi risolvere con il coding, è fantastico!

Se non ce l’hai, ho preparato una lista di progetti per principianti da cui puoi trarre ispirazione o provare.

Alcuni progetti per principianti che puoi provare

Ecco alcune terminologie che potrebbero confondere

Librerie: Una libreria è una collezione di pezzi di codice correlati che sono stati compilati e memorizzati insieme in un singolo file. Quel file può essere collegato al vostro codice per darvi accesso al codice nella libreria.

API: API sta per Application Programming Interface. Un’API è un intermediario software che permette a due applicazioni di parlare tra loro. In altre parole, le API vi permettono di richiedere funzioni da un fornitore di software per farne uso nel vostro codice. Per esempio, l’API di Spotify ti permette di richiedere dati come canzoni e artisti da Spotify e tu puoi usare i dati nel tuo codice o applicazione.

Progetti livello 1

Calcolatrice

  • Lingua: Python
  • Librerie: Nessuno
  • Guida: https://www.programiz.com/python-programming/examples/calculator

Sudoku Solver

  • Lingua: Python
  • Librerie: Nessuno
  • Guida: https://techwithtim.net/tutorials/python-programming/sudoku-solver-backtracking/

Hangman

  • Lingua: Python
  • Librerie: Nessuno
  • Guida: https://www.pythonforbeginners.com/code-snippets-source-code/game-hangman

Progetti di livello 2

Chess

  • Lingua: Python o Java
  • Librerie: Nessuno
  • Guida: https://www.youtube.com/watch?v=ejZqLsQDjuo

Weekly Discover Spotify Playlist

  • Costruisci il tuo sistema per fare qualcosa di simile a Weekly Discover Spotify playlist
  • Lingua: Python
  • Librerie: Spotify API
  • Guida: https://towardsdatascience.com/making-your-own-discover-weekly-f1ac7546fedb

Automatic time tracking Tool

  • Migliora la concentrazione tracciando il tempo speso su applicazioni desktop o siti web in tempo reale.
  • Lingua: Python
  • Librerie: Selenium
  • Guida: https://www.youtube.com/watch?v=ZBLYcvPl1MA

Progetti di livello 3

Automazione Instagram

  • Automatizzare il processo di pubblicazione su Instagram
  • Lingua: Python
  • Librerie: Flask,Instapy
  • Guida: https://www.youtube.com/watch?v=vnfhv1E1dU4

Twitter Bot

  • Un bot che twitta automaticamente sul tuo feed.
  • Lingua: Python
  • Librerie: Twitter API
  • Guida: https://medium.com/science-friday-footnotes/how-to-make-a-twitter-bot-in-under-an-hour-259597558acf, https://learn.g2.com/how-to-make-a-twitter-bot, http://socialmedia-class.org/twittertutorial.html

Telegram chatbot

  • Un chatbot che permette di automatizzare i messaggi telegram
  • Lingua: Python
  • Librerie: Python-Telegram-API
  • Guida: https://www.freecodecamp.org/news/learn-to-build-your-first-bot-in-telegram-with-python-4c99526765e4/

Questa non è una lista esaustiva. Se hai un problema che devi risolvere, pensa a come puoi risolverlo con la programmazione. Anche questo può essere un progetto.

Non arrenderti facilmente, devi superare le lotte iniziali

Il più grande errore che puoi fare come aspirante programmatore è arrenderti perché non pensi di essere abbastanza intelligente per imparare a programmare. Imparare a programmare non ha niente a che fare con la tua intelligenza.

Imparare a programmare è difficile e la maggior parte delle persone affronta delle difficoltà ad un certo punto perché ci sono un sacco di argomenti da imparare. Mentre state programmando, ci saranno molti argomenti che non avranno senso la prima volta. Quindi, evitate i pensieri negativi su voi stessi.

Anche io mi blocco. Spesso devo rivedere più volte la stessa lezione o video tutorial per afferrare il concetto. Non scoraggiatevi se vi trovate nei miei panni.

È importante costruire una solida base

Per quanto elementari possano sembrare all’inizio, i fondamenti della programmazione devono sempre venire prima: meglio li capite, più facile è imparare concetti più avanzati. Se l’argomento che state imparando non ha senso per voi, rimanete dove siete. Non passare all’argomento successivo. Saltare avanti è simile a costruire una casa senza una base, trascurando le fondamenta.

Se il tutorial (o il libro) che stai usando non ha spiegato sufficientemente l’argomento, potresti dover trovare altre risorse che ti soddisfano. Puoi trovare quasi tutto quello che vuoi imparare gratuitamente su Google. Cerca di capire cosa cercare (per esempio, in + qualsiasi altra parola chiave utile).

Prendi almeno 20 minuti per capire qualcosa da solo prima di cercare aiuto. C’è una buona possibilità che la risposta sia già davanti a te. Lottare ti fa imparare meglio e un programmatore migliore in generale.

Stackoverflow e imparare la programmazione sono miniere d’oro per l’assistenza alla programmazione.

Impara facendo. Giocate sempre con il codice mentre imparate.

L’obiettivo è quello di essere consapevoli del vostro apprendimento mentre progredite nel percorso di apprendimento. Pertanto, non seguite ciecamente i corsi e copiate ciecamente il codice senza prima comprenderlo. Comprendi i concetti che sono stati insegnati nella lezione e cerca di ricrearli.

Man mano che progredisci, prendi l’abitudine di fare pratica con la programmazione. Puoi farlo su leetcode, hackerrank, o facendo un progetto. Cercate di fare un progetto dopo ogni modulo con i concetti che avete imparato. Quando facevo corsi online cercavo di fare un progetto ogni settimana, applicando tutti i concetti che avevo imparato.

Parte 2: Tabella di marcia per diventare un programmatore avanzato

Ora che hai imparato le basi della programmazione, il prossimo passo sarebbe pensare a quale percorso di programmazione vuoi approfondire. Ci sono molti percorsi in cui puoi avventurarti una volta che hai afferrato le basi della programmazione, con i principali e più popolari percorsi che sono l’Ingegneria del Software & Data Analytics.

Data Analytics

Che cos’è Data Analytics?

Data Analytics è la scienza di esaminare dati grezzi per concludere nuove informazioni. Implica l’applicazione di un processo algoritmico o meccanico per ricavare intuizioni. Per esempio, l’analisi di diverse serie di dati per cercare correlazioni significative tra di loro.

Perché dovresti imparare l’analitica dei dati? I Big Data sono il futuro. Vengono generati a un ritmo esponenziale e molte aziende stanno facendo uso di questi dati per prendere decisioni migliori, oltre a verificare e confutare teorie o modelli esistenti. La domanda di data analytics è destinata a crescere in futuro, poiché i dati saranno il nucleo del processo decisionale in molte aziende.

Come puoi imparare gratuitamente il Data Analytics?

Ho setacciato il curriculum delle università e ho elaborato un percorso per cercare di abbinare i corsi online gratuiti ai corsi universitari. Tuttavia, tutti questi corsi sono in Python, se vuoi imparare in un linguaggio diverso, sentiti libero di controllare altri corsi.

Outline of Data Analytics Modules

Lo schema è generalmente basato su moduli universitari. Tuttavia, sto escludendo alcuni dei moduli importanti come Struttura Dati e Algoritmo che le università insegnano, poiché quelli sono più concettuali e di livello superiore.

Nota: Ho messo l’apprendimento automatico più in alto nella priorità poiché ti permette di fare uso delle abilità che hai imparato nei corsi fondamentali.

Corsi fondamentali

Modulo 1: Imparare le basi di Python (1 mese)

  • Imparare la sintassi di Python
  • Imparare i cicli
  • Imparare la programmazione orientata agli oggetti

Modulo 2: Data Pre-processing, Data Visualization, Exploratory Data Analysis (1 Mese)

  • Imparare a fare uso delle librerie python (matplotlib, numpy e pandas)
  • Queste librerie ti permettono di manipolare i dati

Corsi avanzati

Modulo 3: Machine Learning (2 Mesi)

  • Prequisito: Algebra Lineare
  • Machine Learning è un corso abbastanza tecnico sulla matematica
  • Python ha una libreria abbastanza completa per il Machine Learning chiamata Scikit-Learn.
  • Se vuoi un approccio più pratico all’apprendimento delle macchine, puoi controllare Kaggle Learn.

Corsi sugli strumenti del mondo reale

Modulo 4: Basi di dati (SQL) (1 mese)

  • Il corso sulle basi di dati ti insegna fondamentalmente come i dati vengono memorizzati e come puoi recuperare quei dati per eseguire funzioni di programmazione.
  • La conoscenza pratica dei database e di SQL è un must se vuoi diventare uno scienziato dei dati.

Modulo 5: Corsi sugli strumenti del mondo reale

  • Hadoop & Map-Reduce + Spark(sceglierne uno) (1.5 mesi)
  • Sono strumenti Big Data che l’industria usa comunemente per elaborare grandi quantità di dati.
  • Imparare le tecnologie Hadoop ti darà un sacco di conoscenze fondamentali, teoria e abilità pratiche. Inoltre, potresti scoprire qualcosa di nuovo usandolo.
  • Spark è l’implementazione moderna di Hadoop e sta vedendo un caso d’uso crescente.

Modulo 6: Data Storytelling (1 settimana)

  • Presentare la storia con i dati è l’anello mancante del professionista dell’analisi nel consegnare l’essenza dei segnali e delle intuizioni dei dati ai dirigenti, al management e agli altri stakeholder.

Corsi opzionali

  • Struttura dei dati
  • Algoritmo
  • Deep Learning
  • In cinque corsi, imparerai le basi del Deep Learning, capirai come costruire reti neurali e imparerai a condurre progetti di apprendimento automatico di successo. Metterete in pratica tutte queste idee in Python e in TensorFlow, che vi insegneranno.
  • È uno dei migliori corsi di apprendimento profondo là fuori. Attualmente, sono nel bel mezzo di questo corso e sono d’accordo con le recensioni in quanto è presentato in modo semplice e chiaro nonostante Deep Learning sia un argomento tecnico.
  • Un’altra grande risorsa gratuita è fast.ai

Cose da evitare mentre si impara Data Analytics

La trappola è che si sta solo imparando ma non si applica la conoscenza. Un modo in cui cerco di applicare le mie conoscenze è di iniziare un progetto dopo ogni modulo che ho completato. Per Data Analytics puoi fare del tuo meglio in una competizione di tua scelta da Kaggle. Usa Kaggle Learn come una guida utile

Ingegneria del software

Che cos’è l’ingegneria del software?

In poche parole, l’ingegneria del software è fondamentalmente usare concetti di programmazione per costruire applicazioni

Come puoi imparare l’ingegneria del software gratuitamente?

Penso che l’Ingegneria del Software richieda una comprensione più fondamentale dei concetti informatici rispetto a Data Analytics, perciò nel mio schema dei moduli, ho incluso più corsi teorici.

Vuoi costruire cose per farti un’idea?

Se è così, impara Python e vai ai corsi pratici. Puoi sempre rivisitare i corsi fondamentali quando incontri un ostacolo in termini di conoscenza teorica.

Outline of Software Engineering Modules

Corsi fondamentali

Modulo 1: Imparare le basi di Python (1 mese)

  • Imparare la sintassi di Python
  • Imparare i cicli
  • Imparare la programmazione orientata agli oggetti

Modulo 2: Strutture di dati (2 mesi)

  • Questo corso copre strutture di dati essenziali come liste collegate, pile, code, alberi binari e tabelle hash, e algoritmi di ricerca e ordinamento come ricerca binaria, quicksort, mergesort, insertion sort, ecc.
  • Le strutture di dati sono importanti perché ci permettono di migliorare le prestazioni del nostro codice utilizzando il miglior tipo di dati per il nostro codice.
  • Il corso di struttura dei dati che ho raccomandato è in Java perché ci costringe a passare da un linguaggio semplice come python a un linguaggio più verboso. Inoltre, Java è buono per imparare la programmazione orientata agli oggetti e le strutture di dati.

Modulo 3: Algoritmi (2 Mese)

  • Questa è la seconda parte di una serie di due parti di corsi gratuiti online Coursera che coprono strutture di dati e algoritmi di Robert Sedgewick e Kevin Wayne, entrambi professori di Computer Science.
  • In questa parte, imparerai gli algoritmi di elaborazione di grafici e stringhe.
  • Apprenderete anche alcune strutture dati avanzate e algoritmi usati nello sviluppo di applicazioni.

Modulo 4 : (Basi di dati) (1 mese)

  • Il corso sulle basi di dati vi insegna fondamentalmente come i dati sono memorizzati e come potete recuperare quei dati per eseguire funzioni di programmazione.

Modulo 5: Networking (1 Mese)

  • Fare un corso di networking non è molto importante, quindi puoi saltarlo se vuoi. Tuttavia, se sei interessato alla sicurezza informatica, è assolutamente un corso essenziale

Corsi pratici

Modulo 6: Settimana 9-10 (Sviluppo Web) (2 Mese)

  • Gli argomenti includono la progettazione di database, scalabilità, sicurezza ed esperienza utente. Attraverso progetti pratici, imparerai a scrivere e utilizzare le API, creare interfacce utente interattive e sfruttare i servizi cloud come GitHub e Heroku. Alla fine del corso, emergerai con la conoscenza e l’esperienza dei principi, dei linguaggi e degli strumenti che ti permettono di progettare e distribuire applicazioni su Internet.
  • Personalmente, questo è stato il mio corso preferito per lo sviluppo web in quanto passano attraverso il front-end e il back-end ed è molto ben spiegato. Ti insegnano HTML, CSS, Javascript e PHP.
  • Questa è una buona risorsa per l’ispirazione di siti web: https://github.com/melanierichards/just-build-websites

Modulo 7: Sviluppo di applicazioni mobili (scegli quello che ti piace di più) (2 mesi)

  • IOS
  • Android
  • Flutter (il mio metodo preferito di sviluppo di applicazioni)
  • Personalmente non ho imparato lo sviluppo di IOS prima. Ma confrontando tra Android e Flutter, Flutter è più veloce da sviluppare e prototipare e quindi preferisco Flutter

Corsi avanzati

Modulo 8: Architettura del software (2 mesi)

  • In questo corso, imparerai come rappresentare un’architettura software utilizzando strumenti visivi come UML, che è molto importante per comunicare l’architettura con gli azionisti e gli sviluppatori che la implementeranno.
  • Apprenderete anche alcune delle architetture standard, le loro qualità e i loro compromessi. Il corso parla anche di come vengono valutati i progetti, cosa rende una buona architettura, e l’architettura può essere migliorata.

Modulo 9: Pratiche di Ingegneria del Software (1 Mese)

  • Dopo aver completato questo corso, sarai in grado di
  1. Applicare le pratiche fondamentali di ingegneria del software a livello concettuale per un dato problema.
  2. Confrontare e contrastare le metodologie di sviluppo tradizionali, agili e snelle ad un livello alto. Queste includono Waterfall, Rational Unified Process, V model, Incremental, Spiral models e una panoramica della mentalità agile
  3. Proporre una metodologia più adatta ad una data situazione

Optional

Machine Learning

  • In realtà ho consigliato un corso più teorico di Machine Learning di Andrew Ng
  • Anche se è leggermente datato, insegna bene il concetto ed è ancora uno dei migliori corsi di apprendimento automatico là fuori dopo molti anni.

Deep Learning

  • In cinque corsi, imparerete le basi del Deep Learning, capirete come costruire reti neurali e imparerete a condurre progetti di apprendimento automatico di successo. Metterete in pratica tutte queste idee in Python e in TensorFlow, che vi insegneranno.
  • Al momento, sto facendo questo corso ed è presentato in modo semplice da capire. Un altro buon punto è che Andrew Ng usa Python invece di octave.
  • Un’altra grande risorsa gratuita è fast.ai

Conclusione

Anche se ho raccomandato i moduli basati sui corsi universitari, puoi mescolare e abbinare per fare il miglior curriculum per te. Se questo articolo ti ha aiutato, per favore aiutami a condividerlo con i tuoi amici! Se volete saperne di più su di me e su quello che faccio, visitatemi sul mio sito web http://www.chiayong.me/

.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.