Come si fa ad auto-apprendere l’informatica (inclusi algoritmi e database)?

Ho iniziato a programmare a metà degli anni 70 mentre ero al liceo. Scrivevo programmi su un computer mainframe in multiproprietà al junior college locale. Non ricordo il linguaggio, ma probabilmente era Fortran. Non ho seguito alcun corso di programmazione al college, ma una volta entrato nel mondo degli affari avrei scritto occasionalmente programmi per aiutarmi a fare il mio lavoro. Ho iniziato con Quick Basic e poi con Visual Basic. Mi sono dilettato in C e C++ ma non sono mai diventato molto fluente.

Sono andato in pensione due anni fa e ho deciso di fare sul serio. Ho chiesto a un amico programmatore che aveva frequentato il MIT su quali linguaggi avrei dovuto concentrarmi, e lui mi ha consigliato Python e R. Python è un linguaggio di uso generale con una tonnellata di flessibilità e semplicità intrinseca, e R è un linguaggio di programmazione statistica per molti versi simile a Python. Ottimo per l'analisi di grandi dati.

Il mio primo passo è stato quello di prendere un corso online da Coursera chiamato "An Intro to Interactive Programming for Python", tenuto da professori della Rice, dove abbiamo imparato a costruire videogiochi arcade. Molto divertente. Ho poi preso un corso di R da UPenn su Coursera, e poi recentemente, "An Intro to Computer Science and Programming using Python", tenuto al MIT attraverso edX. L'ultimo corso è stato il migliore. Tutti i corsi sono gratuiti. Ho finito tutti i corsi, quindi ovviamente tutti hanno tenuto il mio interesse. Un impegno di tempo piuttosto grande. Anche Harvard offre CS50, il loro corso di introduzione all'informatica su edX. L'ho iniziato, ma è autodidattico e ho trovato troppo facile rimandare. Gli altri hanno test e compiti ogni settimana, quindi non puoi lasciarteli scappare.

Mio figlio vive a San Francisco. Ha 26 anni. Aveva interesse ad imparare il codice. Prima ha fatto un vero corso in una scuola di programmazione locale nei linguaggi Ruby e Ruby on Rails. Era interessato allo sviluppo web e ha lavorato a diversi progetti da quando ha seguito il corso. Lungo la strada ha imparato Java, Java Script, Coffee Script, HTML, CSS, Scala e Swift (il nuovo linguaggio di programmazione di Apple per lo sviluppo di app). Ha una comprensione di base di diversi altri linguaggi. Tutto questo principalmente da solo e con l'aiuto di amici che sono programmatori professionisti.

Infine, date un'occhiata al sito codewars. È gratuito. Una volta che ti iscrivi, ti daranno problemi di programmazione da risolvere, iniziando facile e diventando sempre più difficile man mano che diventi più abile. I problemi sono proposti al sito web da programmatori seri. Il sito web valuta automaticamente le vostre soluzioni quando le presentate. Questo è disponibile per una tonnellata di linguaggi diversi, incluso Python. È un buon modo per migliorare e rimanere freschi in una lingua.

Spero che questo aiuti.