"Null reference exception"? no, grazie, prendo un "unexpected T_VARIABLE"... Questo è il forum per imparare l'arte della programmazione o per chiedere un parere su una sessione di debug particolarmente ostica.
Regole del forum Ricorda di indicare chiaramente nell'oggetto il linguaggio ([C#] oppure [PHP], [Java], [HTML], ...), se la discussione ne riguarda uno in particolare!
Ciao a tutti,
qual è il miglior modo per iniziare a programmare da neofita secondo voi? E voi che percorso avete fatto?
Non avendo modo di imparare a scuola (faccio lo scientifico) vorrei avvicinarmi alla programmazione, ma con quali mezzi? Youtube? Libri?
A voi l'arduo consiglio
Grazie in anticipo
Zane ha scritto:Per partire da zero, forse PHP è il meno maccchinoso.
Eccettuando Python (su cui non mi esprimo, non conoscendolo per niente (anche se leggo "variabili non tipizzate in modo forte e uso dell'indentazione per definire i blocchi di codice" e già questo, personalmente, mi piace molto poco)), concorderei con te riguardo la facilità di sviluppo di PHP, ma credo che nel medio-lungo periodo un linguaggio più completo e potente possa aiutare a prendere dimestichezza con concetti come la programmazione ad oggetti. Questo mi farebbe suggerire piuttosto Java o C#.
Dovendo lavorare sul solo Windows (come suppongo), la cosa più veloce è realizzare qualcosa che non debba passare tramite la (non banalissima) configurazione di Apache (o similari) e un browser web per l'esecuzione (quindi senza debugger e altri tool utili, e con l'obbligo di imparare anche le basi di HTML), ma che sia immediatamente utilizzabile e "riconoscibile", come una applicazione desktop tradizionale, con MessageBox, bottoni ecc... In quest'ottica, C# e il .NET e Visual Studio offrono un ambiente sicuramente più user-friendly di Java, quindi il mio consiglio protenderebbe per questa scelta.
Io ho iniziato con qualche libro e con le risorse Internet (sia ufficiali, spesso sottovalutate dal neofita secondo me, che non (guide di terze parti)). Personalmente non ho mai gradito molto le guide Youtube, ma credo che, accoppiate ad un libro o una serie di guide teoriche, possano comunque tornare utili.
P.S. In realtà, in ambito .NET il linguaggio più user-friendly è VB.net ma, poiché la sua diffusione è molto più ridotta rispetto al cugino C# e si trova molto meno materiale online, è preferibile puntare direttamente su C#, sicuri di avere un ritorno migliore una volta superato lo scoglio della sintassi un po' ostica.
Io invece mi sentirei di consigliarti il C. Per iniziare mi sembra il migliore e così ci si abitua a un linguaggio fortemente tipizzato, e relativamente multipiattaforma (prendetela con le pinze questa frase). Per il resto anche PHP e Python (che non conosco) vanno più che bene
Sicuro che C sia fortemente tipizzato? Mi vengono in mente i pericolosissimi (per il neofita) puntatori a void e i controlli sui cast piuttosto deboli (almeno se confrontati con quanto offerto da altri linguaggi a tipizzazione più forte) che poco si conciliano con tale espressione.
C è il linguaggio che è stato utilizzato dal mio professore all'università per insegnarci le basi della programmazione e, visti i risultati ottenuti, sono convinto che la scelta sia stata molto poco opportuna; personalmente non lo consiglierei a chi vuole iniziare (per quanto sia assolutamente consigliabile averci a che fare prima o poi, se si vuole programmare bene).
developerwinme ha scritto:Sicuro che C sia fortemente tipizzato? Mi vengono in mente i pericolosissimi (per il neofita) puntatori a void e i controlli sui cast piuttosto deboli (almeno se confrontati con quanto offerto da altri linguaggi a tipizzazione più forte) che poco si conciliano con tale espressione.
Hai ragione Io avevo scritto così pensando al fatto che devi specificare per ogni variabile il suo tipo, ma non avevo pensato ai puntatori a void.
developerwinme ha scritto:
C è il linguaggio che è stato utilizzato dal mio professore all'università per insegnarci le basi della programmazione e, visti i risultati ottenuti, sono convinto che la scelta sia stata molto poco opportuna; personalmente non lo consiglierei a chi vuole iniziare (per quanto sia assolutamente consigliabile averci a che fare prima o poi, se si vuole programmare bene).
Boh, a me invece è sembrato molto utile per capire il "quadro generale" diciamo.. ma come diceva eDog, de gustibus
C# secondo me richiede un po' d'impegno rispetto a Python ma sono d'accordo nel dire che da più soddisfazioni nel breve periodo.
Anche Python ne da, certo, ma nell'ambito delle interfacce grafiche e dell'integrazione con il sistema operativo, C# è una spanna più in alto. Penso sia il linguaggio più versatile in ambito Windows, e magari anche il più potente.
Non tutto merito suo, eh: .NET è un ottimo framework ben integrato con Windows e Visual Studio è un ambiente di sviluppo fenomenale
eDog I am convinced that He (God) does not play dice. - Albert Einstein
eDog ha scritto:Però io consiglio Python: molto semplice da imparare (più o meno come PHP) ma a mio avviso molto più versatile. Più del PHP, IMHO.
Anch'io, come eDog, consiglierei il Python...
... ha una velocissima curva d'apprendimento e di sviluppo, è multipiattaforma (come Java), è disponibile moltissima documentazione...
inoltre l'...
developerwinme ha scritto:... uso dell'indentazione per definire i blocchi di codice...
... viene vista come una "manna" da «certi programmatori», perché obbliga lo sviluppatore a utilizzare una metodologia di scrittura del codice che lo rende "quasi autoesplicativo", mettendo in risalto a "colpo d'occhio" i blocchi di codice e, soprattutto, gli annidamenti dei cicli.
Questo facilita molto la comprensione del codice (da cui il "quasi autoesplicativo"), normalmente negli altri linguaggi la corretta indentazione viene delegata alla "buona educazione" dello sviluppatore (educazione spesso disattesa), per cui è indubbia l'utilità didattica ed educativa del Python (che ti costringe a farla finché non diventa un'abitudine e non ti pesa più).
ninja ha scritto:Questo facilita molto la comprensione del codice (da cui il "quasi autoesplicativo"), normalmente negli altri linguaggi la corretta indentazione viene delegata alla "buona educazione" dello sviluppatore (educazione spesso disattesa), per cui è indubbia l'utilità didattica ed educativa del Python (che ti costringe a farla finché non diventa un'abitudine e non ti pesa più).
D'accordo con te con la potenziale utilità della cosa a fini didattici, ma un buon ambiente di sviluppo (come il già citato Visual Studio, ma oramai tutti quelli "meno semplici" lo fanno) indenta in modo automatico e corretto nel 95% delle volte senza che l'utente si disturbi a farlo, quindi non la vedrei come una differenza particolarmente rilevante, ma resta il fatto che la sensibilità di Python a questa problematica può rendere più complicato il debugging del codice, proprio perché l'errore potrebbe stare in una imprecisa indentazione, cosa che può capitare, dovendola fare a mano (soprattutto a chi è alle prime armi). (non capita con un IDE che lo fa in automatico, ma in tal caso cade anche l'argomento di partenza sulla utilità a fini didattici).
Detto questo, non conosco ancora per nulla questo Python, mi sa che a furia di ricevere consigli sull'usarlo, dovrò darci uno sguardo prima o poi.
developerwinme ha scritto:
Detto questo, non conosco ancora per nulla questo Python, mi sa che a furia di ricevere consigli sull'usarlo, dovrò darci uno sguardo prima o poi.
developerwinme ha scritto:
Detto questo, non conosco ancora per nulla questo Python, mi sa che a furia di ricevere consigli sull'usarlo, dovrò darci uno sguardo prima o poi.
Tu che linguaggi conosci?
In modo approfondito (nel senso che ci ho fatto applicazioni distribuite al grande pubblico (ESEMPIO)) solo VB.net (e, di riflesso, C#), in modo abbastanza approfondito (ma senza averci mai sviluppato un progetto serio completo) C/C++ e Visual Basic 6.0; poi ho un po' di esperienza sia con Delphi che con Pascal, più qualcosina (più che altro "in lettura") con PHP, HTML, Java e Assembler. Se ci sono esperienze che ho dimenticato di citare, è perché sono sostanzialmente minori.
Da quanto puoi notare, sono particolarmente legato alla programmazione in ambienti Microsoft, almeno finora. (dopotutto ho ancora meno di 20 anni )
Zane ha scritto:Non è che uno è più o meno "developer" a seconda di quanti linguaggi conosce... se uno ha "la testa" del programmatore, per me già lo è
Quoto: una volta acquisiti i fondamentali del pensiero del programmatore, i linguaggi sono una faccenda quasi minore.
zingiest ha scritto:Ma allora il tuo nick?! hahahah
Sinceramente non ricordo più la storia dietro il mio nick, che ho creato parecchi anni fa ed, essendomici affezionato, continuo ad usare.
Mi sembra molto efficace il nuovo linguaggio Julia , sintetico, veloce più facile di Python . Il linguaggio migliore dipende sempre dal tipo di problemi che si vogliono risolvere. Per problemi di studio, di calcolo numerico scientifico Julia per ora mi smbra molto potente. Per calcoli statistici ovviamente R è il massimo , Per la matematica SAGE (programmabile in Python) è quanto di meglio si possa chiedere
Buona scelta!
Inserendo un messaggio, dichiari di aver letto e accettato il regolamento di partecipazione.
Nello specifico, sei consapevole che ti stai assumendo personalmente la totale responsabilità delle tue affermazioni, anche in sede civile e/o penale,
manlevando i gestori di questo sito da ogni coinvolgimento e/o pretesa di rivalsa.
Dichiari inoltre di essere consapevole che il messaggio sarà visibile pubblicamente, accetti di diffonderlo con licenza
CC BY-NC-SA 3.0 (con attribuzione a "TurboLab.it") e rinunci ad ogni forma di compensazione (economica o altro).
Rinunci inoltre esplicitamente a qualsiasi pretesa di cancellazione del messaggio.