Con quale linguaggio inizio?

A

Arlog

non so se è la seziona giusta cmq....
vorrei imparare qualcosa con il pc tipo codici di programmazione html ecc...ma da dove inizio? cosa studio per prima? preferirei iniziare a studiare i codici di programmazione ma da quale inizio? e li devo studiare dalle guide? sono abbastanza valide per farti imparare un linguaggio di programmazione?
ditemi voi!
 
RE: da dove inizio?

allora per iniziare ti consiglio un linguaggio tipo vb.net che nn è difficilissimo e ti da già da subito soddisfazioni... poi ti consiglio di leggerti la guida di html.it tanto per iniziare...sempre su questo linguaggio e successivamente acquistati un buon libro (che secondo me è la miglior cosa)... ti posso consigliare i libri della Apogeo con cui io mi sono sempre trovato bene oppure quelli della McGraw Hill.
cmq. per chiarirti ancora un pò di più le idee ti posto questa guida:

Tutorial : "Con quale linguaggio inizio?"

Autore : active85k

Finalmente daremo una risposta come si deve a questo quesito che sembra essere una delle problematiche più complesse per quanto riguarda il mondo dei giovani newbies che vogliono intraprendere la via della programmazione. Come punto di riferimento principale, il sistema di cui parlerò sarà Windows ma durante il corso del tutorial vi indicherò anche informazioni relative agli altri tipi di piattaforma (che paroloni... praticamente vi parlerò anche del Linux).

Dite... quale sarebbe la risposta a questa terribile domanda? Beh... cercherò di informarvi il più possibile (anche paragonando alcuni esempi di codice se necessari) circa i vari linguaggi di programmazione, e in particolare analizzeremo:

Visual Basic

Delphi

C

Assembly

Inutile fare altri discorsi su derivati del C come l'utilizzo delle infrastrutture MFC: una volta che conoscete quel linguaggio non avete problemi ad impararne qualche specifica extra.



VISUAL BASIC:

Iniziamo dal primo punto. Il visual basic. Questo ambiente di sviluppo (workframe, da ora in avanti wf) è di tipo RAD. Che cosa vuol dire: si chiamano così gli ambienti che fanno inserire direttamente i componenti su di un form con ul semplice click del mouse e ne permettono la programmazione senza grossi problemi di gestione dell'applicazione a un livello un po' più basso. Per intenderci, il wf si occupa della parte "fastidiosa" di lavoro mentre voi iniziate direttamente a programmarci le varie funzioni ecc... Moltissimi programmatori usano questo linguaggio soprattutto per applicazioni non molto complesse. Come sistema è abbastanza veloce e immediato, molto utile se dovete dedicarvi allo svago, senza lasciare da parte propositi a livello commerciale. L'unico difetto che ha è quello che il codice, una volta compilato, a livello di ottimizzazione (e quindi velocità) è scadente. Ma come si dice, non tutto il male vien per nuocere: se mirate a programmare qualche protezione commerciale, è un'ottima scelta in quanto il codice è molto male organizzato e utilizza chiamate proprietarie per gestire i componenti, i file ecc... per questo motivo, ad un reverser/cracker cadono un po' le ossa quando scopre di dover reversare un'applicazione scritta in visual basic.

E' un linguaggio ad altissimo livello (chiariamo: non vuol dire che è difficile ma l'esatto contrario) non difficile da imparare con una sintassi molto semplice. Un altro difettuccio è quello che in alcune cosette siete limitati per quello che volete fare a causa della troppa "preoccupazione" che si assume il wf nella gestione degli eventi. Per personalizzare qualche operazione a livello più basso dovete fare un macello di giri. Nel complesso... per iniziare a programmare va bene, anche se non permette di ottenere un quadro schematizzato di come funziona la programmazione nel complesso e da un punto di vista meno "organizzato". :)



DELPHI:

Cambiando argomento, passiamo ad analizzare un linguaggio che a mio avviso può essere definito veramente ottimo sia per imparare a programmare che per continuare a sviluppare applicazioni, perché no, commerciali con tanto di professionalità, velocità e affidabilità. Sto parlando del delphi, l'ambiente di sviluppo della borland. Attualmente mi risulta che la sua ultima relase è la 8.0 (dettagli).

Io personalmente ho iniziato la mia pseudo-carriera di pseudo-programmatore proprio dal delphi. Anch'esso è un RAD ma con delle notevoli differenze rispetto al visual basic. Innanzitutto occupa 500mb e non 60 come il vb. :D In secondo luogo presenta un codice compilato molto scorrevole e ben ottimizzato. Per quanto riguarda questo linguaggio, si può scegliere di scrivere nella sua versione "pure delphi" (ovvero senza l'utilizzo di infrastrutture delphi con conseguenti complicazioni per i poveri crackers :) oppure si può scegliere la strada ordinaria (ovvero utilizzare l'ide tipo vb). Nel primo caso si fa riferimento a chiamate appartenenti tipicamente al sistema in uso per qualsiasi operazione vogliate eseguire. Nel secondo caso, il vostro lavoro viene notevolmente semplificato dall'utilizzo appunto di queste strutture delphi. Ne perdete parecchio in quanto a dimensioni del file eseguibile finale (non tanto per il codice quanto per tutte le classi che inevitabilmente vengono inserite nell'eseguibile per un caricamento in qualsiasi sistema). La sua sintassi (nella seconda scelta di programmazione) è molto simile a quella del visual basic, presentando delle specifiche più precise, soprattutto per quanto riguarda tutti i metodi di puntamento, vettori, matrici. Uno dei massimi componenti che vengono utilizzati nella maggior parte dei programmi scritti in delphi è l'accesso ai database. L'implementazione immediata e se vogliamo automatica di motori di apertura database come ADO, MySQL permettono facilmente di scrivere applicazioni veramente complesse basate sul ritiro di informazioni da basi di dati di grandi e piccole dimensioni. Molto utile è anche l'enorme varietà di componenti (standard e non) che si possono utilizzare all'interno di un'applicazione. Un altra delle grandi possibilità offerte da questo wf è la sua portabilità. Molto facilmente (purché nel codice non siano state utilizzate chiamate specifiche di qualche sistema in particolare) è possibile portare un eseguibile da sistemi windows a sistemi *nix grazie all'apposita versione delphi che per l'occorrenza cambia il suo nome in Kilyx. E' un ottimo punto di partenza che vi dà la possibilità di imparare a capire il funzionamento dei sistemi operativi usati per il funzionamento delle applicazioni.

C:

Non oso neanche immaginare quanti di voi aspettavano le mie considerazioni su questo linguaggio. In particolare parlo del Microsoft Visual C++ 6.0: uno dei sistemi più comunemente usati per la programmazione di applicazioni complesse e non. Basti pensare che Windows stesso è stato scritto utilizzando quel wf. Un ottimo sistema di programmazione che vi permette di gestire a basso livello qualsiasi forma di routine programmata. Dimenticatevi il RAD e iniziate a capire il vero funzionamento di windows e dei suoi componenti. Ogni funzione e ogni particolare deve essere programmato dall'inizio. Un linguaggio che esiste sia per windows sia per altri sistemi che permette la programmazione di qualsiasi tipo di applicazione grazie ad una sintassi molto completa e dettagliata grazie alla quale questo sistema viene utilizzato ormai sempre in sostituzione alla stragrande maggioranza dei linguaggi macchina di altri processori. La sua portabilità lo rende uno dei massimi linguaggi commerciali. Vengono sviluppate applicazioni per qualsiasi processore solo con lo sforzo di cambiare compilatore tra un processore e l'altro. Senza dubbio un linguaggio molto più complesso da imparare rispetto a quelli sopra citati ma che fornisce un'ampia scelta di quelli che saranno i vostri metodi di programmazione. Il codice finale è molto ottimizzato, veloce e non complesso. Le applicazioni sono affidabili e stabili al massimo. Per fare un esempio banale dico che ormai tutti i drivers sono scritti con questo linguaggio, persino il kernel dei sistemi operativi. Insomma, come dire: il C è sempre il C.

ASSEMBLY:

Ecco la vera chicca degli "smanettoni pericolosi". L'assembly. Sottolineo che in linea di massima parlo dell'assembly x86 (ovvero quello usato dagli ordinari processori che avete nelle vostre case, escluso il mac). La parola stessa ve lo dice: è il linguaggio macchina. Proprio per questo motivo, ovviamente non esiste interfaccia grafica (vi prendete il blocco note e iniziate a scrivere i vostri programmini :), non si pone il problema dell'ottimizzazione del codice perché l'assemblatore non farà altro oltre che a prendere le vostre istruzioni e a compilarle nell'eseguibile senza cambiarne una virgola (quindi datevi da fare). E' il linguaggio col più alto potenziale applicativo ma presenta le sue rogne. E' infatti impensabile sviluppare un'applicazione complessa in assembly: si devono usare istruzioni a livello macchina, anche il più semplice dei programmi rischia di assumere dimensioni veramente grandi nel suo codice sorgente. Le variabili dovete dichiararle da voi, i registri dovete saperli usare da voi, le istruzioni dovete conoscerle voi, dovete cacciare tutto dalla vostra capoccia. :D Per quanto ne so io, è un sistema relativamente utile poiché nelle ditte di sviluppo software non programmerete mai in assembly. Viene usato soprattutto dai programmatori di drivers per la fase di debugging degli stessi oppure dai reverser/cracker. :D Un utilizzo molto frequente che ne viene fatto è anche quello dello sviluppo di protezioni software, krypters di eseguibili, proprio grazie allo spazio che vi viene fornito per sistemare le istruzioni a vostro piacimento, senza rispettare alcuna regola di casting ecc.. ecc... Se siete veramente appassionati e soprattutto se avete molta pazienza e un cervello in buone condizioni, una volta imparato bene questo linguaggio, non vi si presenteranno problemi nel campo della programmazione.

Avete avuto le vostre spiegazioni, sapete dove mettere le mani. Spero che questo mini-tutorial serva per diminuire (per non dire annullare del tutto) le domande dei ragazzi che vogliono cimentarsi in questo campo.

spero di esserti stato d'aiuto!

ciao ciao ;)
 
RE: da dove inizio?

credo non ci sia niente da aggiungere alla risposta di cryon89 , complimenti per la risposta esaustiva !
 
RE: da dove inizio?

ho preferito spostare la discussione nella sezione programmazione ;)
mi sono permesso anche di editare il titolo con un altro più adeguato per la discussione ;)

ciao ciao :D
 
wow, complimenti cmq anche io concordo sul vb.net oppure se proprio vuoi iniziare dalla base (ma proprio base) ti consglio di usare il pascal (usa dev-pascal che è molto più bello del turbopascal), è un linguaggio particolarmente facile molto utile per iniziare, le applicazioni create non saranno della massima utilità subito ma si possono fare cose carine (giochi inclusi... il tetris dato come esempio con dev pascal ne è una prova)
 
noooooooooooooo dev-pascal noooooooooooooooooooo
a me mi fa inca come una bestia !!! si inventa errori inesistenti !!!!!
 
Non ho letto aim tutta la risposta di Cryon, ma visto la domanda:
Da che linguaggio inizio? e ho intraveduto la parola Assembly nella risposta... no vabè apparte gli skerzi,
dipende dai tuoi obbiettivi, se vuoi sviluppare in windows inizia pure dal VB.NET per poi magari passare al C#...
Se invece vuoi imparare da subito un linguaggio + complesso ma potente, cè il C++, che anche se come primo linguaggio è 1 po' complesso, se ti ci metti, con un buon libro cartaceo, entri veramente nel mondo della programmazione a 360°.
 
__GiReX__ ha detto:
Non ho letto aim tutta la risposta di Cryon, ma visto la domanda:
Da che linguaggio inizio? e ho intraveduto la parola Assembly nella risposta... no vabè apparte gli skerzi,
dipende dai tuoi obbiettivi, se vuoi sviluppare in windows inizia pure dal VB.NET per poi magari passare al C#...
Se invece vuoi imparare da subito un linguaggio + complesso ma potente, cè il C++, che anche se come primo linguaggio è 1 po' complesso, se ti ci metti, con un buon libro cartaceo, entri veramente nel mondo della programmazione a 360°.

da vb a c#? c# è simile al java lo sconsiglio dopo il vb.
inizia con vb (se sei proprio a terra il pascal nn è male agli esordi) poi con c e c++, per arrivare a programmare a livelli elevati però devi necessariamente avere conoscenze approfondite di matematica che solo studi universitari possono offrirti.
vabbè se sei un genietto l'autodidatta è un'alternativa alla dura vita accademica. X)
 
non aspettate un attimo ...
per quale motivo dovrebbe passare dal vb.net al C# se il linguaggi hanno la stessa " potenza " ma solo diversa sintassi ?????????????
 
ma scusa non aveva detto html nel primo post?

ergo si parla di web...

ergo si consiglia il percorso "normale":

hmtl,css
javascript
php
asp.net

e poi i vari flash,xtml ecc..
 
Ottima risposta Crayon :D
per la cronaca Microsoft ha dichiarato che l'ambiente di sviluppo VB.NET è migliore di quello C#.
badate bene ho scritto ambiente di sviluppo, non risultato finale quello è il medesimo.
 
secondo me dovrebbe imparare prima di tutto l'HTML poi il JavaScript e il PHP ed infine il Perl o Pynthon oppure direttamente al C/C++ o addiritttura all'assembly
 
AlexBio ha detto:
quoto, poi iniziare da quello non mi sembra la scelta migliore

certo, anche se a me sapere il funzionamento a baso livello ha dato una grande spinta nella comperensione dei programmi che scrivo, poi ti alleni a furia di k3ygen
 
Ma' secondo il mio piccolo parere inizierei con il C/C++ e intanto imparo anche i javascript che usa o stesso linguaggio, nel contemto poi appena ho una buona base... lasciando stare i costruttori e i distruttori che io non ho mai capito a che czz servano, allora mi butot un po' sul html e java.. nel frattempo vedo il linguaggio per gli applet e come funziano.. poi quando conosco l'html , lavorare con tabelle, layer e poi CSS .. poi se proprio vuoi spaccarti i maroni.. come sto facendo io mi sono buttato su php .. tralasciando asp.. e senza aver fatto un cacchio di pirl.. ;). .. vqbbe' e' solo un parere ma pero' cosi' completi un ciclo e impari meglio.
 
Chuzz ha detto:
AlexBio ha detto:
quoto, poi iniziare da quello non mi sembra la scelta migliore

certo, anche se a me sapere il funzionamento a baso livello ha dato una grande spinta nella comperensione dei programmi che scrivo, poi ti alleni a furia di k3ygen

? i keygen mica li fai solo in assembly...puoi farli in qualsiasi linguaggio!
 
credo che chuzz intendesse che conoscendo l'assembly si può capire dopo aver disassemblato il programma in che modo viene generata la pass. Dopo ovviamente si può fare in qualsiasi linguaggio ma per capire come farlo bisogna capire il reverse
 
nono i keygen li faccio in c e sono fattiblili in (quasi) qualsiasi linguaggio (devi capire come viene creato il key dall'assembler pero') intendo che scrivendo tanti keygen fai pratica (sai cosa vuol dire che i primi tempi ci mettevo 30 min per comprendere e annotarsi il calcolo -> 2 gg a scrivere il programma in C? :eek:). Poi se capisci come funzionano a basso livello trovi più facilmente errori,... insomma hai una marcia in più
 
Piccola parentesi sul creare un keygen:
reversare l'algoritmo di un programma e fare un keygen a volte ci si puo' impiegare una manciata di minuti, in altri casi servono giorni, e in certi casi non è possibile.
Una volta reversato l'algoritmo fare il keygen è una passeggiata.
Inoltre dipende dal linguaggio con cui è scritto il programma da reversare.
 
pazzo preddy possiamo fare la musichetta che precede i tuoi interventi? tipo quella degl aereoporti..PLIN PLON...


lul

cmq volevo aggiungere che un keygen lo puoi fare con qualsiasi ling di programmazione che può definirsi tale,altrimenti non è un ling di programmaziione,dato che per far eun keygen le operazioni son davvero poche (si tratta SPESSO di piccole routine di somma sottrazione di valori o lunghezza delle stringhe)
 
ctrl_alt_canc ha detto:
pazzo preddy possiamo fare la musichetta che precede i tuoi interventi? tipo quella degl aereoporti..PLIN PLON...

vedrei meglio la canzoncina di forum quando entra il giudice, fa molto più figo, quella dell'aeroporto tanto non la sta a sentire nessuno... :look: