Imparare a programmare, da dove incomincio?

Stato
Discussione chiusa ad ulteriori risposte.

PatrickJane

Nuovo Utente
54
1
Salve ho iniziato ad avere una passione per i pc e vorrei entrare nel mondo della programmazione, per ho visto molti in disaccordo sul fatto di iniziare o meno dal C, io ho studiato un pochino le basi, anche se non proprio tutto. Il problema è che vedo che molti consigliano di iniziare dal C poi fare C++ e passare poi a linguaggi come java, ecc.. Invece altri dicono ok per iniziare è perfetto il C ma incomincia magari da un più semplice (tipo python) per imparare come impostare ecc. senza preoccuparsi di quello che fa realmente la macchina dietro le quinte e dopo aver imparato bene i concetti e la sintassi passa subito al C e poi via come scritto sopra. Cosa mi consigliate di fare? Ho trovato abbastanza complicato il C, ma non tanto per capire come ragiona il pc (perchè questo l'ho capito bene) ma la sintassi e tutti quei codici, che in linguaggi più semplici vengono omessi, diciamo che mi confondo e mi mandano in palla.
Sono comunque motivato e ho voglia realmente di imparare, il vero problema forse è che non ho una guida, cioè posso solo vedere su internet perchè non ho la possibiltà neanche di comprare un piccolo libro. Per adesso, per il linguaggio c mi sono guardato (e ho capito) il sito repni.it (ma che sembra incompleto) e hyperbook che mi sembra piu completo e facile da capire.
Per quanto riguarda il futuro, vorrei sapere (per curiosità) che lavori permette di fare l'essere un programmatore? E per essere un programmatore bisogna laurearsi? ho visto alcuni che non sono laureati ma lavorano come programmatori anche se non si possono permettere di andare più "in alto" a causa di questo certificato che gli manca. Un programmatore che linguaggi usa al lavoro? (indipendentemente dal tipo di azienda per cui lavora quali sono i piu richiesti?)
 

mark_1

Utente Èlite
1,514
167
CPU
AMD AM3 Phenom II X6 1055t
Scheda Madre
Asus Crosshair IV formula
HDD
ssd Corsair F80 + WD caviar green 500gb
RAM
G.Skill eco 1600mhz cas7
GPU
ASUS Radeon EAH5850 Cu Core/2DIS/1GD5/A
Audio
SupremeFX X-Fi
Monitor
SyncMaster BX2235
PSU
CoolerMaster M620 620W
Case
Cooler Master Storm Scout
OS
Archlinux & Windows7
Ti passo i link delle lezioni di python e C in messaggio privato...
Sono lezioni di un mio prof dell'università. Ci sono sia spiegazioni a monte (tipo la gestione della memoria) che tanti tanti esempi di programmazione.
Sulle lezioni di python ci sono anche degli Homeworks con un correttore, mentre nelle lezioni di C, ci sono dei piccoli esercizi da fare alla fine di ogni lezione.

Personalmente ti consiglio di partire da C, anche se è più "difficile", ti da un'idea migliore di come "ragiona" un pc...Poi quando incontri malloc dai 2 testate al muro, ma poi tutto torna chiaro...ehehehe

Python è orientato agli oggetti, quindi permette un codice decisamente più elegante e leggibile del C, però non da la stessa "libertà" al programmatore (questo non è necessariamente un male).

Ora ti scrivo!
 
  • Mi piace
Reazioni: GianluVB e Lidoboy

Darmen

Nuovo Utente
7
1
Ciao PatrickJane,

Per mia esperienza ti consiglio vivamente di partire dal linguaggio Ruby, che è un linguaggio molto simile a Python, e in particolare da questo simpatico tutorial studiato apposta per chi comincia da zero: Imparare a programmare partendo da zero | Guida Ruby Tutorial

Per quanto riguarda il mercato del lavoro... beh, chiaramente i titoli sono importanti, ma se vuoi fare il programmatore contano di più le tue capacità e, soprattutto, l'esperienza. Il mio consiglio è quello di cominciare a studiare Ruby da quel link e, se già non lo sai, anche l'inglese, perché è la lingua dell'informatica. Se effettivamente ti appassionerai, allora considera l'iscrizione a un corso di laurea. Ci si può iscrivere anche a esami singoli, non importa quanti anni ci metti, magari ne dai uno ogni tanto mentre lavori, però è importante se vorrai fare carriera. Soprattutto ti permette di avere una visione dell'informatica a 360°.

Sui linguaggi più richiesti dal mercato ho fatto una ricerca recentemente:

A livello mondiale l'interesse verso Ruby e gli strumenti a esso correlati (i primi che mi vengono in mente sono il framework Rails e la libreria Rspec per il Behavior-Driven Development) è in forte crescita.
Su Google Trends la comparazione di "Ruby, Python, PHP, Java e C#" mostra che Ruby sta sorpassando Python assestandosi in quarta posizione appena dietro a C# (in leggero calo), mentre Java (prima posizione) e PHP (seconda posizione) sono in netto calo.

Stessa cosa succede si vede restringendo il trend all'Italia, con però alcuni picchi mostruosi su "Ruby", risalenti a un paio d'anni fa, per gentile concessione della nipote di mubarack...

Su LinkedIn Skills (Skills | LinkedIn) invece abbiamo:

Ruby +6%
Python +6%
PHP +2%
C# -3%
Java -6%
C++ -8%

Ruby l'ho messo in prima posizione considerando anche gli skill ad esso correlati fra cui sono degni di nota i framework "Cucumber" e "Sinatra" e la libreria "Rspec" con dei tassi di crescita mostruosi mostruosi (rispettivamente del +49%, +42% e +39%), nettamente superiori a quelli di tutti gli skill correlati agli altri 4 linguaggi presi in considerazione!

Degno di nota è però anche il framework "Django", scritto in Python, con un tasso di crescita del +21%.

Tratto da qui: [Ruby] E' un linguaggio adatto per imparare a programmare da zero? | HTML.it forum

Come secondo passo ti consiglio questo tutorial che insegna come creare un sito web simile a Twitter con Ruby on Rails: Learn Web Development with the Ruby on Rails Tutorial .

PS: Il vero Twitter, non a caso, è scritto effettivamente in Ruby.
 

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
Nessun linguaggio di programmazione farà mai il lavoro per te, tuttavia diversi linguaggi permettono di focalizzarti su differenti aspetti della programmazione.
Python (e Ruby, anche se penso che Python sia più immediato e leggibile) ti permette di concentrarti sullo studio ad alto livello della programmazione, ovvero sulla parte che "richiede cervello" che è lo sviluppo dell'idea risolutiva di un problema e l'implementazione.
Il C è un linguaggio che definirei didattico se non affrontato a fondo, perchè porta il programmatore fin da subito di fronte alle problematiche di più basso livello della programmazione come la gestione delle risorse (in primis la memoria), permette un maggior controllo del flusso del programma potendo esaminare nel dettaglio cosa il programma fa, ma richiede molte più righe di codice rispetto ad altri linguaggi per fare le stesse cose ed è più facile perdersi, anche perchè non è molto leggibile.
Il C nel mondo del lavoro è in flessione come richiesta, e quando vogliono un programmatore C, lo vogliono con le controcastagne perchè viene per lo più utilizzato per applicazioni dove l'uso è giustificato dalla necessità di buone prestazioni (e ci vuole molta esperienza) oppure per forza di cose (interfacciamenti con dispositivi esterni come microcontrollori, anche qui serve una buona conoscenza di tutti gli aspetti hardware).

Partirei dal Python o dal Ruby, a me sta più simpatico il pitone fra i due, ma vabbè, so opinioni :P
 

gaiapuffo

Utente Attivo
310
7
Va be scusate ma proporre ruby è un pò una pazzia,cioè per fare il smanettone inizialmente e fare cose a casaccio,con coppia e incolla va bene. Pena una deve capirci qualcosa che è un attimo sopra il livello copia e incolla,non riesce a fare nulla. Non si può partire da un linguaggio super ad alto livello e poi passare a quella a basso livello,si passerebbe solo tempo per non capire poco o nulla di quello che si è realizzato e pena il livello si fa pochissimo sopra l'amatoriale non si è in grado di fare nulla

- - - Updated - - -

Inoltre che senso ha imparare ruby che lo usa il 10% dei programmatori di tutto il mondo,sarebbe più adatto consigliare java....So già ormai che tutti i gasatoni(intendo quelli della mia facoltà) iniziano a dire ormai c e c++ e java sono linguaggi morti..nessuno li usa,perdita di tempo..Studiate phyton e ruby...usare jsp e da pazzi.....Bene l'70%dei prodotti in commercio sfrutta java,il resto dei prodotti sfrutta c e c++,fetta di ruby e phyton data verso il 10%
 

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
stiamo parlando del primo linguaggio per imparare a programmare... se si vuole partire dal C bisogna farsi un bel po' di teoria di architettura degli elaboratori per capire cosa si sta facendo. Per il C++, bisogna inoltre studiarsi fin da subito bene anche la programmazione a oggetti.
Quello che più che altro è preoccupante è che 9 "programmatori" su 10 sono convinti si saper programmare bene in C solo perchè sanno usare i vettori, i puntatori e malloc. Il C è un ottimo linguaggio per sviluppare driver, software di controllori, codici ad alte prestazioni... ma per queste cose, il saper programmare decentemente il C è una minima parte delle conoscenze richieste.
Python secondo me è più adatto per un neofita perchè si legge bene e permette al programmatore di focalizzarsi sul come risolvere il problema e non su come far funzionare lo strumento per risolvere il problema, chiamasi "produttività".
Il Java è fra i linguaggi più diffusi ma non è il più semplice da imparare, e anche qui, tanti si dicono capaci di programmare, ma avendo lavorato su codice scritto da altri "ingegneri informatici" posso tranquillamente dire che il saper programmare "bene" è un concetto fin troppo relativo.
Uno può anche partire dal Java, ma il rischio è che, preso dall'emozione, il neofita inizi a copiare a destra e a manca classi e metodi, per poi magari farsi una idea solo generale di cosa significa, per esempio, estendere o implementare una classe o addirittura nemmeno sapere cosa è una classe, se non un blocco di codice che inizia con "class" e finisce con "}"; si prendono cattive abitudini che poi è dura togliersi. Certi linguaggi hanno bisogno di corsi teorici di accompagnamento più corposi di altri.
Con linguaggi come il Python invece il rischio è minore, la correzione dei codici è più semplice e puoi programmare secondo diversi paradigmi.
Poi puoi sempre scendere di livello programmativo, non c'è un ordine obbligato, ma si può anche iniziare, rimanendo su python a scrivere estensioni e routine in C/C++ con Cython.
Il python non è poi così sconosciuto, Google e Youtube, due nullità per intenderci, lo usano a diversi livelli per i loro backend.
"Python is fast enough for our site and allows us to produce maintainable features in record times, with a minimum of developers," said Cuong Do, Software Architect, Youtube.com
"Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python, and we're looking for more people with skills in this language." said Peter Norvig, director of search quality at Google.inc
"Python enabled us to create EVE Online, a massive multiplayer game, in record time. The EVE Online server cluster runs over 50,000 simultaneous players in a shared space simulation, most of which is created in Python. The flexibilities of Python have enabled us to quickly improve the game experience based on player feedback" said Hilmar Veigar Petursson of CCP Games
e altri ancora: Quotes about Python

Qualsisi linguaggio scegliate per iniziare, comunque, buono studio e ricordate che a voi viene chiesto un prodotto che funzioni e in tempi brevi, l'utente finale non è interessato al come l'avete fatto, gli basta avere tutto e subito. :asd:
 

ARMANDO888

Nuovo Utente
17
0
Ti passo i link delle lezioni di python e C in messaggio privato...
Sono lezioni di un mio prof dell'università. Ci sono sia spiegazioni a monte (tipo la gestione della memoria) che tanti tanti esempi di programmazione.
Sulle lezioni di python ci sono anche degli Homeworks con un correttore, mentre nelle lezioni di C, ci sono dei piccoli esercizi da fare alla fine di ogni lezione.

Personalmente ti consiglio di partire da C, anche se è più "difficile", ti da un'idea migliore di come "ragiona" un pc...Poi quando incontri malloc dai 2 testate al muro, ma poi tutto torna chiaro...ehehehe

Python è orientato agli oggetti, quindi permette un codice decisamente più elegante e leggibile del C, però non da la stessa "libertà" al programmatore (questo non è necessariamente un male).

Ora ti scrivo!

Ciao Mark_1, siccome vorrei imparare anche io a programmare, cortesemente potresti inviarmi anche a me i file? Inoltre se hai materiale in inglese, oppure link da dove scaricare libri (anche in inglese), puoi linkarmeli.

Grazie
 

mark_1

Utente Èlite
1,514
167
CPU
AMD AM3 Phenom II X6 1055t
Scheda Madre
Asus Crosshair IV formula
HDD
ssd Corsair F80 + WD caviar green 500gb
RAM
G.Skill eco 1600mhz cas7
GPU
ASUS Radeon EAH5850 Cu Core/2DIS/1GD5/A
Audio
SupremeFX X-Fi
Monitor
SyncMaster BX2235
PSU
CoolerMaster M620 620W
Case
Cooler Master Storm Scout
OS
Archlinux & Windows7
arrivooooooooooooooooo!!!:asd:
 
  • Mi piace
Reazioni: Louisio

lorenzo gamer

Nuovo Utente
26
1
Ti passo i link delle lezioni di python e C in messaggio privato...
Sono lezioni di un mio prof dell'università. Ci sono sia spiegazioni a monte (tipo la gestione della memoria) che tanti tanti esempi di programmazione.
Sulle lezioni di python ci sono anche degli Homeworks con un correttore, mentre nelle lezioni di C, ci sono dei piccoli esercizi da fare alla fine di ogni lezione.

Personalmente ti consiglio di partire da C, anche se è più "difficile", ti da un'idea migliore di come "ragiona" un pc...Poi quando incontri malloc dai 2 testate al muro, ma poi tutto torna chiaro...ehehehe

Python è orientato agli oggetti, quindi permette un codice decisamente più elegante e leggibile del C, però non da la stessa "libertà" al programmatore (questo non è necessariamente un male).

Ora ti scrivo!

scusa mark ma potresti passare anche a me i file? te lo chiedo perchè è quasi un mesetto che provo a programmare in python ma con scarsi risultati e da qualche giorno pensavo a passare al c!! se non puoi passarmeli non importa grazie lo stesso

- - - Updated - - -

QUOTE=mark_1;2863522]Ti passo i link delle lezioni di python e C in messaggio privato...
Sono lezioni di un mio prof dell'università. Ci sono sia spiegazioni a monte (tipo la gestione della memoria) che tanti tanti esempi di programmazione.
Sulle lezioni di python ci sono anche degli Homeworks con un correttore, mentre nelle lezioni di C, ci sono dei piccoli esercizi da fare alla fine di ogni lezione.

Personalmente ti consiglio di partire da C, anche se è più "difficile", ti da un'idea migliore di come "ragiona" un pc...Poi quando incontri malloc dai 2 testate al muro, ma poi tutto torna chiaro...ehehehe

Python è orientato agli oggetti, quindi permette un codice decisamente più elegante e leggibile del C, però non da la stessa "libertà" al programmatore (questo non è necessariamente un male).

Ora ti scrivo![/QUOTE]

scusa mark ma potresti passare anche a me i file? te lo chiedo perchè è quasi un mesetto che provo a programmare in python ma con scarsi risultati e da qualche giorno pensavo a passare al c!! se non puoi passarmeli non importa grazie lo stesso
 

checcoc

Nuovo Utente
1
0
CPU
i5
Scheda Madre
Asrock
HDD
120ssd
RAM
8gb
GPU
Nvidia
Audio
FiiO e10
Monitor
Samsung 24"
PSU
650W OCZ
Ciao, mi unisco al coro. Potrei avere anche io queste lezioni?
Grazie mille.
 

marioland

Utente Attivo
1,135
88
CPU
FX 6300
Scheda Madre
Asrock N68-GS4 FX
HDD
Barrauda 7200.12rpm 500GB
RAM
2x4GB crucial@1600Mhz
GPU
AMD 5830
Audio
integrata
Monitor
Samsung P2250
PSU
Silverstone sfx 500W (in arrivo)
Case
senza nome, micro atx, moddato
OS
windows 7 home premium
Meglio se le lezioni le pubblichi su un topic separato, così si risparmiano valanghe di messaggi xd.
 

Christian386

Nuovo Utente
42
0
Ti passo i link delle lezioni di python e C in messaggio privato...
Sono lezioni di un mio prof dell'università. Ci sono sia spiegazioni a monte (tipo la gestione della memoria) che tanti tanti esempi di programmazione.
Sulle lezioni di python ci sono anche degli Homeworks con un correttore, mentre nelle lezioni di C, ci sono dei piccoli esercizi da fare alla fine di ogni lezione.

Personalmente ti consiglio di partire da C, anche se è più "difficile", ti da un'idea migliore di come "ragiona" un pc...Poi quando incontri malloc dai 2 testate al muro, ma poi tutto torna chiaro...ehehehe

Python è orientato agli oggetti, quindi permette un codice decisamente più elegante e leggibile del C, però non da la stessa "libertà" al programmatore (questo non è necessariamente un male).

Ora ti scrivo!


Scusami tanto,sto iniziando a studiare python come primo linguaggio,puoi spedirmi quei file anche a me gentilmente? Te ne sarei molto grato grazie mille in anticipo @mark_1
 
Ultima modifica:
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili