Warum so schwer!?
-
Gregor schrieb:
this->that schrieb:
Gregor schrieb:
1. Ich finde, das Programmieren ist überhaupt nicht schwer.
Kommt drauf an WAS man programmiert.
Ich interpretiere das als ein "Die Schwierigkeit liegt in dem Bereich, in dem man programmiert, nicht im Programmieren selbst.". Habe ich das Richtig oder falsch interpretiert? Wenn Du das so meintest, dann kann ich mich dem anschließen.
Also wenn ich mir Sprachen wie C++, Assembler oder Lisp anschaue, dann kann durchaus auch programmieren selber schwer sein.
Außerdem ziehe ich keine strikte Grenze zwischen dem Bereich, den man umsetzen will, und dem programmieren an sich. Wenn ich ne 3D-Engine schreib, dann is zwar die Schwierigkeit vor allem die Mathematik, aber eben auch die Umsetzung der Mathematik in Sourcecode. Diese Umsetzung verstehe ich auch als Programmierung und das kann sehr leicht verdammt schwer werden.
-
TheoDerKaffee schrieb:
Gregor schrieb:
this->that schrieb:
Gregor schrieb:
1. Ich finde, das Programmieren ist überhaupt nicht schwer.
Kommt drauf an WAS man programmiert.
Ich interpretiere das als ein "Die Schwierigkeit liegt in dem Bereich, in dem man programmiert, nicht im Programmieren selbst.".
Soll das soviel heißen wie: "Zeichnen eines Hochhausplanes ist nicht schwer(also das Linien ziehen), sondern das planen des Hochhauses"?
Du willst darauf hinaus, dass ich vielleicht das Programmdesign vom Programmieren getrennt habe? Das war eigentlich nicht meine Intention. Wobei man darüber reden könnte. Ich wollte darauf hinaus, dass die eigentlichen Schwierigkeiten in der Modellierung der relevanten Dinge aus dem Problembereich liegen. Dafür benötigt man viel mehr Wissen, eben unter anderem über diesen Bereich und über informatische Methoden im Allgemeinen. Wenn ich zum Beispiel eine Software programmieren möchte, die etwas mit Spracherkennung zu tun hat, dann sollte ich besser etwas über Linguistik, Systemtheorie usw. wissen. ...alleine, damit ich die Probleme, die dabei auf mich zukommen, fassen kann. Damit ich in meinem Kopf formulieren kann, was ich eigentlich in meinem Programm ausdrücken will.
Soetwas sind IMHO Dinge, die man nicht mehr dem Programmieren zuordnen kann. Man kann eine Programmiersprache noch so gut beherrschen: Wenn man den Problembereich nicht versteht und auch nichts von informatischer Modellierung, dann kann man keine vernünftigen Programme in diesem Bereich schreiben.
-
Also... Programmieren (das "Linien ziehen", nicht das "Hochhaus Planen") ist IMO deswegen schwer, weil es logisches Denken erfordert. Und die meisten Menschen können nicht logisch denken. Was eine persönliche Beobachtung ist, nicht mehr und nicht weniger.
Wenn man mal Programmieren kann ("Linien ziehen") ist das andere (das "Hochhaus Planen") genau so schwer wie es eben ist: kommt ganz auf die Komplexität, Grösse, ... der Aufgabe an. Ein Einfamilienhaus ist einfacher zu planen/entwerfen als ein 70 stöckiges, erdbebenfestes Hochhaus.
-
hustbaer schrieb:
Also... Programmieren (das "Linien ziehen", nicht das "Hochhaus Planen") ist IMO deswegen schwer, weil es logisches Denken erfordert. Und die meisten Menschen können nicht logisch denken. Was eine persönliche Beobachtung ist, nicht mehr und nicht weniger.
Was genau verstehen die Leute hier eigentlich unter "logischem Denken". Ich finde, das ist ein relativ schwammiger Begriff. Kann das mal einer erörtern? Ich glaube, Wikipedia kennt auch kein "logisches Denken".
-
Muss man eigentlich immer alles genau definieren und in Kästchen packen? Ich denke das intuitive Verständnis von "logischem Denken", das ja wohl jeder hat, sollte eigentlich ausreichen.
-
Aus aktuellem Anlass (ich sitze gerade vor so einem Projekt) schmeiss ich noch mal was in die Runde: Ich bin gerade in einer Arbeitsgruppe gelandet, wo die Leute zwar unglaublich viel Ahnung von nachrichtentechnischen Systemen haben (dem Hochaus planen, hab ich in diesem Fall nur wenig Ahnung von), aber offenbar keinen blassen schimmer vom programmieren ihrer Siumualtion (dem Linien ziehen; ich bilde mir ein, sowas kann ich).
Nu sitz ich hier vor Funktionen mit 1,5k Codezeilen ohne Kommentaren (aber auskommentierten Code) und soll mich da rein arbeiten...
Offenbar ist Programmieren nicht so einfach, wie viele immer glauben. Leider. Sonst muesste ich mich nicht in dieses wirre Programm reinarbeiten
edit: Man sollte E-Techniker nicht programmieren lassen...
-
Taurin schrieb:
Aus aktuellem Anlass (ich sitze gerade vor so einem Projekt) schmeiss ich noch mal was in die Runde: Ich bin gerade in einer Arbeitsgruppe gelandet, wo die Leute zwar unglaublich viel Ahnung von nachrichtentechnischen Systemen haben (dem Hochaus planen, hab ich in diesem Fall nur wenig Ahnung von), aber offenbar keinen blassen schimmer vom programmieren ihrer Siumualtion (dem Linien ziehen; ich bilde mir ein, sowas kann ich).
Nu sitz ich hier vor Funktionen mit 1,5k Codezeilen ohne Kommentaren (aber auskommentierten Code) und soll mich da rein arbeiten...
Offenbar ist Programmieren nicht so einfach, wie viele immer glauben. Leider. Sonst muesste ich mich nicht in dieses wirre Programm reinarbeiten
edit: Man sollte E-Techniker nicht programmieren lassen...
Ich weis wie du dich fühlst. Ich musste mal ein paar Abstürze in einer 900 Zeilen langen Funktion suchen (natürlich auch keine Kommentare, mehrfach verschachtelte if Anweisung und keinerlei Fehlerbehandlung).
-
this->that schrieb:
...
Außerdem ziehe ich keine strikte Grenze zwischen dem Bereich, den man umsetzen will, und dem programmieren an sich....Das könnte das eigentliche Problem sein.
this->that schrieb:
Muss man eigentlich immer alles genau definieren und in Kästchen packen? Ich denke das intuitive Verständnis von "logischem Denken", das ja wohl jeder hat, sollte eigentlich ausreichen.
"Für jedes noch so komplizierte Problem gibt es eine Erklärung, die für jedermann verständlich - und falsch ist." (Prof. Harald Lesch)
Also wenn ich mir ansehe, was unsere Bäckereifachverkäuferin unter "logisch" versteht, überrascht mich nicht, dass Dein Ansatz spätestens bei der AKW-Steuerung scheitert ...Es GIBT einfach komplexe Probleme - und ein so komplexes technisches System wie einen PC dazu zu bringen, menschliche Sinneseindrücke zu simulieren ("3DEngine") gehört definitiv dazu - und bei denen hilft "gesunder Menschenverstand" bei weitem nicht so viel wie "Sachverstand". Um zu letzterem zu kommen, braucht man Zeit und Energie (und eine gewisse Begabung).
Und dass diejenigen, die diese (noch) nicht eingesetzt haben, weniger davon haben als "Sachverständige", ist wenig überraschend...
Man kann die Welt gerne anders wünschen ... aber sie ist halt so.
BTW1: Hatten die alten Griechen weniger "gesunden Menschenverstand" als wir oder warum haben die keine Flugzeuge gebaut ?
BTW2: "Gesunder Menschenverstand" ist nur ein Label für bisher gemachte (also "alte") Erfahrungen ... wer meint, es könne nichts mehr geben, was darüber hinausgeht, hat ein sehr eingeschränktes (und IMO sehr trauriges und arro-/ignorantes) Weltbild.
Gruß,
Simon2.
-
Taurin schrieb:
edit: Man sollte E-Techniker nicht programmieren lassen...
Genau, lassen wir am besten nur noch Informatiker ran, machen wir die Böcke zu Gärtnern!
-
Simon2 schrieb:
Es GIBT einfach komplexe Probleme - und ein so komplexes technisches System wie einen PC dazu zu bringen, menschliche Sinneseindrücke zu simulieren ("3DEngine") gehört definitiv dazu - und bei denen hilft "gesunder Menschenverstand" bei weitem nicht so viel wie "Sachverstand". Um zu letzterem zu kommen, braucht man Zeit und Energie (und eine gewisse Begabung).
bei sachverstand in bezug auf das thema selbst, stimme ich dir zu. aber leider muss man, wenn man einen computer nutzen und/oder programmieren will, auch viel über 'den computer selbst' wissen. ...und um das zu verbessern gibt's noch viel zu tun.
-
Undertaker schrieb:
...aber leider muss man, wenn man einen computer nutzen und/oder programmieren will, auch viel über 'den computer selbst' wissen. ...und um das zu verbessern gibt's noch viel zu tun.
Meinst Du: "... man muss zu viel über Computer wissen ..." ?
Ich glaube eben, dass "EDV" genauso ein "Sachgebiet" ist, über das man Bescheid wissen muss. Wie bei jeder "Hilfsmittel": Natürlich muss man nicht unbedingt jede Schraube kennen, aber je komplexer die Einsatzanforderungen sind, umso anspruchsvoller ist auch die Bedienung des Werkzeugs (wenn es denn geeignet ist).Um ein Beispiel zu nennen:
Dass ich zu Fuß gehen kann (=Mich fortbewegen kann) und Berlin und München als Stadt (=das Sachgebiet) kenne, bedeutet noch nicht, dass ich in der Lage bin, ein Frachtflugzeug dahin zu steuern (und damit die Anforderungen an Last und Termin einzuhalten).Wenn ich ein "alltägliches Problem" (also eines, das Viele andere auch haben), kann ich vielleicht vorgefertigte Lösungen (hier: Frachtunternehmen) zugreifen, aber diese bedeuten nicht, dass das Problem an sich weniger komplex geworden ist, sondern nur, dass jemand anders mir diese Komplexität (gegen Bezahlung abnimmt). Auf "Programmierung" bezogen hieße das: Statt selbst zu programmieren auf Fremdanwendungen zurückzugreifen...
Aber es gibt für viele Anforderungen (noch) keine vorgefertigten "Standardlösungen" (oder man will/kann sie nicht bezahlen) - und die Anforderungen werden immer komplexer (Ausfallsicherheit, Verteilung, Performance, Konsistenz, ...).
Ich denke, wir übersehen über allem Nutzerkomfort allzu leicht, wie komplex die heutige EDV ist - wenn man nur mal überlegt, was alles passieren/funktionieren muss, damit Du jetzt lesen kannst, was ich hier geschrieben habe ! Da säße ein einzelner Programmierer schon seeeehr lang dran, wenn er es "von der Pike an" selbst machen würde.Gruß,
Simon2.
-
Die Sache ist eigentlich ganz einfach:
Programmieren ist deshalb so schwer, weil der Computer so dumm ist.
Intuitive Programmiersprachen kann es schon deshalb nicht geben, weil der Rechner eben nicht intuitiv reagiert, sondern absolut stur.Wer programmieren lernen will, sollte auf jeden fall mit Basic anfangen, das ist am ehesten für Anfänger geeignet. ("Beginners all purposes symbolic instruction code"). Die Sprache wurde so entworfen, daß sie dem natürlichen, "intuitiven" Sprachgebrauch (der englischen Sprache) möglichst nahe kommt.
Es gibt haufenweise Tutorials für QuickBasic, FreeBasic und andere. Einfach mal bei QBasic.de reinschauen. Da hauts Dich schon mal um. Mit FreeBasic lassen sich auch GUI-Programme erstellen (allerdings gibt es dafür noch recht wenige Tutorials)Natürlich muß diese Sprache auch gelernt werden wie jede andere: und zwar mühsam :p
-
Elektronix schrieb:
Mit FreeBasic lassen sich auch GUI-Programme erstellen (allerdings gibt es dafür noch recht wenige Tutorials)
Ja, indem man direkt auf die WinAPI zugreift. Das ist natürlich genau das, was der Anfänger will. Ging es hier nicht gerade darum, dass es einfacher sein soll?
-
Nein, man kann mit FreeBasic auch stinknormale Consolen-Programme schreiben. Ich meinte ja nur, wenn man mal höhere Ambitionen entwickeln sollte...
-
Gregor schrieb:
Was genau verstehen die Leute hier eigentlich unter "logischem Denken".
In Bezug auf Programmieren zunächst mal die Fähigkeit zur Erkennung von Mustern bei vordergründig verschiedenen, scheinbar voneinander unabhängigen Problemen.
Des weiteren verstehe ich darunter die Fähigkeit, ein gestelltes Problem analysieren und in adäquate, lösbare Teilprobleme zerlegen zu können, sowie die Fähigkeit, die Eignung verfügbarer Teillösungen (z. B. in Form von APIs oder des Sprachumfangs einer beliebigen Programmiersprache) zu erkennen und passend zu kombinieren, um damit die Teilprobleme zu lösen.
-
Elektronix schrieb:
Wer programmieren lernen will, sollte auf jeden fall mit Basic anfangen, das ist am ehesten für Anfänger geeignet. ("Beginners all purposes symbolic instruction code"). Die Sprache wurde so entworfen, daß sie dem natürlichen, "intuitiven" Sprachgebrauch (der englischen Sprache) möglichst nahe kommt.
Edsger Wybe Dijkstra sagt dazu dies: Es ist praktisch unmöglich, einem Studenten gutes Programmieren beizubringen, wenn er vorher in BASIC programmiert hat. Als potenzielle Programmierer sind sie geistig verstümmelt ohne Hoffnung auf Erholung.
Dem ist (nach reiflicher Überlegung) nichts mehr hinzuzufügen.
-
schmidt-webdesign.net schrieb:
Edsger Wybe Dijkstra sagt dazu dies: Es ist praktisch unmöglich, einem Studenten gutes Programmieren beizubringen, wenn er vorher in BASIC programmiert hat. Als potenzielle Programmierer sind sie geistig verstümmelt ohne Hoffnung auf Erholung.
Dem ist (nach reiflicher Überlegung) nichts mehr hinzuzufügen.
Doch. Die Begründung
Demnach müßte man vermuten, daß Bill Gates und Co. das Programmieren mit Basic begonnen haben.
-
schmidt-webdesign.net schrieb:
Edsger Wybe Dijkstra sagt dazu dies: Es ist praktisch unmöglich, einem Studenten gutes Programmieren beizubringen, wenn er vorher in BASIC programmiert hat. Als potenzielle Programmierer sind sie geistig verstümmelt ohne Hoffnung auf Erholung.
Dem ist (nach reiflicher Überlegung) nichts mehr hinzuzufügen.
Darf ich diese Aussage als persönliche Beleidigung auffassen?
-
CStoll schrieb:
Darf ich diese Aussage als persönliche Beleidigung auffassen?
Wozu, Tote sind, zumindest praktisch, nicht mehr satisfaktionsfähig.
Außerdem trifft die Aussage auf dich nicht zu, oder hat dir jemand anderes gutes Programmieren beigebracht? Ich nehme an, du hast es dir selbst beigebracht, und dabei selbst die Knoten, die dir Basic ins Gehirn gesetzt hat, gelöst.
-
Elektronix schrieb:
schmidt-webdesign.net schrieb:
Edsger Wybe Dijkstra sagt dazu dies: Es ist praktisch unmöglich, einem Studenten gutes Programmieren beizubringen, wenn er vorher in BASIC programmiert hat. Als potenzielle Programmierer sind sie geistig verstümmelt ohne Hoffnung auf Erholung.
Dem ist (nach reiflicher Überlegung) nichts mehr hinzuzufügen.
Doch. Die Begründung
Demnach müßte man vermuten, daß Bill Gates und Co. das Programmieren mit Basic begonnen haben.
Was war noch gleich das erste Produkt der Firma MicroSoft? Wofür war die Firma MicroSoft Ende der 70er Jahre, Anfang der 80er noch gleich bekannt geworden? Das Produkt, dass in nahezu jedem Personal Computer steckt, der Ende der 70er bis Mitte der 80er verkauft wurde? Das Produkt, bevor man DOS geklaut hat?
BASIC ^^
Wer würde Microsoft heute noch kennen, wäre IBM nicht derart selten dämlich vorgegangen und hätte die Firma von vorne bis hinten durchfinanziert und zur Belohnung auch noch das Produkt lizenziert, dass dessen Entwicklung sie vorfinanziert haben.