ognuno ha opinioni diverse su quale sia il linguaggio più didattico e adatto a chi comincia.
ma la programmazione non è un fatto di linguaggi, sintassi e lessico. è un approccio mentale; il linguaggio è solo uno strumento.
vedendola in questo modo ti conviene cominciare subito con un linguaggio che ti può servire nel mondo "vero" della programmazione; anche qui, le scelte sono per la verità molte;
per prima cosa allora categorizzerò i linguaggi in base a loro caratteristiche e ti dirò quale, secondo me, è "buono" (o molto diffuso e noto) in quella categoria.
compilati procedurali: C
compilati ad oggetti: Objective-C, C++ (più diffuso, ma secondo me è meglio l'Objective-C)
"compilati" (VM) ad oggetti: Java
interpretati ad oggetti: python, ruby
spesso i linguaggi "ad oggetti" (cioè con cui è possibile fare programmazione orientata agli oggetti, OOP) possono essere anche usati in modo procedurale.
osservazioni: la progammazione OO va di moda, si dice sia "potente" (a me non piace), ma è un tantino più complicata della programmazione procedurale; tuttavia se scegli un linguaggio come il C, passare al C++ è solo questione di imparare le cose "strettamente" ad oggetti, visto che il C++ è in pratica C con l'aggiunta di "costrutti" e sintassi per la progr ad oggetti (e lo stesso vale per l'Objective-C)
però tra linguaggi compilati e linguaggi interpretati, quelli interpretati hanno un "ciclo" programma-prova-correggi più veloce, e in più python e ruby hanno un interprete interattivo che è molto comodo per sperimentare mentre si sta imparando; dunque tra linguaggi interpretati e compilati, un neofita forse è meglio si orienti su linguaggi interpretati come il python o il ruby (o il perl o... ce ne sono altri...!)
se però è richiesta il massimo della performance, bisognerà tornare a considerare il C/C++.
difficoltà sia di C/C++ che di python, ruby ecc. è che non hanno "nativamente" un "framework" per consentire al programmatore di fare "grafica" e applicazioni grafiche, con interfaccia grafica, cosa che piace molto ai neofiti. Ovviamente, si possono usare apposite librerie (p.es. GTK, Qt, o SDL ecc. per cui esistono "bindings" sia per C/C++ sia per linguaggi come python ruby ecc) ma un compromesso a questo punto diventa Java, che ha già tutta una serie di classi standard con lo scopo di fare interfacce grafiche.
un altro vantaggio di python, ruby ecc. e anche Java è che il codice (o il binario della VM nel caso Java), normalmente, è eseguibile ovunque ci sia un interprete python, ruby ecc. o la VM in questione, mentre non è esattamente così per C/C++ (la portabilità del codice può esserci, ma quella dell'eseguibile è altra faccenda)
alternativo a Java ci sarebbe C#/.NET ma a dispetto di Mono (.NET su sistemi non microsoft), il C#/.NET rimane meno portabile e "libero" del Java.
dunque, valutando pro e contro, direi di orientarti verso il python e il Java e C/C++ in quest'ordine.