Ho iniziato l'università ma non riesco a programmare

  • Il Forum di Tom's Hardware, la più grande community dedicata all'Hardware e all'Informatica. Iscriviti Ora!
#1
Ciao ragazzi mi spiego meglio,mi sono iscritto al corso di informatica, purtroppo a causa del ritardo mi son potuto iscrivere solo alla teledidattica quindi studio a distanza,con delle videolezioni registrate,potrei frequentare senza problemi o restrizioni ma avendo cominciato da poco,le lezioni sono avanti di 2 mesi ormai.Io ho proprio 0 esperienza nel campo, tuttavia il corso iniziava da zero e per carità, è così,il punto è che il professore spiega in modo strano,amici nel settore mi hanno detto che avrebbe dovuto almeno accennare a flowchart,diagrammi di flusso,algoritmi ecc..per farti ragionare correttamente e tutto,il problema infatti è che capisco il professore cosa fa,ma poi negli esercizi chiede altro,extra,tra l'altro il corso inizia con python non so perché,per alcuni avrebbe dovuto iniziare con c per altri va bene così perché più semplice,tuttavia il punto è che non riesco a svolgere gli esercizi assegnati,ci sono anche degli homework che contano metà esame e che non riesco a fare,sono parecchio difficili ma su argomenti iniziali appunto, perché il corso inizia da 0 tecnicamente.Ho cercato ovunque lezioni e spiegazioni,il problema è che gli esercizi che assegnano all'uni sono comunque più difficili delle spiegazioni online.Non so davvero cosa fare,ho anche preso il libro per disperazione,ma niente di che... Cerco esercizi per esercitarmi il più possibile ma non si trova neanche granché.Se avete consigli perché io più di stare ore a studiare non so che fare

Inviato da POCOPHONE F1 tramite App ufficiale di Tom\'s Hardware Italia Forum
 
429
265
Hardware Utente
CPU
Intel i7 6700HQ, 2.60Ghz, 4 core 8 threads
Scheda Madre
Asustek
Hard Disk
Hitachi 7200 rpm, 1TB
RAM
16GB DDR4 (2 slot su 4)
Scheda Video
Nvidia Geforce GTX 960M, 4GB
Scheda Audio
Realtek
Sistema Operativo
Windows 10 64bit
#2
Di esercizi online se ne trovano. Anche su qualche vecchio forum troverai magari sezioni dedicate ad esercizi (semplici).

Comunque visto che non hai citato cosa ti blocca, io tipo di esercizio, o ciò che hai studiato ti chiedo se hai un esercizio - che puoi pubblicare, che sia dell'uni o trovato in rete - che non riesci a svolgere.
Magari ti sono oscuri certi argomenti oppure hai bisogno di qualche consiglio per impostare un ragionamento.

Riguardo al resto, come algoritmi, il discorso è ampio, complesso ed interessante. Non iniziano subito con quel tipo di argomento, tipicamente ci vuole qualche mese, e analisi degli algoritmi ha in sé argomenti di tipo matematico.
Python è più immediato rispetto al C. Può evitare di trattare alcuni argomenti.
 
#3
Io ti consiglio, visto che sei rimasto indietro con le lezioni del professore e visto che seguire da casa è sempre più difficile rispetto ad essere lì di persona, di iniziare a studiarti il libro dall'inizio, presumo che ci saranno sicuramente degli esercizi base riguardanti i capitoli appena spiegati (nel caso puoi cercare su internet).

Solo iniziando e capendo bene gli esercizi base potrai poi spostarti su quelli un po' più complessi, i quali non sono altro che un insieme di più esercizi semplici.
Se poi avrai dei problemi anche con quelli non esitare a chiedere sul forum, ci sarà sicuro qualcuno pronto a risponderti.
 
#4
Segui le lezioni, pazienza se capirai poco, studiando le cose miglioreranno.
A lezione conoscerai altri studenti, in pochi giorni potresti fotocopiare i loro appunti ed esercizi già fatti, qualche volta potresti riuscire a studiare con un gruppo di loro. Tieni conto che, per esempio, a volte nei laboratori di informatica i professori assegnano esercitazioni da svolgere in gruppo, è una buona occasione per tappare i buchi di "documentazione" che hai.
All'inizio è sempre dura, non scoraggiarti.
 

fabio_1

Utente Attivo
151
6
Hardware Utente
CPU
i5-6500
Scheda Madre
ASRock H170 Pro4S
Hard Disk
Samsung 850EVO 250GB
RAM
Corsair DD4 2133 C13 2x4GB
Scheda Video
Sapphire R9 380 4GB NITRO
Scheda Audio
Integrata + DAC Audioengine D1
Monitor
LG 24MB56HQ-B IPS
Alimentatore
XFX 550 Black
Case
Corsair Spec-03
Periferiche
Casse Edifier R1800TIII
Sistema Operativo
Windows 7
#5
In effetti dici troppo poco per capire quale sia il problema.
Posso consigliarti questa serie di vedo su python che sono in italiano, ben spiegati e partono dalle basi (sono piuttosto famosi).
Quanto agli esercizi devi arrivarci da solo col ragionamento, non ci sono regole o trucchi, ma magari un pò di esperienza per partire non ti farebbe male.
Come libri iniziali posso consigliarti 'Pensa in Python' e 'Dive in Python' ma forse il tuo problema è più di tipo logico (cioè come usare comandi che conosci per ottenere ciò che vuoi) mentre libri e lezioni spiegano come usare comandi che non conosci...
 
#6
Grazie per le risposte,siete molto gentili,per essere più specifico vi faccio un esempio,in questa università (non so nelle altre),il lato informatico viene trattato con 4 homework fino a gennaio,uno al mese,e poi a gennaio l'esame finale,questi homework da fare a casa valgono metà esame quindi giustamente sono difficili, però per farvi capire,il primo chiedeva di contare quanti alunni avrebbero passato un determinato test,dando come input una lista di voti e la soglia massima,ad soglia dovevamo dire quanti ne sarebbero passati e ritornare questo conteggio.Difficilissimo per me ma mettendomici lì in 5 orette ho fatto, già il secondo ed il terzo erano impossibili per me,per esempio il terzo: data una stringa contente le ripetizioni di parole tutte attaccate,dire quali parole erano presenti in questa stringa e ritornarle in un dizionario,in modo ordinato e con la parola più presente, però se ad esempio ci stava lucenave,dovevo calcolare luce e nave e non cena,non so se mi capisco.Io subito ho pensato di risolverlo con le slice e tutto,quindi lo scheletro diciamo riesco a ragionarlo,ma andando a provare poi a realizzarlo mi sento bloccato e non riesco.Adesso è uscito il secondo homework e non hanno spiegato niente di più su liste o altro ma dal nulla ora dobbiamo creare una matrice di stringhe e fare tipo cruciverba,trovare le parole in verticale, orizzontale,diagonale...ma loro non hanno spiegato come fare,infatti il 90% dei ragazzi chiede come cercarle,capito il senso? Cioè spiegano cose e le capisco,fino a li tutto ok,ma poi chiedono altro,io vedo video,leggo il libro ma non compenso comunque.Da oggi ho cominciato ad andare in presenza e sicuro mi aiuta ma ho paura che sia troppo tardi

Inviato da POCOPHONE F1 tramite App ufficiale di Tom\'s Hardware Italia Forum
 
2,725
1,786
Hardware Utente
#7
... amici nel settore mi hanno detto che avrebbe dovuto almeno accennare a flowchart,diagrammi di flusso ...
Mi piacerebbe sapere che esperienza abbiano questi tuoi "amici", perche' quella roba non si fa piu' da decenni, andava al massimo bene quando si studiavano linguaggi come assembler e vecchio Fortran (tipo IV), ossia nel tipo di programmazione chiamata strettamente "imperativa", vennero messi in disuso negli anni settanta.

E non capisco le critiche al professore, non lo puoi criticare se TU non capisci, e non sapendo tu nulla di programmazione (come ammetti) non puoi criticare la scelta di usare Python (non c'e' assolutamente nulla di male). Se non sai fare gli esercizi e' solo perche' non capisci le lezioni. Non puoi dire che "spiega una cosa e poi ne chiede un'altra". Questo e' quello che si fa all'universita' (che andrebbe fatto anche alle scuole precedente, ma lasciamo stare), ossia si spiegano i concetti e le basi per potere capire i problemi, ma poi la soluzione spetta allo studente. Questo e' valido in tutte le discipline. Lo studente universitario segue i corsi, studia i libri di testo ma che devono essere visti solo come una "guida".

Non posso quindi che darti gli stessi consigli dati dagli altri membri del gruppo. Se non rieasci a fare gli esercizi, ritorna a studiare.

PS adesso lasciami fare una critica. Capisco che questo sia un forum, ma i tuoi messaggi sono scritti in un italiano molto approssimato, queste cose fanno chiedere che tipi di istruzione tu abbia avuto alle superiori. Se mi faccio io queste domande (ho insegnato in passato) probabilemnte se le faranno anche i tuoi insegnanti, e ti assicuro non faccia gran bella impressione.
 
Mi Piace: BWD87
#8
Mi piacerebbe sapere che esperienza abbiano questi tuoi "amici", perche' quella roba non si fa piu' da decenni, andava al massimo bene quando si studiavano linguaggi come assembler e vecchio Fortran (tipo IV), ossia nel tipo di programmazione chiamata strettamente "imperativa", vennero messi in disuso negli anni settanta.

E non capisco le critiche al professore, non lo puoi criticare se TU non capisci, e non sapendo tu nulla di programmazione (come ammetti) non puoi criticare la scelta di usare Python (non c'e' assolutamente nulla di male). Se non sai fare gli esercizi e' solo perche' non capisci le lezioni. Non puoi dire che "spiega una cosa e poi ne chiede un'altra". Questo e' quello che si fa all'universita' (che andrebbe fatto anche alle scuole precedente, ma lasciamo stare), ossia si spiegano i concetti e le basi per potere capire i problemi, ma poi la soluzione spetta allo studente. Questo e' valido in tutte le discipline. Lo studente universitario segue i corsi, studia i libri di testo ma che devono essere visti solo come una "guida".

Non posso quindi che darti gli stessi consigli dati dagli altri membri del gruppo. Se non rieasci a fare gli esercizi, ritorna a studiare.

PS adesso lasciami fare una critica. Capisco che questo sia un forum, ma i tuoi messaggi sono scritti in un italiano molto approssimato, queste cose fanno chiedere che tipi di istruzione tu abbia avuto alle superiori. Se mi faccio io queste domande (ho insegnato in passato) probabilemnte se le faranno anche i tuoi insegnanti, e ti assicuro non faccia gran bella impressione.
Amico,non ho mai criticato i professori ne tantomeno la scelta di iniziare con python... Ho solo chiesto consigli per riuscire a comprendere i concetti perché se mi son guardato più volte le lezioni e mi son letto il libro ma non ho sviluppato le capacità per fare gli esercizi (ovviamente non tutti,quelli inerenti alla lezione riesco,non sono stupido), è inutile che mi ri-studio per l'ennesima volta le videolezioni,senza contare che siamo su un forum e sto scrivendo in modo molto informale,di certo se scrivo ai professori non mi rivolgo in questo modo.Sto chiedendo consigli proprio perché non riesco a sviluppare questa logica, nonostante le ore spese a studiare,e si trovano nella stessa situazione tutte le persone che come me hanno iniziato da 0.Ovviamente in presenza come hanno detto chiedi aiuto ai compagni e loro spiegandoti in modo molto informale ti fanno capire senza problemi,il problema è che non ho frequentato (ahimè) finora ed ormai sono avanti

Inviato da POCOPHONE F1 tramite App ufficiale di Tom\'s Hardware Italia Forum
 

gronag

Utente Attivo
16,284
5,224
Hardware Utente
#9
Ciao ragazzi mi spiego meglio,mi sono iscritto al corso di informatica, purtroppo a causa del ritardo mi son potuto iscrivere solo alla teledidattica quindi studio a distanza,con delle videolezioni registrate,potrei frequentare senza problemi o restrizioni ma avendo cominciato da poco,le lezioni sono avanti di 2 mesi ormai.Io ho proprio 0 esperienza nel campo, tuttavia il corso iniziava da zero e per carità, è così,il punto è che il professore spiega in modo strano,amici nel settore mi hanno detto che avrebbe dovuto almeno accennare a flowchart,diagrammi di flusso,algoritmi ecc..per farti ragionare correttamente e tutto,il problema infatti è che capisco il professore cosa fa,ma poi negli esercizi chiede altro,extra,tra l'altro il corso inizia con python non so perché,per alcuni avrebbe dovuto iniziare con c per altri va bene così perché più semplice,tuttavia il punto è che non riesco a svolgere gli esercizi assegnati,ci sono anche degli homework che contano metà esame e che non riesco a fare,sono parecchio difficili ma su argomenti iniziali appunto, perché il corso inizia da 0 tecnicamente.Ho cercato ovunque lezioni e spiegazioni,il problema è che gli esercizi che assegnano all'uni sono comunque più difficili delle spiegazioni online.Non so davvero cosa fare,ho anche preso il libro per disperazione,ma niente di che... Cerco esercizi per esercitarmi il più possibile ma non si trova neanche granché.Se avete consigli perché io più di stare ore a studiare non so che fare

Inviato da POCOPHONE F1 tramite App ufficiale di Tom\'s Hardware Italia Forum
Se vuoi imparare a programmare "come si deve", il mio consiglio è quello di partire dal Pascal, linguaggio impostato su una struttura molto rigorosa e facile da utilizzare :sisi:
In un secondo momento sarà possibile passare alla programmazione in Delphi, consentendoti di realizzare software ad un livello più elevato, oppure, in alternativa, a linguaggi più complessi quali il C e il C++ senza alcuna difficoltà, grazie, per l'appunto, al rigore del Pascal ;)
 
Mi Piace: alemian95

fabio_1

Utente Attivo
151
6
Hardware Utente
CPU
i5-6500
Scheda Madre
ASRock H170 Pro4S
Hard Disk
Samsung 850EVO 250GB
RAM
Corsair DD4 2133 C13 2x4GB
Scheda Video
Sapphire R9 380 4GB NITRO
Scheda Audio
Integrata + DAC Audioengine D1
Monitor
LG 24MB56HQ-B IPS
Alimentatore
XFX 550 Black
Case
Corsair Spec-03
Periferiche
Casse Edifier R1800TIII
Sistema Operativo
Windows 7
#10
Mi sento di aggiungere alcune osservazioni...
1) molte materie all'università vanno studiate "due volte", nel senso che una cosa è la teoria e un'altra l'applicazione pratica, cioè gli esercizi. Certe volte sembrano quasi due materie diverse.Ovviamente dipende dalla materia ma può darsi sia proprio il tuo problema
2) saper svolgere un esercizio significa anche aver imparato il modo di svolgerlo, ovvero è una cosa che si studia, si impara facendoli, la sola teoria non basta.
3) per il suddetto motivo spesso vengono spiegate da due insegnanti diversi che si dividono il compito. Per caso fate un laboratorio di informatica? dovreste farlo... informati e seguilo a tutti i costi
4) Anche i libri di testo sono diversi. Guarda se tra i libri consigliati ce ne sono di esercizi (o dispense, magari esercizi svolti degli anni passati).
5) Trova un gruppo con cui studiare. Possibilmente bravi/bravini o almeno che studino per davvero
6) i professori hanno un orario di ricevemento. Ti spetta di diritto, hai pagato, usalo. Quasi tutti gli studenti bravi lo usano, gli altri non contano, quindi non vergognarti. Non può svolgere gli esercizi al posto tuo (neanche insieme a te) ma se sei bloccato un consiglio può dartelo. Spiegagli la situazione, in genere non sono irragionevoli, può indirizzarti, consigliarti libri etc.
 

