Programmazione: da dove partire

Stamattina sono andato a camminare e ho fatto il punto della mia vita, e facendo il punto della mia vita è tornato fuori uno dei sogni che ho nella cassettiera… Vorrei imparae a programmare. Anche se ora non ho un problema da risolvere, sono convinto che troverò un sacco di problemi da risolvere una volta che imparerò a programmare. Avete un libro/corso da consigliarmi? il linguaggio non importa, mi basta iniziare.

in realtà ne ho già uno. Mi serve un programma che faccia le ricerche online su un argomento che decido io e sui motori di ricerca che decido io, poi deve mandarmi giornalmente una mail con i rusultati delle ricerche, magari con l’anteprima di tali risultati.

oppure che tenga d’occhio le variazioni intervenuta in una determinata pagina del sito della regione.

Ciao

Ehm, mi pare proprio che tu metta un po’ troppa carne al fuoco.
OK, io lavoro nell’industriale ma faccio il programmatore da oltre 40 anni e posso dirti che quello che vorresti fare non è per nulla banale.

Ci sono 3 ordini di problemi:

  1. Semantica dei linguaggi (per scrivere programmi corretti)
  2. Algoritmica (per creare programmi funzionanti)
  3. Conoscenza delle librerie esistenti (per non reinventare l’acqua calda)

Per il punto 1 non posso che consigliarti il libro fondamentale Il linguaggio C di Kernighan & Ritchie che per chi programma in C è un po’ come il vecchio testamento.
Che io sappia non esistono libri per i punti 2 e 3, servono solo anni di sbattimento.

Ciao Ciao, Moreno

2 Mi Piace

Be’ dai, partire subito col C può essere scoraggiante. :slight_smile:
Non sono un programmatore. Ma mi è capitato spesso di creare semplici programmi per qualche semplice scopo.
Esistono altri linguaggi che offrono certamente la pappa pronta (soprattutto circa la gestione della memoria dei puntatori e di cose a basso livello, ma anche relativamente alla vasta quantità di librerie facilmente utilizzabili e che consentono di sorvolare sulle questioni più complesse della programmazione) che ti consentono di creare qualcosa di funzionante (con una piccola soddisfazione), sebbene non professionale (magari sulle cose che ho fatto, un programmatore mi sputerebbe in faccia), e che ti permettono di imparare se non altro i fondamenti.

1 Mi Piace

Ciao,
Iniziare dal C puo’ andare bene se vuoi capire come funziona un computer, e’ il coltellino svizzero dell’informatica.
Come dice Alessio, il compito che hai in mente te non e’ per nulla banale, ed usare il C per parlare con un browser e’ come cercare di scavare un tunnel in una montagna usando un coltellino svizzero, appunto, e partendo dal livello zero di programmazione vorrebbe dire metterci anni.

Io personalmente adoro Python e ci ho fatto di tutto, da siti web ad High Performance Computing multi-gpu e multi-nodo: inizierei dalle basi, parti dalla documentazione di python.org, ad es dai tutorial come questo (https://docs.python.org/3/tutorial/interpreter.html) e poi da li’ prosegui piano piano.
Non partirei subito con il programma per fare ricerche sul web in automatico, e’ una cosa un po’ avanzata, che richiede anche un po’ di studio di html e di un minimo di js per capire come mai non puoi scaricare direttamente la pagina renderizzata da google.

Partirei con un esercizio piu’ semplice magari, un programma calcolatrice che fa solo addizioni, poi impari magari ad aggiungerci argparse e permetti di combinare piu’ operazioni matematiche insieme (tipo ./calc.py 4 -minus 3 -plus 5 -times 2), e lo continui ad estendere finche’ non hai un buon feeling di aver capito come funziona Python.

A quel punto per il tuo programma di ricerche web vedo un paio di strade:

  1. Se i motori di ricerca o siti web producono codice statico facilmente “parsabile”, ti potrebbe bastare usare requests sulla pagina https://motoredi.ricerca/campo1+campo2 ed estrarre staticamente i campi che ti servono con beautifulsoup dall’html.
  2. Usare le api di qualche motore di ricerca, ad es per ddgo: https://duckduckgo.com/api
  3. Usare selenium ed emulare il comportamento di un umano davanti ad un browser.

Non so se la 2 potrebbe essere piu’ facile della 1, onestamente.

Auguri!

2 Mi Piace

Avete visto googler?

Mmm… no? Che sarebbe?

Fa le ricerche su google da terminale

Se intendi questo: https://github.com/jarun/googler
Sembra carino, ma non lo conosco. E non so se sia anche multi-motore di ricerca. Ma se a te basta, meglio per te!

É solo per google, lo sto provando con cronjob. Comunque non è perfetto.

Detto ciò ragazzi, io vi ringrazio e inizierò dal libro indicato da @Moreno, viste anche le considerazioni fatte da @bebo_sudo (capire come funziona un computer), mettendo nella mia enorme cassettiera il sogno di creare certi programmi. Inizio con C, poi magari passo a qualcosa di più semplice. L’importante è divertirsi.

1 Mi Piace

Ciao

Beh, io sono nato ed ho lavorato anni con lo assembler, quello sì che è tosto ed insegna cosa è un processore.
La scelta del linguaggio alla fine ha poca importanza, come dico sempre “datemi un linguaggio formale e vi solleverò il mondo”.

Ciao Ciao, Moreno

1 Mi Piace

YouTube è sufficiente per iniziare. Non fare l’errore di solo guardare il tutorial. Riscrivi il codice dal tutorial, prenditi del tempo per capire e hai pazienza. Il diavolo si nasconde nei dettagli.