Darkster, deine Meinung über Python in allen Ehren, aber mit solchen Beispielen verzerrst du ein wenig das Bild. Es macht ja keinen Sinn, ausgerechnet ein Beispiel zu nehmen für eine Funktion, die in Python vielleicht Built-in ist (keine Ahnung, ob das für sum(array) gilt), die es in C so nicht gibt. Das ist sicher kein Maß für die "Kompaktheit", sondern höchstens für die Vielzahl eingebauter Funktionen.
Ich kenne Python nicht und ich will mich auch gar nicht festlegen, welche Sprache nun irgendwie besonders einfach zu lernen ist. Ich selber habe mit Basic auf dem C64 angefangen, wofür ich an der Uni belächelt worden bin. ICH habe die dort verwendete Sprache Modula-2 aber nie als Problem empfunden, während das für einige, die damals schon C konnten, durchaus der Fall war. Es geht beim Programmieren nicht um eine bestimmte Sprache, sondern um Prinzipien.
Deshalb ist es auch prinzipiell egal, mit welcher Sprache man beginnt, solange diese Sprache einigermaßen die typischen Konstrukte enthält wie if, while, case, Variablen, Konstanten, vielleicht noch Pointer und/oder Referenzen. Also sind z.B. funktionale Sprachen vielleicht nicht der ideale Einstieg, aber ob ich nun C, Pascal, Modula, Basic, Java, Python, Shell-Programmierung, PhP oder sonst was nutze, würde ich persönlich eher davon abhängig machen, wie einfach die Entwicklungsumgebung zu handhaben ist. Mich hat es zu Beginn meiner C-Karriere z.B. ungeheuer frustriert, dass ich seltsame Linker-Fehler bekam, die mit meinem Code gar nichts zu tun hatten. Von daher bietet es sich an, erst mal was zu nehmen, was ohne Compiler auskommt.
Anderes Beispiel: Es mag sein, dass es einfache Methoden in manchen Sprachen gibt, mit Arrays zu arbeiten, anders als z.B. in C/C++. Andererseits zwingt einen C dadurch, Arrays wirklich zu verstehen, wenn man damit etwas tun will. Der Lerneffekt ist ganz anders. Dafür hat C dann wieder Besonderheiten, die man einem Neuling eigentlich nicht antun will, z.B. das Fehlen von Strings oder einfachen Benutzereingaben, die einfach so funktionieren und nicht von System zu System anders implementiert sind.
Um programmieren zu lernen, würde ich persönlich daher empfehlen, sich jemanden zu suchen, der einem unterwegs helfen kann, z.B. indem man sich von ihm eine Entwicklungsumgebung einrichten lässt, auf der man ein Programm nicht nur schreiben, sondern auch problemlos laufen lassen kann. Das kann ein Linux sein mit einem Standard-Editor für Shell-Programmierung, das kann auch ein freies Visual Studio sein.
Sollte so jemand nicht zur Verfügung stehen, würde ich empfehlen, mal testweise einige der in Mengen verfügbaren Kurse runterzuladen und auszuprobieren, wie gut man reinkommt.
Und ein Wort zum Thema GUTE Programmierer. Sowas gibt es nicht
Nein, im Ernst: ob ein Programmierer gut ist, hängt vor allem mal davon ab, was er eigentlich mit seinem Wissen tut und welche Ansprüche an seine Arbeit gestellt werden. Je nachdem, was man eigentlich tut, sollte man tiefergehende Kenntnisse entwickeln z.B. in Sicherheitsaspekte, Performance-Optimierungen, Datenbank-Anbindungen, Hardware-Ansteuerung, Grafische Darstellung usw. Da liegt noch lange nicht jedem Entwickler jedes Thema.
Zudem stellt professionelles Programmeiren typischerweise auch Ansprüche an Dokumentation, Wiederverwendbarkeit, Wartungsfreundlichkeit, Bedienbarkeit etc. der Software. Wenn in größeren Teams gearbeitet wird, wird es zunehmend interessanter, wie gut man sich in Disziplinen wie Analyse und Design auskennt. Und für manche Aufgaben braucht man theoretische Grundlagen, die man sich nicht so einfach selber erarbeitet (Berechenbarkeitstheorie, Stochastik, Compilerbau, Netzwerktheorie, Grafentheorie... und was es nicht noch alles gibt). Da ist dann schon ein Studium bzw. ein Ausbildungsberuf angeraten.
Übrigens: Wer Programmiersprachen wirklich mal in aller Schönheit sehen will, schaue
dort unter "Browse Languages".