domanda programmazione

11 risposte [Ultimo messaggio]
Ritratto di booster
booster
(Newbie)
Offline
Newbie
Iscritto: 21/05/2008
Messaggi: 5

Ciao a tutti, sono booster o marco come preferite, sono nuovo di linux e ho appena installato mandriva 2008 one, la mia domanda alla quale non ho trovato ancora risposta è la seguente:
avendo studiato la guida ufficiale di mandriva (garatti) e avendo tanta voglia di imparare vorrei sapere quale linguaggio di programmazione sarebbe più idoneo per imparare le basi della programmazione ( per poi continuare s' intende) su mandriva.
Vi ringrazio anticipatamente booster

Ritratto di pauldianno85
pauldianno85
(Geek)
Offline
Geek
Iscritto: 29/10/2007
Messaggi: 145

Ciao booster secondo me potresti imparare a smanettare con il linguaggio di programmazione c e c++, cerca nel forum ci dovrebbe già essere qualche post a riguardo, oppure effettua qualche ricerca su un motore di ricerca e c'è tutto quello che ti serve

Ritratto di Moreno
Moreno
(Guru)
Offline
Guru
Iscritto: 24/09/2004
Messaggi: 16862

Ciao e Benvenuto tra noi

La tua è la domanda più difficile che un aspirante programmatore possa mai fare, il problema è che ci sono più linguaggi di programmazione che programmatori.

Molto dipende da i tuoi obbiettivi di medio lungo termine, il C e C++ sono sicuramente i linguaggi principali però possono essere ostici per un programmatore di primo pelo.

Per come la vedo io potresti cominciare con in linguaggio più digeribile come Python o Java.
Se invece i tuoi interessi sono più "Sistemistici" allora bisogna andare sul linguaggio Shell e Perl.
Infine se invece sei più interessato al Web Php è il linguaggio per eccellenza.

Ciao Ciao, Moreno

Addio, e grazie per tutto il pesce.
Avatar by moonlight-dream.

Ritratto di filotux
filotux
(Monster)
Offline
Monster
Iscritto: 07/12/2006
Messaggi: 245

Concordo con quanto detto da Moreno, ma ti consiglio di evitare il C++ in quanto non e' un linguaggio "integralmente" ad oggetti al contrario di Java che e' sicuramente piu' pulito ed elegante.

C++ e' nato come estensione ad oggetti del linguaggio C e pertanto e' possibile scrivere un programma tutto in C senza nessun oggetto e "spacciarlo" come programma in C++. Ha inoltre regole sintattiche e semantiche abbastanza complicate che ne rendono difficile l'apprendimento (e poi la programmazione ed il debugging)

filotux

Debian Lenny on BeagleBoard

Ritratto di hmandevteam
hmandevteam
(Monster)
Offline
Monster
Iscritto: 29/12/2006
Messaggi: 255

Esiste anche C# che con MONO Framework ti permette di eseguire la tua applicazione su vari sistemi operativi.
Come ambiente IDE esiste MonoDevelop Smile

se ne hai voglia puoi dare un'occhiata a due miei progetti open source realizzati con MONO:
themonospot - http://www.integrazioneweb.com/themonospot
monosim - http://www.integrazioneweb.com/monosim

puoi vedere direttamente il codice online tramite
http://code.google.com/p/themonospot/source/browse
http://code.google.com/p/monosim/source/browse

chiaramente è giusto per farti una veloce e minima idea.

Ciao

Mandriva 2010.1 x86_64 - Athlon 64 X2 Dual Core 5200 - Ram 4 GB - Mb Asus M2N - Sk Video NVidia 7300 GT - Wireless RaLink RT2561
Projects:
- http://www.integrazioneweb.com/themonospot
- http://www.integrazioneweb.com/monosim
- http://www.integrazionew

Ritratto di tom2004
tom2004 (non verificato)
()

hai posto male la domanda, in quanto il linguaggio da usare si sceglie in base a cosa vuoi fare, non il contrario.

esempi:

il kernel e i suoi moduli sono scritti in un C un po' ridotto

molti script (ad esempio quelli che lanciano i servizi e quelli che avviano la macchina) sono scritti in bash o in perl

i d(a)emoni sono scritti un po' in tutti i linguaggi: C, C++, perl, python, ....

l'interfaccia grafica Gnome e' scritta in C (ma esiste un wrapper per il C++) con una libreria di nome GTK

l'interfaccia grafica KDE e' scritta in C++, e si appoggia alla libreria QT

per le cose web-based e' piu' usato il PHP

per i DB devi consocere anche SQL

E' poi possibile usare i linguaggi di script per fare form grafiche,
ad es:

i tool di Mandriva Drak... sono scritti in perl/GTK

per fare form kde o QT puoi usare il linguaggio python con le librerie pyKDE o PYQT

e ce ne sono diversi altri...

quindi dicci cosa vorresti fare e ti diciamo quali sono i linguaggi piu' appropiati.

Ciao

Ritratto di Alwuzer
Alwuzer
(Geek)
Offline
Geek
Iscritto: 16/10/2005
Messaggi: 111

Per poter imparare al meglio un linguaggio orientato agli oggetti, suggerirei Ruby oppure Squeak (un dialetto di Smalltalk, ma open source).
Ma potresti anche provare un Basic visuale con Gambas (in italiano puoi provare il sito in italiano di Gambas, ma sembra non più aggiornato!), presente anche nei repository Mandriva.

Ovviamente, tutto dipende da cosa vuoi ottenere e dalle tue aspirazioni (divenire sviluppatore software o saper semplicemente smanettare sul proprio PC)!
Ad ogni modo, evita come la peste il COBOL! :-P

casa: Mandriva 2010.1 - i586 su Dell Inspiron 6400.
ufficio: Mandriva 2010.1 - x86_64 su Compaq 500B MT (Intel Dual Core)

Ritratto di Moreno
Moreno
(Guru)
Offline
Guru
Iscritto: 24/09/2004
Messaggi: 16862

Ciao

ODDIO il COBOL devo averlo completamente rimosso dalla memoria, appena l'hai citato a momenti mi viene un ictus.

A proposito di Gambas, il sito italiano è in stato di abbandono mentre il progetto è molto attivo, nei backports di mandriva c'è la versione 2.6.0-2mdv2008.

Ciao Ciao, Moreno

Addio, e grazie per tutto il pesce.
Avatar by moonlight-dream.

Ritratto di booster
booster
(Newbie)
Offline
Newbie
Iscritto: 21/05/2008
Messaggi: 5

ciao a tutti, mi scuso per essermi espresso male e vi aggiorno sul mio serio problema.
premetto che non penso di essere proprio imbranato al pc, però siccome ho fatto il salto a linux da poco ora scopro che il mio prof di informatica esige questo programma ho chiesto aiuto a voi perchè in molti mi hanno detto che nel programmare in linux si impara davvero cominciando ovviamente in modo un po soft.
Ecco il programma del corso e vi metto al corrente che io frequento un corso in scienze della formazione primaria, cioè per diventare maestro quindi non so questo a cosa possa servirmi!!!
inoltre aggiungo che questo esame viene superato in media 1 volta ogni 7/9 tentativi dai miei colleghi!!!!!!!

Università degli studi dell'Aquila

Facoltà di Scienze della Formazione

PROGRAMMA INFORMATICA II 2007-08

Versione tecnica

Introduzione al linguaggio Java ed applicazioni matematiche

1. Dichiarazione di variabili

2. Dichiarazione di costanti

3. Istruzioni di assegnazione

4. Struttura di un programma Java

5. Tipi base ( primitivi) di Java

5.1. Tipi per gli interi

5.1.1. byte

5.1.2. short

5.1.3. int

5.1.4. long

5.2. Tipi per i reali

5.2.1. float

5.2.2. double

5.3. char (il tipo per i caratteri)

5.4. boolean (il tipo per i valori logici)

6. Organizzazione delle risorse di Java (la libreria standard)

6.1. Package

6.2. Classi

6.3. Istruzione di import

6.4. Importazione di tutte le classi di un package

6.5. Importazione di una specifica classe di un package

6.6. Importazione di tutte le risorse interne di una classe

6.7. Importazione di una specifica risorsa interna a una classe

6.8. Importazione statica

6.9. Il package fondamentale

7. La classe String del package java.lang

7.1. Dichiarazione di una String

8. La classe Math del package java.lang

8.1. Alcune funzioni matematiche

8.1.1. sqrt()

8.1.2. pow()

8.1.3. random()

8.1.4. round()

8.1.5. hypot()

8.1.6. min()

8.1.7. max()

8.2. Le costanti

8.2.1. E

8.2.2. PI

9. Lettura di dati da tastiera

9.1. La classe Scanner del package java.util

9.1.1. Dichiarazione di un oggetto Scanner

9.1.2. I metodi della classe Scanner

9.1.2.1. nextByte()

9.1.2.2. nextShort()

9.1.2.3. nextInt()

9.1.2.4. nextLong()

9.1.2.5. nextFloat()

9.1.2.6. nextDouble()

9.1.2.7. nextBoolean()

9.1.2.8. next()

9.1.2.9. nextLine()

10. Costrutto di selezione if-else

11. Operatori relazionali

12. Lo pseudo costrutto else-if

13. Operatori logici

13.1. AND &&

13.2. OR ||

13.3. NOT !

14. Espressioni logiche

15. I costrutti iterativi

15.1. Costrutto di iterazione while

15.2. Costrutto di iterazione for

16. Istruzione break

17. Concatenazione fra stringhe e fra stringhe e numeri

18. Classi per numeri di lunghezza arbitraria

18.1. BigInteger Classe per interi di lunghezza arbitraria (package java.math)

18.2. BigDecimal Classe per reali di lunghezza arbitraria (package java.math)

19. La funzione random() della classe java.lang.Math

19.1. Generazione di numeri casuali compresi in intervalli del tipo [X, Y) e [M, N] (con X e Y di tipo double, M e N di tipo int)

20. I caratteri

20.1. Codice ASCII

20.2. Operazioni sui char

20.2.1. Trasformazione di una lettera minuscola in maiuscola e viceversa

20.2.2. Trasformazione di una cifra, data in forma di char, nel corrispondente valore int e viceversa

21. Array

21.1. Dichiarazione di un array monodimensionale

21.2. Inizializzazione di un array monodimensionale

21.3. Lunghezza di un array monodimensionale

21.4. Separazione fra dichiarazione e creazione

21.5. Rappresentazione grafica di un array monodimensionale

21.6. Applicazioni

21.6.1. Somma degli elementi di un array

21.6.2. Minimo degli elementi di un array

21.6.3. Massimo degli elementi di un array

21.6.4. Scambio degli elementi fra due array di uguale lunghezza

21.6.5. Conversione di una String in un array di char

21.6.6. Conversione di un array di char in una String

21.6.7. Conversione di una String in maiuscolo

21.6.8. Conversione di una String in minuscolo

21.6.9. Scansione diretta e inversa di un array unidimensionale

22. Incapsulamento del codice: i metodi

22.1. Parametri passati

22.2. Tipo restituito

22.3. Metodi void

22.4. Sovraccarico del nome dei metodi

22.5. Metodi per array

22.5.1. Lettura elementi di un array da tastiera

22.5.2. Stampa di un array

22.5.3. Somma degli elementi (per array numerici)

22.5.4. Media aritmetica

22.5.5. Prodotto degli elementi

22.5.6. Media geometrica

22.5.7. Media quadratica

22.5.8. Varianza

23. Conversione fra tipi numerici diversi

23.1. Conversione da un tipo intero meno ampio a un tipo intero più ampio (promozione)

23.2. Conversione da un tipo intero più ampio a un tipo intero meno ampio (casting)

23.3. Conversione da float a double (promozione)

23.4. Conversione da double a float (casting)

23.5. Conversione da float a int (o long) e viceversa

23.6. Conversione da double a int (o long) e viceversa

24. Lunghezza di una String

25. Confronto fra stringhe

25.1. Confronto che tiene conto dell'attributo maiuscolo-minuscolo

25.2. Confronto che non tiene conto dell'attributo maiuscolo-minuscolo

26. Trasformazione tipoNumerico à String e String à tipoNumerico

26.1. Trasformazione di un tipo numerico in una String

26.2. Trasformazione di una String in un tipo numerico

26.3. Trasformazione di un tipo numerico in un array di char

26.4. Trasformazione di un array di char in un tipo numerico

27. Applicazioni matematiche

27.1. Media aritmetica

27.2. Media dei quadrati

27.3. Media geometrica

27.4. Varianza

27.5. Percentuale

27.5.1. Depositi bancari

27.5.1.1. Capitale CN all'anno N se C0 è il cap. iniziale e I l'interesse annuo percentuale

27.5.1.2. Valore di N affinché CN = K

27.5.2. Calcoli con l'iva

27.5.3. Calcolo costo della vita

27.6. Fattoriale

27.7. Conversione da binario a decimale

27.8. Conversione da decimale a binario

27.9. Conversione da base B minore di 10 a decimale

27.10. Conversione da decimale a base B minore di 10

28. Rivisitazione linguistica di Java

28.1. Elementi lessicali

28.1.1. Commenti

28.1.2. Parole chiave

28.1.3. Identificatori

28.1.4. Separatori

28.1.5. Operatori

28.1.6. Letterali

28.2. Letterali

28.2.1. Letterali per i tipi interi

28.2.1.1. Letterali byte (sono quelli di valore fra -128 e +127)

28.2.1.2. Letterali short (sono quelli di valore fra -32768 e +32767)

28.2.1.3. Letterali int

28.2.1.4. Letterali long (vogliono una L finale)

28.2.2. Letterali per i tipi reali

28.2.2.1. Letterali float (vogliono una F finale)

28.2.2.2. Letterali double (vogliono una D finale)

28.2.3. Letterali boolean

28.2.4. Letterali char

28.3. Definizione formale di identificatore

28.4. Operatori

28.4.1. Operatori aritmetici di base (+, -, *, /, %)

28.4.2. Operatori di incremento e decremento

28.4.3. Operatori di assegnazione

28.4.4. Operatori relazionali

28.4.5. Operatori logici

28.4.6. L'operatore . (come in Math.random()) (c'è solo da dire come si usa)

28.4.7. L'operatore di indicizzazione [] di array (c'è solo da dire come si usa)

28.4.8. Operatori binari e unari

28.4.9. Precedenza degli operatori

28.5. Operandi

28.5.1. Variabili

28.5.2. Costanti

28.5.3. Letterali

28.5.4. Metodi

28.6. Espressioni

28.6.1. Espressioni aritmetiche

28.6.2. Espressioni logiche

28.6.3. Espressioni di concatenazione di stringhe

28.7. Tipi di istruzioni

28.7.1. Istruzioni di dichiarazione di variabili (con o senza inizializzazione)

28.7.2. Istruzioni di dichiarazione di costanti (con o senza inizializzazione)

28.7.3. Istruzioni di assegnazione

28.7.4. Istruzioni di selezione

28.7.4.1. Istruzione di selezione if

28.7.4.2. Istruzione di selezione if-else

28.7.4.3. Pseudo-istruzione else-if

28.7.5. Istruzioni di iterazione

28.7.5.1. Istruzione while

28.7.5.2. Istruzione for

28.7.6. Istruzione break

28.7.7. Istruzione di invocazione di metodo

28.7.8. Istruzione di dichiarazione di metodo

28.7.9. Istruzione di import

28.8. Array: meccanismo di aggregazione di dati

28.9. Metodi: meccanismo di incapsulamento del codice (astrazione sul codice)

Ritratto di Moreno
Moreno
(Guru)
Offline
Guru
Iscritto: 24/09/2004
Messaggi: 16862

Ciao

Non capisco proprio come possiamo aiutarti, secondo me hai le idee un po' confuse.
Usare Linux ed essere un programmatore sono due cose completamente distinte anche se ovviamente essere un programmatore da una mano.

Il programma da te presentato su Java è a dir poco introduttivo per cui sicuramente può tornarti utile visto che l'informatica di base si sta diffondendo nell'istruzione primaria.

Qui c'è semplicemente da studiare e niente altro, puoi tranquillamente mettere Linux nel cassetto.

Ciao Ciao, Moreno

Addio, e grazie per tutto il pesce.
Avatar by moonlight-dream.

Ritratto di Alwuzer
Alwuzer
(Geek)
Offline
Geek
Iscritto: 16/10/2005
Messaggi: 111

Se, quindi, ti interessa Java e vuoi usarlo su Linux (Java è un linguaggio multipiattaforma, ovvero le applicazioni scritte in tale linguaggio possono girare su qualsiasi sistema operativo --a patto di non abusare con le librerie dedicate!), è necessario installare l'ultimo JDK (mi pare che sia l'1.6.0_0.6, anche detto jdk 6 versione 6) da sun.java.com. Puoi utilizzare, poi, come ambiente integrato di sviluppo (ovvero come IDE) Eclipse oppure NetBeans, anche se nulla vieta di scrivere con il proprio editor di fiducia i sorgenti e compilarli a mano! :-P

Attenzione a scaricare dal sito dedicato a Java JDK e non Java SE (che è solo il runtime e non il framework necessario per sviluppo di software).

Spero di essere stato sufficientemente chiaro nell'indirizzarti,
ciao!

casa: Mandriva 2010.1 - i586 su Dell Inspiron 6400.
ufficio: Mandriva 2010.1 - x86_64 su Compaq 500B MT (Intel Dual Core)