Mhm credo ci starebbe bene un bel thread sticky che risponda a questa domanda, dato che viene posta 3-4 volte al giorno
Comunque io la penso così:
1. C a malapena accettabile per chi inizia, meglio optare per linguaggi di alto livello ed estremamente espressivi, e con "batterie incluse"
2. C++ è assolutamente da evitare ( lo dico perchè c'è chi consiglia di iniziare da questo )
3. Objective-C evitare come la peste ( c'è gente folle che lo consiglia perchè è figo dato che si usa per fare le app iOS )
4. Python è imho la scelta migliore ( e la pensano così pure i docenti di Stanford, MIT e svariate altre università in tutto il mondo )
Le cose fondamentali da tenere a mente sono:
1. l'informatica non è letteratura latina, per cui lo studio SOLO teorico è inutile e controproducente ( bisogna imparare facendo )
2. la logica ( che è fondamentale per risolvere problemi algoritmicamente ) la si affina scrivendo programmi
3. mentre realizzi programmi trovi problemi implementativi che ti costringono a studiarti la sintassi del linguaggio, determinati algoritmi o altre nozioni
In conclusione ti consiglio d'iniziare con Python ( c'è pure un pdf gratuito che s'intitolata Pensare da informatico ). I programmi da fare non c'è bisogno d'inventarseli, c'è il sito Project Euler che contiene una marea di esercizi di programmazione.
Per l'apprendimento c'è anche l'ottimo sito Codecademy. Noterai che è in inglese. Beh l'inglese è obbligatorio per gli informatici, c'è poco da fare.