Du solltest Dich schon auf einen Bereich festlegen, da die Anforderungen an die verschiedenen Bereiche sich gerne mal unterscheiden.
Webseiten müssen nicht einmal programmiert werden, die schaffst Du mit der MarkUp-Sprache HTML und stylst die mit CSS. JavaScript wird, wie der Name schon sagt, gescriptet (sag
niemals programmieren dazu!). php ähnelt C sehr stark und hat eine breite Funktionspalette.
Treiber solltest Du erst gar nicht versuchen zu programmieren. Für eine solche Hardwarenähe gibt es leider kein .NET. Die werden teilweise sogar nicht in Assembler geschrieben.
Betriebssysteme sind noch eine Nummer heftiger. Das lässt Du besser und arbeitest, wenn dann, mit dem Linux Kernel. Ein eigenes Betriebssystem, das wirklich etwas taugt, kann man nicht alleine programmieren.
Grundsätzlich: Was genau hast Du vor? Nimm Dir für den Anfang nicht so ein riesen Programm vor, sondern fang klein an und lern erst einmal die Theorie (wie funktioniert das ganze überhaupt?).
Entscheide Dich für eine Programmiersprache.
C und C++ sind die am meisten genutzten und soweit Google das mal herausgestellt hat, die schnellsten. Aber eben noch sehr nativ. C ist plattformunabhängig und kann sofern Du den Quellcode richtig schreibst, sogar auf einem Microcontroller laufen (siehe Linux, das läuft auch überall).
Microsofts C# mit .NET halte ich persönlich für die einfachste Sprache. Jedoch sollte man beachten, dass die Programme theoretisch erst einmal nur auf Microsoft Betriebssystemen laufen. Es ist möglich auch Anwendungen für Linux zu schreiben, aber der Support von Mono hat es gerade einmal auf den Stand von .NET Framework 2.0 geschafft. (Mono ist die freie C# Entwicklungsumgebung. Microsoft stellt dafür Visual Studio bereit)
Wenn Du Dich also für C# entscheidest, solltest Du bedenken, dass Du Dich stark an Microsoft bindest, aber eben eine schöne Sprache hast.
Java ist C# ähnlich, aber wird auch vollständig plattformunabhängig unterstützt (.NET ist auch plattformunabhängig, nur Microsoft unterstützt das selbst nicht). Java hat ein großes Spektrum an fertigen Klassen, die man verwenden kann. Java wird auch meistens an Universitäten verwendet.
Bekannte Projekte sind z.B. jDownloader oder Minecraft
Das waren so die allgemeinen Programmiersprachen, womit man sich echte "Programme" schaffen kann. Es gibt auch noch weitere, wie Ruby, Delphi oder
Phyton. Die Verbreitung ist aber geringer.
In Richtung Webentwicklung kann man eigentlich gar nicht richtig programmieren. Man kann höchstens die Serversoftware modifizieren, aber ansonsten läuft das meiste mit php. Die Ausgabe hat eher weniger mit Programmierung zu tun.
Die hast die Qual der Wahl. Was auch immer Du vor hast, wähle weise und weiche nicht der Theorie aus. Du benötigst ein gutes, logisches Verständnis und musst Systeme durchschauen können. Lies Tutorials und Quellcode als abendliche Lektüre und versteh so viel Du kannst, wie ein Rechner mit einem Programm umgeht und wie er gesteuert wird.
Am Anfang brauchst Du Dich sicherlich nicht mit Binärzeugs und Hexadezimalen Zahlen rumschlagen, aber früher oder später wirst Du auch einmal den byte[] Typ benutzen