[domanda] quanto ci vuole per imparare a programmare? Come si comincia da zero?

Stato
Discussione chiusa ad ulteriori risposte.

Marcomanci1

Utente Attivo
204
15
Ciao a tutti.
Vorrei farvi una domanda forse banale ma vorrei un parere personale di più persone per capire un paio di cose.
La prima è quanti anni ci vuole per imparare a programmare? Intendo conoscere i linguaggi per fare siti web, programmi vari, e giochi inserendo grafica 3d etc?

Ovviamente non intendo programmare un gioco come Battlefield da solo, ma avere le conoscenze le quali insieme a altre 100 persone allo stesso livello riusciamo a farlo .

Ho sempre avuto uno spiccato senso per l'orientamento informatico ed elettrico nel computer e nel suo funzionamento senza avere troppi problemi nel capire .
Per pigrizia non mi sono mai messo a programmare niente in assoluto e non ho idea di come cominciare e da dove . (Dato che non ho ancora finito le superiori sto pensando di andare in terza alla scuola informatica che abbiamo qua, ma vorrei prima farmi un idea).

Voi da dove mi consigliate di partire ? Avete qualche suggerimento di siti o libri o altro da tenere conto?

Inviato da LEX720 tramite App ufficiale di Tom\\\'s Hardware Italia Forum
 

icox

Utente Attivo
497
246
Imparare le nozioni di base e' relativamente semplice e veloce, imparare a scrivere codice di qualita' invece richiede molto piu' impegno, sopratutto in termini di tempo.
Solitamente si consiglia di iniziare con linguaggi tipo il C, che ti permettono di concentrarti sul codice lasciando da parte strutture e aspetti piu' complessi. Ma nulla vieta di partire anche con altri linguaggi.
Il mio consiglio e' di partire da qualcosa che pensi ti possa piacere, quindi scegli un ambito, poniti un obiettivo e inizia a studiare per raggiungerlo.
 

Marcomanci1

Utente Attivo
204
15
Imparare le nozioni di base e' relativamente semplice e veloce, imparare a scrivere codice di qualita' invece richiede molto piu' impegno, sopratutto in termini di tempo.
Solitamente si consiglia di iniziare con linguaggi tipo il C, che ti permettono di concentrarti sul codice lasciando da parte strutture e aspetti piu' complessi. Ma nulla vieta di partire anche con altri linguaggi.
Il mio consiglio e' di partire da qualcosa che pensi ti possa piacere, quindi scegli un ambito, poniti un obiettivo e inizia a studiare per raggiungerlo.
Allora per risponderti voglio fare programmi e giochi per pc (e per Android se riesco a collegare la cosa, ) usando grafica 2d-3d.
Quello che vorrei fare. ( della parte di disegno effettivo non mi interessa), c'è vorrei riuscire a fare un giochetto con un personaggino e una mappa 3d per dire. Tra qualche anno ovviamente ahaha

Inviato da LEX720 tramite App ufficiale di Tom\\\'s Hardware Italia Forum
 

nerf_commandline

Nuovo Utente
123
19
CPU
Amd Fx 8320 4.0 Ghz
Dissipatore
Noctua Nh-D14
Scheda Madre
Gigabyte Ga 990 XA-UD3
HDD
SO: SSD Crucial MX200 250 GB
RAM
2 x 8 GB HyperX Savage, DDR3, 1866MHz,CL9
GPU
Gigabyte HD 7970 Ghz Edition
PSU
Cooler Master VS 650W Semi modulare
Case
Thermaltake Chaser A71
OS
Windows 10; Kali Linux
Programmare un gioco (uno carino, non sasso-carta-forbice) è molto difficile e non alla portata di qualcuno che non sa ancora programmare. Non te la prendere ma sapere usare un pc non comporta necessariamente diventare un buon programmatore. Come diceva qualcuno: per imparare le basi della programmazione in qualsiasi linguaggio non ci vuole granchè...al massimo qualche giorno. Per padroneggiare il linguaggio invece, possono volerci anche anni. Solo quando padroneggi il linguaggio scrivi codice velocemente e di qualità, dove per qualità intendo indentato bene, strutture dati scelte accuratamente in base alle prestazioni e requisiti richiesti, funzioni e/o metodi efficienti (sia per la memoria che per la cpu), e soprattutto codice riusabile e/o manutenibile. E se proprio ti avanza tempo e voglia anche un po' di user experience :P
 

daniele.erunamo

Nuovo Utente
74
6
senza tralasciare poi l'aspetto memoria usata.
io ti consiglio di iniziare con java versione base ed euclipse.
trovi molto materiale valido in italiano e inglese tantissimi guide milioni di testi tantissime comunità italiane.
e poi se sei giovine trovi pure lavoro.:ok:
 

Hobet

Utente Attivo
609
222
CPU
i5 6600k
Dissipatore
AIO H100
Scheda Madre
ASUS z170 Deluxe
HDD
1 WD Blue 1 TB; evo 850 500gb
RAM
Vengeance 4x4
GPU
GTX 1070ti MSI
Audio
Nope
Monitor
MG278Q
Case
750D Corsair
Net
Fastweb 200/30
OS
PucyBuntu
senza tralasciare poi l'aspetto memoria usata.
io ti consiglio di iniziare con java versione base ed euclipse.
trovi molto materiale valido in italiano e inglese tantissimi guide milioni di testi tantissime comunità italiane.
e poi se sei giovine trovi pure lavoro.:ok:

Iniziare con Java rovina solo il programmatore (ripeto iniziare). Non è un linguaggio con cui iniziare, casomai python.
Un piccolo esempio per capire di cosa sto parlando:

Banale Hello World Java

Codice:
public class Hello {
public static void main(String[] args){
       System.out.println("Hello World");
    }
}

Metti di fronte al novizio questo ambaradam di codice di cui non ne capisce niente e il ciò confonde solo il programmatore, ponendo mille domande per un banalissimo "Hello World". E questo è solo l'inizio, non voglio addentrarmi nei dettagli altrimenti andrei off-topic e per coloro che non sono d'accordo, allego un piccolo articolo:


Questo naturalmente per i novizi che non hanno mai toccato codice, all'università si tende spesso a iniziare con Java cosa che a mio parere è sbagliatissima, infatti forma arroneamente tutti gli studenti ed infine quando gli presenti il C / C++ partono da capo come se non avessero acquisito niente, insomma tempo perso.

Dimensione tipi, tipi di dato, vettori di char, puntatori, aritmetica dei puntatori, allocazione dinamica ecc... a loro sconosciuti per via di Java che a mio parere vizia il programmatore. Il linguaggio in sè è ok, ma di sicuro non per iniziare a programmare e conoscere almeno le basi.

P.s.: Quando provi a spiegarli i puntatori di puntatori e i puntatori a funzione ti guardano con una faccia,come se venissi da Marte. :iocero:
 
Ultima modifica:

daniele.erunamo

Nuovo Utente
74
6
certo non è uno dei più semplici, vero è che java è un evoluzione di c ................."un solo codice per tanti dispositivi". e poi le librerie .......
comunque io non sono un esperto, se deve iniziare il percorso solo per pura curiosità di conoscenza allora si, meglio provare ad iniziare con qualcos'altro, se pero cerca lavoro java tutta la vita.

anche perché in italia, inizi a programmare in java dentro un'azienda e se sei bravo ti ritrovi all'estero con il doppio ( se ti dice male ) dello stipendio in tasca :sisi:
 

Hobet

Utente Attivo
609
222
CPU
i5 6600k
Dissipatore
AIO H100
Scheda Madre
ASUS z170 Deluxe
HDD
1 WD Blue 1 TB; evo 850 500gb
RAM
Vengeance 4x4
GPU
GTX 1070ti MSI
Audio
Nope
Monitor
MG278Q
Case
750D Corsair
Net
Fastweb 200/30
OS
PucyBuntu
certo non è uno dei più semplici, vero è che java è un evoluzione di c ................."un solo codice per tanti dispositivi". e poi le librerie .......
comunque io non sono un esperto, se deve iniziare il percorso solo per pura curiosità di conoscenza allora si, meglio provare ad iniziare con qualcos'altro, se pero cerca lavoro java tutta la vita.

anche perché in italia, inizi a programmare in java dentro un'azienda e se sei bravo ti ritrovi all'estero con il doppio ( se ti dice male ) dello stipendio in tasca :sisi:

Il C++ è un evoluzione del C, non di certo Java.

Java was originally designed as a “dumbed-down” version of C++. I know some will not like or appreciate this, but it is the truth. Much of this was for economic reasons: high-quality C++ programmers were expensive and more and more business applications were being written in C++ when Java was created. To not make a complete mess of things, many of the features provided by C++ had to be stripped out to prevent novice programmers from abusing them. Less experienced and/or skilled programmers are cheaper to hire. For many business-type applications it is better to pay less for mediocre verbose code than pay more for high-quality concise code.

The philosophy behind Java is evident in that it insists on making the programmer explicitly type out what they mean rather than providing syntactic sugar. For example, to create a derived class you use the word “extends” rather than “:” as in C++. There is no user-defined operator overloading. Naming conventions in Java result in very long names. Etc. Etc. The idea was to make a language which prevented novice mistakes and abuse. Java was basically a language designed by experts for non-experts.

Unfortunately, this philosophy is the reason for Java’s verbosity (and has led to some pretty terribly bloated Java projects.) It also has turned out that Java programmers want some of the missing features (such as generics) so they have crept in with each new version. This has ultimately led to the current version of Java being both very verbose and not as simple as originally envisioned.
 
  • Mi piace
Reazioni: il velo di Maya

1nd33d

Utente Attivo
653
279
CPU
Intel i5 3570K @ 4,5Ghz
Dissipatore
Scythe Mugen 2
Scheda Madre
Gigabyte Z77X-UD3H
HDD
Samsung 840 PRO 256GB + Sandisk Ultra 250GB + Sandisk Plus 960GB
RAM
2x8GB Crucial Ballistix Tactical @2000Mhz CL9
GPU
XFX RX480 GTR Black Edition
Audio
Auzentech X-Fi Forte
Monitor
AOC i2369VW
PSU
Seasonic P660
Case
eh?
Periferiche
Razer Naga HEX v2
OS
Windows 10 64bit - Linux Mint 18
Se per programmare intendi "scrivere codice", puoi tranquillamente partire da uno dei tanti linguaggi noti come Python o Java. Il C può tornare utile ma è un po' particolare, può capitare di usarlo per programmazione a livello più basso (librerie, driver, middleware...) ma probabilmente non è il tuo caso, e anche in ambito lavorativo è meglio vendersi come programmatore autodidatta python piuttosto che C/C++ (il C/C++ richiede una serie di accortezze che vengono spesso e volentieri trascurate dai neofiti e autodidatta, da qui la bassa credibilità di chi si spaccia come buon programmatore C/C++ senza esperienza lavorativa concreta).
Java è un linguaggio object oriented "vero" e quindi necessita di qualche nozione particolare aggiuntiva, ma essendo fortemente tipato è anche più difficile cadere in errori di programmazione. Python è molto più immediato ma bisogna comunque sapere cosa si sta facendo: essendo debolmente tipato, puoi scrivere codice che apparentemente funziona ma a runtime può darti problemi o mostrare comportamenti incostanti.
Per manuali e libri ci sono link in testa a questa sezione https://www.tomshw.it/forum/threads...li-tutorial-risorse-tutti-i-linguaggi.290243/

anche perché in italia, inizi a programmare in java dentro un'azienda e se sei bravo ti ritrovi all'estero con il doppio ( se ti dice male ) dello stipendio in tasca :sisi:
Eh... ho qualche dubbio che sia esattamente così, purtroppo :asd:
Dipende soprattutto dalla mansione: un software programmer è diverso da un software engineer che è diverso da un computer scientist. In Italia non si viene pagati molto ma come "software programmer" la concorrenza è forte anche all'estero e gli stipendi apparentemente superiori vanno contestualizzati al costo della vita e al welfare del paese dove si lavora (sanità, previdenza sociale, pensioni...).
 
Ultima modifica:

VidRam

Utente Èlite
1,880
342
CPU
AMD Ryzen 5 3500X
Dissipatore
DeepCool Gammaxx 400V2 Blue Ed.
Scheda Madre
Gigabyte b550 DS3H rev 1.0
HDD
NVME Intel 600p 512GB
RAM
2x8GB DDR4 Crucial Ballistix èlite 3200mhz
GPU
Nvidia Geforce RTX 2060 6GB Manli
Audio
Asus Xonar AE
Monitor
AOC G2460V 75hz 1ms + Benq FP 17"
PSU
Evga 500w 80plus white
Case
Golden Field P3
Periferiche
Logitech G413 Red Carbon/ Mionix Avior 7000 / Sennheiser GSP350.
Net
Fibra in rame 100 mb\s
OS
Windows 10 Pro 64bit
Ciao a tutti.
Vorrei farvi una domanda forse banale ma vorrei un parere personale di più persone per capire un paio di cose.
La prima è quanti anni ci vuole per imparare a programmare? Intendo conoscere i linguaggi per fare siti web, programmi vari, e giochi inserendo grafica 3d etc?

Ovviamente non intendo programmare un gioco come Battlefield da solo, ma avere le conoscenze le quali insieme a altre 100 persone allo stesso livello riusciamo a farlo .

Ho sempre avuto uno spiccato senso per l'orientamento informatico ed elettrico nel computer e nel suo funzionamento senza avere troppi problemi nel capire .
Per pigrizia non mi sono mai messo a programmare niente in assoluto e non ho idea di come cominciare e da dove . (Dato che non ho ancora finito le superiori sto pensando di andare in terza alla scuola informatica che abbiamo qua, ma vorrei prima farmi un idea).

Voi da dove mi consigliate di partire ? Avete qualche suggerimento di siti o libri o altro da tenere conto?

Inviato da LEX720 tramite App ufficiale di Tom\\\'s Hardware Italia Forum
Dovresti iniziare dal C, ed inoltre scegliere cose vuoi fare, una scuola di informatica va bene ma la facoltà di informatica è specifica per chi vuole fare il programmatore, e lì ovviamente faresti un percorso guidato verso anche il game design (5 anni però, se ti impegni , ma vale per ogni facoltà).
Se vuoi farlo da solo, considera l'acquisto del manuale di C di kernighan , con quello ci fai almeno il 50% degli esercizi iniziali, e impari parecchio.
 

the Agony

Nuovo Utente
10
0
CPU
TBA / I7-4930K
Dissipatore
TBA / Corsair H100i V2
Scheda Madre
TBA / Asus Rampage IV Black Edition
HDD
Samsung 960Pro M.2 1TB / Samsung 840 Evo Sata 1TB
RAM
TBA / 32 GB Corsair Dominator
GPU
MSI GeForce 1080 Ti Sea Hawk X / Asus GeForce GTX-690
Monitor
Philips BDM3275UP/00 LCD / Asus 28" (non ricordo il modello)
PSU
TBA / Corsair AX1200i
Case
Corsair Obsidian 900D / Aerocool XPredator Iron Man Edition
Periferiche
di tutto
OS
Windows 10 x64 Pro x2
il mio personalissimo consiglio è di cominciare a pensare a un problema... nel senso: come potrei risolvere questa "cosa"?

punto (domanda) 2: come vorrei risolverla?
A - mi basta un'applicazione console;
B - mi serve un'interfaccia grafica.


detto questo, se la risposta 2 è A, usa C++, altrimenti se B usa pure C#/Java.

Fatte queste considerazioni, trova un modo per risolvere il problema iniziale "teoricamente", poi studiati le basi del linguaggio scelto e cerca di applicarle per risolvere il problema praticamente, se non riesci in qualche punto, ci sono millemila forum/siti dove qualcuno ha un suggerimento/soluzione ad un problema simile.
L'unico vero consiglio e di non fare dei meri copia incolla quando trovi le soluzioni online, cerca di capire perché quella è una soluzione e come funziona, sviluppa infine la tua applicazione e ti renderai conto di saper programmare, quantomeno in linea di massima...
Per me (ripeto, per ME), l'approccio astratto alla unviersitaria non serve a molto, è molto meglio fare prove e sbattersi sulla pratica, e lo dico da studente di ingegneria informatica con buona media (analisi a parte)...

ES: Adesso mi direte che i programmi che lo fanno esistono già, ma avevo bisogno di un programmino facile per salvare le password (prevalentemente per mio papà che l'inglese non lo mastica). è stato il mio punto di partenza, non sarò Bill Gates/Steve Jobs, ma ora penso di cavarmela e sto sviluppando applicazioni commerciali... Poi bho, magari sono un cane a programmare, ma i prof dicono di no... ;)
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,222
1,853
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Ti rispondo direttamente, quotando quanto hai scritto (sforzandomi a non trovare spunti ai quali ribattere/controbattere nei post sopra al mio :D ). Di topic su argomenti affini ne ho visti a iosa negli anni, ed è raro che io risponda (per una serie di motivi).

La prima è quanti anni ci vuole per imparare a programmare? Intendo conoscere i linguaggi per fare siti web, programmi vari, e giochi inserendo grafica 3d etc?

Non si può dire quanto ci vuole: è un tempo che varia da individuo ad individuo; pare una risposta banale, ma in realtà è anche la più sensata. Dipende dalle tue inclinazioni personali, dalla passione che dedichi nello studio e nell'applicazione (che è parte molto importante), dalla determinazione etc etc. Dipende poi da fattori quali la tua velocità di apprendimento ed altro ancora.

I linguaggi per creare un sito Web penso siano tra i più semplici da un punto di vista tecnico (mi riferisco a quelli di markup: HTML 5, CSS). Vi è poi il linguaggio di scripting più utilizzato, sempre lato client, JavaScript (ed alcuni framework, primo fra tutti forse jQuery). Studio ed applicazione (forse più la seconda delle due, a patto che si sa cosa si stia facendo e non si proceda mettendo assieme cose per vedere se vanno) ti permetteranno di ottenere risultati in pochi mesi, in particolare sul markup.
Programmi vari, vale quanto ho scritto nel primo paragrafo: dipende da te, principalmente.
Grafica 3D è molto vago... di solito chi si occupa della grafica non si occupa della parte relativa alla programmazione.
Per diventare un gamedev non saprei indicarti un cammino ben preciso... ma sicuramente sarebbe utile conoscere C++ ed iniziare a far pratica con qualche libreria: SDL, GLFW, le Vulkan, OpenGL.... ma sono argomenti che prevedono un bagaglio ben preciso (primo fra tutti, C++; personalmente non ti consiglierei però di iniziare direttamente da C++).

Ciao a tutti.

Ho sempre avuto uno spiccato senso per l'orientamento informatico ed elettrico nel computer e nel suo funzionamento senza avere troppi problemi nel capire .
Per pigrizia non mi sono mai messo a programmare niente in assoluto e non ho idea di come cominciare e da dove . (Dato che non ho ancora finito le superiori sto pensando di andare in terza alla scuola informatica che abbiamo qua, ma vorrei prima farmi un idea).

Voi da dove mi consigliate di partire ? Avete qualche suggerimento di siti o libri o altro da tenere conto?

La cosa migliore? La cosa migliore è iniziare. Magari da un libro e non da un tutorial improvvisato o una guida trovata sul web (non ne citerò, non sarebbe corretto). Non mi fraintendere: sul web le risorse sono infinite, vi sono tantissimi articoli e tutorial interessanti e davvero ben fatti; ma per iniziare a programmare la cosa migliore è un libro. Questo però è utile solo se affiancato alla pratica: lo studio su un testo senza applicazione è del tutto futile; il consiglio è anche di applicare mano a mano le cose che studi, in quanto ti permetterà di afferrarle meglio e comprenderle più a fondo.

Ai tempi, quando iniziai io, mi consigliarono di tutto: si spaziava dal C, al Java al Python al Ruby al C++... Io l'unico consiglio che ti do, è di guardarli un pò tutti così da poter scegliere: guardane le sintassi, informati sulle differenze (senza scendere nei tecnicismi), e scegli quello che ti piace, che ti incuriosisce di più. Lo studio richiede dedizione, e sarà molto più semplice ed interessante se il linguaggio ti piace.
Personalmente scelsi Java.

Alla fine scegli quello che preferisci: il linguaggio è solo lo strumento, e se farai questo lavoro, finirai per conoscerli tutti e nessuno (ecco perchè trovo sia importante conoscerne bene uno solamente). Le richieste in ambito lavorativo, in generale, sono tra le più disparate, dovresti conoscere tutto. Spesso molte cose le si apprendono a lavoro, in quanto vi sono un sacco di framework oltre che di linguaggi e non è raro trovare differenze consistenti negli ambienti stessi.

La programmazione è un arte. Solo studio ed applicazione permettono di ottenere risultati; l'esperienza ha un suo peso. E dopo un discreto numero di anni ti accorgi che quanto conosci è una parte infinitesimale del tutto, e che paradossalmente la conoscenza che ti appartiene sembra sempre decrescere.

Un'ultima postilla a latere, prima di terminare il mio lungo post: essendo la programmazione un arte, richiedendo tutto quanto già citato e molto altro che sarebbe inutile riportare qui, concludo dicendo che si affina con il tempo, ed il tempo è in questo caso da intendere come almeno un qualche anno. ;)
 
  • Mi piace
Reazioni: Hestia

germanovolante

Nuovo Utente
11
0
""" i linguaggi per fare siti web, programmi vari, e giochi inserendo grafica 3d etc? """

Difficile saper fare tutto. Ci si specializza!
Se vuoi fare siti web ti consiglio di partire dalla tripletta html, css, javascript e imparare con calma i vari frameworks di javascript, per poi passare eventualmente a linguaggi lato server tipo php.
Se vuoi fare giochi dipende. Io ti consiglio di partire da Unity 3d. Per scriptare in unity 3d devi conoscere il C# e iniziare a capire come funziona il tutto partendo da questi tutorial https://unity3d.com/learn/tutorials
Fatteli tutti e poi inizia a guardarti video su youtube a random. Es: come creare un rpg, cosi impari un sacco di roba. Sappi che prima di creare qualcosa di decente serve tempo e migliaia di righe di codice. Quindi se sei determinato e costante fai strada e puoi diventare bravo, se invece sei scazzato resisti una settimana e poi molli tutto.
Dipende da cosa vuoi fare.
 

Marcus Aseth

Utente Attivo
404
138
OS
Windows 10
Quello che vuoi è questo corso qua --> https://www.udemy.com/unrealcourse/?start=0
Dura più di 200 ore (di video), e lo scopo del corso è insegnarti a programmare giochi usando C++ ed Unreal Engine, e ti garantisco che il primo capitolo (primi 60 video circa) è perfetto per partire da 0, visto che crea un gioco di Bull&Cows nella Console usando soltanto C++ e spiega tutte le basi nel processo: loops, variabili, funzioni, data structures etc... E per trarne il massimo beneficio, ti raccomando anche di utilizzare il forum associato al corso e guardare le "varianti" del progetto create dai vari partecipanti al corso, una sorta di classe online ottima per cominciare :)
Nei capitoli successivi si sposta dentro l'unreal engine ed usa l'unreal engine API (sempre in C++), che comunque è un plus per te perchè tu vuoi creare un gioco e non un game engine, e per fare un game engine decente tuo prima del gioco 3D dovresti programmare probabilmente un bel pò di anni, invece in questo modo impari un bel pò di C++ ed hai qualcosa di decente che funziona gia il primo mese :)
Ed in più è scontato del 92% quindi costa 15€ anzichè 192€, non mi pagano per fargli pubblicità però visto che è un'offerta assurda non ho scelta se non consigliarlo :P

By the way, io ho iniziato con C++ e NON sono d'accordo con chi dice di NON iniziare con C++ xD
 
Ultima modifica:
Stato
Discussione chiusa ad ulteriori risposte.

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili