DOMANDA C, C++ o Java?

Pubblicità
Mi è già successo, e non solo per la tipizzazione di python?
Ho il brutto vizio di importare tutti i metodi delle varie librerie, quindi mi capita spesso di avere metodi di librerie esterne uguali a funzioni built in, poi vai a capire qual è il problema nei progetti grandi
 
Mi è già successo, e non solo per la tipizzazione di python?
Ho il brutto vizio di importare tutti i metodi delle varie librerie, quindi mi capita spesso di avere metodi di librerie esterne uguali a funzioni built in, poi vai a capire qual è il problema nei progetti grandi
devi usare delle convenzioni, ad esempio numpy si importa come np
 
L’ho imparato a mie spese, per esempio ieri dovevo usare la funzione open per un file, e siccome nello stesso programma avevo anche
Python:
from os import *
il programma me l’ha confusa con os.open(), e mi generava errore
 
L’ho imparato a mie spese, per esempio ieri dovevo usare la funzione open per un file, e siccome nello stesso programma avevo anche
Python:
from os import *
il programma me l’ha confusa con os.open(), e mi generava errore
Ecco vedi ad esempio per aprire un file, usa with(), si avvale dell'indentazione per capire quando non hai bisogno più di quel file. Una volta che rientri chiude il file in automatico
 
Mi è già successo, e non solo per la tipizzazione di python?
Ho il brutto vizio di importare tutti i metodi delle varie librerie, quindi mi capita spesso di avere metodi di librerie esterne uguali a funzioni built in, poi vai a capire qual è il problema nei progetti grandi
Quello è un problema di tutti i linguaggi, C (e dialetti) incluso, i metodi vengono “riconosciuti” nella prima libreria in cui compaiono, per cui è importante l’ordine in cui le librerie sono elencate (ci “casco” ancora adesso, e parlo di progetti in C++ che usano dozzine di librerie)
 
Ecco vedi ad esempio per aprire un file, usa with(), si avvale dell'indentazione per capire quando non hai bisogno più di quel file. Una volta che rientri chiude il file in automatico
Io ho fatto
Python:
with open('nomefile', 'wb') as file:
    file.write('testo\n')
 
#resto del codice

non va bene così?

Quello è un problema di tutti i linguaggi, C (e dialetti) incluso, i metodi vengono “riconosciuti” nella prima libreria in cui compaiono, per cui è importante l’ordine in cui le librerie sono elencate (ci “casco” ancora adesso, e parlo di progetti in C++ che usano dozzine di librerie)
Ottimo, mi sento meno solo.
Ma se le funzioni built in sono importate automaticamente, come faccio a dirgli di dare priorità a quelle?
 
Il C e' usatissimo nell'embedded, specie nei microcontrollori e' molto performante, con le giuste opzioni di compilazioni produce codice veloce e/o piccolo, cosa che e' fondamentale quando si lotta per far stare un programma in 16k di flash ed e' importante risparmiare ogni byte. E non solo. Anche il 98% del kernel Linux e' scritto in C. Per chi conosce poi il C, viene abbastanza semplice usare il C++ per applicativi pc.

Lavorando nell'embedded, ho usato pochissimo Java, e praticamente mai .net. Eppure, il C mi ha consentito un ottimo stipendio, lavoro da casa mia per una multinazionale americana, restando nella mia citta, tra la gente che amo e che non voglio lasciare.

Non lo disprezzerei come prospettiva di lavoro: anche se discorso embedded e' un po' di nicchia, e' lucrativo. Se dici che ti disturba come difficolta', alliora si. Non si impara rapidmente, a mio avviso almeno un paio d'anni per capire i codici piu complessi. Allo stesso tempo forza a capire aspetti dell'architettura, accessi diretti alla memoria (fisica o virtuale), a fare anche danni, talvolta e' definito il linguaggio piu a basso livello tra gli alti livello.

Saluti
 
Se quella playlist vale anche per il mio caso me la guardo molto volentieri
nella playlist si dà per scontato che si sappia programmare e si insegnano le basi del C presupponendo che conosci Python (la parte "imperativa", ossia di fatto le istruzioni decisionali ed i cicli.
Forse però fai prima ad affidarti al libro, perché lì non si dà nullo per scontato, si parte proprio da ZERO totale, gli esercizi sono di difficoltà crescente e devono essere fatti altrimenti non si impara nulla.
Per insegnarlo però il C devi conoscerlo tu, perché è pieno di trappole e sporchi trucchi da NON mettere in pratica quando si inizia
 
Più che imparare un linguaggio, io inizierei imparando le basi della programmazione, usando anche i diagramma di flusso (io iniziai così alle superiori). Poi sono passato al C e poi a Java.
Sono due linguaggi diversi, perchè il C è procedurale e più a basso livello, mentre Java è OOP e più ad alto livello.

Fai capire a tuo fratello come analizzare un problema dato ed estrarre i vari blocchi per creare l'algoritmo.
Poi puoi usare quale linguaggio vuoi, ma il succo di tutto è capire come si fa un ragionamento per creare l'algoritmo.

PS: il miglior libro in C è questo https://www.amazon.it/Programmazione-C-Kim-N-King/dp/8838785821/ref=sr_1_4?__mk_it_IT=ÅMÅŽÕÑ&crid=2PYGNNFD7BR57&keywords=Programmazione+C&qid=1654030698&s=books&sprefix=programmazione+c+,stripbooks,94&sr=1-4
 
Ultima modifica:
Il C e' usatissimo nell'embedded, specie nei microcontrollori e' molto performante, con le giuste opzioni di compilazioni produce codice veloce e/o piccolo, cosa che e' fondamentale quando si lotta per far stare un programma in 16k di flash ed e' importante risparmiare ogni byte. E non solo. Anche il 98% del kernel Linux e' scritto in C. Per chi conosce poi il C, viene abbastanza semplice usare il C++ per applicativi pc.

Lavorando nell'embedded, ho usato pochissimo Java, e praticamente mai .net. Eppure, il C mi ha consentito un ottimo stipendio, lavoro da casa mia per una multinazionale americana, restando nella mia citta, tra la gente che amo e che non voglio lasciare.

Non lo disprezzerei come prospettiva di lavoro: anche se discorso embedded e' un po' di nicchia, e' lucrativo. Se dici che ti disturba come difficolta', alliora si. Non si impara rapidmente, a mio avviso almeno un paio d'anni per capire i codici piu complessi. Allo stesso tempo forza a capire aspetti dell'architettura, accessi diretti alla memoria (fisica o virtuale), a fare anche danni, talvolta e' definito il linguaggio piu a basso livello tra gli alti livello.

Saluti
Quindi posso usare il C come base di lancio per qualsiasi linguaggio a quanto ho capito. Bene, un motivo in più per impararlo

Più che imparare un linguaggio, io inizierei imparando le basi della programmazione, usando anche i diagramma di flusso (io iniziai così alle superiori). Poi sono passato al C e poi a Java.
Sono due linguaggi diversi, perchè il C è procedurale e più a basso livello, mentre Java è OOP e più ad alto livello.

Fai capire a tuo fratello come analizzare un problema dato ed estrarre i vari blocchi per creare l'algoritmo.
Poi puoi usare quale linguaggio vuoi, ma il succo di tutto è capire come si fa un ragionamento per creare l'algoritmo.

PS: il miglior libro in C è questo https://www.amazon.it/Programmazione-C-Kim-N-King/dp/8838785821/ref=sr_1_4?__mk_it_IT=ÅMÅŽÕÑ&crid=2PYGNNFD7BR57&keywords=Programmazione+C&qid=1654030698&s=books&sprefix=programmazione+c+,stripbooks,94&sr=1-4
Sarebbe un ottimo inizio sicuramente, anche se io stesso non ho iniziato cosi… Vedrò però di fargli cominciare bene. Darò un’occhiata anche al libro, grazie mille :)
Il Java e' anche procedurale. E si puo programmare ad oggetti anche in C, vedi ooc

Personalmente trovo un pochino una forzatura programmare ad oggetti con un linguaggio nato per essere procedurale, quando ci sono linguaggi più potenti nati apposta per la oop. Nulla contro chi lo fa, ma dubito che utilizzerò mai una tecnica del genere
 
Quindi posso usare il C come base di lancio per qualsiasi linguaggio a quanto ho capito. Bene, un motivo in più per impararlo
S-ni, il C aiuta a capire alcuni fondamenti ma come ti dicevo puo essere impiegato in praticamente tutte le architetture, forse per quello si usa all'universita', poi ognuno fara' da grande cio che vuole, ma poi per ogni linguaggio ci sono tutta una serie di particolarita'/diversita' da imparare. Poi c'e' la grande divisione tra procedurali e non, quelli alla vecchia come me in genere preferiscono i primi. Come suggeriva qualcuno sopra, le basi generali si imparano con qualche pseudo-code, diagrammi, etc.

Personalmente trovo un pochino una forzatura programmare ad oggetti con un linguaggio nato per essere procedurale, quando ci sono linguaggi più potenti nati apposta per la oop. Nulla contro chi lo fa, ma dubito che utilizzerò mai una tecnica del genere

Si era per dire, per l'oop ovviamente si sceglie un linguaggio oop. Ma restringere un linguaggio in oop o non oop e' limitante, in c++ ci sono montagne di funzionalita' che non c'entrano con oop ma sono features che il C non ha.
 
Pubblicità
Pubblicità
Indietro
Top