Newsgroup: it.comp.programmare
Titolo: programmo da anni e non so programmare

Un saluto tutti i niusgruppari.
Avrei una richiesta:
sono anni che programmo, ho cominciato con il basic, passando per il
pascal, poi un po' di c, adesso sto cominciando java, ma ultimamente mi
rendo conto di una cosa:
non so programmare.
Mi spiego: la mia programmazione, avendo io solo il diploma in informatica
e non una laurea, non avendo fatto corsi, e lavorando in una ditta dove la
formazione informatica su pc è inesistente, è quella di un principiante,
goffa, "infantile" e spesso con dei buchi di conoscenza.
ad esempio ho scoperto solo da poco che le variabili in virgola mobile
hanno una precisione limitata.
Mi interesserebbe qualche link che mi insegni le basi teoriche della buona
programmazione. Nonmi interessa sapere tutto su un linguaggio, mi
interessano proprio le basi comuni della programmazione.
Grazie per l'attenzione
-------------------------------------------------------
Messaggio inviato da 
http://www.sandlab.org/newsgroup/
Accesso gratuito via web ai Newsgroup

Tra le altre cose mi interesserebbe avere una conoscenza di :
-gestione errori ed eccezioni
-un minimo di gestione db (lavoro con i db, ma un conto è capire come
funziona un db, un'altra è lavorarci)
-un po' di algoritmi 
-strutturazione programmi (top-down, bottom-up, oggetti)



cerca qualcosa sull'ingegneria del software
ciauz
Vincenzo 'lo sciamano'   Bologna (ITALIA-ITALY)
Homepage  
http://www.geocities.com/vincesalsero/
Membro Fondatore del CSM (Club Seghe Mentali)
http://www.seghementali.org

 
http://www.seghementali.org
Conosco il tuo sito, è supersimpatico!


 -strutturazione programmi (top-down, bottom-up, oggetti)
non ho mai visto libri che trattano nello specifico la strutturazione 
dei programmi; per quel che riguarda la programmazione OO ti posso 
consigliare (anche se non l'ho ancora letto, ma e` oramai un classico)
Gamma et al. (aka GoF), "Design Patterns"
Nota che ci sono altri argomenti che un buon programmatore dovrebbe 
conoscere. Ad esempio e` fondamentale avere una buona conoscenza di come 
funziona un calcolatore; l'unico libro che ho letto sull'argomento 
(ottimo) e`:
* A. Tanenbaum, "Architettura dei computer, un approccio strutturato"
ma sicuramente ci sono anche altri libri sull'argomento.
Un altro libro che IMHO non dovrebbe mancare dalla biblioteca di un 
programmatore e`:
* B. Kernighan, R.Pike, "Programmazione nella pratica"
una raccolta di consigli, tecniche e soluzioni a problemi comuni 
veramente ottima.
Oltre ai libri di "cultura generale" non dovrebbero mancare anche quelli 
relativi agli specifici linguaggi che usi; alcuni esempi:
* B. Stroustrup, "The C++ programming language, 3rd edition"
S. Lippman, J. Laoje, "C++ Primer"
B. Eckel, "Thinking in C++" (scaricabile da 
www.bruceeckel.com
)
B.Kernighan, D. Ritchie, "The C programming language"
mi pare che ce n'e` abbastanza ;-)
ciao Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.73, higher than 99% of all previous test takers.
C Language: 3.79, higher than 92% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

Gamma et al. (aka GoF), "Design Patterns"
Mi permetto di aggiungere:
Bertrand Meyer, "Object Oriented Software Construction".
Io ho ancora la prima versione ed e' uscita la seconda nel
1997.
Sono in procinto di comprarlo...
-- 
Andrea Laforgia (
walkie...@libero.it
)
"Usenet is a strange place" [Dennis Ritchie]

 interessano proprio le basi comuni della programmazione.
potresti iniziare con questo libro:
http://www.gustavus.edu/~max/concrete-abstractions.html
oppure se cerchi un libro gratuito:
http://mitpress.mit.edu/sicp/
poi dovresti studiarti le materie teoriche che si facevano nella vecchia
laurea quinquennale:
metodi formali dell' informatica e linguaggi di programmazione

 1997.
in effetti volevo consigliarlo, ma non ricordavo piu` l'esatto titolo 
del libro e non avevo voglia di andarlo a cercare... cmq penso che prima 
o poi lo leggero` anche io.


business logic dell'applicazione direttamente in SQL.
Anche se ogni DBMS che si rispette mette a disposizione
facilitazioni di questo tipo, SQL rimane a tutti gli effetti
un "Query Language".



http://mitpress.mit.edu/sicp/
Molto interessanti.
Mi chiedevo: visto che l'esigenza di Ivan e' sentita da
moltissime persone (me compreso), ovvero quella di avere dei
*riferimenti* a cui fare capo, si potrebbe stilare una lista
di libri che conviene acquistare, libri che conviene
scaricare, libri e risorse on-line.  Qualsiasi cosa,
insomma, possa arricchire un programmatore.
L'apporto di tutti consentirebbe di creare una base comune
da cui partire.
Magari il buon Martelli potrebbe aiutarci, visto che lui li
avra' letti quasi tutti ;)
Magari questa lista, insieme ad altre informazioni, potrebbe
essere postata periodicamente sul ng.
Un inizio potrebbe essere il seguente (dimmi che ne pensate
e suggeritemi aggiunte sui MILIONI di argomenti che
mancano):
---------------------------
Programmazione in generale:
---------------------------
D. Knuth, "The Art of Computer Programming"
N. Wirth, "Algorithms + Data Structures = Programs"
B. Meyer, "Object Oriented Software Construction" 2^ ed.
B. Kernighan, R. Pike, "The Practice of Programming"
R. Sedgewick, "Algoritmi in C"
---------------------
Architettura Computer
---------------------
A. Tanenbaum, "Architettura dei computer, un approccio
strutturato"
-----------------
Sistemi Operativi
-----------------
A. Tanenbaum, A. Woodhull, "Operating Systems. Design and
Implementation", 2^ ed.
---------------
Design Patterns
---------------
Gamma et al. (aka GoF), "Design Patterns"
B. Eckel, "Thinking in Patterns" (scaricabile da
www.mindview.net
)
-------------------
Teoria dei database
-------------------
E.F. Codd, "The Relational Model For Database Management"
R. Van der Lans, "Introduzione a SQL"
A. Albano, "Costruire sistemi per basi di dati".
-----
C/C++
-----
B. Kernighan, D. Ritchie, "The C Programming Language" 2^
ed.
B. Stroustrup, "The C++ Programming Language", 3^ ed.
S. Lippman, J. Lajoie, "C++ Primer", 3^ ed.
S. Lippman, "Inside the C++ Object Model"
B. Eckel, "Thinking in C++", 2^ ed. (scaricabile da
www.mindview.net
)
S. Meyers, "Effective C++ 2nd edition"
S. Meyers, "More Effective C++"
H. Sutter, "Exceptional C++"
H. Sutter, "More Exceptional C++"
----
Java
----
K. Arnold, J. Gosling, D. Holmes, "The Java Programming
Language" 3^ ed.
B. Eckel, "Thinking in Java", 2^ ed. (scaricabile da
www.mindview.net
)
------
Python
------
B. Eckel, "Thinking in Python" (scaricabile da
www.mindview.net
)
------
Delphi
------
X. Pacheco, S. Teixeira, "Delphi 6 Developer's Guide".
M. Cantu', "Mastering Delphi 6".
-------
Windows
-------
C. Petzold, "Programming Windows", 5^ ed.
J. Ritcher, "Programming Applications for Microsoft
Windows", 4^ ed.
---
ASP
---
S. Mitchell, j. Atkinson, "Active Server Pages 3.0".
---
COM
---
D. Box, "Essential COM"


non so programmare.
Hai tutta la mia solidarieta' :)
Non preoccuparti, e' un problema sentito da molti.
In realta', tocca studiare per conto proprio.  Spendere un
bel po' di soldi di libri e aver voglia di imparare.
Non credere che la laurea ti faciliti.  Senza dubbio ti
offre una formazione teorica di base abbastanza valida e ti
insegna a imparare, ti dice che certe cose *esistono*, ma
poi il compito di *conoscerle* tocca a te ;)
L'importante e' avere passione e fame di conoscenza ;)


 -----
W. Richard Stevens (+), "UNIX Network Programming, Voll. 1 & 2", 
Prentice Hall Software Series.
----
Perl
----
Larry Wall & Al., "Programming Perl", 3rd Ed., O'Reilly.
Tom Christiansen & Al., "Perl Cookbook", O'Reilly.
;)
-- 
Baci,
Mony

Thanks, metto tutto on-line, pubblicamente consultabile ;)



www.mindview.net
)
io aggiungerei la documentazione ufficiale...
Thinking In Python č piuttosto avanzato..come dice Eckel:
"
This is not an introductory Python book. This book assumes
you've learned the basics of Python elsewhere. I personally
like Learning Python by Lutz & Ascher, from O'Reilly.
Although it does not cover all the Python 2.0, 2.1 and 2.2
features that I use in this book, most books don't at this
point.
"
--
Lawrence "Rhymes" Oluyede
rhy...@myself.com
Redattore di HiT
http://hit.edengames.net


beh, diciamo che se hai chesso' due anni di esperienza su Oracle,
ci metti poco a riconvertirti su SQL Server, se invece devi partire
da zero...
ciauz


ci metti poco a riconvertirti su SQL Server
Non ci giurare.
Prova a programma con PL/SQL sotto SQL Server ;)


Thinking In Python č piuttosto avanzato..come dice Eckel:
Che sia avanzato o meno, non importa.



ho detto poco non due secondi :) 


io aggiungerei anche il Deitel & Deitel nella sezione C


 strutturato"
Io consiglierei  di girare  alla larga dall'edizione  italiana: l'ultima
sembra tradotta  con altavista. Io  avevo letto  un vecchia  edizione in
inglese (quella dove  parlava ancora del 386) ed era  veramente un altro
pianeta. Nell'edizione italiana il traduttore  cerca di imitare lo stile
conciso di Tanenbaum, creando  frasi con una sintassi improbabile. Senza
contare che vengono tradotti anche  molti termini inglesi di uso comune:
ad esempio il controller Wide-SCSI diventa il controllore SCSI largo...
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Mi piace avere amici rispettabili;
Mi piace essere il peggiore della compagnia.

ad esempio il controller Wide-SCSI diventa il controllore SCSI largo...
ROTFL...


Ringrazio tutti quelli che mi hanno dato dei consigli.
Adesso di roba da leggere ne avro'...
Spero di poter aiutare a mia volta qualcuno, quando saro' in grado di
farlo...
ciao e grazie


 Thanks, metto tutto on-line, pubblicamente consultabile ;)
Forse faccio una domanda stupida... online *dove*?
Thanx :)

 un "Query Language".
 
non riesco a seguirti. Se SQL mette a disposizione anche altri strumenti 
che vanno oltre le query allora e` implicito che SQL non e` solo un 
"query language".
Forse intendi che trigger e stored procedure non sono standard ma 
estensioni dei singoli prodotti: se e` cosi` ti sbagli perche` fanno 
parte dell'ultimo standard (anche se non saprei dirti l'anno).


 Io consiglierei  di girare  alla larga dall'edizione  italiana:
[cut]
io ho letto la traduzione della quarta edizione (anno 2000) ed era fatta 
bene. In effetti in giro c'e` la nuova edizione, ma non l'ho mai letta.


 -----
[cut]
qua aggiungerei:
Scott Meyers, "Effective STL"
Andrei Alexandrescu, "Modern C++ Design" 


 Forse faccio una domanda stupida... online *dove*?
Ancora non l'ho fatto, appena lo faccio ve lo comunico ;)
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 parte dell'ultimo standard (anche se non saprei dirti l'anno).
No, non intendo questo, lo so benissimo che trigger e stored proc 
sono supportate a livello standard.  Quello che voglio dirti, senza 
fossilizzarci troppo in questioni cosi' banali, e' che se SQL ha
SEMPRE permesso di manipolare i dati in modo diverso da una semplice
"query" (basta considerare un ALTER TABLE, un INSERT, un DROP TABLE,
ecc...), ma e' universalmente riconosciuto come un "Query Language". 
Quando parlo di "linguaggio di interrogazione", sottointendo che 
possieda anche altri costrutti per la manipolazione dei dati.
Non ha senso dire: no, non e' piu' solo questo, lo e' sempre stato.


Aggiungo un link a: 
http://www.python.org/doc/
Agigiungi anche "Python 2.1 Tutto e Oltre" di David Brueck e Stephe
Tanner, AFAIK è l'unico libro in italiano su Python
(
http://www.apogeonline.com/libri/00976/scheda
).
-- 
Marco Barisione (ICQ 84277092)

 Non ha senso dire: no, non e' piu' solo questo, lo e' sempre stato.
ok, ho capito cosa intendi anche se non sono completamente d'accordo.
Cmq hai ragione tu, non ha molto senso stare a parlare di terminologia.


 Ancora non l'ho fatto, appena lo faccio ve lo comunico ;)
possiamo anche mettere questa lista su Programmazione.it se volete.


 mancano):
qualcuno ha dimenticato l'amato/odiato VB?  <g>
Programmare Microsoft Visual Basic 6.0
di Francesco Balena
l'idea della raccolta di libri e manuali mi sembra ottima; suggerisco di
indicare, per ognuno, il grado di complessità (anche a grandi linee...)
--
Faber

 qualcuno ha dimenticato l'amato/odiato VB?  <g>
credo che sia OT e in ogni caso non in linea con il subject:
il ng si chiama it.comp.*programmare*, il verbo "programmare" compare 
due volte nel subject: cosa c'entra Visual Basic con la programmazione? 
;-)))))))))


;-)))))))))
ROTFL, questa è una delle migliori battute che ho sentito...
...mi dai il permesso di metterla nella signature? :)


 ;-)))))))))
Beh, c'entra attribuendo a "programmare" un senso più ampio. Infatti
imparando e decidendo di usare VB stai programmando di rovinarti la carriera
di programmatore :D
ciao
--
Luigi
Web Site: 
http://web.tiscali.it/luigi_web
E-mail: 
cybe...@email.it
ICQ #46240443

 ...mi dai il permesso di metterla nella signature? :)
con piacere, ma metti anche il copyright ;-))
anzi, no: oggi mi sento buono, ti rilascio la battuta sotto GPL :-))


 ;-)))))))))
dipende tutto da come usi VB.
--
Faber
http://www.faberbox.com

anzi, no: oggi mi sento buono, ti rilascio la battuta sotto GPL :-))
Con la GPL non rinunci al copyright.
-- 
Saluti,
    Mardy
http://castellina.org/interlingua

 dipende tutto da come usi VB.
ovvio, come tutti i linguaggi di programmazione.
Pero` c'e` da dire che l'ambiente VB, nel complesso (IDE + Linguaggio), 
non aiuta certo a stendere programmi scritti bene.


 non aiuta certo a stendere programmi scritti bene.
Posso anche essere d'accordo, ma non mi sembra il caso di fare una
crociata come sta facendo Lawrence Oluyede mettendo la tua battuta come
firma...
Buffo che, in uno stesso messaggio con quella firma, abbia scritto
(giustamente):
"un saggio tibetano una volta disse: non č il linguaggio che
fa il programmatore.. :)"
Non č il semplice fatto di usare VB, C++ o Delphi che fa il
programmatore, ma il _modo_ e l'approccio con cui viene usato lo
strumento.
Spero, inoltre, che nessuno mi venga a dire che chi usa VB non č un
programmatore per il semplice fatto che VB non č a oggetti o non č
propriamente un linguaggio, perché non saprei neanche come rispondergli
<eg>
Concludo precisando che con questo post non voglio offendere nessuno,
tantomeno Lawrence Oluyede che - credo - ha inserito quella frase nella
firma piů per ironia che per convinzione.
--
Faber
http://www.faberbox.com

firma più per ironia che per convinzione.
Pure irony ;-)
--
Lawrence "Rhymes" Oluyede
rhy...@myself.com
cosa c'entra Visual Basic 
con la programmazione?
(Antonio Cuni, PROGRAMMATORE)

strumento.
Giusto, in teoria.
Giusto in pratica, fino a un certo punto.
La programmazione moderna prevede determinati *modi* ed
*approcci* ed e' grave, quindi, il fatto che VB non ti
consenta di applicarli.
E' grave il fatto che MS abbia tenuto lontano i
programmatori Visual Basic, dall'avvento del modello
orientato agli oggetti, sino ai giorni nostri.
E' Microsoft stessa a discriminare i suoi stessi clienti
programmatori e a renderli deficienti nei confronti degli
altri.  
Personalmente non ritengo i programmatori VB dei
programmatori di serie B, ci mancherebbe altro (provate a
considerare Francesco Balena un programmatore di serie B ;).
Una cosa pero' che non si puo' ignorare e' il fatto che,
essendo il VB (non considero 
VB.NET
) un linguaggio
object-based e non object-oriented, non e' adatto per chi
comincia a programmare (perche' oggi *tutto* e'
object-oriented).
Intendendo, ovviamente, con "programmare", il volerlo fare
seriamente.
Un programmatore VB, che conosce SOLO il VB, per quanto
serio, impegnato, in gamba, non puo' discutere con un suo
collega programmatore di aspetti riguardanti l'OOP, se non
altro perche' non l'ha mai vista nella pratica, e questo e'
un grave handicap.
Dal punto di vista "pregiudiziale" (leggi punto di vista
"sbagliato") questo conta molto.  Molta gente non si fida
dei programmatori VB, perche' troppo spesso ha avuto a che
fare con persone che si sono avvicinate alla cosa piu'
facile che potevano usare e si sono fermate li'.
Poi, nella pratica, il pregiudizio e la realta' dei fatti
sono molto piu' vicini di quanto si potrebbe pensare ;)


 sono molto piu' vicini di quanto si potrebbe pensare ;)
Sono d'accordo anche su questo; un programmatore che conosce solo VB (e
derivati) ha molte difficoltà nel discutere di OOP con altri, anche se
ne ha studiato la teoria (proprio perché gli manca la pratica).
Se è un vero programmatore, però, ha in sé quel desiderio di apprendere
e di scoprire che lo porterà quasi sicuramente alla conoscenza di questo
e di molti altri aspetti essenziali della sua passione.
--
Faber
http://www.faberbox.com

 gente che usa VB non per _programmare_....
Concordo appieno, anche con il resto della risposta.
C'è anche parecchia gente che dice di 'programmare' in HTML eheheh...
forse sono questi i migliori di tutti  ;)
Ciao
--
Faber
http://www.faberbox.com

 nella pratica, e questo e' un grave handicap.
E uno che programma solo in C non OO?

object-oriented).
non sono daccordo con la tua affermazione che oggi tutto è
OO. E' vero l'OOP semplifica la vita in molti casi ma non
credo che _tutto_ sia OO
--
Lawrence "Rhymes" Oluyede
rhy...@myself.com
cosa c'entra Visual Basic 
con la programmazione?
(Antonio Cuni, PROGRAMMATORE)

E uno che programma solo in C non OO?
Uno che programma SOLO in C e che non e' ancora passato al
C++ ha qualche problema, a mio avviso.


credo che _tutto_ sia OO
La programmazione, oggigiorno, si fonda sul paradigma
orientato agli oggetti.


 Con la GPL non rinunci al copyright.
hai pienamente ragione; qualche ora dopo aver postato mi ero accorto del 
mio errore...


 qualche problema, a mio avviso.
Al punto da non considerarlo un programmatore???

 orientato agli oggetti.
non sono pienamente d'accordo.
E` perfettamente vero che l'OO e` un ottimo paradigma che consente di 
scrivere codice decisamente migliore che non nell'era pre-OO.
Ma dire che "la programmazione si fonda sul paradima OO" mi pare 
esagerato: semmai e` il paradigma OO che si fonda sulla programmazione 
(non ci sarebbe alcun OO se non ci fosse necessita` di programmare).
Piuttosto direi qualcosa del tipo "la maggioranza dei programmi 
sviluppati al giorni d'oggi si basa sul paradigma OO".


sviluppati al giorni d'oggi si basa sul paradigma OO".
Il senso della mia frase e' esattamente questo.
Dire che la programmazione di fonda sull'OO, oggigiorno, e'
equivalente a dire che la chirurgia si fonda sull'uso del
bisturi, oggigiorno.  Se poi vogliamo filosofeggiare e usare
le parole per giudicare altre "parole" allora facciamolo su
un altro ng.  Si sta parlando della *sostanza* e la sostanza
e' che oggi non si puo' essere a digiuno di OOP.
