2010-01-13 14 views
13

ho appena iniziato la programmazione con Java e notato potrei aver bisogno di migliorare le mie competenze matematiche se sto per fare qualcosa di buono con esso. Ho appena notato che alcuni degli esercizi dovrebbero essere facili per qualcuno con una solida conoscenza in matematica poiché sembra che ci siano alcune formule matematiche che gestiscono lo spettacolo. Ho finito il liceo due anni fa e non ho avuto l'opportunità di fare matematica al più alto livello lì. Sono profondamente preoccupato per questo e quindi cerco dei suggerimenti da parte di persone più esperte e competenti su ciò che dovrei studiare per ottenere una conoscenza di base della matematica prima di dedicarmi alle acque profonde.vogliono migliorare le abilità matematiche per la programmazione

In genere ero uno studente acuto in matematica e ho una mente molto veloce. Il mio obiettivo è diventare un programmatore Java certificato e con esperienza entro la fine dell'anno. So che la gente dirà che l'esperienza richiede tempo e fatica, ma sono disposta a sacrificare tutto ciò che ho per raggiungere questo obiettivo. Ho programmato un po 'prima con PHP e MySQL e ho avuto una comprensione generale, ma Java mi ha dato un vero calcio quando l'ho letto. Se conoscete altre cose che potrebbero aiutarmi in questo sforzo, fatemelo sapere.

Grazie.

+0

Duplicato: http://stackoverflow.com/questions/862804/how-to-improve-my-math-skills-to-become-a-better-programmer – gnovice

risposta

18

Vi incoraggio vivamente a leggere Steve Yegge di Math for Programmers.

Se stai cercando alcuni libri, ti consiglio di specificare Concrete Mathematics e The Art of Computer Programming.

Se stai cercando qualche problema con cui esercitarti, controlla Project Euler.

Non essere scoraggiato da problemi impegnativi. È solo superando le sfide che crescerai. La comunità qui è pronta a darti assistenza e gomitate quando raggiungi un posto di blocco.

Facciamo, inoltre, non dimentichiamo la famosa frase:

Qualunque siano le vostre difficoltà in matematica, vi posso assicurare che le mie sono di gran lunga maggiore .--- Albert Einstein

Il mio obiettivo è quello di diventare un Certified e programmatore Java ben sperimentato entro la fine dell'anno.

Infine, l'unico modo per diventare grande esperienza-è quello di scrivere codice, e un sacco di esso.

+0

Einstein era intelligente ma sopravvalutato. –

+2

No, era solo un fisico non un matematico ... la matematica di cui aveva bisogno non era stata inventata quando ha iniziato a lavorare sulla Relatività Generale. Non c'è da stupirsi che fosse difficile. Ho studiato quella roba, è davvero difficile anche con 80 anni di miglioramento. –

+0

I tensori generali non sono stati inventati quando Einstein ha fatto la relatività generale? Scusa, faresti meglio a raccontare la tua storia. Einstein ha imparato molto sui tensori e la geometria differenziale dal suo amico Grossmann. Era un uomo brillante, ma non ha inventato la matematica su cui si basa GR. Leggi "Subtle Is The Lord" di Abraham Pais. Vedi pagina 212. – duffymo

8

Discrete Mathematics è ciò che è più probabile che tu abbia bisogno. Comprensione di base 2 (binario) di base 16 (esadecimale) sistemi di numeri è utile un must. Non devi impantanarti nella matematica discreta, perché alcuni di essi sono troppo profondi e fanno rabbrividire le major in matematica. Guarda le basi come set e logica.

Per quanto riguarda il trig/calcolo ... Ho preso tutti questi al college e non ho mai fatto affidamento su questi estensivamente ... o bene, a tutti.

+3

Algorithms è anche una branca della matematica che è estremamente importante. –

+0

Immagino che trig sia più utile se stai facendo qualcosa con grafica come i giochi o l'analisi delle immagini. –

2

Equazioni lineari, algebra di matrice, Base 2, 8, 18 e 10 conversioni, logaritmi e teoria degli insiemi (intersezioni, unioni, ecc.) Forniranno una base di base. Se la tua algebra è sana, guarda in matematica discreta, precalcolo e trig. Una volta che sei arrivato così lontano, non dovresti avere problemi a continuare se lo desideri.

Onestamente, potrebbe valere il tuo tempo di fare un test di valutazione presso un college della comunità locale per ottenere una valutazione onesta delle tue capacità. Da lì, hai la possibilità di iscriverti a una classe o di imparare i loro curricula attraverso l'autoistruzione.

+0

Non sono sicuro che la base 18 sia così importante: P – svens

+0

Non ho potuto ottenere nulla senza il mio fidato editor di oct – rotard

0

"Concrete Mathematics" sarebbe un suggerimento di libri su questo argomento.

+0

no, sarebbe lo stesso consiglio di lettura –

3

L'attitudine matematica non è necessariamente un prerequisito per essere un buon programmatore. C'è una forte associazione anche se i buoni programmatori tendono ad essere bravi in ​​matematica. Ciò non significa che imparare più matematica ti renderà necessariamente un programmatore migliore. Per diventare un programmatore migliore di solito richiede molto codice. Quindi, con questo in mente:

  • Codice tanto e spesso e con le migliori pratiche, cercare di non "barare"
  • Sfida te stesso
  • Provate a lavorare attraverso alcuni problemi sulla Project Euler
  • Cercando facendo avanzato Sudoku in la testa per praticare la deduzione e per riscaldare
+0

Gioca anche con Einstein Puzzle 2.0 http: // linux. wareseeker.com/Games/einstein-puzzle-2.0.zip/338379 –

1

Passare attraverso la sezione matematica http://www.khanacademy.org/. La maggior parte delle persone si diplomano alle superiori con solo il Calcolo I sotto la cintura.

Se passate tutti i conti qui, avrete quasi soddisfatto i requisiti matematici per gli scapoli in CS. Ciò che rimane è matematica discreta, algoritmi, automi finiti.

Dai un'occhiata anche al corso Open del MIT.

0

Se avete ancora del tempo libero dopo tutti questi fantastici suggerimenti, potrei lanciare Head First Statistics anche nella vostra lista di lettura. http://www.amazon.ca/Head-First-Statistics-Dawn-Griffiths/dp/0596527586

Sebbene non direttamente correlato alla programmazione Java di base, le statistiche trovano molti usi in alcune aree dell'informatica. Ad esempio, ho trovato questo libro molto utile in alcuni dei progetti di data mining di cui ho fatto parte.

Raccomando questo libro perché è molto facile e divertente da leggere e funge da buona intro per statistiche che non ti fanno schifo, è la lettura "prima del tallone" che puoi fare con il minimo sforzo

0

Questo non è un consiglio, ma un incoraggiamento generale, imparo facendo. Leggere libri di matematica, fuori dal contesto di qualche problema da risolvere, è noioso, asciutto e generalmente non favorevole all'apprendimento: trovo che se mi pongo una sfida di programmazione, al di sopra del mio attuale livello di competenza, imparerò molto e aprirò nuove aree di conoscenza una conseguenza di risolvere il problema, forse è più difficile/lento in questo modo, ma trovo che mi dia una solida e pratica messa a terra in un soggetto. Ad esempio, nei giorni in cui imparavo molto sulla matematica modulo cercando di trovare il modo più semplice per fare un gioco di carta-forbici per computer con Vs umano ... I miei due centesimi.

0

Ho provato molto spesso a lavorare sui libri e ho una buona selezione di libri di matematica in parte letti. Ho guadagnato molto facendo un corso di matematica pura al secondo anno della Open University (M208) un paio di anni fa - è ben strutturato, devi fare tutti gli esercizi, ed era abbastanza ampio da introdurre alcune cose che non avrei ho guardato fuori dal mio pipistrello, ma abbastanza profondo da essere soddisfacente.

Problemi correlati