Offener Brief an Pythonneulinge

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

Ergänzend zu EyDu's erstem Absatz: Welcher der Ansätz ”am natürlichsten” ist, hängt neben der Person auch vom Problem ab. Gerade darum mag ich Multiparadigmen-Sprachen. Man kann für jedes Problem den Ansatz wählen der einem natürlicher erscheint und damit leichter von der Hand geht.

Zum gesunden Menschenverstand: Ich hatte beim ersten Kontakt mit rein funktionaler Programmierung meine Probleme weil ich mit imperativen Sprachen (BASIC, Assembler, Pascal, C, …) gross geworden bin. Fasziniert habe ich die Mitstudenten gesehen die vorher *keine* Programmiererfahrung hatten und wie relativ leicht ihnen Haskell gefallen ist. Um dann im nächsten Semester bei Java zuzusehen wie *die* sehr ähnliche Anfangsschwierigkeiten mit imperativ/OOP hatten wie ich beim Um-/Einstieg auf rein funktional. Ich denke keines der Paradigmen ist per se natürlicher als das andere. Irgendwie unnatürlich sind sie alle, weil Menschen im Allgemeinen nicht alles formal durchstrukturiert durchdenken, man muss das also für jedes Paradigma erst lernen und üben.

Deklarativ ist zwar auf der einen Seite ein wenig exotisch, weil die meisten verbreiteten Programmiersprachen dafür keine Unterstützung in der Sprache selbst bieten, auf der anderen Seite aber auch verbreitet, weil relationale Datenbanken und damit das deklarative SQL häufig eingesetzt werden. Und für viele Sprachen gibt es Unterstützung in Form von Bibliotheken für verschiedene Arten der deklarativen Programmierung. Mehr als zu sehen *was* gemacht werden soll braucht man doch auch gar nicht um die Lösung hinreichend zu verstehen. Der Sinn ist ja gerade das *wie* zu abstrahieren, damit man sich auf das wesentliche konzentrieren kann.
Dami123
User
Beiträge: 225
Registriert: Samstag 23. Februar 2013, 13:01

Python ist meine erste Programmiersprache und ich versuche möglichst funktional zu programmieren.
Nutze dafür imperative und deklarative Programmierparadigmen und so wie es halt funktioniert.
BlackJack

@Dami123: Ich habe das Gefühl Du kennst die Bedeutung der Begriffe nicht. Der Beitrag macht keinen Sinn. Wenn man möglichst funktional Programmiert, dann ja gerade nicht imperativ. Und deklarativ in Python? Die Sprache selbst unterstützt das nicht direkt. Es gibt einige wenige Bibliotheken die deklarative Ansätze anbieten — wo das halt Sinn macht. In der Regel steckt einiges an Metaprogrammierung in diesen Bibliotheken um die nötige „Magie” zu implementieren.
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Meine Programme haben Funktionen, funktionieren und bieten viel Funktionalität. Wenn das keine funktionale Programmierung ist, dann weiß ich auch nicht... ;)
BlackJack

Nur weil wahrscheinlich nicht jeder die Ironie mitbekommt: Funktionale Programmierung :-)
Dami123
User
Beiträge: 225
Registriert: Samstag 23. Februar 2013, 13:01

@BlackJack
Die perfekte Definition könnte ich dir für die Begriffe nicht abliefern, aber meine mit imperativ und deklarativ die Ansätze.
Soweit ich das verstanden hab https://de.wikipedia.org/wiki/Programmierparadigma.
BlackJack

@Dami123: Du schreibst im ersten Satz Du versuchst möglichst funktional zu Programmieren und im zweiten Satz dass *dafür* imperativ und deklarative Paradigmen benutzt — das widerspricht sich, denn funktional ist ja gerade *nicht imperativ*, darüber definiert sich das funktionale Paradigma ja, dass man nicht imperativ programmiert. Also gehe ich mal davon aus, dass Du zu dem Zeitpunkt funktional wahrscheinlich noch so aufgefasst hast, wie snafu das in seinem ironischen Beitrag beschreibt.
Dami123
User
Beiträge: 225
Registriert: Samstag 23. Februar 2013, 13:01

Ja so ist es :D
DerUser9
User
Beiträge: 14
Registriert: Mittwoch 12. November 2014, 20:42

burli hat geschrieben:
ms4py hat geschrieben:Dem kann ich nur zu stimmmen. Ich bin bereits schon x-Mal während dem Verfassen eines Beitrages selbst auf die Lösung gekommen :)
Ich nicht. Bei mir ist meist erst 5 Minuten nach dem Post der Groschen gefallen. Aber ich bin ja schon alt. Ich darf das ;)
Ich bin jung, darf ich das etwa nicht? :cry:
smile-1969
User
Beiträge: 20
Registriert: Sonntag 22. März 2015, 16:46

Mir als "Neuling" hat der offene Brief gut gefallen (schade, das die Diskussion dazu irgendwie vom Thema abschweift). Ich kann mir schon vorstellen das sich den Fortgeschrittenen bei mancher Frage der Magen umdreht. Aber 'Neulinge' sind keineswegs Monster, die ihre Freizeit damit verbringen Fortgeschrittene zu terrorisieren (na ja, faktisch schon, aber nicht absichtlich).
Ich persönlich habe die Erfahrung gemacht das es am Anfang zwar sehr leicht ist im Web Unmengen an Beiträgen von der Sorte print "Hello world" zu finden, danach ist es aber bei der Fülle kaum möglich systematisch weiterzumachen. Und schnell war ich an dem Punkt, wo es eher frustrierend war zu googlen als hilfreich. Die meisten Tutorials sind zudem in Englisch - da werde ich dann quasi in zwei Fremdsprachen gleichzeitig unterrichtet-Python und Englisch (und ich bin als Elektroniker den Umgang mit englischen Datenblättern gewohnt, aber trotzdem...). Somit gibt es als 'Neuling' halt nur drei Möglichkeiten: Ich bestelle mir ein Buch, ich Frage im Forum, oder ich hake das Thema ab. Und mal ganz ehrlich, wie soll man es als Neuling hinkriegen keine dumme Frage zu stellen?
Wenn ich meine eigenen Fragen in einem halben Jahr lese denke ich wahrscheinlich auch "Was für ein Idiot...!", aber was soll's.
Ich finde sachliche Kritik von Fortgeschrittenen sehr gut und man muss die auch nicht mit 'nem Blumenstrauß überreichen.
Mir ist dieses Forum eine große Hilfe für den Einstieg und ich persönlich kann jeden Neuling nur ermutigen dieses Forum zu nutzen.
Extrem positiv ist mir aufgefallen das Fragen hier sehr systematisch beantwortet werden, denn letztendlich hilft mir ein fertiges Script nur die Bohne, wenn ich's hinterher nicht verstehe.
Benutzeravatar
Kebap
User
Beiträge: 686
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

smile-1969 hat geschrieben:mal ganz ehrlich, wie soll man es als Neuling hinkriegen keine dumme Frage zu stellen?
Man muss kein Experte in einem Thema sein, um den freiwilligen Helfern das Leben zu vereinfachen.

Auch dazu gibt es gute Anleitungen, ich empfehle zum Beispiel gerne diese: Wie man Fragen richtig stellt
Inhaltsverzeichnis ¶

Übersetzungen
Disclaimer
Einführung
Bevor du fragst
Wenn du fragst

Wähle das Forum sorgfältig
Web- und IRC-Foren für Newbies liefern oft am schnellsten eine Antwort
Verwende Projekt-Mailinglisten als zweite Anlaufstelle
Verwende aussagekräftige, genaue Betreffzeilen
Mache es deinem Ansprechpartner einfach, dir zu antworten
Schreibe in klarer, grammatikalisch korrekter Sprache
Sende Fragen in zugänglichen, offenen Formaten
Sei genau und informativ über dein Problem
Masse ist nicht Genauigkeit
Behaupte nicht übereilt, du hättest einen Fehler gefunden
Selbsterniedrigung ist kein Ersatz für nicht gemachte Hausaufgaben
Beschreibe die Problemsymptome, nicht deine Vermutungen
Beschreibe die Symptome deines Problems in chronologischer Reihenfolge
Beschreibe das Ziel, nicht einen Schritt
Verlange keine Antworten durch private Mails
Stelle eine deutliche Frage
Wenn du nach Code fragst
Poste keine Hausaufgaben
Vermeide aussagenlose Fragen
Kennzeichne deine Fragen nicht als Wichtig, auch wenn sie es für dich sind
Höflichkeit tut nie weh und hilft manchmal
Poste anschließend eine kleine Anmerkung zur Lösung

Wie man Antworten interpretiert

RTFM und STFW: Wie man mitteilt, dass du wirklich danebengelangt hast
Wenn du nicht verstehst...
Umgang mit Grobheit

Nicht wie ein Loser reagieren
Fragen, die man nicht stellen sollte
Gute und schlechte Fragen
Falls du keine Antworten bekommst
Fragen auf eine hilfreiche Art beantworten
Sachverwandte Ressourcen
Besonderer Hinweis für FAQ Listen-Maintainer und Webmaster
Danksagung
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
mischaef
User
Beiträge: 2
Registriert: Sonntag 27. Dezember 2015, 18:50

Ich hoffe mal, dass der Thread einer ist, der ständig erweitert werden kann - nicht dass ich hier schon beim ersten Post einen drüber bekomme, weil ich alte Beiträge rauskrame...^^

Ich würd gerne meinen Senf zum Eingangspost abgeben, denn ich stecke eben gerade frisch in diesem Dilemma. Ich besitze schon einige Kentnisse in Sachen Programmierung, habe in meiner Ausbildung mit C und C++ zu tun gehabt, bin dann Aufgrund meines Jobs auf PHP umgestiegen (HTML und CSS waren auch da, ist aber natürlich keine Programmierung). Mit letzterem habe ich mittlerweile bereits einige größere Web-Projekte umgesetzt. Dazwischen habe ich es mal mit Java probiert, bin aber recht schnell wieder davon weg. Jetzt versuche ich es mit Python, hab mir ein Buch gekauft (ich kann halt besser mit Büchern lernen) und wurschtle mich da so durch - wobei mir in den Grundzügen vieles von PHP vertraut vorkommt.

Auf der anderen Seite würde ich mich selbst als lausigen Programierer bezeichnen (was sicherlich übertrieben ist). Es liegt aber daran, dass ich eher logisch strukturiert bin und ich Dinge zum "anfassen" brauche. Ich möchte auch immer ganz genau wissen wofür ich etwas brauche, damit ich es nicht auswendig lerne sondern auch anderweitig anwenden kann. Beispiel: Ich möchte nicht nur wissen, wieviel Hefe in einen Teig kommt, sondern ich möchte auch wissen was die Hefe dort macht, damit ich später eben weiß, dass ich Hefe brauche um einen gewissen Effekt zu erzielen. Aber jede Programiersprache (meiner Erfahrung nach) wird irgendwann abstrakt - für mich spätestens wenn es um OOP geht. Ich bin bei C++ schon beim Thema Zeiger ausgestiegen, weil es für mich einfach zu theoretisch war. Ich brauche, wie gesagt, immer etwas was ich mit der realen Welt verbinden kann. Dazu kommt, das mein Englisch eben ebenfalls nicht das Beste ist.

Warum mache ich es trotzdem? Weil es Spaß macht!!!

Nur ist der Weg eben wie oben bereits beschrieben oftmals frustrierend. Was mich aber oftmals beim Umgang mit Neulingen in anderen Foren immer gestört hat, war eben die RTFM-Haltung. Ja, es gibt sicherlich Neulinge, welche eine komplette Lösung vorgelegt haben wollen - meiner Meinung werden diese sich aber nicht lange in dem Bereich halten. Oftmals sind die Anleitungen aber auch nicht leicht zu verstehen und Neulinge kommen nicht weiter. Dann liegt es aber nicht immer am Anfänger, sondern auch an dem, der es erklärt. Oftmals weiß man aber auch nicht wo man anfangen soll. Ich hab mir bei solchen Dingen angwöhnt, aufzuzeigen, wo ich mich bereits informiert habe oder was ich bis hierhin weiß - eigentlich aber nur um keine RTFM-Kommentare zu bekommen und zu "belegen", dass ich es eben versucht habe. In meinen Augen schon etwas wie eine "Rechtfertigung".

Manchmal wären aber einfache Antworten in meinen Augen besser. Ich habe vorhin einige Zeit im Netz bezüglich des leidlichen Themas Python kompilieren gesucht. Dabei bin ich auf den PyInstaller, Py2Exe oder IronPython gestoßen. Dem ganzen folgten unzählige Code-Beispiele und wie man es umsetzen kann - für mich als Einsteiger einfach too much information. Hier hätte ein einfaches "Ja, geht, aber mit den und den Einschränkungen" oder "Nein, geht nicht ohne weiteres" gewünscht. Ich wäre schon über eine für Anfänger verständliche Erklärung dankbar, warum eine Programmiersprache sinnvoll ist, bei der ein "Interpreter" verwendet werden muss - wenn doch die meisten Nutzer gewohnt sind, ein Programm zu installieren. Ich weiß, dazu gehören Vorteile wie plattformübergreifend und so. Hiervon hängt für mich z.B. ab, ob ich mich weiter in Python vertiefe oder nicht - denn ich bin eigentlich auf der Suche nach einer Programmiersprache, bei der meine Programme auch von anderen Nutzern verwendet werden kann, ohne das diese extra eine Umgebung installieren zu müssen. Auch hier im Forum habe ich geschaut, die Suche hat einige Sachen ausgeworfen, von denen ich bei den bisher gesichteten nur Bahnhof verstanden habe. Naja, der Abend ist ja noch lang...^^

Natürlich lernt man vieles nur, wenn man es selbst ausprobiert und natürlich helfen hier alle freiwillig und das ist toll (ich finde es schade, dass ich kaum etwas wirklich so gut kann, dass ich anderen helfen könnte...). Aber oftmals steht man als Anfänger vor einem Berg und sieht den sprichwörtlichen Wald vor lauter Bäumen nicht. Oftmals denkt man auch zu kompliziert, so dass man auch mit falschen Begriffen sucht - passiert mir sehr oft, daher frag ich meine Frau immer, womit sie bei dem Problem suchen würde - und oftmals finde ich dann die Lösung...^^. Hier bedarf es oftmals keiner direkten Lösung, sondern einfach nur jemand mit Erfahrung, der das ganze überblickt und einen Schubs in die richtige Richtung gibt (nach dem Motto: "Schau mal nach XYZ"...). Auch ist es nicht selten so, dass Google noch mehr Verwirrung stiftet, denn auf der einen Seite wird es so erklärt, die andere Seite erklärt es wieder anders. Gerade bei PHP ist es mir nicht selten passiert, dass Dinge aus Tutorials eben falsch waren - nur wie will ein Anfänger dies wissen?

Natürlich gibt es Dinge, bei denen eine einfache Suche hilft - wie bei PHP z.B. solche häufig gestellten Anfängerfragen wie ich einen String zerlege oder zusammenfüge. Aber schon danach tauchen erste Bereiche auf, bei denen auch viel Unsinn im Netz geschrieben wird.

Kurze Rede, gar keinen Sinn: Seht in Neulingen nicht immer eine "faule Nervensäge", die alles vorgekaut haben will. Das ist für beide Seiten nicht zukömmlich, die Helfer sind frustriert und helfen vielleicht weniger, dem Neuling wird der Spaß am Programmieren genommen - und ich denke dass dies hier keiner will. Oftmals reicht ein kleiner Fingerzeig. Und wenn wir ehrlich sind: Jeder von den Erfahrenen hier hat einmal angefangen, stand vor den gleichen Problemen und war froh, dass ihm geholfen wurde. Und genauso war er gefrustet, wenn er blöde Antworten statt Hilfe bekommen hat. Und Neulinge sollten es den Helfern dagegen einfach machen, damit Hilfe auch effizient ankommt!

Ich hoffe ich bin mit meinem Erkärungsversuch keinem auf die Füße getreten, ich bin eigentlich recht umgänglich...^^

In diesem Sinne auf gute Zusammenarbeit...^^
BlackJack

@mischaef: Das Thema hier darf jederzeit von jedem mit weiteren Beiträgen erweitert werden. Also keine Angst. Falls sich das zu einer Diskussion entwickelt die ein eigenständiges Thema sein könnte/sollte, dann kann das ein Moderator immer noch zu einem solchen machen. :-)

Zeiger als zu abstrakt zu bezeichnen ist interessant. Ich würde das zu den deutlich weniger abstrakten Themen zählen, weil das sehr nah daran ist wie der Rechner arbeitet, und sehr weit entfernt von den Sachen die man als Programmierer eigentlich lösen möchte, und die man eigentlich gerne deutlich abstrakter formulieren möchte. Solange man sich nicht gerade mit Systemprogrammierung oder der Implementierung einer Programmiersprache beschäftigt und deshalb so nah an die Hardware heran muss. Für Zeiger würde ich C empfehlen und sich dort klar machen, dass der Rechner eigentlich Zahlen kennt, und das alles was C kann und macht ist, diese Zahlen unterschiedlich zu interpretieren. Ein bisschen Assembler für eine nicht all zu komplexe Rechnerarchitektur kann beim Verständnis auch nützlich sein. Denn C ist recht nah an Maschinensprache dran. Sozusagen ein plattformübergreifender Makroassembler.

Die ”Rechtfertigung” sehen halt viele Helfer als notwendig an. Sonst kann man die Leute die sich mit dem jeweiligen Thema beschäftigt haben, nicht von denen unterscheiden, die nur eine fertige Lösung haben wollen ohne sich selber Gedanken machen zu müssen. Ausserdem kann die Beschreibung des Weges bis zum Problem dabei helfen zu erkennen wo der gedankliche Fehler beim Fragenden liegt. Was dann wiederum eine bessere Antwort ermöglicht.

”Python kompilieren” ist ein etwas komplexeres Thema was anscheinend viele Anfänger interessiert, aber deutlich weniger Benutzer der Sprache. Es gibt zig Varianten für die verschiedenen Randbedingungen und Fallstricke oder Besonderheiten, je nach dem was da alles mit ”eingepackt” werden muss/soll. Das installieren einfach so geht, halte ich übrigens für nicht gegeben, denn ich kann mich an genug Software erinnern bei der man dann noch irgendwo aus dem Netz eine VBRUN_irgendwas.DLL installieren musste damit die funktioniert. Und auch in Java geschriebene Programme setzen in der Regel eine installierte JVM voraus. .NET-Programme bringen .NET selber sicher auch nicht mit, also hat man da auch ein Problem wenn das Programm eine neuere Version braucht als bei der Windowsinstallation dabei war.

Das würde für Python bedeuten, dass der Benutzer vorher Python installieren muss, was als MSI-Installer auf der Python-Webseite vorhanden ist. Man kann sich da mit den geeigneten Installer-Systemen sicherlich einen Installer basteln der prüft ob Python bereits installiert ist, und falls nicht, anbietet vor dem eigenen Programm so ein Python-MSI passend zum System zu installieren. Denn in irgendeiner Form *muss* Python installiert oder zumindest mitgeliefert werden.

Packaging ist allerdings IMHO ein ungünstiges Thema für den Anfang weil man dafür Module, Packages, und Python's Importmechanismus halbwegs verstanden haben muss. Das sind wiederum nicht die Themen mit denen man üblicherweise anfängt wenn man Python lernt. Das braucht also alles ein klein wenig Vorlauf. Wenn Du den nicht investieren möchtest, inklusive der möglichen Erkenntnis, dass es am Ende nicht das ist was Du haben möchtest, dann würde ich von Python abraten.
mischaef
User
Beiträge: 2
Registriert: Sonntag 27. Dezember 2015, 18:50

Danke für die Antworten...^^

Ich fand es, ehrlich gesagt, schon schwierig herauszufinden, wofür Python überhaupt genutzt werden kann - Infos darüber waren für mich schwer zu finden. Bei PHP ist direkt bekannt, das es hauptsächlich in Web-Projekten Verwendung findet. Klar ist es auch möglich, diese für eigenständige Programme zu nutzen, aber dann auch eher umständlich. Für Python konnte ich das nur schwer finden. Ich hab nur rausgefunden, dass hier halt vor allem auf leichtes Erlernen geachtet wurde. Aber wofür? Rechner? Web?

Das mit dem Interpreter sehe ich vielleicht zu sehr von der Nutzerbene. Mein Vater ist mit seinen 61 Jahren eben gewohnt, Programme zu installieren. Wenn ich dem sagen würde, dass Du für das Programm noch einem Interpreter im Netz laden musst, würde dieser Geistig aussteigen. Dennoch muss es auch beo Python mögilch sein, denn ich kenne einige Spiele, die auch in Python geschrieben sind und diese liefen bei mir, ohne dass ich den Interpreter installiert habe.

Momentan habe ich eher das Gefühl, dass es die Sprache für "mich" nicht gibt. Mit C++ bin ich auch nie wirklich warmgeworden, gleiches gilt für Java. C# fällt für mich wegen der Bindung an Windows weg, so wird die Auswahl immer kleiner...

Aber vielleicht sind das jetzt auch Bereiche, die nicht in diesen Thread gehören...
BlackJack

@mischaef: Python kann grundsätzlich für fast alles eingesetzt werden. Abzüglich sehr hardwarenaher Programmierung und solcher wo es auf reine Ausführungsgeschwindigkeit von Python-Code ankommt. Bei letzterem kann man sich allerdings damit behelfen die zeitkritischen Teile in C, C++, oder auch Fortran zu schreiben, oder eine Bibliothek zu verwenden die eben das schon gemacht hat. Das Numpy-Package und was es da so an Sachen gibt die darauf aufbauen fallen in diese Kategorie.

Du sollst Deinem Vater ja auch nicht sagen er soll sich etwas zusätzlich aus dem Netz laden sondern den Installer für Python mitliefern und ihm sagen das er erst Python installieren soll und dann Dein Programm. Wenn Du Dir ein bisschen mehr Arbeit machst, dann bietest Du einen Installer der das für ihn erledigt. Oder Du packst mit dem entsprechenden Werkzeug Dein Programm und Python in einen Installer. Die üblichen Verdächtigen dafür hast du ja schon genannt. Wenn Du Spiele kennst, dann schau wie die das Problem gelöst haben.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

BlackJack hat geschrieben:Wenn Du Dir ein bisschen mehr Arbeit machst, dann bietest Du einen Installer der das für ihn erledigt. Oder Du packst mit dem entsprechenden Werkzeug Dein Programm und Python in einen Installer.
@mischaef: Wenn es nicht Windows sein muß, ist dies mit PyRun sogar ganz einfach.
dannyboy385
User
Beiträge: 39
Registriert: Freitag 27. November 2015, 21:24

Ich dachte ich werde hier jetzt auch mal meinen Senf los :D verzeiht mir .

Ich habe mich für Python ebenfalls entschieden weil ich mit C absolut nicht warm geworden bin, es wenig informationen im Netz gab und es mir auch ganz einfach zu umständlich war vor jedem möglichen Test der Software diese erst einmal zu kompilieren. Mein interesse an der Programmierung war und ist schon immer sehr groß. Nebenbei beschränken sich meine Kenntnisse in Sachen Programmierung auf einen bruchteil von C und AVR-Assembler, was nun noch weniger mit der Programmierung eines PCś zu tun hat.
Was mir aufgefallen ist, ist das hier im Forum alle sehr Hilfbereit sind. In anderen Foren ist man es leider als Neuling gewohnt blöde und unpassende Antworten zu erhalten die alle den gemeinsamen Kontext "Mach dein SCH*** doch selber" mit sich bringen. Ich hänge mommentan ebenfalls an der Thematik der OOP und der Verwendung von Klassen. Aber auch wenn ich bis jetzt immer noch nicht so ganz verstanden habe bin ich froh einen Ort zu kennen wie dieses Forum wo ich jederzeit um HIlfe bitten kann.
Ein großes Danke schon mal an euch alle.
Daniel
BlackJack

@dannyboy385: Zu C gibt es zu wenig Informationen im Netz? Das kann ich mir irgendwie nur sehr schwer vorstellen, wo das doch eine der älteren Sprachen ist, die aber trotzdem hardwarenah noch sehr viel eingesetzt wird, und das mit Mikrocontrollern (Arduino & Co) auch gerade sehr ”in” ist.

Wenn man C schon kann oder eine andere Programmiersprache, dann lohnt sich ein Blick in Learn C The Hard Way, auch wenn das noch nicht fertig ist. Und trotz dem gerade diese Quelle vom K&R-C-Buch abrät, so ist das IMHO doch ein Standardwerk das man mal gelesen haben sollte, auch wenn darin nicht mehr alles ”modernes” C ist.

Wenn man Assembler kann, hat man IMHO auch einen weiteren Vorteil wenn man C lernt, der zum Beispiel Leuten fehlt die von höheren Sprachen zu C kommen. C ist ja doch sehr hardwarenah und im Grunde eine Art plattformunabhängiger Makroassembler. Wenn man Maschinensprache kann, dann kann man sich auch bei allen C-Konstrukten in der Regel leicht vorstellen zu welchem Assemblercode sie übersetzt werden könnten.
HugoCaspar
User
Beiträge: 7
Registriert: Montag 22. Februar 2016, 10:14

wie läuft das eigendich mit der neueröffnung von themen?

ich saß gestern abend an einem problem das ich lösen aber nicht verstehen konnte!

Code: Alles auswählen

from datetime import date
war falsch! aber

Code: Alles auswählen

from _datetime import date
ging!? was macht dieser bodenstrich?

giebt es eine gute möglichkeit zu suchen/finden?
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@HugoCaspar: ein neues Thema eröffnet man immer, wenn man eine neue Frage hat, wie hier zum Beispiel. Dazu geht man in das passende Forum ("Allgemeine Fragen") und drückt den Knopf "neues Thema". _datetime zu importieren ist falsch. Der Unterstrich sagt Dir, dass das Modul nur für interne Zwecke ist. Dein Fehler ist, dass Du datetime schon anderweitig verwendest, also Deine Programmdatei auch datetime.py heißt. Benenne die Datei anders und lösche datetime.pyc, falls vorhanden.
Antworten