Für Anfänger geeignet
lima-city → Forum → Programmiersprachen → Python
anfang
arbeiten
code
http
lehrer
lernen
machen
problem
programm
programmieren
programmierer
programmiersprache
projekt
sache
sagen
sprache
syntax
url
wirtschaft
wissen
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich zähle Python definitiv zu den Sprachen, die für Anfänger geeignet sind. Alternativ empfiehlt sich Lua
und wie lange ihr gebraucht habt, um Python zu lernen
Bei Programmiersprachen ist es ähnlich wie mit natürlichen Sprachen. Man ist eigentlich nie fertig mit Lernen. Von daher kann ich dir da auch keine Angabe machen -
Da gebe ich bladehunter Recht !
Man ist nie zu ende mit dem lernen :D Ich selber Code mit c++ , Visual Basic und HTML aber HTML is ja keine COder Sprache xD aber lerne auch immer mehr dazu xD -
ich würde es auch interesieren welche howto's gelesen habt ich will seit etwa 1monat python lernen aber ich finde nie ein gutes howto deswegen bitte ich euch mal ein link zu posten,
Mfg Exon -
Da gebe ich auch bladehunter Recht !
Ich selbst bin im Programmieren nicht so gut gewesen, aber mit Phyton zu programmieren ist nicht schwierig, zählt definitiv mit zu meinen leichteren Programmiersprachen. -
Ich würde auch sagen, dass Python vor allem durch die Einrückung stark guten Formatierungsstil unterstützt.
Ich habe über Pascal/Delphi zu C/++ gefunden und dann erst Python probiert und ich muss sagen, dass Python mir genau das von Anfang an beigebracht hätte, was ich in den anderen Sprachen erst schmerzlich lernen musste: Einrückung ^^
Ich habe an meiner Universität einen Einsteiger-Kurs zu C++ geleitet und kann sagen, dass überraschenderweise manche Leute der Meinung sind, dass Einzeiler und "kompakter" Code besser lesbar seien aber das sind sie nicht.
Ein weiterer Pluspunkt für Python ist meiner Meinung nach, dass fast alle gängigen Programmierparadigmen unterstützt werden, was beim wechsel zu anderen Sprachen die Überraschung minimiert. (Ich hatte z.B. beim Eintstieg in Haskell stark damit zu kämpfen vom C/++'schen Speicherdenken loszukommen)
Letztlich kann ich nur sagen, dass eine gute Einsteigersprache (wie Python) möglichst so strukturiert sein soll, dass man inkrementell lernt und nicht alles so verschachtelt ist, dass man praktisch alles gleichzeitig lernen muss.
Zum Thema die Sprache gelernt zu haben. Bladehunter hat natürlich recht, man lernt nie aus. Trotzdem sollte man ein Maß haben, um sagen zu können ob jemand die Sprache beherrscht oder nicht. Man kann darüber Streiten, was dieses Maß ist.
Ich bin der Meinung man beherrscht eine Sprache, wenn man weniger Syntaktische Fehler als Programmierfehler macht. Soll heißen die Fehler kommen nicht mehr zur Compilezeit sondern zur Laufzeit zum vorschein. Natürlich ist das etwas vaage aber ich halte es zumindest für einen Indikator (von voller Sprachbeherrschung kann deshalb nicht die rede sein).
Dieses Stadium habe ich bei Python denke ich nach etwa einer Woche erreicht gehabt, allerdings kann ich sagen, dass ein wirklicher Programmieranfänger wesentlich länger benötigen wird, weil er zusätzlich zur Sprache noch das (sprachunabhängige) Programmieren an sich lernen muss.
Beitrag zuletzt geändert: 8.8.2011 20:34:12 von sektor -
Python?
Da kann ich ne Schüssel Buchstabensuppe essen und eine bessere Programiersprache scheißen!
Also ich kann überhaupt nix mit anfangen. Gut, will man auch gar nicht, wenn man mal eine RICHTIGE Programmiersprache, die kompiliert wird, also sowas wie C oder C++, gelernt hat.
Sorry, aber dafür brauch ich keinen Interpreter und keine Laufzeitumgebung und nix. Einfach kompilieren und ausführen...
Also ich würde auf jeden Fall C empfehlen. Netter Nebeneffekt: Man lernt was von Speicherverwaltung, was bei diesen High-Level-Sprachen alles unter den Tisch fällt... -
schrotti12 schrieb:
Python?
Da kann ich ne Schüssel Buchstabensuppe essen und eine bessere Programiersprache scheißen!
Ich bin beeindruckt. Dann scheißt du auf einem extrem hohem Niveau. Python mag zwar gewisse Eigenheiten haben, aber wenn man sich damit länger beschäftigt, wird man feststellen dass diese Eigenheiten gute Gründe haben und Python wirklich eine verdammt gut gelungene Sprache ist, deren Beliebtheit nicht unverdient ist.
Also ich kann überhaupt nix mit anfangen. Gut, will man auch gar nicht, wenn man mal eine RICHTIGE Programmiersprache, die kompiliert wird, also sowas wie C oder C++, gelernt hat.
Dann würde mich mal interessieren, was neben C und C++ bei dir noch auf der Liste der "richtigen" Programmiersprachen steht. Das dürften nicht sonderlich viele sein.
Sorry, aber dafür brauch ich keinen Interpreter und keine Laufzeitumgebung und nix. Einfach kompilieren und ausführen...
Im Gegensatz zu "einfach ausführen" bei Scriptsprachen? Es ist zwar richtig, dass Scriptsprachen einen zusätzlichen Overhead haben, aber das ist ein Luxus den man sich gönnen kann, denn bei den meisten Anwendungen spielt er keine Rolle. Da kommt es eher drauf an, dass der Programmierer effiziente Algorithmen verwendet.
Also ich würde auf jeden Fall C empfehlen. Netter Nebeneffekt: Man lernt was von Speicherverwaltung, was bei diesen High-Level-Sprachen alles unter den Tisch fällt...
Lern' du erstmal Assembler und dann reden wir nochmal über "etwas über Speicherverwaltung lernen"
Außerdem geht es hier im Thread um Programmiersprachen für absolute Anfänger. C kann man später schließlich immer noch lernen. Ich sehe jedenfalls keinen fundamentalen Vorteil, wenn man mit C anfängt. -
Ich hab am Anfang C gelernt und bin sehr glücklich, dass das so war. Der Studiengang unter mir hat mit C# angefangen... Hat nich mehr viel mit Programmieren zu tun...
Nun ja, ich hab mir auch schon den ELF-Code von Executeables und Object-Files angesehen. Iss ziemlich interessant, wo die Funktionen landen und wie das funktioniert. Nur leider fehlt mir ein wenig die Zeit mich da weiter einzuarbeiten...
Aber in C kann man so nette kleine Programme schreiben die mit einer Endlosschleife und einem malloc den Rechner zum Absturz bringen... Mach das mal in Python oder Java oder C#...
Ich mag python deshalb nicht, weil die Formatierung die Syntax beeinflusst... Da MUSS man schön coden. Ich code nach dem Prinzip: Was schwer zu entwickeln war soll auch schwer zu lesen sein. Gut, nicht für mich, Ich hab ja die Doku!
Coder alter Schule :-) Habs bei einem Lehrer gelernt, der aus der Wirtschaft kommt :-) -
Höre ich da die leichte Angst überflüssig zu sein wenn man gut strukturierten, dokumentierten und gut lesbaren Code erzeugen würde und das man nur deshalb erfolgreich ist weil kein anderer das von einem entwickelte Zeug kapiert statt erfolgreich zu sein weil die eigenen Lösungen anderen überlegen ist ?
-
@schrotti:
Wegen solche Leuten alter Schule wird jetzt immernoch Fortrancode gepflegt und es gibt so arme Schweine, die das auch amchen müssen.
Es kommt immer die Zeit, wo alte Dinge den neuen langsam Platz machen müssen. Warum soll man sich mit Speicherlecks noch beschäftigen, wenn man sie überhaupt nicht mehr braucht? Das ist dann nur noch Sache der Interpreter/VM-Programmierer und der Rest kann von einem zuverlässigen System ausgehen.
Ich habe zwar auch Dinge über Java-Bytecode, den Stack etc. gelernt, aber, wenn ich in Java was schreibe will ich mir darüber keine Gedanken machen, dass nehmen mir die JVM-Programmierer ab.
Genauso finde ich hat Python an sich ein sehr schönes System umgesetzt, um Plattformunabhängigkeit gut zu gestalten, was die Entwickler aber geraucht haben, als sie die Idee mit der einrückungssensitiven Programmierung hatten, will ich nicht wissen. -
schrotti12 schrieb:
Ich hab am Anfang C gelernt und bin sehr glücklich, dass das so war. Der Studiengang unter mir hat mit C# angefangen... Hat nich mehr viel mit Programmieren zu tun...
Ich gehe sehr stark davon aus, dass der Threadersteller die Sprache selbstständig lernen will. Du hingegen hast die Sprache im Studium gelernt und daher auch Betreuer gehabt, die dir die Dinge mehr oder weniger persönlich erklären konnten. Das macht einen deutlichen Unterschied aus.
Trotzdem halte ich Python für eine weitaus sinnvoller für den Anfang als C, da der theoretische Overhead für die ersten Programme deutlich geringer ist, ohne dabei nicht existierende Komplexität vorzugaukeln, die Visual-Sprachen mit sich bringen (ohne GUI Editor geht da garnix).
Viel wichtiger für den Anfang ist zunächst überhaupt ein Verständnis für die Logik beim Programmieren zu entwickeln. Und in der Hinsicht sehe ich bei Python keine Defizite. Ich stimme dir zwar zu, dass es wertvoll ist über die technischen Hintergründe Bescheid zu wissen, aber das heißt nicht, dass man diese gleich zu Anfang kennen lernen muss. Zumal man sehr weit ohne dieses Wissen kommt. Bis es dann wirklich relevant wird, hat man es wieder vergessen, also sollte man damit eh besser warten, bis man dann zusätzlich C lernt.
Und C# (und Java) sind für den Anfang eine totale Katastrophe.
Nun ja, ich hab mir auch schon den ELF-Code von Executeables und Object-Files angesehen. Iss ziemlich interessant, wo die Funktionen landen und wie das funktioniert. Nur leider fehlt mir ein wenig die Zeit mich da weiter einzuarbeiten...
Wenn du dir mal Assembler anschaust, wirst du erkennen, wie viel Luxus dir C bietet
Aber in C kann man so nette kleine Programme schreiben die mit einer Endlosschleife und einem malloc den Rechner zum Absturz bringen... Mach das mal in Python oder Java oder C#...
Fork Bombe in verschiedene Programmiersprachen
Verwendet zwar kein Malloc, aber sorgt auch dafür, dass dem Rechner die Ressourcen ausgehen. Nebenbei bemerkt müsste man bei der Kombination C+malloc außerdem den Speicher noch mit irgendwas befüllen (also aktiv nutzen), da z.B. Linux nicht jede Reservierung direkt ausführt, sondern erstmal nur ein Promise gibt, dass unter ungünstigen Umständen auch mal nicht eingehalten werden kann.
Aber dein Argument ist schon etwas schräg. Dass man einen Rechner zum Absturz bringen kann, sollte ja kein sinnvoller Einsatzzweck einer Programmiersprache sein (außer zu Lehrzwecken natürlich).
Ich mag python deshalb nicht, weil die Formatierung die Syntax beeinflusst...
Das ist sicherlich Geschmackssache. Ich wünschte mir jedenfalls, dass mehr Programmiersprachen als Python, Genie und Haskell diese Notationsart nutzen würden, weil es viel angenehmer ist.
Da MUSS man schön coden.
Und was ist so schwer daran? Und wenn man sich mit der Python Grammatik mal näher beschäftigt, sieht man auch, dass das keineswegs so streng ist, dass man in Grenzfällen die Dinge nicht doch anders formatieren kann.
Ich code nach dem Prinzip: Was schwer zu entwickeln war soll auch schwer zu lesen sein. Gut, nicht für mich, Ich hab ja die Doku!
Coder alter Schule :-) Habs bei einem Lehrer gelernt, der aus der Wirtschaft kommt :-)
Das widerspräche ganz klar dem OpenSource Gedanken. In der Wirtschaft mag es vorteilhaft sein, wenn man als alleiniger Experte eines Codes gilt und daher nicht ersetzbar ist. Fortschrittlich ist das aber nicht. Und ich für meinen Teil weiß es zu schätzen, wenn der Code, vor dem ich Stunden verbringe sauber und schön ist, auch wenn er von mir selber ist und ich daher verstehe was da los ist.
Jedenfalls ist es ein großer Fehler zu glauben mit einer Handvoll Sprachen (C/C++ und noch ein paar Websprachen) könnte man ein guter Programmierer sein. Wenn man wirklich gut werden will, sollte man sich viele Sprachen anschauen und damit arbeiten, weil sie einem andere Blickwinkel auf Probleme ermöglichen. Und das ist extrem hilfreich, da es da draußen sehr viele verschiedene Probleme gibt und mit jeder neuen Programmiersprache hat man zusätzliche "Tools", die einem helfen diese Probleme anzugehen. -
Ich kann bladehunter eigentlich nur in allem zustimmen, was er da gesagt hat.
Vor allem, dass man nie aufhören sollte neue Sprachen zu lernen(zumindest Ansätze darin) um seinen Horizont um viele interessante Lösungsansätze zu erweitern.
Was
Ich code nach dem Prinzip: Was schwer zu entwickeln war soll auch schwer zu lesen sein. Gut, nicht für mich, Ich hab ja die Doku!
Coder alter Schule :-) Habs bei einem Lehrer gelernt, der aus der Wirtschaft kommt :-)
angeht:
Ich habe von meinem Professor(>50 Jahre Berufserfahrung, vor allem in der Wirtschaft!) gelernt, dass man die 67% der Entwicklungszeit durch warten von Altcode noch erheblich durch unlesbaren Code erhöhen kann.
Wenn du nach einem Jahr Pause an den Code rangehst hast du (auch mit Doku) wahrscheinlich genausoviel (oder vielleich unwesentlich mehr) Durchblick wie jeder andere gute Programmierer auch.
Außerdem verbietet es sich dir damit gemeinsam mit anderen an einem Projekt zu arbeiten, weil dieses Verhalten absolut nicht Teamfähig ist. Damit ist es dir beschieden keine wirklich großen Projekte zu meistern, weil du entweder allein ein Leben lang dran arbeitest oder ein vollkommen chaotisches Team haben wirst, in dem das nur der Anfang der Probleme sein wird.
Ich will damit nicht deine Programmierkünste in Fragen stellen und vielleicht kannst du das ja auch alles irgendwie schaffen aber ich persönlich halte diesen Ansatz für falsch. Ich wahr früher auch der meinung aber mein Prof. hat mir dir Augen geöffnet und ich habe durch eigene Zeitmessung beim arbeiten mit meinem altem Code erkannt, dass ich dabei viel zu lange benötige um wieder einzusteigen (ich muss dabei allerdings sagen, dass sich mein Stil auch stark geändert hat).
Um jetz auch noch was zum eigentlichen Thema des Threads gesagt zu haben:
Insbesondere sollte man einen Anfänger nicht mit Sorgen um Sachen quälen, die ihn von der allgemeinen Programmlogik ablenken. Ich habe im Rahmen meiner Lehrtätigkeit viele Leute damit kämpfen sehen einen Speicherzugriffs-/Syntaxfehler zu entfernen, wo sie stattdessen hätten lernen sollen, wie ein bestimmtes Problem gelöst wird(und dies infolgedessen nicht konnten). All das hat unnötig Zeit gekostet und ist damit letztlich eine Frage der Effizienz.
Beitrag zuletzt geändert: 9.8.2011 14:37:34 von sektor -
Ich mach doch nur Spaß...
Hab ja selbst mit php angefangen. DER interprätierten Sprache schlechthin... Iss ja auch nur eine Script-Sprache.
Trotzdem bin ich über mein Hardware-Wissen ganz froh... Seien wir doch mal ehrlich: Die meisten dies neu lernen haben doch noch nie einen Null-Pointer-Fehler gesehen... Da kommt schön der ganze Stack-Trace mit Zeilenangabe und pipapo... MSVS geht ja noch weiter: Die sagen einem bei einer Index-OutOfBound-Exception auch noch, welche Variable man wie ändern muss, damit ein Programm funzt... Des iss doch kein Coden mehr...
Zumindest einmal sollte man komplexere Datenstrukturen und Programme in einer hardwarenahen Programmiersprache geschrieben haben... Dann weiß man, was man da eigentlich macht statt stupide Angaben abzutippen.
Und wer mit den VM-Sprachen anfängt hat ja keine Ahnung wo das eigentlich abläuft. Lieber lass ich mir immer noch vom Betriebssystem sagen, was da eigentlich passiert statt von einer VM, wobei das wieder Geschmackssache ist...
Aber mit python kann ich einfach nich... Wenns von der Editor-Einstellung abhängig ist, ob ein Programm läuft oder nicht (Tabs oder 4 Spaces) dann iss das für mich einfach eine Schrott-Sprache... Sorry, soll sich keiner persönlich angsprochen fühlen, aber des geht einfach mal gar nicht...
Außerdem wär ich mal für ein paar Probleme ganz dankbar... Mir persönlich fällt nix ein wofürs nich schon tausend Lösungen gäbe...
Beitrag zuletzt geändert: 9.8.2011 23:38:13 von schrotti12 -
Ich sehe bei deiner Argumentation nirgendwo einen Grund, warum man mit C anfangen sollte. Ich gebe dir vollkommen Recht, dass es sinnvoll für das Verständnis ist, diese Sprache (irgendwann) zu lernen, aber darum geht es in diesem Thread nicht!
Aber mit python kann ich einfach nich... Wenns von der Editor-Einstellung abhängig ist, ob ein Programm läuft oder nicht (Tabs oder 4 Spaces) dann iss das für mich einfach eine Schrott-Sprache... Sorry, soll sich keiner persönlich angsprochen fühlen, aber des geht einfach mal gar nicht...
Das ist so nicht richtig oder unglücklich von dir formuliert. Man muss sich eben an den Coding-Stil des jeweiligen Projektes anpassen, wenn man irgendwo einsteigt. Das sollte man aber bei jeder Programmiersprache so machen, damit der Code im ganzen Projekt stimmig ist. Whitespace ist da nur ein Aspekt. Einige Projekte verlangen Camel Case für bestimmte Konstrukte, andere was anderes. Einige wollen Klammern auf der gleichen Linie wie die Funktionssignatur, anderere in einer eigenen Zeile.
Außerdem wär ich mal für ein paar Probleme ganz dankbar... Mir persönlich fällt nix ein wofürs nich schon tausend Lösungen gäbe...
Das verstehe ich nicht -
Ich hab zwar nicht mit Python angefangen, aber es ist mit Sicherheit eine Sprache, die schnell und einfach erlernbar ist. Allerdings gibt es auch viele Besonderheiten, wie Zwangsformatierung und die Sache mit den Datentypen und deren Zuweisung... Beides kann anfangs hilfreich sein, aber man sollte sich nicht daran gewöhnen, wenn man später mit anderen Sprachen arbeiten will.
-
bladehunter schrieb:
Ich zähle Python definitiv zu den Sprachen, die für Anfänger geeignet sind. Alternativ empfiehlt sich Lua
und wie lange ihr gebraucht habt, um Python zu lernen
Bei Programmiersprachen ist es ähnlich wie mit natürlichen Sprachen. Man ist eigentlich nie fertig mit Lernen. Von daher kann ich dir da auch keine Angabe machen
Lua als Alternative zu Python?
Wenn ich mich nicht irre war lua eher als scriptsprache zum einbinden in grössere projekte gedacht?
Also ich halte Python für um einiges mächtiger als lua.
Aber ja die Syntax ist wie schon erwähnt sehr menschenfreundlich. -
Also ein ähnliches Thema wurde schon hier
http://www.lima-city.de/thread/objective-c
besprochen.
Dort schrieb ich, dass das Buch "Einstieg in Python" von Thomas Theis für das Erlernen von Python super ist.
Am Anfang arbeitet man am Besten mit der IDLE Entwicklungsumgebung, die hilft beim Einrücken etc.
Zum Thema Anfängersprache:
Es kommt oft auf den persönlichen Programmier-Erlernens-Weg an, zu welcher Sprache man persönlich zu erst greift.
Schulen und Universitäten haben sich schon etwas dabei gedacht, warum sie zuerst C oder eine andere Sprache als Erst-Programmiersprache unterrichten.
ps: Python ist wirklich effektiv, dass sieht man daran, das Ableton mit Python u.a arbeitet:
http://www.ableton.com/de/pages/jobs/python_developer
pps: Kann man sich wieder auf die Kern-Frage konzentrieren und nicht über C-Formatierungen diskutieren.
Viel Spaß beim Programmieren -
darktomas schrieb:
Lua als Alternative zu Python?
Ja, als erste Programmiersprache.
Wenn ich mich nicht irre war lua eher als scriptsprache zum einbinden in grössere projekte gedacht?
Das ist zweifelsohne eine der größten Stärken von Lua. Man kann Lua aber auch prima alleine benutzen.
Also ich halte Python für um einiges mächtiger als lua.
Damit hast du auch Recht. Aber da wir hier über Sprachen für Anfänger sprechen, ist Mächtigkeit kein Kriterium, das an vorderster Stelle steht. Das heißt aber nicht, dass es Lua an Mächtigkeit mangelt. Ich denke jedenfalls, dass Lua noch ein gutes Stück einfacher ist als Python, dafür aber weniger mächtig ist. Aber diese Mächtigkeit wird man gerade als Anfänger nicht brauchen/vermissen.
Aber ja die Syntax ist wie schon erwähnt sehr menschenfreundlich.
Das gilt auch für Lua
jakarta schrieb:
Zum Thema Anfängersprache:
Es kommt oft auf den persönlichen Programmier-Erlernens-Weg an, zu welcher Sprache man persönlich zu erst greift.
Schulen und Universitäten haben sich schon etwas dabei gedacht, warum sie zuerst C oder eine andere Sprache als Erst-Programmiersprache unterrichten.
Nur weil man über etwas nachdenkt, wird man nicht zwangsläufig zu der richtigen Schlussfolgerung kommen -
Also ich persönlich bin mit Python ganz gut zurecht gekommen, jedenfalls vergleichsweise^^
Ich hatte es eben in der Schule in Informatik... Ich persönlich habe jedenfalls den Anfang nicht in der Schule sondern auf einem YouTube Channel gelernt, den ich dir hier mal nennen werde, er heist "The New Boston" und für den Anfang hat es mir SEHR weiter geholfen, hier der Link: http://www.thenewboston.com/
Viel spaß damit :)
MFG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage