Consigli su materiale per imparare a programmare

Stato
Discussione chiusa ad ulteriori risposte.

9enrico0

Utente Attivo
508
5
Hardware Utente
CPU
Intel Core I5 4670K
Scheda Madre
Asrock Z87 Extreme 4
Hard Disk
500Gb
RAM
2x 4gb G.Skill Ares 1866 mhz
Scheda Video
Asus ENGTX570 DirectCU II
Scheda Audio
Integrato alla scheda madre
Monitor
iiyama ProLite GB2773HS
Alimentatore
Enermax ELT620AWT-ECO
Case
NZXT Phantom 530
Sistema Operativo
Windows 10
Ciao,
Ai tempi delle scuole, ero una zucca vuota , letteralmente.
Ora ne pago le conseguenze lavorando in fabbrica a turni e stando in mezzo a materiali e fumi tossici di vario tipo.
Mi piacerebbe però cambiare aria, e dare una svolta alla mia vita lavorativa.
Sono sempre stato infognato nel mondo informatico, con videogiochi, mod, programmi, assemblaggi di pc. Ma nulla di professionale.
Però dato che ho ancora 29 anni, non penso che tutto sia perduto, e quindi mi è venuta in mente l'idea di iniziare a imparare a programmare. Servirà, non posso saperlo, chi vivrà vedrà. Al massimo lo farò per me stesso se uno sbocco lavorativo è improponibile.
Come linguaggio ho scelto il python.
tra 2 linguaggi "semplici" da imparare i candidati erano javascript e python.
Ho scelto Python in quanto ho letto che javascript è più orientato alla programmazione di cose su pagine web, e ci sono opinioni un po altalenati su di esso.
Sto leggendo una guida su html.it e sto provando a imbastire i primi programmini base.
Però mi servirebbe un aiuto da chi ci è già passato. Se per caso conosce qualche testo cartaceo o digitale che farebbe al caso mio. E mi servirebbero degli eserciziari. Le guide che ho sfogliato fin ora presentano degli esempi, ma non trattano uno o 2 argomenti e poi propongono all'utente una serie di esercizi per memorizzare bene le cose.
Esiste qualcosa del genere?
E, oltre a python , dovrei affiancare non dico lo studio, ma per lo meno la lettura di qualche altra cosa?(ho già letto quello proposto sul thread dedicato qui in tom's hardware "imparare a programmare ")
 
  • Mi piace
Reactions: Reeaver

BAT00cent

Utente Attivo
1,007
443
Hardware Utente
Il libro che ti suggerisco parte letteralmente da zero, dettagliato (perfino troppo!) in ogni aspetto e propone esercizi di difficoltà crescente (tra l'altro lo usano anche a Ingegneria Informatica nel primissimo corso introduttivo alla programmazione, per chi non ne sa nulla di nulla)
Concetti di informatica e fondamenti di Python (seconda edizione), aut. Cay Horstmann, ed. Apogeo

Contrariamente a quanto pensano in molti, ritengo che un libro di testo sia essenziale per fissare le idee, a dispetto del fatto che si dice che "diventa obsoleto" perché inevitabilmente il linguaggio evolve... sarà pure così ma le basi rimangono immutate!
Contestualmente agli esercizi del libro ti suggerisco di seguire queste videolezioni
playlist: https://www.youtube.com/playlist?list=PLAQopGWlIcyaYO89pmFViY4z_y8lj2IQA
sebbene siano del 2014 e trattino Python 3.4, quello che conta è che i concetti fondamentali sono immutati ed inoltre la qualità è garantita al 100%: si tratta della parte Python per Ingegneria Informatica (il primo corso di programmazione, che adottava al prima edizione del libro che ti ho suggerito). Segui il docente, fatti gli esercizi che propone e vivi tranquillo! Ti assicuro che una cosa è leggere solo il libro, un'altra è avere un insegnate umano che ti spiega i piccoli trucchi che i neofiti non conoscono.
Il videocorso tratta Python fino alle classi (escluse, in quanto la programmazione a oggetti si fa con linguaggi diversi -Java-; sul libro però c'è tutto se te la senti a fare da solo).

Buon anno e benvenuto in Python!
 
Ultima modifica:

Andretti60

Utente Èlite
3,742
2,514
Hardware Utente
... Contrariamente a quanto pensano in molti, ritengo che un libro di testo sia essenziale per fissare le idee, a dispetto del fatto che si dice che "diventa obsoleto" perché inevitabilmente il linguaggio evolve... sarà pure così ma le basi rimangono immutate! ...
Vero, ma fino a un certo punto. Specie per quanto riguarda i linguaggi, che evolvono sempre. Per esempio Python, al momento ce ne sono due versioni, la 2 e la 3. Compri un manuale della versione 2 ed e' inutile se si sta usando la 3. Perfino la "bibbia" R&K del linguaggio C ha avuto diversi aggiornamenti (per un linguaggio che ha cambiato relativamente poco)
Ma sui testi che parlano della teoria della programmazione, sono perfettamente in accordo. Un algoritmo di sorting lo si puo' capire leggendo un libro scritto quaranta anni fa.

Personalmente, l'ultimo libro da me comprato e' del 1998 (e praticamente inutile adesso)
Developing COM/ActiveX Components With Visual Basic 6 (Dan Appleman)
Mentre invece questo testo del 1992 e' ancora valido
Expert C Programming: Deep C Secrets (Peter van der Linden)
 

9enrico0

Utente Attivo
508
5
Hardware Utente
CPU
Intel Core I5 4670K
Scheda Madre
Asrock Z87 Extreme 4
Hard Disk
500Gb
RAM
2x 4gb G.Skill Ares 1866 mhz
Scheda Video
Asus ENGTX570 DirectCU II
Scheda Audio
Integrato alla scheda madre
Monitor
iiyama ProLite GB2773HS
Alimentatore
Enermax ELT620AWT-ECO
Case
NZXT Phantom 530
Sistema Operativo
Windows 10
Il libro che ti suggerisco parte letteralmente da zero, dettagliato (perfino troppo!) in ogni aspetto e propone esercizi di difficoltà crescente (tra l'altro lo usano anche a Ingegneria Informatica nel primissimo corso introduttivo alla programmazione, per chi non ne sa nulla di nulla)
Concetti di informatica e fondamenti di Python (seconda edizione), aut. Cay Horstmann, ed. Apogeo

Contrariamente a quanto pensano in molti, ritengo che un libro di testo sia essenziale per fissare le idee, a dispetto del fatto che si dice che "diventa obsoleto" perché inevitabilmente il linguaggio evolve... sarà pure così ma le basi rimangono immutate!
Contestualmente agli esercizi del libro ti suggerisco di seguire queste videolezioni
playlist: https://www.youtube.com/playlist?list=PLAQopGWlIcyaYO89pmFViY4z_y8lj2IQA
sebbene siano del 2014 e trattino Python 3.4, quello che conta è che i concetti fondamentali sono immutati ed inoltre la qualità è garantita al 100%: si tratta della parte Python per Ingegneria Informatica (il primo corso di programmazione, che adottava al prima edizione del libro che ti ho suggerito). Segui il docente, fatti gli esercizi che propone e vivi tranquillo! Ti assicuro che una cosa è leggere solo il libro, un'altra è avere un insegnate umano che ti spiega i piccoli trucchi che i neofiti non conoscono.
Il videocorso tratta Python fino alle classi (escluse, in quanto la programmazione a oggetti si fa con linguaggi diversi -Java-; sul libro però c'è tutto se te la senti a fare da solo).

Buon anno e benvenuto in Python!
grazie mille =)
Purtroppo sono costretto a fare da solo. Se avessi un lavoro "normale" potrei pensare di frequentare dei corsi serali, ma io 2 settimane su 3 (i miei turni sono settimanali, e sono mattina, pomeriggio e notte) di sera sto lavorando.

ah, io avrei anche un pdf di un libro chiamato:
ThinkPython, Seconda Edizione,
Versione 2.2.23 ,
Allen Downey
Green Tea Press
Needham, Massachusetts

è un testo acquistabile su amazon, ma non so il motivo, è anche gratuito altrove. Ma non in modo fraudolento, proprio è concessa la distribuzione open source.
Vi lascio il link https://github.com/AllenDowney/ThinkPythonItalian/blob/master/thinkpython_italian.pdf
Qui il sito ufficiale del libro. https://greenteapress.com/wp/think-python/
So che da regolamento è vietato postare materiale pirata, quindi il sito in questione è per farvi vedere che è tutto legale diciamo
 
Ultima modifica:

Andretti60

Utente Èlite
3,742
2,514
Hardware Utente
è un testo acquistabile su amazon, ma non so il motivo, è anche gratuito altrove. Ma non in modo fraudolento, proprio è concessa la distribuzione open source.
il testo e' OpenSource, quindi scaricabile per uso personale.
le versioni elettroniche che trovi in rete sono quindi gratuite, mentre per quelle cartacee devi pagare il costo della stampa.
E' un buon libro, ma non fatto per principianti, hai bisogno di qualcosa di piu' facile che insegni le basi della programmazione altre al linguaggio Python.
 

BAT00cent

Utente Attivo
1,007
443
Hardware Utente
Vero, ma fino a un certo punto. Specie per quanto riguarda i linguaggi, che evolvono sempre. Per esempio Python, al momento ce ne sono due versioni, la 2 e la 3. Compri un manuale della versione 2 ed e' inutile se si sta usando la 3.
anche ciò che dici è vero, ma fino ad un certo punto: Python 2 è obsoleto e non verrà più sviluppato. I libri attualmente trattano Python 3.x ma già si sa che il futuro Python 4 (quando uscirà) sarà compatibile all'indietro con la versione 3 (nel senso che il codice di Python 3.x sarà legale in Python 4, o almeno è quello che sostengono fin'ora gli autori). D'altro canto bisogna pur iniziare da qualche parte;
il libro che ho suggerito non è un manuale del linguaggio (un manuale presuppone che tu sappia già programmare), ma un testo introduttivo alla programmazione che in più tratta Python nel dettaglio.
Si paga, ma i soldi spesi li vale tutti.
Oppure può seguire il videocorso e poi studiarsi da sé le parti che restano

Think Python a mio avviso è un po' sopravvalutato: è vero che è breve e conciso, ma non direi proprio che si impara a programmare (come si deve) usando solo quello. E' gratuito e questo fa sempre piacere, ma per un neofita serve altro, fossero anche gli esercizi delle scuole superiori.
 
  • Mi piace
Reactions: Andretti60

Andretti60

Utente Èlite
3,742
2,514
Hardware Utente
.. Python 2 è obsoleto ...
Veramente no, c’è ancora un sacco di codice scritto in 2.X e quindi rimarrà in giro ancora per molto (e probabilmente ci saranno bug fixes). E finché alcune librerie non saranno riscritte in phyton 3, chi le usa è costretto ancora ad usare 2.
Questo comunque non spaventa chi programma per professione, siamo abituati a ciò. Io ho ancora programmi scritti in VB6 da mantenere (a fatica)
 

BullClown

Utente Èlite
1,565
739
Hardware Utente
CPU
Intel i5 8600K
Dissipatore
Noctua NH-L12S
Scheda Madre
Asus Rog Strix B360-G
Hard Disk
Crucial MX300 525GB
RAM
HyperX Predator RGB 16GB (2x8GB) 3200MHz CL16
Scheda Video
Zotac GeForce GTX 1060 3GB Mini
Monitor
Dell S2316H
Alimentatore
EVGA SuperNOVA 550 G2
Case
Phanteks Eclipse P400
Sistema Operativo
Windows 10
Ciao :)
Essendo all'inizio io ti consiglierei di iniziare da un altro linguaggio di programmazione ad oggetti: Java. Il motivo per il quale ti consiglio Java è per il fatto che è il più diffuso e si trova in praticamente ogni ambito lavorativo. Python è "semplice" e si sta diffondendo molto, ma è usato in ambiti un po' più specifici. Non te lo consiglio neanche solo per parere personale, ma anche perchè io stesso l'ho imparato come primo linguaggio di programmazione in università. Da lì poi ho visto altri linguaggi capendo quale conveniva usare in determinati ambiti
 

9enrico0

Utente Attivo
508
5
Hardware Utente
CPU
Intel Core I5 4670K
Scheda Madre
Asrock Z87 Extreme 4
Hard Disk
500Gb
RAM
2x 4gb G.Skill Ares 1866 mhz
Scheda Video
Asus ENGTX570 DirectCU II
Scheda Audio
Integrato alla scheda madre
Monitor
iiyama ProLite GB2773HS
Alimentatore
Enermax ELT620AWT-ECO
Case
NZXT Phantom 530
Sistema Operativo
Windows 10
Ciao :)
Essendo all'inizio io ti consiglierei di iniziare da un altro linguaggio di programmazione ad oggetti: Java. Il motivo per il quale ti consiglio Java è per il fatto che è il più diffuso e si trova in praticamente ogni ambito lavorativo. Python è "semplice" e si sta diffondendo molto, ma è usato in ambiti un po' più specifici. Non te lo consiglio neanche solo per parere personale, ma anche perchè io stesso l'ho imparato come primo linguaggio di programmazione in università. Da lì poi ho visto altri linguaggi capendo quale conveniva usare in determinati ambiti
Ma java non è più difficile per chi è alle prime armi?Nel senso, se python riesce a spiegarmi meglio le basi, non è conveniente che io impari quello, e poi quando avrò capito qualcosa, passo a java o altro? (se arriverò mai a quel punto, so che servono decenni di pratica)
 
  • Mi piace
Reactions: Andretti60

Andretti60

Utente Èlite
3,742
2,514
Hardware Utente
Ciao :)
Essendo all'inizio io ti consiglierei di iniziare da un altro linguaggio di programmazione ad oggetti: Java. Il motivo per il quale ti consiglio Java è per il fatto che è il più diffuso e si trova in praticamente ogni ambito lavorativo. Python è "semplice" e si sta diffondendo molto, ma è usato in ambiti un po' più specifici. Non te lo consiglio neanche solo per parere personale, ma anche perchè io stesso l'ho imparato come primo linguaggio di programmazione in università. Da lì poi ho visto altri linguaggi capendo quale conveniva usare in determinati ambiti
Premetto che uso sia Python che Java.
Non sono in accordo cone quello che dici perche' il nostro amico @9enrico0 sta anche imparando a programmare, e lo sta facendo da autodidatta. Se iniziasse da Java dovrebbe anche imparare il paradigma OOP, mentre con Python puo' benissimo iniziare con il paradigma imperativo, senza preoccuparsi di tipi di variabili e allocazioni di memoria.

Comunque sia Java che Python, come ogni altro linguaggio, vengono usati in ambienti specifici. Ci sono cose che con Python e' molto piu' facile da farsi invece che con Java, e viceversa. Ogni linguaggio ha il suo uso, non esiste il "coltellino svizzero". Causa la sua semplicita' Python va benissimo come linguaggio per iniziare, ben sapendo le sue limitazioni, una volta che si hanno poi le basi della programmazione si potra' poi passare ad altro, e a quel punto direi che le scelte sono o Java (se si vuole creare programmi di alto livello) o C/C++ (per programmi efficienti ma a basso livello tipo librerie di sistema e device driver).
 
  • Mi piace
Reactions: fabio93

pabloski

Utente Èlite
1,979
407
Hardware Utente
Ma java non è più difficile per chi è alle prime armi?
E' una mazzata in piena fronte. Può andare bene per un corso universitario, dove c'hai il docente che ti porta per mano e ti dà dispense e quant'altro. Ma, da autodidatta, sarebbe il modo più facile per convincerti a lasciar perdere.

Ed è lo stesso discorso che si può fare per Javascript, anche se per ragioni diverse. Il linguaggio è semplice, immediato. L'ecosistema no. Javascript implica, prima o poi, comprendere il modello client/server, capire chi è il browser, cosa fa e in che posizione dell'organigramma informatico si trova. Ecosistema molto vasto ed estremamente esuberante ( non è raro che il tuo programma funzioni con la libreria X versione Y, ma esploda dopo che l'hai aggiornata alla versione Z ).

Sono scocciature per i professionisti scafati. Sono perdite di autostima ed entusiasmo per i neofiti.

Nel senso, se python riesce a spiegarmi meglio le basi, non è conveniente che io impari quello, e poi quando avrò capito qualcosa, passo a java o altro? (se arriverò mai a quel punto, so che servono decenni di pratica)
Ed infatti è usato, nei corsi introduttivi alla programmazione, in mezzo mondo. L'Italia è tra le poche eccezioni ( e nemmeno, perchè lentamente si sta imponendo anche nelle nostre università ).

Python è sufficientemente semplice da darti la possibilità di concentrarti sul problem solving. Perchè alla fin fine, si tratta di avere le capacità per risolvere un problema in maniera algoritmica. Il linguaggio è un modo di codificare le istruzioni e gli ordini, così che il computer capisca cosa vuoi da lui. Ma sono dettagli tecnici. Senza capacità di problem solving, non si va da nessuna parte.

Vai tranquillo con Python. Non farti problemi tra Python 2 e 3. Le incompatibilità ci sono. Non sono moltissime. E possono essere colmate, dopo, nel giro di un fine settimana.
 

Reeaver

Utente Attivo
1,171
129
Hardware Utente
CPU
AMD RYZEN 5 1600
Dissipatore
NOCTUA NH-U12S
Scheda Madre
MSI B350 TOMAHAWK
Hard Disk
SSD SAMSUNG 850 250 GB + WD CAVIAR BLUE 1TB
RAM
HYPER X 16GB 2400MHz DDR4 LP
Scheda Video
ASUS ROG STRIX GTX1070 O8GB
Scheda Audio
INTEGRATA
Monitor
SAMSUNG C24F390
Alimentatore
SEASONIC SSR-550M
Case
NZXT S340
Periferiche
MOUSE, TASTIERA, MANI
Internet
FIBRA FTTH 1GB
Sistema Operativo
WINDOWS 10 PRO 64-BIT
Ciao

Forse mi sono perso qualcosa tra quanto hanno detto gli altri utenti, ma non ho visto nessuno consigliare quello che potrebbe essere più importante di un libro o corso: pratica.

Anche io ho dei libri di programazione a casa (C#, Java e Python) che ho usato (comunque per poco) a tempo debito, ma adesso se devo essere sincero non li sto aprendo praticamente mai. Eppure lavoro come programmatore Python. Come ho fatto quindi ?
Semplice: mi sono messo degli obiettivi e mi sono proposto di ragiungerli.

Secondo me la cosa migliore è proporti di creare un programma (che non sia la solita calcolatrice o gestionale) ma anche qualcosa di più "complicato" magari in uno degli ambiti che vanno tanto adesso (io consiglio la visione artificiale/webapp/tutte e due combinate - lo so che non sono cose da "neofiti" ma se sono riuscito io a svilupparli penso che ci riescano anche altri) e di cercare soluzioni per farlo laddove non riesci da solo.
Si impara tantissimo a capire dove si sbaglia e come correggere, ad usare gli strumenti, a fare problem solving, a scrivere codice più pulito giorno dopo giorno. Almeno per me è così.

La teoria (libri/corsi) serve poi ad integrare e a spiegare meglio ma non partirei puramente da quella.

Vedrai quando il tuo programma di riconoscimento caratteri oppure la tua webapp funzioneranno quanto sarai felice.

Sul linguaggio anche io consiglio Python rispetto ad altri. Ci puoi fare tante cose che basteranno per cominciare e continuare. Di lavoro è anche abbastanza richiesto e non serve essere dei senior per avere uno stipendio decente.
 
  • Mi piace
Reactions: fabio93
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando