Autore Topic: [Programmazione] Hello World!  (Letto 27191 volte)

0 Utenti e 1 visitatore stanno visualizzando questo topic.

Offline Void

  • Eroe
  • *******
  • Post: 12.999
  • Grottesco, cattivo e gratuito
Re: [Programmazione] Hello World!
« Risposta #15 il: 22 Giu 2013, 14:23 »
Allora qui scatta la prima domanda: perché un ingegnere informatico si diletta col C e non con linguaggi di più alto livello?

Offline Void

  • Eroe
  • *******
  • Post: 12.999
  • Grottesco, cattivo e gratuito
Re: [Programmazione] Hello World!
« Risposta #16 il: 22 Giu 2013, 14:44 »
Bello il link con le gif, ma qui mi salta subito all'occhio la differenza con quello che programmo io.
database? script? link? :no:
Conosco meglio puntatori, UART, I2C/TWI.
Citazione
Quando il capo mi dice che la cosa su cui sto lavcorando non verrà mai utilizzata
Questa invece mi è capitata troppe volte. La soddisfazione di aver prodotto qualcosa di funzionante è maggiore, per fortuna.

Offline recklessman

  • Stratega
  • *****
  • Post: 4.486
Re: [Programmazione] Hello World!
« Risposta #17 il: 22 Giu 2013, 14:48 »
Allora qui scatta la prima domanda: perché un ingegnere informatico si diletta col C e non con linguaggi di più alto livello?

perché mi piace, e cmq è solo uno dei linguaggi che uso, è molto usato per scrivere i driver e le librerie grafiche...
però capito è anacronistico, infatti uso altri linguaggi, però conoscerlo non è una brutta cosa  :yes:

Citazione
Questa invece mi è capitata troppe volte. La soddisfazione di aver prodotto qualcosa di funzionante è maggiore, per fortuna.

assolutamente sì, quando mi impunto che devo fare qualcosa la faccio, e poi sai com'è, non si sa mai.
Mi ricorda tanto il fatto che i programmatori apple all'era di SJ se ne fregavano di quando lui gli diceva che quel codice era una merda, tanto poi dopo una settimana quando gli facevano vedere il software finito diceva che era un capolavoro, spacciandolo per idea sua. Avvenimenti reali, narrati sulla sua biografia autorizzata, eh.
« Ultima modifica: 22 Giu 2013, 14:53 da recklessman »
You need to find a way, For what you want to say
But before tomorrow

Offline Void

  • Eroe
  • *******
  • Post: 12.999
  • Grottesco, cattivo e gratuito
Re: [Programmazione] Hello World!
« Risposta #18 il: 22 Giu 2013, 14:52 »
Ti assicuro che non è assolutamente anacronistico :)
è molto vicino alla macchina, quindi inutilmente complicato per molti.

Offline recklessman

  • Stratega
  • *****
  • Post: 4.486
Re: [Programmazione] Hello World!
« Risposta #19 il: 22 Giu 2013, 14:54 »
sì, anacronistico nel senso che ormai non è più tanto usato a livello professionale, sulla qualità del linguaggio non si discute, e resterà sempre nel mio cuore
You need to find a way, For what you want to say
But before tomorrow

Offline TMC

  • Navigato
  • **
  • Post: 527
    • E-mail
Re: [Programmazione] Hello World!
« Risposta #20 il: 22 Giu 2013, 19:12 »
ecco la mia breve cronistoria :

Come tutti quelle delle mie annatate (classe 76) ho iniziato con i listati di basic per il commodore 64, è stato amore a prima vista, verso i 14/15 mio papà mi comprò un fiammante 386 (per la modica cifra di 2.7000.000 lire !!!) e con li mi son fatto le "ossa" stuidamo il famoso "kernighan ritchie" finito la scuola ho provato l'università ma purtroppo (grande rammarico) ai tempi la mia voglia di studiare era inesistente ed allora ho mollato dopo due esame in due anni. Allora ho iniziato un corso Europeo di programmazione, solo che i professori non erano proprio il massimo, venivano a chiedermi conferme dopo aver effettuato la spiegazione ....
Poi finalemente nel 98 ho iniziato lavorare, prima in una multinazionale come consulente applicativo (programmavano in un linguaggio misto visual basic 6 e c) poi nel 2001 la svolta, son finito in una società
in cui abbiamo iniaziato ad usare .net dalla beta 1, eravamo tra i primi in italia, pensa che non c'era neanche un sito italiano sull'argomento. da li è stato un crescendo da vb.net a c# passando per sql, reporting service e quasi tutti gli strumenti della piattaforma microsoft.

Ora sono in una società che crea gestionali per la grande distrubuzione elettronica (Euronics,Trony, Mediaworld), se ora fate un acquisto sul sito di euronics la fattura viene generata da codice creato da me.

Negli anni ho imparato che una delle doti fondamentali di un programmatore per lavorare con altri programmatori è l'umiltà, ho visto tanti arrivare e fare gli sboroni per essere smerdati in mezzo secondo.
Altro punto fondamentale è creare programmi facilmente mantenibile anche da altri, non solo dal loro creatore, sembra una banalità ma ogni tanto devo modificare programma non creati da me è ogni volta è un ginepraio.

spero di non avervi annoiato con questa "breve" introduzione ma nella mia vita a parte i miei colleghi non parlo di programmazione con nessuno, abituatevi al fatto che per tutti sarete quello che aggiusta i computer, oramai ho rinunciato a spiegargli che non è il mio lavoro !!!!

Offline recklessman

  • Stratega
  • *****
  • Post: 4.486
Re: [Programmazione] Hello World!
« Risposta #21 il: 22 Giu 2013, 19:20 »
quanta verità...
comunque sì, tenere il codice leggibile è tipo la regola numero 1 nella programmazione.
Niente variabili globali.
Niente "spaghetti code".
Commenti a palate.
3 regole semplici ma essenziali.
 ;)
You need to find a way, For what you want to say
But before tomorrow

Offline armandyno

  • Condottiero
  • ******
  • Post: 8.909
R: [Programmazione] Hello World!
« Risposta #22 il: 22 Giu 2013, 21:26 »
Ah io una cosa che ho riscontrato tra i programmatori o aspiranti tali è il loro grado assolutamente fuori misura di sbruffonaggine e machismo informatico (ovviamente con le dovute eccezioni). Stanno male.
Venendo da una facoltà umanistica mi rendo conto della gravità della cosa.

Offline Vegita.ssj

  • Navigato
  • **
  • Post: 738
R: [Programmazione] Hello World!
« Risposta #23 il: 22 Giu 2013, 22:18 »
Java developer here.  All'università mi sentivo almeno un super sayan.  A lavoro una mezza merdina e son quasi 2 anni ormai. Spero di migliorare.

Sent from my Galaxy S3 with Tapatalk


Offline TremeX

  • Condottiero
  • ******
  • Post: 7.942
  • / | \
Re: [Programmazione] Hello World!
« Risposta #24 il: 23 Giu 2013, 11:06 »
Fico. Andate avanti.

@recklessman non so, proponi qualche esercizio. Io, per esempio, non ho mai capito gli array. In ogni libro li mettono al capitolo 4 e io mi fermo sempre al capitolo 3... di qualunque libro su qualunque argomento.

Offline recklessman

  • Stratega
  • *****
  • Post: 4.486
[Programmazione] Hello World!
« Risposta #25 il: 23 Giu 2013, 11:10 »
Provvedo subito.

Il seguente è un codice C che utilizza arrays e l'algoritmo di ordinamento chiamato Bubblesort, di facile comprensione anche se poco efficiente, infatti andando avanti si fanno altri algoritmi.

Codice: [Seleziona]
/* il programma utilizza un array per leggere 5 punteggi,
   ordinarli e stamparli in output ordinati.              */
   
#include <stdio.h>
#define  CLASS_SIZE   5

int main (void)
{
int i, j, score[CLASS_SIZE], sum = 0, tmp;

printf("Input %d scores: ", CLASS_SIZE);
for (i = 0; i < CLASS_SIZE; ++i)
{
scanf("%d", &score[i]);
sum += score[i];
}

// bubblesort - ordinamento a bolla
for (i = 0; i < CLASS_SIZE; ++i)
for (j = CLASS_SIZE -1; j > i; --j)
//controlla l'ordine
if (score[j-1] < score[j])     
{
tmp = score[j-1];
score[j-1] = score[j];
score[j] = tmp;
}
printf("\nOrdered scores:\n\n");
for(i = 0; i < CLASS_SIZE; ++i)
printf("\tscore[%d] = %5d\n", i, score[i]);
printf("\t%16d   is the sum of all the scores\n", sum);
printf("\t%18.1f is the class average", (double)sum/CLASS_SIZE);
return 0;
}
« Ultima modifica: 23 Giu 2013, 11:20 da recklessman »
You need to find a way, For what you want to say
But before tomorrow

Offline Void

  • Eroe
  • *******
  • Post: 12.999
  • Grottesco, cattivo e gratuito
Re: [Programmazione] Hello World!
« Risposta #26 il: 23 Giu 2013, 22:42 »
Niente variabili globali.
Niente "spaghetti code".
Commenti a palate.
3 regole semplici ma essenziali.
 ;)
Spaghetti code non ci ho neanche mai pensato
Commenti ne metto sempre tanti, se non mi forzano a scrivere a ritmi spietati.
Variabili globali... se è codice che devo correggere no, se è è c++ probabilmente no. Se devo scrivere poco codice per microcontrollori probabilmente sì :whistle:

Wow il bubble-sort, quanti ricordi. Esercizio di fondamenti di informatica I, 1997.
Chiaramente alla fine dell'esercizio il prof esordisce con " non usatelo mai, esiste una funzione merge-sort che è molto più efficiente".
L'anno successivo ci fecero scrivere anche quella.

Offline armandyno

  • Condottiero
  • ******
  • Post: 8.909
Re: [Programmazione] Hello World!
« Risposta #27 il: 23 Giu 2013, 22:52 »
Io ho imparato direttamente Java e i tre paradigmi della programmazione a oggetti: incapsulamento, ereditarietà e polimorfismo.
Molto spesso nei corsi e nei libri fanno confronti con altri linguaggi (e con il C++), ma per me è stato il primo linguaggio in assoluto e quindi non conosco altri paradigmi, anche se ho programmato in PLSQL per un bel pò di tempo, successivamente.
La prima volta che mi sono trovato davanti ad un esempio di black box non riuscivo a capirne assolutamente il senso, così come l'utilità dei costruttori.
Poi entrando nella logica diventa tutto più naturale.

Offline TremeX

  • Condottiero
  • ******
  • Post: 7.942
  • / | \
Re: [Programmazione] Hello World!
« Risposta #28 il: 24 Giu 2013, 08:07 »
Provvedo subito.
Ahah grazie^^ forse in cantina ho un libro di c, ma tanto non andrò oltre il capitolo 3.

Offline eugenio

  • Eroe
  • *******
  • Post: 10.104
Re: [Programmazione] Hello World!
« Risposta #29 il: 24 Giu 2013, 09:19 »
Sono in disaccordo su qualsiasi frase generica "per iniziare consiglio il linguaggio …" in quanto ciascun linguaggio ha caratteristiche proprie e ambiti specifici. Pertanto, la scelta del linguaggio andrebbe fatta soppesando l'attinenza dello stesso al progetto cui si lavora.

Per l'apprendimento, a un novizio è più utile 'perdere' tempo su linguaggi 'morti' come Basic, Logo, Pascal o Smalltalk e capire i concetti chiave della programmazione, piuttosto di incagliarsi su terminologia e sintassi di linguaggi complessi. Anzi, in un ipotetico corso di introduzione alla programmazione eliminerei quasi del tutto l'orientamento su un singolo linguaggio, basando il percorso su:
- dati. Tipi, rappresentazione, struttura. Database;
- programmazione procedurale, modulare e a oggetti. Distinzioni e applicazioni;
- funzioni e algoritmi;
- design pattern,
e solo alla fine indirizzerei verso un linguaggio o un altro mediando tra capacità del corsista e ambito di applicazione.

Ovviamente non distinguerei tra teoria e pratica, una separazione inutile quanto un corso di educazione erotica per single. Prenderei invece in considerazione casi esistenti  - ricetta culinaria, programmi di lavaggio, cubo di Rubik, battaglia navale - per aumentare via via la confidenza coi concetti chiave e astrarre la risoluzione del singolo problema dal problema stesso.

In questo modo getto le basi per apprendere, in potenza, qualsiasi linguaggio.