Conoscenze necessarie per programmare in java?

di il
12 risposte

Conoscenze necessarie per programmare in java?

Salve a tutti, sono nuovo nel forum, e mi sono iscritto per chiedere un parere a gente esperta che conosce java come linguaggio. Sono un programmatore web (non espertissimo ma so fare bene il mio lavoro), come linguaggi conosco solamente javascript (e librerire come jquery), e php (oltre che i vari linguaggi di markup). Da qualche mese mi frulla in testa l'idea di cominciare a sviluppare qualcosa 'stand-alone' e ovviamente ho pensato subito a java Ovviamente conosco già concetti come istruzioni condizionali (If, else) o cicli come while, for ecc.. solo che di java conosco bene poco (se non nulla). Io aspiro più che altro a sviluppare qualche app per android e applicazioni desktop (per aziende magari), da qui potete intuire che voglio studiare java non solo per passione ma anche per lavorarci, il problema è che chiedendo un po in giro, mi è stato detto che per sviluppare app con java bisogna avere buone conoscenze matematiche, è vera questa cosa? A scuola studiai cose come la trigonometria, calcolo di derivate e integrali, ma in tutta sincerità, non sono molto portato! Se parliamo invece di matematica a livello di 'calcoli' allora la situazione è più affrontabile. Pareri vostri?

12 Risposte

  • Re: Conoscenze necessarie per programmare in java?

    Supponiamo volessi programmare un clone del celebre gioco "Pong", per quanto semplice possa essere ti servono quelle nozioni matematiche che ti permettano di calcolare la fisica della pallina, la traiettoria della pallina, il movimento della racchetta comandatata dal computer in funzione di come la palla si muove, ecc.
    Per realizzare queste cose, oltre a conoscere le istruzioni per costruire la gui e su come strutturare gli oggetti del gioco dal punto di vista logico, devi sicuramente sapere cos'è un'equazione, una disequazione, come si calcola una retta passante per due punti, funzioni trigonometriche, come si calcola la velocità di un punto che si muove su un piano (o nello spazio), ecc

    Un buon programmatore deve avere delle buone conoscenze matematiche, questo vale per qualsiasi linguaggio non solo Java. Questa affermazione è ancora più vera quando si programmano videogiochi.

    Per sapere programmare NON E' MINIMAMENTE necessario conoscere le istruzioni condizionali, i clicli o tutte le istruzioni che un linguaggio ti mette a disposizione. Saper programmare significa saper usare un qualsiasi linguaggio di programmazione (anche pseudo-linguaggi) per risolvere determinati problemi. A volte si deve cercare di stabilire a priori se i problemi ammettono soluzioni, se sì qual è la soluzione ottima (se esiste) o migliore (si deve venire a compromessi), se no cosa si fa?

    Ma forse ho un po' esagerato, a quest'ultima cosa ci pensano gli ingegneri del software, tuttavia un programmatore non deve aver paura della matematica, essa non è un nemico ma un alleato!

    Ti lascio con quest'ultimo esempio:
    a due programmatori A e B è stato chiesto di implementate separatamente un algoritmo per ordinare in modo non decrescente dei numeri interi in modo che il tempo di esecuzione dell'algoritmo sia logaritmico e gli è stata data una settimana di tempo per realizzare l'algoritmo.
    Il programmatore A conosce l'analisi computazionale mentre il programmatore B no.
    Il programmatore A passa tutta la settimana in panciolle e scrive che non è riuscito a trovare nessun algoritmo;
    il programmatore B passa tutta la settimana, giorno e notte, a sforzarsi di trovare una soluzione ma anche lui alla fine si deve arrendere e scrive che non è riuscito a trovare nessun algoritmo.
    Le conoscenze matematiche del programmatore A sono state molto utili in quanto egli sapeva fin dall'inizio che non sarebbe mai riuscito a trovare un algoritmo di ordinamento il cui tempo di esecuzione è logaritmico.
  • Re: Conoscenze necessarie per programmare in java?

    @xeno: per correttezza, la complessita' computazionale e' un'argomento trattato SPECIFICATAMENTE dagli INFORMATICI, non dagli ingegneri informatici!
    Questo non vuol dire che un ingegnere informatico non debba conoscere la materia, ma non e' specificatamente il suo mestiere.
  • Re: Conoscenze necessarie per programmare in java?

    litos92 ha scritto:


    mi è stato detto che per sviluppare app con java bisogna avere buone conoscenze matematiche, è vera questa cosa?
    Falso in generale. Nella maggior parte delle applicazioni, parlo di gestionali, utility, giochi, web application, ecc... molto difficilmente dovrai usare cose "avanzate" di matematica tipo, che so, integrali, derivate, numeri complessi o altro.

    A meno che, chiaramente, non finisci a lavorare su applicazioni di livello scientifico/medico, dove se non hai una buona cultura in ambito matematico probabilmente non ti farebbero nemmeno lavorare ...
  • Re: Conoscenze necessarie per programmare in java?

    Falso in generale. Nella maggior parte delle applicazioni, parlo di gestionali, utility, giochi, web application, ecc... molto difficilmente dovrai usare cose "avanzate" di matematica tipo, che so, integrali, derivate, numeri complessi o altro.

    A meno che, chiaramente, non finisci a lavorare su applicazioni di livello scientifico/medico, dove se non hai una buona cultura in ambito matematico probabilmente non ti farebbero nemmeno lavorare ...

    Vediamo se ho capito: conoscenze matematiche sono necessarie per coloro che sviluppano applicazioni di un certo livello (come dici te applicazioni di livello scientifico/medico), mentre chi invece per lavoro sviluppa con java ad esempio software gestionali non ha bisogno di conoscenze matematiche a riguardo. Ho detto bene?
  • Re: Conoscenze necessarie per programmare in java?

    Come ti ho scritto nell'altro post (PHP) le conoscenze matematiche DIPENDONO dal problema, NON SONO LEGATE al linguaggio di programmazione.
  • Re: Conoscenze necessarie per programmare in java?

    litos92 ha scritto:


    ad esempio software gestionali non ha bisogno di conoscenze matematiche a riguardo.
    Beh, qualcosa sì ma come ti ha detto migliorabile dipende dal contesto. Se devi fare un gestionale che gestisce il parco veicoli di una concessionaria o simile, trovo un po' difficile pensare che dovrai usare seni, coseni, arcotangenti ecc... Ma se vuoi sviluppare un software didattico relativo alla geometria per scuole/studenti, se non conosci la trigonometria probabilmente qualche problemino ce l'hai ...
  • Re: Conoscenze necessarie per programmare in java?

    andbin ha scritto:


    litos92 ha scritto:


    ad esempio software gestionali non ha bisogno di conoscenze matematiche a riguardo.
    Beh, qualcosa sì ma come ti ha detto migliorabile dipende dal contesto. Se devi fare un gestionale che gestisce il parco veicoli di una concessionaria o simile, trovo un po' difficile pensare che dovrai usare seni, coseni, arcotangenti ecc... Ma se vuoi sviluppare un software didattico relativo alla geometria per scuole/studenti, se non conosci la trigonometria probabilmente qualche problemino ce l'hai ...
    Cosa intendi per "qualcosa si"? Ad esempio?
    Comunque fino ad un livello medio la matematica riesco ad affrontarla, purchè non mi si parli di integrali e roba varia.. Ciò che mi motiva è la forte passione per il mondo della programmazione, mi ha sempre affascinato! La matematica un po meno XD
  • Re: Conoscenze necessarie per programmare in java?

    litos92 ha scritto:


    Cosa intendi per "qualcosa si"? Ad esempio?
    Nei software "gestionali" devi di certo conoscere le problematiche relative all'uso dei numeri floating-point, devi saper gestire gli arrotondamenti, calcolare sconti, percentuali, ecc.. Poi se si tratta di fornire all'utente una serie di statistiche, ad esempio potresti dover calcolare la media aritmetica o geometrica di una serie di valori.

    Ma tutto questo è molto ben lontano da quella che si definisce la "alta matematica".

    litos92 ha scritto:


    Comunque fino ad un livello medio la matematica riesco ad affrontarla, purchè non mi si parli di integrali e roba varia..
    Io sono 16+ anni che programmo "per lavoro" e non ho mai dovuto usare integrali, derivate o altro di più complesso. Ripeto: dipende dal contesto.
  • Re: Conoscenze necessarie per programmare in java?

    Nei software "gestionali" devi di certo conoscere le problematiche relative all'uso dei numeri floating-point, devi saper gestire gli arrotondamenti, calcolare sconti, percentuali, ecc.. Poi se si tratta di fornire all'utente una serie di statistiche, ad esempio potresti dover calcolare la media aritmetica o geometrica di una serie di valori.

    Ma tutto questo è molto ben lontano da quella che si definisce la "alta matematica".
    E infatti proprio quello che intendevo! Se parliamo di matematica a livello di 'calcoli' figuriamoci non è un problema. L'importante che non si tratti come dici tu di trigonometria, derivate roba varia!
    Comunque grazie mille per le dritte, mi hai tolto molti dubbi
  • Re: Conoscenze necessarie per programmare in java?

    @migliorabile
    Cosa intendi per informatico? Uno che ha studiato solo scienze informatiche?

    Comunque come afferma andbin le conoscenze matematiche che servono dipendono dal contesto in cui si lavora.
    Però non ci si deve confondere con il fatto che la matematica serva solo per programmi scientifico-matematici. E' logico che se devo scrivere un programma che mi calcoli la trasformata di Laplace di una funzione, devo conoscere cos'è la trasformata di Laplace, cos'è un integrale improprio, cos'è una funzione, ecc.

    Molte volte nella programmazione di piccoli giochini mi sono dovuto imbattere in gestione di angoli, collisioni, ecc, e molto spesso sono dovuto ricorrere a funzioni trigonometriche, equazioni parametriche, ecc.

    Ma forse, ripeto, sto ragionando da ingegnere informatico che vede la programmazione e la matematica strettamente legati.
  • Re: Conoscenze necessarie per programmare in java?

    litos92 ha scritto:


    L'importante che non si tratti come dici tu di trigonometria, derivate roba varia!
    Beh, trigonometria è ancora ok, almeno per come la vedo io. Perlomeno a livello basilare (sai cosa è il seno/coseno di un angolo?).

    Comunque anche se tu sai poco/nulla di es. derivate, integrali, numeri complessi, equazioni differenziali ecc... ti assicuro che nell'informatica, e in modo specifico nel campo della programmazione, di cose da fare ne trovi a tonnellate .... vagonate enormi.
  • Re: Conoscenze necessarie per programmare in java?

    Beh, trigonometria è ancora ok, almeno per come la vedo io. Perlomeno a livello basilare (sai cosa è il seno/coseno di un angolo?).
    Ovviamente! So anche svolgere equazioni/funzioni trigonometriche, purchè non siano estremamente complesse!
Devi accedere o registrarti per scrivere nel forum
12 risposte