Reeaver

Utente Attivo
1,134
118
Hardware Utente
CPU
AMD RYZEN 5 1600
Dissipatore
RYZEN WRAITH SPIRE
Scheda Madre
MSI B350 TOMAHAWK
Hard Disk
SSD SAMSUNG 850 250 GB + WD CAVIAR BLUE 1TB
RAM
HYPER X 8GB 2400MHz DDR4 LP
Scheda Video
NVIDIA GTX1070 O8GB
Scheda Audio
INTEGRATA - IMPIANTO LOGITECH 2.1
Monitor
SAMSUNG C24F390
Alimentatore
SEASONIC SSR-550M
Case
NZXT S340
Periferiche
MOUSE, TASTIERA, MANI
Sistema Operativo
WINDOWS 10 PRO 64-BIT
#11
Ma, dico io, iniziare a studiare un linguaggio di programmazione (anche semplice inizialmente) tra quelli richiesti attualmente dal mondo del lavoro ? Mi riferisco a Python, R, Java o C#..

Non sono d'accordo con quanto detto da @gronag, almeno per la parte iniziale. Perchè iniziare con un linguaggio che è veramente poco ricercato a differenza di Python e C# ? Capisco il rigore che il Pascal può avere (non lo conosco, ma vado sulla tua parola) però c'è da dire anche che se uno non lo userà tutti i giorni da qui a 2/3 anni (minimo) gli verrà molto difficile padroneggiarlo alla fine.

I tempi sono cambiati e i linguaggi preferiti/richiesti sono altri, tra cui maggiormente, quelli citati sopra. Certo, C e C++ esistono ancora e la richiesta è alta anche lì, ma per iniziare e toccare con mano dei risultati in modo molto rapido io preferirei un Python a C.

My 0,02€...
 

gronag

Utente Attivo
16,284
5,224
Hardware Utente
#12
Nella programmazione uno dei concetti più importanti è il "tipo di dati" :sisi:
Python è un linguaggio "tipizzato dinamicamente" … alla lunga l'uso di tipi di dato dinamici può comportare dei problemi perché è inevitabile che si andrà a lavorare con linguaggi "tipizzati staticamente" ... in tal caso l'utente sarà "forzato" ad imparare "da zero" il nuovo sistema … :sisi:
Ecco l'elenco di alcune app scritte in Delphi (Skype, Nero, Dreamweaver, WinRAR, ecc.):
https://jonlennartaasenden.wordpress.com/2014/11/06/famous-software-made-with-delphi/ :asd:
 
2,725
1,786
Hardware Utente
#13
Nella programmazione uno dei concetti più importanti è il "tipo di dati" :sisi:
Beh, non proprio. Dipende fortemente dal tipo di applicazioni che si sta scrivendo. È una affermazione che valeva agli albori della programmazione, adesso come adesso ha perso molto del suo significato originale. Ecco perché linguaggi come Python (creato essenzialmente come script language) stanno avendo tanto successo.

Ecco l'elenco di alcune app scritte in Delphi (Skype, Nero, Dreamweaver, WinRAR, ecc.): ...
Delphi ha tantissimi problemi, oltre ai suoi pregi, quindi non lo osannerei poi tanto. Aveva senso decenni fa come alternativa a Microsoft per sviluppare su Windows, adesso è un prodotto che non vale il prezzo che paghi.
Post unito automaticamente:

... Certo, C e C++ esistono ancora e la richiesta è alta anche lì, ma per iniziare e toccare con mano dei risultati in modo molto rapido io preferirei un Python a C. ...
Accetto la provocazione :cavallo: e lo faccio come programmatore sia in C che Python.
Python è un linguaggio interessante perché giustamente come dici tu è facile da imparare e permette di avere risultati in poco tempo. Il motivo per cui è facile è che ha una sintassi molto lineare, non si deve perdere tempo a imparare mille diversi tipi di dati, non si ha a che fare con i problemi del C della allocazione di memoria. Il motivo per cui si hanno risultati in breve tempo è perché si usano pacchetti di librerie, che fanno tutto il lavoro. Viene quindi considerato un linguaggio "glue", ossia che funziona come "collante" tra librerie diverse. Prendi una libreria matematica e una di visualizzazione, in mezza giornata si scrive un programma che fa una analisi statistica di dati e ne visualizza i risultati in mille modi diversi.
Ma... rimane un collante... va bene se trovi librerie già pronte. Altrimenti scrivere il "lavoro sporco" in Python ci metti una vita e quello che produci finisce con il diventare presto il classico "spaghetti code" che gira lentissimo... quindi si butta tutto nel cesso, e si riscrive una bella libreria in C (che è il linguaggio usato per i pacchetti usati in Python)
 
Ultima modifica:

gronag

Utente Attivo
16,284
5,224
Hardware Utente
#14
I dati sono combinazioni di segnali elettrici all'interno della parte hardware di un elaboratore, alcuni linguaggi ad alto livello consentono di ignorare questo tipo di rappresentazione e di gestire i dati in modo più "naturale" (per modo di dire), il Pascal richiede, anche in questo caso, il massimo rigore :sisi:
Il problema della tipizzazione sta nel fatto che occorre esplicitamente indicare il "range of value" e il "range of operation" dei dati, ossia i valori e le operazioni sui dati stessi, non è sufficiente dare indicazioni generiche :sisi:
Fornire un "tipo" ad ogni dato significa "meditare" sull'uso che di quel dato si vuole fare all'interno del programma.
E' una questione di efficienza a livello implementativo, tra l'altro "snellisce" il lavoro del compilatore :asd:
L'utente non sa programmare, non sa nulla di "correttezza formale" all'interno della metodologia top-down, la mia proposta è quella di partire dalla programmazione strutturata, ossia dal Pascal/Object Pascal (Delphi), giusto il tempo necessario per porre le basi di un corretto metodo analitico dei problemi e poi passare alla programmazione ad oggetti e infine alla programmazione funzionale :sisi:
Ovviamente tale percorso è suscettibile di modifiche secondo le esigenze di studio e lavorative dell'utente, non c'è alcun motivo per imporlo, ma ritengo che partire dai dettami della programmazione strutturata possa costituire un buon inizio ;)

P.S. Da leggere anche un mio vecchio intervento qui:
https://forum.tomshw.it/threads/gioco-di-snake-in-c.639967/post-6157025 :asd:
 
2,725
1,786
Hardware Utente
#15
Ripeto, quello e' il "vecchio" modo di insegnare a programmare. Valeva quando il tipo dei dati era importante, quando i linguaggi di programmazione erano strettamente imperativi come il linguaggio macchina, il Fortran e il Pascal, quando si programmava essenzialmente con "numeri".
Adesso ha perso molta della sua importanza, e rimane essenzialmente dominio di chi si occupa di drivers, interfacce hardware e ottimizzazione. Perfino nei database ormai i dati sono rappresentati internalmente come "grandi numeri" (vedi per esempio sqlite e Mongo)

Nei college americani il tipo dei dati viene insegnato SOLO dopo avere imparato a programmare, per non confondere le idee. Il dato ha un concetto "astratto", puo' essere un dato di qualunque tipo, per qualunque linguaggio. Solo quando e se si dovra' imparare come i dati vengono memorizzati allora se ne parla, e allora' sara' relativo al linguaggio di programmazione specifico. Ma all'inizio, non esiste nemmeno "il" linguaggio di programmazione, in genere se ne usa uno simbolico "sviluppato in casa". E' anche uno dei motivi per cui Python sta prendendo piede anche come linguaggio educativo, un dato non ha nessun tipo finche' non gli viene assegnato un valore.

Cosi' dovrebbe essere insegnata l'informatica. Finche' parliamo del "migliore linguaggio per imparare" ci spariamo sui piedi.
 

Discussioni Simili