Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Devo scegliere un linguaggio da imparare

    Spero che la domanda non sia troppo generica.
    Vorrei imparare a programmare bene ad oggetti, secondo voi qual'è il linguaggio migliore a questo scopo da un punto di vista "didattico"?
    Per me un linguaggio è solo uno strumento, quindi non mi faccio problemi di "ideali", mi interessa solo avere un buono strumento che mi aiuti a concretizzare le idee che ho in mente, mi piace programmare per divertirmi e non penso che lo farò mai per lavoro, anche perché non sono laureata e dubito che con l'autodidattica si possa raggiungere un livello di conoscenza vasto come quello che si acquisisce all'università, studiando sistemi operativi, compilatori, algoritmi, matematica avanzata (tutte materie che mi affascino e studio a tempo perso ma non pretendo certo di arrivare ad un livello universitario) ecc..
    Perciò mi limito ad usare la programmazione come uno strumento per divertirmi, per creare qualcosa che mi piace, quindi non mi interessa quale linguaggio è più richiesto dal mercato :P
    Mi interessa soprattutto imparare bene i vari algoritmi e e strutture dati (liste, stack, algoritmi di sorting ecc..), perché lo trovo divertente, quindi non mi interessa neanche se il linguaggio ha già delle funzioni automatizzate per queste cose, così come per i design pattern (ho letto che Java ha alcuni design pattern già di suo). Insomma mi piace spremere le meningi, quindi non userei mai algoritmi e funzioni scritti da altri (certo se dovessi creare un prodotto commerciale non mi porrei certo questo problema e anzi userei il più possibile soluzioni già pronte, sarebbe assurdo riscrivere ciò che esiste già, anche perché spesso sono progetti che esistono da anni e sono portati avanti da tante persone esperte, e pretendere di poter fare da sola le stesse cose è una pazzia).
    Ho poca esperienza con la programmazione, tutto ciò che ho fatto è un piccolo motore di ricerca in php, e una specie di platform tipo super mario in C++ più librerie Allegro, ma apparte questo la mia conoscenza è più teorica che pratica, tranne un po' di C e di C++.
    La mia domanda è, per imparare bene la programmazione ad oggetti mi consigliate Java o C++? E che mi dite di C#? Dal momento che utilizzo Linux lo devo escludere a priori?
    Un'ultima cosa, se un giorno volessi scrivere un videogioco in 3d, dovrei passare per forza al C++? A quanto vedo tutti i motori 3d più utilizzati sono in C++, secondo voi Java ha una possibilità in questo campo o è poco reattivo per poterci scrivere un videogioco (ovviamente mi riferisco a pc, non a cellulari o palmari)? In tal caso avrei difficoltà a passare da Java a C++?
    Un'ultimissima XD cosa, in Java è possibile non utilizzare il Garbage Collector in alcuni casi? Ad esempio quando devo essere sicura che un oggetto dev'essere distrutto in un determinato momento e non posso permettermi che questo non avvenga, è possibile farlo?
    Scusate per il poema XD un saluto e grazie per l'attenzione!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    466
    Con l'autodidattica si può imparare più di quello che pensi, se poi non sai studiare per conto tuo questo non è un problema di altri.. Te lo dico per esperienza personale, puoi benissimo conseguire conoscenze molto buone..
    La base dell' OOP è il C++.. Studiare Java senza conoscere il C++ e a sua volta senza conoscere il C, è come voler guidare una moto senza aver mai guidato neanche un Fifty, per farti una idea..
    Parti dalle basi. Se hai già nozioni basilari in C, studia C++.. Giudizio personale di Java: comodo, ma tra questo e C++, io sceglierei l'ultimo.
    I giochi? Si programmano in C++. Vuoi spremere le meningi? Programma in Assembly.

  3. #3
    Originariamente inviato da serenasere24
    Spero che la domanda non sia troppo generica.
    Vorrei imparare a programmare bene ad oggetti, secondo voi qual'è il linguaggio migliore a questo scopo da un punto di vista "didattico"?
    Per me un linguaggio è solo uno strumento, quindi non mi faccio problemi di "ideali", mi interessa solo avere un buono strumento che mi aiuti a concretizzare le idee che ho in mente, mi piace programmare per divertirmi e non penso che lo farò mai per lavoro, anche perché non sono laureata e dubito che con l'autodidattica si possa raggiungere un livello di conoscenza vasto come quello che si acquisisce all'università, studiando sistemi operativi, compilatori, algoritmi, matematica avanzata (tutte materie che mi affascino e studio a tempo perso ma non pretendo certo di arrivare ad un livello universitario) ecc..
    Perciò mi limito ad usare la programmazione come uno strumento per divertirmi, per creare qualcosa che mi piace, quindi non mi interessa quale linguaggio è più richiesto dal mercato :P
    Mi interessa soprattutto imparare bene i vari algoritmi e e strutture dati (liste, stack, algoritmi di sorting ecc..), perché lo trovo divertente, quindi non mi interessa neanche se il linguaggio ha già delle funzioni automatizzate per queste cose, così come per i design pattern (ho letto che Java ha alcuni design pattern già di suo). Insomma mi piace spremere le meningi, quindi non userei mai algoritmi e funzioni scritti da altri (certo se dovessi creare un prodotto commerciale non mi porrei certo questo problema e anzi userei il più possibile soluzioni già pronte, sarebbe assurdo riscrivere ciò che esiste già, anche perché spesso sono progetti che esistono da anni e sono portati avanti da tante persone esperte, e pretendere di poter fare da sola le stesse cose è una pazzia).
    Ho poca esperienza con la programmazione, tutto ciò che ho fatto è un piccolo motore di ricerca in php, e una specie di platform tipo super mario in C++ più librerie Allegro, ma apparte questo la mia conoscenza è più teorica che pratica, tranne un po' di C e di C++.
    La mia domanda è, per imparare bene la programmazione ad oggetti mi consigliate Java o C++? E che mi dite di C#? Dal momento che utilizzo Linux lo devo escludere a priori?
    Un'ultima cosa, se un giorno volessi scrivere un videogioco in 3d, dovrei passare per forza al C++? A quanto vedo tutti i motori 3d più utilizzati sono in C++, secondo voi Java ha una possibilità in questo campo o è poco reattivo per poterci scrivere un videogioco (ovviamente mi riferisco a pc, non a cellulari o palmari)? In tal caso avrei difficoltà a passare da Java a C++?
    Un'ultimissima XD cosa, in Java è possibile non utilizzare il Garbage Collector in alcuni casi? Ad esempio quando devo essere sicura che un oggetto dev'essere distrutto in un determinato momento e non posso permettermi che questo non avvenga, è possibile farlo?
    Scusate per il poema XD un saluto e grazie per l'attenzione!
    Benvenuta nel forum di HTML.it

    La tua richiesta è molto dettagliata e quindi chiara: da ciò che scrivi denoto almeno 2 *filosofie* emergenti, cioè che intendi perseguire e seguire.
    La prima è quella prettamente matematica, ossia lo studio di algoritmi, strutture dati et simila, il cui linguaggio principe è, senza ombra di dubbio, il C o il C++, imparando i quali si può apprendere qualsiasi altro linguaggio in circa 1 settimana; ovviamente se sei indirizzata verso l'OOP concentrati su C++ e no su C, questo mi sembra ovvio.
    La tua seconda attitudine è più commerciale, ma nel senso "musicale" del termine: ti interesserebbero linguaggi che ti permettono di creare applicazioni visuali o comunque software piu "leggeri", meno impegnativi da un punto di vista logico-matematico-informatico ma altrettanto potenti.
    Ci vorrebbero giorni per descrivere le caratteristiche di tutti i linguaggi di programmazione, ed inoltre questo tipo di discussioni evocano sicuramente una serie di risposte di preferenza per motivi sia oggettivi che soggettivi e di abitudine; per questo motivo non mi esprimo su un linguaggio piuttosto che su un altro, visto anche il tuo desiderio di "grafica": impara il C++ per la parte *matematica*, e studia un altro linguaggio di alto livello tipo Java, VB.NET per la parte visuale.
    Coniungando le potenzialità di Java e/o VB.NET con quelle stratosferiche e trascendenti del C++ (dopo molto studio) potrai finalmente fare *quasi* tutto, che non è poco.
    Per qualsiasi altro chiarimento, siamo qua.


    Ciao

  4. #4
    Che dire, grazie ad entrambi per il benvenuto e per le risposte chiare!
    Non metto in dubbio le potenzialità dell'autodidattica, nel mio piccolo posso dire di aver imparato più cose a casa (scusate il gioco di parole ) da sola in un mese, che in cinque anni a scuola.
    Il problema è piuttosto che da soli si tende a divagare, a rallentare, a trascurare, a cambiare spesso, mentre l'università ti obbliga, volente o nolente, a tenere il fondoschiena attaccato alla sedia, ti da delle scadenze, ti da qualche motivazione in più (anche se penso che non esiste una motivazione migliore del desiderio di conoscenza) e quindi stimola la buona volontà, senza considerare che hai accesso più facilmente a libri, risorse, puoi contare sui tuoi compagni, sui professori ecc.. e in più ti aiuta ad organizzarti, dandoti un programma preciso, in modo da studiare le cose giuste nel momento giusto. Mentre da soli c'è sempre il problema di capire cosa studiare prima e cosa studiare dopo. Comunque sono tutti problemi facilmente superabili, diciamo che avendo tante passioni che hanno la precedenza sulla programmazione so che non raggiungerò mai un livello "avanzato".
    Comunque sì, penso che seguirò il vostro consiglio e proseguirò con il C++, alla fine la sintassi mi sembra simile a Java, e una volta imparato il C++ non sarà difficile imparare Java (un po' come conoscendo il C non è stato difficile imparare il PHP). Leggevo su questo forum un'affermazione che mi pare colga nel segno "imparare a programmare non significa tanto imparare il linguaggio in sé, che con un po' di impegno lo impari in un mese, ma imparare ad utilizzarlo nella prassi" (le parole non sono quelle esatte ma il senso è quello).
    Per quanto riguarda l'assembly (il cui nome mi ricorda quello di un gruppo musicale) preferisco un linguaggio più di alto livello, e ragionare più sul problema a livello logico per trovare una soluzione senza perdere tempo nello stare lì a spostare i dati da un registro all'altro ecc.. preferisco concentrarmi su questo ed ignorare la gestione della macchina a basso livello, anche se posso capire quanto può essere difficile e stimolante (ma anche snervante e demoralizzante ahaha).
    Un'ultima cosa, mi potete consigliare un buon editor C++ per Linux? Attualmente uso gedit, è perfetto tranne per il fatto che non gestisce automaticamente le tablature. Ho installato Bluefish ma non mi soddisfa molto, ho sentito parlare bene di Eclipse ma serve solo per Java o si può utilizzare per altri linguaggi?
    Grazie ancora per le risposte!

  5. #5
    Quella frase sicuramente sarà mia..e la riconfermo: imparando la *logica programmatoria* e tutta la matematica che vi gira attorno, si impara la sintassi di un linguaggio in poco tempo.
    Come IDE, Eclipse o CodeBlock vanno benissimo..


    Ciao

  6. #6
    Utente di HTML.it L'avatar di toraz
    Registrato dal
    Nov 2001
    Messaggi
    263
    Se vuoi sentire anche un'altra campana, eccomi!

    Linguaggi diversi dai linguaggi imperativi li hai scartati scientemente?
    Dato il tuo interesse prettamente "ludico" i linguaggi funzionali moderni (Haskell, Caml) potrebbero essere un'alternativa interessante. Ci sono anche i linguaggi logici (Prolog, e che altro?) che pero` credo siano piuttosto limitati (se non addirittura inutili) in contesti tipo la grafica 3D.

  7. #7
    tutte le campane sono benvenute!

    Dato il tuo interesse prettamente "ludico" i linguaggi funzionali moderni (Haskell, Caml) potrebbero essere un'alternativa interessante. Ci sono anche i linguaggi logici (Prolog, e che altro?) che pero` credo siano piuttosto limitati (se non addirittura inutili) in contesti tipo la grafica 3D.
    li ho scartati perché non mi ispira quel modo di programmare, mi piace di più il paradigma ad oggetti, all'inizio ero attirata da Smalltalk e D, ma essendo meno "famosi" immagino siano anche meno supportati come linguaggi, ad esempio se ho un problema in C++ vengo qui sul forum e voi mi aiutate se invece ho un problema in Smalltalk, quanti mi potranno aiutare? Senza considerare che molte librerie, come ad esempio librerie grafiche, sono scritte in C++ e anche se esistono dei modi per farle funzionare con altri linguaggi, è meglio non complicarsi la vita.

    Come IDE, Eclipse o CodeBlock vanno benissimo..
    Sto usando Eclipse ed è perfetto. Ma è scritto in Java? Perché non mi sembra poi così lento come in tanti accusano.

    Invece che mi dite del C#? Vedo che in molti forum specializzati sulla programmazione di videogiochi è considerato uno dei linguaggi del futuro in quest'ambito. Cosa lo rende migliore di Java? Se sono entrambi interpretati (non so se è il termine esatto) perché il C# dovrebbe essere più reattivo di Java e permettere così la creazione di videogiochi? Ho letto che in tanti lo scelgono per XNA, ma non ho capito cosa sia. Forse le future consolle Microsoft supporteranno questo linguaggio e saranno costruite apposta per eseguirlo in maniera ottimale?
    Un'ultima cosa (lo so, dico sempre così ) mi sembra che la tecnologia Silverlight si stia diffondendo, ho visto anche dei giochi in stile Flash o Java, ma obiettivamente mi sono sembrati migliori di questi.
    Come funziona la programmazione di questi videogiochi? Ad esempio posso creare un videogioco in C# e poi farlo andare sulla piattaforma Silverlight?

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    286

    Re: Devo scegliere un linguaggio da imparare

    Originariamente inviato da serenasere24 mi piace programmare per divertirmi e non penso che lo farò mai per lavoro,
    Mai dire mai


    Originariamente inviato da serenasere24 anche perché non sono laureata e dubito che con l'autodidattica si possa raggiungere un livello di conoscenza vasto come quello che si acquisisce all'università,
    Ci sono molti laureati in informatica che non hanno l'abilita è le conoscenze di molti programmatori autodidatti.


    Originariamente inviato da serenasere24 La mia domanda è, per imparare bene la programmazione ad oggetti mi consigliate Java o C++?
    Perché sei interessata all'OOP?

  9. #9
    Grazie paulin per le tue preziose osservazioni!

    Sono interessata all'OOP perché mi viene naturale ragionare ad oggetti, sinceramente non saprei spiegarlo, ma così a pelle mi attira di più, mi sembra un metodo di programmazione più ordinato e pulito, soprattutto più facile da mantenere e da riutilizzare nel tempo. Ma è solo una mia impressione, anzi sono sicura che dipende molto da cosa si vuole programmare, e non metto in dubbio che in alcuni casi possa essere controproducente e più "incasinato" della programmazione procedurale.
    Mi sembra che alcune cose come l'incapsulamento, il polimorfismo ecc.. rendano la vita del programmatore più semplice, una volta padroneggiati, ma so di non avere abbastanza esperienza da poterlo dire con certezza.

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    286
    Originariamente inviato da serenasere24 Sono interessata all'OOP perché mi viene naturale ragionare ad oggetti, sinceramente non saprei spiegarlo, ma così a pelle mi attira di più, mi sembra un metodo di programmazione più ordinato e pulito, soprattutto più facile da mantenere e da riutilizzare nel tempo. Ma è solo una mia impressione,
    Non è solo una tua impressione l'OOp è un paradigma sviluppato proprio per questo, per organizzare i dati come noi siamo abituati a pensarli, per facilitare l'utilizzo e la gestione del codice anche se scritto da altri, e in modo da evitare errori e danni senza perforza dover capire cosa fa il codice scritto all'interno di una classe. Consente una protezione dei dati che può mettere al riparo da inesperienza o disattenzioni. Tutto questo ha ovviamente un costo in termini di performance del codice, inoltre può anche "viziare" il programmatore a non saper più prendersi carico di certi problemi e di lasciarsi andare a pratiche di programmazione mediocri.


    Originariamente inviato da serenasere24 anzi sono sicura che dipende molto da cosa si vuole programmare, e non metto in dubbio che in alcuni casi possa essere controproducente e più "incasinato" della programmazione procedurale.
    Mi è capitato di dover analizzare una libreria scritta in C++ che faceva un uso molto spinto del paradigma OO. Penso che avrei potuto perdervi il senno.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.