Sono bocciato in informatica nella mia scuola. Come posso fare bene?

Anche io ho avuto difficoltà con la mia prima lezione di informatica e la classe di programmazione. La mia raccomandazione è di mantenere un atteggiamento positivo (se sei veramente interessato) e fare pratica! Pratica la programmazione in qualsiasi tempo di vacanza che ti danno. È la tua possibilità di migliorare senza lo stress della scuola! La prima volta che fai programmazione può essere davvero difficile, ma devi solo abituarti, tutto qui.

Per dimenticare la sintassi, usa un linguaggio semplice e un IDE che ti aiuti a ricordare la sintassi. Onestamente, dimentico la sintassi tutto il tempo, non è un grosso problema, devi solo usare quel linguaggio di programmazione abbastanza da renderlo una seconda natura. Ogni volta che cambio linguaggio di programmazione dimentico i dettagli di ognuno di essi, ma si può riprendere ed essere bravi dopo un po' di tempo e bisogna farlo abbastanza finché non si è bravi.

Quelli che seguono sono consigli che mi hanno insegnato in classe per tutto il tempo, ma è difficile capirli veramente finché non li fai da solo. Mi guardo indietro e penso: ecco cosa volevano che facessi! Lo scoprirete con la pratica, ma ve ne parlerò comunque per vedere se vi aiuta.

Assicuratevi di sapere come scrivere programmi e algoritmi. Questo è il modo in cui lo faccio io. Per me, personalmente, molto raramente passo direttamente al codice. Normalmente scrivo sempre dello pseudocodice (su carta), quasi in inglese e non mi preoccupo troppo di farlo sembrare codice. Prima assicuratevi di capire qual è il problema e una potenziale soluzione. Questo vi assicurerà di capire effettivamente cosa volete che faccia il vostro algoritmo/procedura (e quindi il vostro computer). In seguito, potete tradurlo in codice informatico. Non è sempre banale tradurlo in codice, ma almeno avete qualcosa con cui lavorare!

Per il codice più grande, disegnate degli stupidi diagrammi (con scatole e cose, quasi come un diagramma di brainstorm) di ciò che volete che il vostro sistema faccia nel suo insieme e delle frecce che mostrano come questi diversi pezzi di codice dovrebbero interagire. Le astrazioni e la modularità sono cruciali per fare del buon codice. Ma è ancora più importante assicurarsi di capire cosa si sta facendo.

Inoltre, non fatevi prendere dall'ansia di renderlo perfetto. Va bene iterare il vostro programma. Se il primo che scrivete è davvero brutto, ma funziona, va bene perché è un passo più vicino ad una soluzione migliore. Basta continuare a provare e migliorare!

Per un avanzamento simile alla matematica, basta continuare a fare calcoli o dimostrazioni, a seconda del tipo di matematica di cui avete bisogno. È fondamentale fare i problemi da soli, in modo da capire davvero cosa si sta facendo. Molte volte quando sto imparando algoritmi di apprendimento automatico (e dimostrazioni in generale) con matematica pesante, mi aiuta a ridigerirli da zero dopo aver visto la loro derivazione. Ovviamente, provateli voi stessi prima però! Ma va bene guardare le soluzioni e cercare di capire come ci si può arrivare. O una spiegazione intuitiva/concettuale di quale fosse il trucco principale nella dimostrazione...

(per un esempio più specifico nell'apprendimento automatico, spesso, gli algoritmi ML sono derivati da alcuni concetti chiave. Per esempio, se volete ri-derivare la PCA, è facile se capite l'idea principale della PCA: proiettare ad una dimensionalità inferiore massimizzando la varianza. Ora che avete il passo/premessa di partenza, provate a farlo e vedete se capite come dovrebbe essere la PCA. Un altro esempio potrebbe essere l'algoritmo di boosting. Sai che non vuoi un errore ponderato più grande di 1/2, quindi, puoi usare questo per derivare il peso del voto [math] alpha_m = frac{1}{2}ln(frac{1 - epsilon_m}{ epsilon_m})[/math] dal punto di partenza concettuale? Molte di queste derivazioni possono essere: "ok, quindi l'obiettivo è X e so che la risposta è Y. Posso ottenere Y partendo da X..." e poi si prova).

Inoltre, prova a cercare un tutor, possono essere di grande aiuto e farti risparmiare un sacco di tempo! Andate agli orari d'ufficio. Assicurati che se sei bloccato, trovi un modo per sbloccarti e imparare il materiale. All'esame nessuno può aiutarti tranne te stesso, quindi è fondamentale che tu capisca perché ti sei bloccato una volta e come hai risolto. Cosa hai imparato? Inoltre, al MIT tendiamo a lavorare in gruppo perché i progetti e le serie di problemi sono troppo difficili. Quindi aiutarsi l'un l'altro aiuta molto, perché se lo si fa si vince tutti! 🙂

Prova anche a identificare ciò che ti fa veramente "fallire" e affrontalo. Risolvete il problema direttamente, ogni cosa è una soluzione ad un problema diverso. Ma quale avete? Quali ti aiuteranno veramente? Bene....identifica il problema e prova una soluzione!

e inoltre, mantieni un atteggiamento positivo e non arrenderti! 🙂

Inoltre, assicurati di essere onesto anche con te stesso, vuoi veramente fare CS, matematica e programmazione? Personalmente, col tempo ho scoperto che posso programmare, ma non mi piace tanto quanto mi piace fare matematica, teoria o apprendimento automatico. Ma questo dipende da ognuno di noi 🙂

Buona fortuna.