\Streicher:
Ignorier am besten was ich hier jetzt schreibe. ^^

Zitat Zitat von Kyuu Beitrag anzeigen
Ich finde so eine Frage einem Anfänger zu stellen ist nicht gerade überlegt. Was wird er dir ohne Überblick wohl antworten? "Taschenrechner"? "MMORPG"?

Es ist zwar richtig, dass es keine ultimative Programmiersprache gibt, man also immer die wählen sollte, die die Projektanforderungen erfüllt, für einen Anfänger aber reicht es vollkommen sich mit einer einsteigerfreundlichen Programmiersprache zu beschäftigen und langsam Kenntnisse zu erlangen. Hat man erstmal eine Sprache einigermaßen intus, kann man auch leicht zu einer anderen wechseln, da die angesprochenen Konzepte in der Regel größtenteils schon in der gewählten Sprache beigebracht werden, vorausgesetzt eine geeignete wurde gewählt.
Von Empfehlungen zu C und Java halte ich persönlich wenig, wenn es nur darum geht verschiedene Programmierparadigma kennenzulernen, das kann man auch kompakt in einer einzigen (zumindest einige davon), denn Sprachen wie Python zwingen nicht zu einer bestimmten Programmierung und bieten relativ große Freiheiten.

Man sollte das Ganze aber wirklich nicht zu trocken angehen und sich stumpf mit Konzepten auseinandersetzen, sonst verliert man als Anfänger schnell den Spaß am Lernen.
Wichtig ist es aber, von Anfang an auf die Lesbarkeit des Codes zu achten (z.B. Indentation (hier zwingt Python einen dazu, was für Einsteiger durchaus vorteilhaft wäre) , Whitespace, Konsistenz, Namenskonvention, etc).

Eigentlich sagt "MMORPG" bzw. "Taschenrechner" bereits sehr viel aus. Bei Taschenrechner will jemand einfach nur GUI-propgrammieren, und man kann sich auf einen kleinen Dialog einstellen, bei dem man herausfindet, was jemand verwenden möchte: Oft reduziert das ja bereits die Sprachwahl auf eine kleine Hand. Vorallem aber ist es wichtig die passende Plattform für jemanden zu finden, über die man jemanden eine Sprache ans Herz legen sollte.

Konzepte lernen ist zwar richtig, aber da wäre ich sehr vorsichtig: Wenn jemand eine reine OO-Sprache lernt, dann wird er OO ewig und immer als natürlich empfinden. Wenn du rein funktional anfängst, dann wird das für dich das normale Programmieren. Das sieht man sehr gut, wenn man z.B. OO-Code von den ganz alten Hasen liest, oder C-Code von einem OO-Menschen.

Genau so macht die Frage "Pointer, oder keien Pointer" einen sehr großen Unterschied. Was für jemanden, der mit C angefangen hat, ganz normal ist, ist für Leute die mit Java anfangen merkwürdig. Je nach Sprache lernt man andere Tricks, einen anderen Background kennen, auf dem man aufbaut. Somit muss man auch wissen, was jemand eigentlich beim Programmieren für einen Sidethink haben möchte. Bei einem Python bekommst du einfach nicht das selbe Gefühl für das grundlegendste eines Computers, wie bei einem C, oder bei einem ASM.

Lass mal zwei Leute mit dem selben Toolkit ein und das selbe Programm einmal für den Desktop schreiben, und einmal für ein Handy, wobei jeweils einer von der Desktop-Welt, und der Andere von der Embeddet-Welt kommt. Da sieht man Unterschiede.

Programmieren ist halt auch sehr stark Einstellungssache. Je nach dem mit was man anfängt, wird diese eben anders gebildet. Und genau darum sollte man erst einmal heraus finden, was sich jemand vom Programmieren erwartet: Schon alleine um einmal herausfinden zu können, auf welchem Level jemand eigentlich programmieren möchte. Oder, reichst du auch allen Leuten den nächstbesten Schraubenzieher, wenn dich jemand um einen bittet, ohne dich weiter zu erkundigen?