Kommt drauf an, welches Programmiersprache willst du denn lernen? Wen es dadrum geht, dass generelle Programmieren zu lernen und dies dann auch zu vertiefen, empfehle ich dir die Programmiersprache "C". In der Programmiersprache C lernt man die Grundlegenden Sachen der Programmierung und muss sich um das meiste selbst kümmern, wie z.B. die Speicherverwaltung, was einiges an Risiko mitbringt, aber auch die Kenntnisse erhöht und man lernt, sich um die wichtigsten Sachen selbst zu kümmern.
Wenn es dadrum geht, kleine Apps zu programmieren, kann ich dir nur Delphi oder eine .net Sprache empfehlen. Aber da du deine Frage nicht gut genug Schilderst kann man dir nicht genau helfen, was willst du denn programmieren? Eher LowLevel (Betriebssysteme,Microcontroller,Treiber...) oder Grafik Programmierung (Spiele...)...?
C bzw. C++ sind Allround Sprachen also würde ich damit Anfangen, wobei es in einigen Fällen leicht zu problemen kommen kann
Zu den Tutorials:
http://openbook.galileocomputing.de/c_von_a_bis_z/
http://c-programmieren.com/C-Lernen.html