DOMANDA come iniziare per programmare

Stato
Discussione chiusa ad ulteriori risposte.

clessidra

Utente Attivo
401
62
Hardware Utente
CPU
VIA C3
Scheda Video
Ati Rage
Sistema Operativo
linux - Red Hat 1.1
Ho riletto la domanda di SNAPU. All'inizio ha scritto che ha una grande passione per la programmazione, alla fine ha scritto che vorrebbe saper programmare un minimo. Ho visto che ha 21 anni, e non so che cosa fa, se è iscritto all'università o se lavora/in cerca di lavoro. Fatto come hobby, la programmazione porta via comunque un bel po' ti tempo, e potrebbe anche non servirgli a niente. Tutti noi sappiamo fare 1+1=2, ma ciò non fa di noi dei laureati in matematica (va be', qualcuno di voi potrebbe esserlo veramente :) ). Così è con la programmazione, non si diventa in automatico dei laureati in informatica studiandola per hobby.
Ho controllato tutti i post, e dopo quello di apertura SNAPU non ha scritto più nulla. Fino a quando non si farà risentire, io mi fermo qua.
 
  • Mi piace
Reactions: gronag

rctimelines

Utente Èlite
3,936
1,281
Hardware Utente
CPU
AMD Ryzen 5 2600x | INTEL i5-6600k | INTEL i5-4460... altri
Dissipatore
stock | Arctic Freezer 11LP | stock
Scheda Madre
Asrock Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
Hard Disk
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
Scheda Video
RadeonPro WX3100 4G | Asus R9 280x 3G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | Acer 24" FHD | Benq 19" FHD
Sistema Operativo
Windows10-pro64/OpenSUSE-QL42.3/Manjaro-17.0.2-KDE
Ho riletto la domanda di SNAPU. All'inizio ha scritto che ha una grande passione per la programmazione, alla fine ha scritto che vorrebbe saper programmare un minimo. Ho visto che ha 21 anni, e non so che cosa fa, se è iscritto all'università o se lavora/in cerca di lavoro. Fatto come hobby, la programmazione porta via comunque un bel po' ti tempo, e potrebbe anche non servirgli a niente. Tutti noi sappiamo fare 1+1=2, ma ciò non fa di noi dei laureati in matematica (va be', qualcuno di voi potrebbe esserlo veramente :) ). Così è con la programmazione, non si diventa in automatico dei laureati in informatica studiandola per hobby.
Ho controllato tutti i post, e dopo quello di apertura SNAPU non ha scritto più nulla. Fino a quando non si farà risentire, io mi fermo qua.
Quindi?

Inviato dal mio Nexus 5 utilizzando Tapatalk
 

gronag

Utente Èlite
17,739
5,862
Hardware Utente
Inutile fare dibattiti se il diretto interessato non si fa sentire.
Soprattutto è inutile, mio caro @Mursey, iniziare l'apprendimento della programmazione se non si conoscono le basi della progettazione degli algoritmi, distinguendo le due fasi: dal problema all'algoritmo e dall'algoritmo al programma :sisi:
A tal fine vale la pena rimettere il link, da te già indicato al post #2, alla discussione sugli "ambienti di esecuzione":
https://www.tomshw.it/forum/threads/linguaggi-di-programmazione-e-ambienti-di-esecuzione.549368/
In un mio breve intervento (link sotto) metto in risalto l'importanza della conoscenza delle nozioni teoriche e matematiche di base sulla rappresentazione dei dati (sistemi di numerazione, codici, rappresentazione dei numeri e così via):
https://www.tomshw.it/forum/threads/iniziare-a-programmare.573652/post-5430543
Infine non sarebbe male sapere alcune nozioni di cibernetica generale e applicata (teoria dei sistemi, elettronica digitale, automi a stati finiti, architettura dei microprocessori, cenni di programmazione a basso livello in Assembly, ecc.) :asd:
A presto ;)
 

rctimelines

Utente Èlite
3,936
1,281
Hardware Utente
CPU
AMD Ryzen 5 2600x | INTEL i5-6600k | INTEL i5-4460... altri
Dissipatore
stock | Arctic Freezer 11LP | stock
Scheda Madre
Asrock Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
Hard Disk
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
Scheda Video
RadeonPro WX3100 4G | Asus R9 280x 3G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | Acer 24" FHD | Benq 19" FHD
Sistema Operativo
Windows10-pro64/OpenSUSE-QL42.3/Manjaro-17.0.2-KDE
Soprattutto è inutile, mio caro @Mursey, iniziare l'apprendimento della programmazione se non si conoscono le basi della progettazione degli algoritmi, distinguendo le due fasi: dal problema all'algoritmo e dall'algoritmo al programma :sisi:
A tal fine vale la pena rimettere il link, da te già indicato al post #2, alla discussione sugli "ambienti di esecuzione":
https://www.tomshw.it/forum/threads/linguaggi-di-programmazione-e-ambienti-di-esecuzione.549368/
In un mio breve intervento (link sotto) metto in risalto l'importanza della conoscenza delle nozioni teoriche e matematiche di base sulla rappresentazione dei dati (sistemi di numerazione, codici, rappresentazione dei numeri e così via):
https://www.tomshw.it/forum/threads/iniziare-a-programmare.573652/post-5430543
Infine non sarebbe male sapere alcune nozioni di cibernetica generale e applicata (teoria dei sistemi, elettronica digitale, automi a stati finiti, architettura dei microprocessori, cenni di programmazione a basso livello in Assembly, ecc.) :asd:
A presto ;)
Tutti questi "cenni" mi sembrano decisamente eccessivi per le pretese espresse dall'OP!

Inviato dal mio Nexus 5 utilizzando Tapatalk
 
  • Mi piace
Reactions: Andretti60

Lam

Utente Èlite
2,339
288
Hardware Utente
Credo che,se da una parte un newbie(come sono pure io) può essere confuso dalla mole di informazioni a riguardo,questo ha anche lati positivi:
Ci sono molti siti e community composti interamente da persone che vogliono imparare a programmare
Youtube ha molto materiale,anche per quanto riguarda le parti teoriche e introduttive(ovviamente da solo non basta assolutamente)
Su reddit r/learnprogramming(ci sono anche molti post sul metodo e sulla giusta mentalità da adottare,argomento citato molto spesso in queste discussioni)
Poi,se viene scelto un linguaggio,ci sono testi e manuali
citando l'utente,"sapere programmare un minimo" è quello che vogliono molti
 

pabloski

Utente Èlite
1,913
353
Hardware Utente
Nel caso scolastico, il linguaggio C rimane tra i preferiti perché è rigorosamente formale e permette di affrontare concetti tipici dell’informatica, primo tra i quali la allocazione di memoria
Imho fanno male e i risultati agli esami lo dimostrano. Anche ai miei tempi c'erano i due esami di fondamenti, rigorosamente C e C++, il che li rendeva molto ostici. Considerando che c'è gente che arriva all'università senza avere mai scritto una riga di codice.

Se proprio vogliono il formalismo, devono adottare Pascal e non C, che una disciplina di typing debole. Voglio dire, non esiste nemmeno il tipo stringa!

A peggiorare la situazione, con le lauree triennali, c'è l'aggiunta di architettura dei calcolatori ( ai miei tempi c'erano due esami di calcolatori, ma al 3° e 4° anno ) al primo anno.

E il fatto che non sia una scelta felicissima è dimostrato anche dall'adozione di Python come linguaggio per i primi corsi di programmazione in college prestigiosi come il MIT e Stanford.

In soldoni gli americani hanno adottato la strategia di far sviluppare prima la forma mentis da informatico e poi scendere nei dettagli architetturali ( che poi il C in questo è diverso dagli altri, nell'esporre le viscere del processore ).
 

TerrorUberAlles

Nuovo Utente
A peggiorare la situazione, con le lauree triennali, c'è l'aggiunta di architettura dei calcolatori ( ai miei tempi c'erano due esami di calcolatori, ma al 3° e 4° anno ) al primo anno.
La triennale è purtroppo un male dei tempi moderni, in 3 anni di università devi far uscire un mini laureato che sappia fare di tutto un po' (bene probabilmente nulla e con basi teoriche molto deboli).
Architetture 2 da me era un esame facoltativo della magistrale, seguito da forse una 10ina di persone, ecco tolta quella decina di individui tutto il resto dei laureati è rimasto alla mic1 (o come diavolo si chiamava) del Tanenbaum di architetture 1 fatta al primo anno. Io penso che questo debba un attimo far riflettere che escano informatici che non sappiano nemmeno a grandi linee come funzioni un processore reale.

Inviato da STF-L09 tramite App ufficiale di Tom\'s Hardware Italia Forum
 

pabloski

Utente Èlite
1,913
353
Hardware Utente
La triennale è purtroppo un male dei tempi moderni, in 3 anni di università devi far uscire un mini laureato che sappia fare di tutto un po' (bene probabilmente nulla e con basi teoriche molto deboli).
Ma infatti. Il percorso seguito in Italia non è per nulla brillante, come non lo è la scelta di C, C++ o Java come primi linguaggi. Imho, se si vuole partire da un linguaggio di relativamente bare metal, ma rigoroso e formale ( cosa importante all'inizio ), la scelta migliore è Pascal.
 
  • Mi piace
Reactions: Andretti60

TerrorUberAlles

Nuovo Utente
Ma infatti. Il percorso seguito in Italia non è per nulla brillante, come non lo è la scelta di C, C++ o Java come primi linguaggi. Imho, se si vuole partire da un linguaggio di relativamente bare metal, ma rigoroso e formale ( cosa importante all'inizio ), la scelta migliore è Pascal.
Pascal dovrebbero metterlo obbligatorio alle superiori, oramai sapere un minimo come approcciarsi ai problemi informatici dovrebbe essere patrimonio di tutti. Ed in quel modo riesci a risparmiare ore nei corsi di programmazione di base.

Inviato da STF-L09 tramite App ufficiale di Tom\'s Hardware Italia Forum
 
  • Mi piace
Reactions: Andretti60

Andretti60

Utente Èlite
3,415
2,292
Hardware Utente
Imho fanno male e i risultati agli esami lo dimostrano. Anche ai miei tempi c'erano i due esami di fondamenti, rigorosamente C e C++, il che li rendeva molto ostici. ...

Se proprio vogliono il formalismo, devono adottare Pascal e non C, che una disciplina di typing debole. Voglio dire, non esiste nemmeno il tipo stringa!
...

E il fatto che non sia una scelta felicissima è dimostrato anche dall'adozione di Python come linguaggio per i primi corsi di programmazione in college prestigiosi come il MIT e Stanford.
In soldoni gli americani hanno adottato la strategia di far sviluppare prima la forma mentis da informatico e poi scendere nei dettagli architetturali ( che poi il C in questo è diverso dagli altri, nell'esporre le viscere del processore ).
Ah, qui sfondi una porta aperta...
Anche io preferisco il Pascal per insegnare, purtroppo e' un linguaggio morto che non conosce piu' nessuno, nemmeno i docenti. Non so neanche che compilatori ci siano in giro adesso. La scelta ricade quindi sul C, il che significa che si impara solo se si ha un buon insegnante.

Per i college americani hai perfettamente ragione, io ho seguito online i corsi di Stanford dove nel primo corso (CS101) si usa un linguaggio di programmazione molto semplice, fatto in casa, molto limitato con poche istruzioni, che si impara in poche ore. Proprio per dividere il problema di dovere imparare sia un linguaggio che a programmare allo stesso tempo. Ma poi si passa direttamente al C++.

Che gli americani facciano meglio o peggio, e' un discorso aperto. DIpende come sempre dalla bravura dell'insegnate. Io ho conosciuto un dottorando che fece la sua tesi di PhD presso la nostra azienda (americana), io non gli avrei MAI accettato la sua tesi perche' era chiaro che non capiva i problemi intrinsici della programmazione, cosa inconcepibile per un PhD. Si dovrebbe sapere che le operazioni matematiche possono provocare un overflow (e quindi premunirsi), ci misi un po' a capire perche' il suo programma non funzionasse con i nostri dati, e pochi minuti per correggere gli errori. Non so che fine abbia fatto, so che non usammo il suo codice (si trattava di una rete neurale)
 
Ultima modifica:
  • Mi piace
Reactions: TerrorUberAlles

rctimelines

Utente Èlite
3,936
1,281
Hardware Utente
CPU
AMD Ryzen 5 2600x | INTEL i5-6600k | INTEL i5-4460... altri
Dissipatore
stock | Arctic Freezer 11LP | stock
Scheda Madre
Asrock Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
Hard Disk
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
Scheda Video
RadeonPro WX3100 4G | Asus R9 280x 3G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | Acer 24" FHD | Benq 19" FHD
Sistema Operativo
Windows10-pro64/OpenSUSE-QL42.3/Manjaro-17.0.2-KDE
La tragedia delle triennali vale per tutti i corsi di laurea! Il fatto è che l'Italia ha pochi laureati così facendo pensano di aumentarne il numero, ma la qualità scende drasticamente.

Pascal andava di moda all'Università negli anni Ottanta.. ho ancora chiaro il ricordo della spocchia infinita di questi personaggetti quando si scandalizzavano a vederci lavorare con VB, macro-assembler e anche con il C... poi penso che siano trasmigrazione a Java

Inviato dal mio Nexus 5 utilizzando Tapatalk
 
Ultima modifica:
  • Mi piace
Reactions: Andretti60

pabloski

Utente Èlite
1,913
353
Hardware Utente
Anche io preferisco il Pascal per insegnare, purtroppo e' un linguaggio morto che non conosce piu' nessuno, nemmeno i docenti.
In occidente! In Russia è il primo linguaggio che viene insegnato negli istituti tecnici e nei corsi universitari d'informatica.

Non so neanche che compilatori ci siano in giro adesso.
Sono pochi ma è roba robusta. Embarcadero e Free Pascal/Lazarus sono quelli di riferimento per il closed e l'open rispettivamente.

La scelta ricade quindi sul C, il che significa che si impara solo se si ha un buon insegnante.
Richiederebbe però molto più tempo di quanto se ne ha a disposizione in un corso di 3 mesi. Il solo concetto di puntatore è un pugno in faccia la prima volta che lo si incontra. E' lo stesso errore per cui continuano ad insegnare la concorrenza, nei corsi di sistemi operativi, tramite i thread posix.
 
  • Mi piace
Reactions: Andretti60
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando