Der tragische Trugschluss des Ranga Yogeshwar
„Jeder kann programmieren” – meint er. Oder: Warum Programmieren doch nichts für Physiker ist.
Ich bin gerade auf mehreren Webseiten darüber gestolpert, dass der Wissenschafts-Journalist Ranga Yogeshwar zusammen mit Fraunhofer IUK eine Initiative „Jeder kann programmieren” starten will. Und Sigmar Gabriel von der SPD ist da auch irgendwie beteiligt (siehe Heise, Handelsblatt, Stern, FAZ usw.)
Sorry, wenn ich das gleich mal so direkt sage, aber: Das ist Blödsinn. Schlimmer noch: Gefährlicher Blödsinn.
Warum?
Ich betrachtes es mal aus zwei Blickwinkeln. Zuerst aus dem Blickwinkel von Yogeshwar und den Fraunhofers (auf Fraunhofer bin ich bekanntlich ohnehin nicht gut zu sprechen und halte viele von denen für Schwätzer, die gerne publizistischer und politischer Opportunität nachgehen). Da fällt zunächst mal auf, wie unüberlegt und widersprüchlich das zu sich selbst ist.
[FAZ:] Ranga Yogeshwar: Programmieren heißt ja eigentlich nur, eigene Gedanken so zu übersetzen, dass man eine Aufgabe löst.
Nein. Das ist Populärgeschwurbel, aber nicht richtig.
Programmieren heißt zunächst mal, die Aufgabe zu verstehen und zu erfassen. (Daran fehlt es vielen schon.) Das sollte man nicht unterschätzen, das ist eines der Hauptprobleme. Und das kann man nicht einfach so, das muss man (der eine mehr, der andere weniger) lang und mühsam erlernen und üben. Eine Kernfähigkeit eines guten Informatikers (oder meinetwegen auch Programmierers) ist es, das Problem zu erfassen, zu verstehen und zu beschreiben. Das ist die Grundlage des Programmierens, noch bevor man eine Zeile Programmcode geschrieben hat. Danach geht es darum, die Aufgabe zu lösen und dabei erlerntes Wissen über Algorithmen, bekannte Problemlösungen, typische Fehler, aber auch Berechenbarkeit, Komplexität, Sicherheit usw. anzuwenden. Oder anders gesagt: „Programmieren” heißt nicht (nur), das konkrete Programm zu schreiben (Stichwort: Implementieren/Realisieren), sondern zuerst mal Gedanken zu finden, die zur Lösung des Problems führen, und die so abstrahierbar und beschreibbar sind, dass auch ein anderer oder sogar eine Maschine sie abarbeiten kann. Programmieren ist weitaus mehr als „nur” eigene Gedanken zu übersetzen, und die Fähigkeit, diese Gedanken zu einer gegebenen Aufgabe zu finden, ist auch nicht jedem in die Wiege gelegt.
Wenn ich solche Sprüche lese, habe ich den Eindruck, dass Yogeshwar selbst nicht viel Ahnung vom Programmieren hat, aber anderen erklären will, wie einfach das sei. Hört sich so ein bisschen an wie wenn der Blinde von der Farbe predigt.
[Stern:] Ranga Yogeshwar: Ich glaube, dass wir heute einfach programmieren lernen müssen. Ich vergleiche das gerne mit der Erfindung des Buchdrucks. Viele Menschen konnten damals nicht lesen und schreiben, erst der Buchdruck hat dann im Laufe der Zeit dafür gesorgt, dass immer mehr Menschen das gelernt haben. Programmieren ist die Sprache des 21. Jahrhunderts und ist nicht nur etwas für Nerds, sondern sollte von jedem beherrscht werden.
Wenn man schon den (eher dümmlichen) Vergleich zum Lesen und Schreiben zieht: Wir haben in Deutschland mindestens 4 bis 5 Millionen (primäre und eher noch mehr funktionale) Analphabeten. Vor einiger Zeit habe ich beschrieben, dass am Maßstab des funktionalen Analphabetismus gemessen sogar viele Professoren deutscher Universitäten als Analphabeten gelten müssen, weil sie die Schreib-, Lese- und Formulierungsfähigkeiten nicht aufbringen, die von Professoren eigentlich zu fordern wäre. Wir hatten das ja gerade, dass Professoren und ganze Universitäten nicht in der Lage sind zu artikulieren, was sie vorgeblich seit 10 Jahren forschen, lehren und prüfen.
Wenn aber schon so viele Leute nicht angemessen lesen und schreiben können, wie kann man dann behaupten können, jeder könne programmieren?
Und es geht nicht nur ums Lesen und Schreiben. In der Industrie häufen sich die Klagen darüber, dass viele Bewerber nicht mehr über die nötigen Fähigkeiten im Rechnen und Aufgabenlösen verfügen. Gerade das braucht man zum Programmieren. Ein Computer ist eben ein »Rechner« und ein Programm eine Rechenanweisung. Wer nicht in der Lage ist, die nötigen Gedanken zu finden, der kann sie auch nicht in etwas Brauchbares übersetzen.
Insofern ist schon der Ansatz verfehlt, zu unterstellen, dass jeder programmieren könne. (Man hört da aber schon wieder die Gleichstellungs- und Gleichmacherpolitik der SPD heraus, die jegliche erlernte Befähigung zugunsten derer, die nicht über sie verfügen, verleugnen.) Man müsste im Gegenteil den umgekehrten Ansatz gehen und fragen, was man an den Schulen ändern und verbessern müsste, damit hinterher möglichst viele Absolventen möglichst gute Grundlagen zum Erlernen haben. Denn wie soll man Programmierer heranziehen, wenn wir es nicht mal schaffen, Lesen, Schreiben, Rechnen flächendeckend zu vermitteln? (Wollte ich jetzt etwas sarkastisches sagen, würde ich mich darüber lustig machen, dass Yogeshwar in der FAZ auf die graphische „Programmiersprache” Scratch verweist – großartige Fähigkeiten im Lesen, Schreiben und Rechnen also gar nicht mehr vorausgesetzt werden. Stünde mir der Sinn hingegen nach Zynischem, würde ich Scratch als idealen Einstieg in moderne IDEs loben, wo man das Programm auch nur noch mehr oder weniger zusammenklickt.)
[Heise:] Die Begeisterung für Informatik und IT sei zwar da, aber vielfach hapere es an der gesellschaftlichen Anerkennung entsprechender Berufe oder Tätigkeiten, sagte Marion Esch, Vorstandsvorsitzende der Stiftung MINT-Entertainment-Education-Excellence. Die USA hätten vorgemacht, dass so etwas auch über TV-Serien funktioniert. Manche Serien hätten dort eine große Nachfrage nach Ausbildungszweigen etwa für den Arzt, Forensiker oder Anwalt ausgelöst. “Wir haben dagegen Förster, Pastoren und Nonnen im Programm.”
Und die glauben ernsthaft, dass man „gesellschaftliche Anerkennung” dadurch steigere, indem man behauptet, jeder könne programmieren und das in einer Stunde mit ein paar Mausklicks lernen, den Wert der Fähigkeit also quasi auf Null herunterfährt und sie völlig entwertet? Dass Informatiker also nur etwas tun, was ohnehin jeder mal in der Schule oder im Hausfrauenkurs der VHS lernen kann?
Nach meinem Dafürhalten ist das, was die da tun, der Anerkennung extrem abträglich. Denn wer sollte noch Informatik über 10 oder mehr Semester studieren wollen, wenn man’s doch auch mal in nem starken Nachmittag lernen kann?
Auch der Verweis auf amerikanische Serien schlägt fehl. Denn während bei uns ziemlich niveauloses Sozialgeschwurbel vom Kaliber Schwarzwaldklinik kommt, in dem die Medizin nur Kulisse für weiße Kittel und das ganze Drumherumdrama ist, kommen dort sehr intelligent gemachte und anspruchsvolle Serien. Siehe etwa Dr. House. Das sind ziemlich gut recherchierte medizinische Fakten für Fortgeschrittene. Oder die amerikanischen Forensiker oder Anwälte, die sehr hart an der Realität arbeiten. Was kommt bei uns? „Ein Fall für zwei” und „Tatort”. Daher ist der Verweis, dass etwas über TV-Serien funktioniert, schlichtweg falsch. Es kommt nämlich darauf an, wie die Serie gemacht ist. Man bräuchte durchaus so etwas wie einen Dr. House der Informatik. Das aber wird’s nicht geben, weil es im Leben des Informatikers doch eher wenig Drama und Lebensrettung gibt, sondern die Realität eher langwierig, mühsam und zwar interessant, aber für Außenstehende stinklangweilig ist.
Dass Informatiker wie Dr. House Leben retten oder wie Navy CIS Mörder fangen, ist die extrem seltene Ausnahme und für den Beruf untypisch. Obwohl: Beides habe ich schon getan, nämlich damals, als ich mal für einige Monate in der Vorratsdatenspeicherung tätig war. Entgegen landläufiger und politisch verbreiteter Ansicht kann man da tatsächlich Leben retten und Mörder fangen, und muss dazu noch nicht mal vom Schreibtisch aufstehen. Nur: Die „gesellschaftliche Anerkennung” solcher Tätigkeiten ist hierzulande eher unter Null. Würde man hier eine Fernsehserie bringen, in der ein Informatiker in Sachen Vorratsdatenspeicherung, Abhören, Überwachung, forensischer Untersuchungen unterwegs wäre, würde vermutlich Fernsehen boykottiert und der Sender niedergebrannt.
Datenverarbeitung ist hier in Deutschland derzeit schlecht beleumundet und kulturell unbeliebt. Woran man jahrelang politisch gearbeitet hat. Viele Menschen fühlen sich dadurch eher bedroht. Und solange das so ist, wird es mit der gesellschaftlichen Anerkennung wohl nichts werden.
Dabei ist der Vergleich, dass in den USA Mediziner, Anwälte und Forensiker im Fernsehen kommen, während bei uns Förster, Nonnen, Pastoren und Traumschiffe (naja, oder höchstens mal Schwarzwaldklinik oder der Bergdoktor mit Herz-Schmerz und einzelnen OP-Dramen) kommen, sollte sich eher mal um die bei uns eingezogene und gezüchtete Wissenschaftsverachtung kümmern. Es ist doch gerade die große Nummer an den Universitäten, Wissenschaft für dumm und patriarchalisch zu erklären und sich in einem Brei aus Unfähigkeit und Sozialgefasel zu suhlen. Schon mal auf die Idee gekommen, dass es eher daran und an der allgemeinen Fachkräftebeschimpfung liegt, dass wir weniger Fachkräfte haben?
Oder fragt doch mal bei der SPD vorbei. Bezüglich deren Absichten, die technisch-akademische Mittelschicht immer höhere zu besteuern und deren Renten immer mehr zu plündern. Schon mal überlegt, ob’s vielleich daran liegt? Fast jeden Tag lesen wir Neuigkeiten davon, dass man immer mehr auf die Ingenieure und gehobenen Akademiker eindrischt. Und dann wundert man sich, dass der Job nicht anzieht? Warum lässt man sich von Sigmar Gabriel noch begleiten anstatt ihm zu sagen, dass SPD-Politik eine wesentliche Hauptursache für die Knappheit an einsatztauglichen Informatikern ist?
Nun betrachte ich das mal weniger unter dem Gesichtspunkt der Selbstwidersprüchlichkeit der Aussagen, sondern mehr vor dem Hintergrund meiner eigenen Berufserfahrung.
Ich sag’s mal so: Viele Absolventen der Informatik mit Diplom/Master in der Tasche können nicht brauchbar programmieren. Ich habe Leute erlebt, die mit Bestnoten und in kürzester Zeit Diplom und Doktor in Informatik geholt haben, und ohne fremde Hilfe nicht mal ihren PC in Gang setzen konnten. Ich habe ebenfalls Leute erlebt, die als Hauptfach im Diplom Datenbanken hatten und trotzdem weder SQL noch mit Datenbanken umgehen konnten. Eine ganze Menge Leute, die auf dem Markt unterwegs sind, können trotz jahrelanger Tätigkeit nicht brauchbar programmieren. Brauchbar im Sinne von Lesbarkeit, Wartbarkeit, Dokumentation, Fehlerfreiheit, Sicherheit.
Apropos Sicherheit: Was Yogeshwar & Co. hier vorschlagen ist gefährlich wie Brandstiftung.
Wenn ich zurückdenke an meine frühen Programmierschritte, dann liefen die auf einem 8080-Rechner, dann auf einem Commodore PET 2001, später ein CBM 3032, dann noch ein Apple II, ein C64, bald darauf ein Amiga. Und wenn man auf diesen Rechnern Mist zusammenprogrammiert hat, dann passierte – nichts. Tat halt nicht. Ansonsten kein weiterer Schaden möglich.
Wenn wir heute Mist programmieren, dann ist das gleich richtig gefährlich, weil wir am Internet hängen, Ports aufmachen, Eingaben annehmen usw. Als ich mal Security Manager eines Internet Providers war, bekam ich vom Kundenservice hin und wieder mal Kundenbeschwerden reingereicht, mit denen die nicht weiterkamen und die irgendwie nach Sicherheit rochen. Dabei ist mir immer wieder aufgefallen, dass viele Leute überhaupt nicht mehr in der Lage sind, die Grenze zwischen ihrem LAN zu hause, dem großen weiten Internet und irgendwelchen Diensten da draußen unterscheiden können. Ich erinnere mich vor allem an einen, der ständig meinte, er wüsste alles besser als ich, und auf denen ich eine Stunde lang einreden musste wie auf ein krankes Pferd, weil der den Unterschied zwischen seinem Laser-Drucker und einer Webseite bei einem Dienst in einer amerikanischen Cloud nicht verstehen konnte oder wollte. Der Mann war Dr.-Ing. und hatte ein Ingenieurbüro. Oder eben auch an den Vorgang „Kinderpornosperre”, bei dem Bundesfamilien- und Bundesinnenministerium zusammen nicht in der Lage waren zu verstehen, dass Webseiten nicht monolithische Klötze sind, die der Provider weiterreicht, sondern aus Einzelteilen bestehen, und dass der Internetprovider nur IP-Pakete transportiert. Die meisten Leute haben von Internet und Computern sehr wenig verstanden, und das Verständnis nimmt ab. Man muss ja heute nichts mehr wissen. Handy oder iPad ans Ladegerät, viel mehr muss man nicht mehr wissen. Es gibt ja nicht mal mehr Bedienungsanleitungen, die man lesen müsste.
Und vor diesem Hintergrund wollen die nun, dass jeder mal so drauflos programmiert? Ja, mmh, vielleicht eine Verwaltung für die Musiksammlung oder eine Steuerung für die Geranienbewässerung? Nein, sondern:
Ein Beispiel für die kreative Nutzung sieht der studierte Physiker in Apps, die öffentliche Daten aufbereiten – etwa um Ersthelfern zu zeigen, wo der nächste Defibrillator ist. „Programmieren gibt uns eine unglaubliche Chance, Dinge zu gestalten.“
Da frage ich mich dann doch eher, ob dieser Physiker wahnsinnig geworden ist. Früher sagte man „Schuster, bleib bei Deinem Leisten.” Was machen die eigentlich, wenn da jemand stirbt, weil da Murks programmiert wurde? Oder umgekehrt jemand mal das Ding hackt und alle Koordinaten um 20 Meter verschiebt?
Für solche Schnapsideen fehlt mir jedes Verständnis.
Viele verstehen gar nicht, wieviel Aufwand es ist, wieviele Qualitäts- und Sicherheitsanforderungen man braucht und durchziehen muss, um ordentliche, verlässliche Software zu schreiben. Dass Software von einem gewissen Qualitätsniveau zu schreiben ein ziemliches Stück Arbeit ist, an dem viele Leute (Mehraugenprinzip), viele Regeln und Anforderungen, viele Iterationen und sehr viel Sorgfalt und Berufserfahrung notwendig ist.
Und dann kommen da solche Quartalsschwätzer um die Ecke und meinen, das könnte doch jeder machen (Sie behaupten ja nicht einmal, jeder könne programmieren lernen, sondern direkt jeder könne programmieren, quasi angeboren.) Bisschen graphisch zusammenklicken, fertig ist der Defibrilationsfinder.
Fragen wir mal so:
- Wer würde gerne in ein Flugzeug steigen, das so programmiert wurde, wie Yogeshwar & Co. vorschlagen?
- Wer würde gerne ein Auto fahren, dessen Motor- und Bremssteuerung so programmiert wurde?
- Oder weil Yogeshwar Physiker ist: Sollten wir die Software für Kernkraftwerke so schreiben lassen? Oder doch eher die von Windrädern?
- Und im Krankenhaus? Die Software der Medizingeräte? Am besten gleich von der Putzfrau zusammenklicken lassen?
Oder fragen wir mal anders:
Wir haben doch jetzt gerade diesen NSA- und Überwachungsskandal. (He! Aufwachen! Leute, es ist Skandal, nun guckt doch wenigstens mal hin!) Wollten wir nicht eben noch Sicherheit und so? Starke Verschlüsselung und sowas?
Wir bräuchten im Gegenteil eine deutlich verschärfte, verbesserte Ausbildung und die Anforderung, dass kritische Infrastrukturen nur von besonders ausgebildeten Leuten programmiert werden dürfen. An Flugzeugen darf ja auch nicht jeder rumschrauben, der einen Schraubenschlüssel im Keller hat. Warum sollte es dann bei Software anders sein?
Und jetzt kommen die daher und meinen, Fachleute machen wir so im hoppla-hopp-Verfahren?
Wir haben jetzt schon ein Zuviel im Hoppla-Hopp. Kaum eine Software ist heute noch langfristig unverändert nutzbar, weil zu viele Programme und Bibliotheken aufpoppen, dann so etwas wie eine Monopolstellung einnehmen, man sie also verwenden muss, und dann ungepflegt wieder abstürzen, weil irgendwer keinen Bock mehr hat. Gerade das sind aber solche Effekte von Hobby-Programmierung.
Diese Dummheit im Kleinen, die hier vorgeführt wird, ist zweifellos Bestandteil einer großen Dummheit.
Denn derzeit erleben wir einen massiven Qualitätssturz, um nicht zu sagen eine galoppierende Verblödung vieler Informatikfakultäten. Und die wird politisch betrieben, um im Wege der „Gleichstellung” befähigungsunabhängig viele Leute durch das Studium zu quetschen. Die Folge sind nicht nur die Verblödung, sondern die Forderung nach einer „Enttechnisierung” der Informatik, also die Verblödung als Zielsetzung. Und viele begabte Leute werden inzwischen von deutschen Informatikfakultäten abgestoßen. Man verprellt damit mehr Leute mit Potential, als man Dumme anlockt.
Meiner Berufs- und Lebenserfahrung nach muss jemand mindestens 10 Jahre Erfahrung sammeln, um gut programmieren zu können – und um sich selbst überhaupt einschätzen zu können. Vielleicht hätten sie mal jemand fragen sollen, der sich mit sowas auskennt.
Was mich an der Sache so massiv stört, ist aber nicht nur diese bodenlose grobe Fahrlässigkeit, die da heraushupt.
Es stört mich auch, dass Yogeshwar ja ein ziemlich oft im öffentlichen Fernsehen auftretender Moderator ist. Denn wir haben ja eigentlich die (kürzlich erst vom BVerfG bestätigte) Staatsferne des Rundfunks. Eigentlich sollte die Politik keinen direkten Einfluss auf die Programmgestaltung nehmen können. Gerade das passiert aber hier. Wenn Yogeshwar sich da vor den Gleichstellungs- und Niveauvernichtungskarren der SPD spannen lässt, verletzt er aber gerade die Trennung zwischen Staat und Rundfunk und lässt sich auf üble Propaganda ein.
Zeigt mal wieder, wie unterwandert der öffentlich-rechtliche Rundfunk ist. Und zeigt auch wieder mal, dass das Prinzip Prominenz->Autorität vor Kompetenz geht. Denn wenn ich mir diese Äußerungen so ansehe, habe ich nicht den Eindruck, als ob Yogeshwar das ernstlich beurteilen könnte. Und ich habe auch nicht den Eindruck, dass er es sollte.
Übrigens: Yogeshwar erwähnt in einem der Zeitungsartikel, dass zwei seiner Kinder Abitur gemacht haben ohne auch nur eine einzige Zeile programmiert zu haben. Aber warum denkt er darüber nicht mal nach und fragt die SPD, warum sie diese Gleichstellungsverblödung betreiben? Denn die sind doch ein zentraler Treiber dieser Niveauabsenkung.
134 Kommentare (RSS-Feed)
> OpenSSL wurde von ganz vielen Krypto-Experten “programmiert”
Sag ich ja, viele können selbst nach einem Studium nicht brauchbar programmieren. Die einen folgern daraus, dass wenn das Studium eh nicht viel bringt, dann können wir auch alle drauf rumhacken lassen. Ich bin eher der Meinung, dass wir die Qualität und damit die Anforderungen steigern und nicht senken müssen.
> Ansonsten haben ja sowieso die Experten Programmierer Schuld daran, dass es keine an sich sichere Programmiersprache gibt,
Das Problem habe ich ja schon häufig angesprochen.
Das Problem ist aber erstens: Dass vor allem Professoren für sowas bezahlt werden aber zu doof dafür sind.
Zweitens: Dass alles mögliche als Kriterium festgelegt wird (wie Frauenquote), aber eben nicht Sicherheit.
>Und im Krankenhaus? Die Software der Medizingeräte?
>Am besten gleich von der Putzfrau zusammenklicken lassen?
manche Software, wenn Du den Source-Code sehen koenntest, sieht in der Tat “wie von der Putzfrau” geschrieben/geclickt aus !!!
…gerade im Medizinbereich … weil vielen Medizinern Code-Qualitaet einfach NIX wert ist….
Andererseits kenne ich auch von jemandem aus erster Hand, wie aufwaendig Software von Herzschrittmachern verifiziert wird.
Das klang schon OK.
Ich sehe das nicht so kritisch wie Du.
“Jeder kann programmieren” ist halt so wie “Jeder ist ein Handwerker” oder so. Es geht darum, die Leute anzustubsen, einfach mal zu machen, auszuprobieren, und dann kann man ja tatsächlich relativ schnell auch (kleine) Erfolge sehen.
Mit “Programmieren” ist hier nur gemeint, denke ich, dass man mal aus der passiven Konsumentenhaltung rauskommt und selber was gestaltet. Z.B. eine Webseite, auf der der Besucher angeben kann, wie die Farbe sein soll und dann wird die tatsächlich rot oder so. Trivialitäten halt. So wie ich früher beim C64 (mein erster Computer).
Und: “Jeder kann programmieren” heißt ja nicht, dass jeder sofort GUT programmieren kann. Als Aufforderung an die Massen finde ich so eine Aktion aber gar nicht so schlecht.
Achja: Und wenn man merkt, wie anstrengend es sein kann, eine eigene Vorstellung auf einem Rechner umzusetzen, steigt automatisch der Respekt, den man vor der Leistung wirklich guter Programmierer hat. Wie bei allem, wo man nach ein bißchen ausprobieren merkt, dass es eben doch nicht so einfach ist.
> “Jeder kann programmieren” ist halt so wie “Jeder ist ein Handwerker” oder so.
Ja.
Und was meinst Du, was die einem erzählen, wenn der Laie mit nem Buch in der Hand die Hauselektrik, die Heizungsanlage, die Gasleitung, die tragenden Wände usw. installiert?
Rate mal, warum sowas nicht jeder machen darf. Und warum man auch nicht sagt, dass jeder Elektriker sein kann.
Und warum man für gewerbliche Leistungen usw. einen Meisterbrief nachweisen muss.
Programmiert habe ich in 3 Bereichen:
Ein wenig Fortran IV, etwas SPS (eine Ampelsteuerung darüber zu machen ist sehr unterhaltsam)und einen HP41C Taschenrechner.
Der HP41C war am besten. Ein Programm zu schreiben war nicht soooo schwierig, aber das blöde Programm so zu verkleinern, dass es auf 1 Magnetkarte passt hat mich schlaflose Nächte gekostet. Und dann gab es da noch die Jungs, die die Kiste in Maschinensprache programmiert haben!!!
Vielleicht sollte Herr Yogeshwar sich mal einen HP41C Kaufen, dann stellt er fest, dass Klicken nicht Alles ist.
Von daher habe ich vor Leuten, die richtig programmieren können Hochachtung.
> Es kommt nämlich darauf an, wie die Serie gemacht ist. Man bräuchte durchaus so etwas wie einen Dr. House der Informatik. Das aber wird’s nicht geben, weil es im Leben des Informatikers doch eher wenig Drama und Lebensrettung gibt, sondern die Realität eher langwierig, mühsam und zwar interessant, aber für Außenstehende stinklangweilig ist.
Neue Serie in den USA 2014/2015:
“CSI: Cyber”: A spinoff from the original “CSI: Crime Scene Investigation,” CBS intends this show to move into the 10 p.m. Sunday time slot occupied by the original “CSI” sometime after the end of the NFL football season. Patricia Arquette (“Medium”) stars as the head of the cyber crime division of the FBI that investigates illegal activities that begin online and later play out in the real world.
Ob die Computer- und Internettechnologie realistisch sein wird?
> Ob die Computer- und Internettechnologie realistisch sein wird?
Im Fernsehen sind Informatiker normalerweise Freaks in seltsamen Klamotten, die aus unscharfen Bildern niedrigaufgelöster Überwachungskameras mit Gemurmel und magischen Handbewegungen auch ein nur ein Pixel großes Gesicht zu einem gestochen scharfen Großportrait aufzoomen.
[…] Der tragische Trugschluss des Ranga Yogeshwar […]
Ranga Yogeshwar? Ich halte von diesem Zeitgeistreiter nix. Wundert mich warum der nicht eine Programmiersprache in, sagen wir gerechter Sprache und gegendert mitgefordert hat. So als neues Gutmenschenprogrammierpacket für alle Schulen und Kindergärten.
Sprache des 21. Jahrunderts? Sag mal Hadmut, unterhälst Du Dich eigentlich mit anderen Jahrhundertbewohnern auch in Programmiersprachen, oder kennst Du solche Leute im normalen Leben?
“Die Frauenquote ist ein trauriger Beleg unserer Unfairness. In einer aufgeklärten Gesellschaft sollte unser Handeln sie längst überflüssig gemacht machen!”
http://www.pro-quote.de/unterzeichnerinnen/ranga-yogeshwar/
“Frauen steigerten die Qualität, findet der TV-Journalist, der selbst Mitglied bei ProQuote ist.”
Der passt schon zur SPD! Kann sich ja mit Gesche zusammentun.
> Sprache des 21. Jahrunderts? Sag mal Hadmut, unterhälst Du Dich eigentlich mit anderen Jahrhundertbewohnern auch in Programmiersprachen, oder kennst Du solche Leute im normalen Leben?
Ich sag’s mal so:
Ich bin zwar gut, aber ich hätte ein Problem damit, schon 2014 voraussehen zu können, was das „X des Jahrhunderts” sein wird. Ich weiß auch nicht, was die Katastrophe oder Erfindung des 21. Jahrhunderts sein wird.
Mit Leuten, die Programmiersprachen für eine allgemein wichtige Sprache halten, würde ich mich nicht unterhalten. Ich kenne da aber auch niemanden, der das glaubt.
> “Frauen steigerten die Qualität, findet der TV-Journalist, der selbst Mitglied bei ProQuote ist.”
Ach, gar. Daher weht der Wind.
(ironie) wieso soll nicht jeder programmieren lernen können? so schwer kanns nicht sein. ich kenne viele die programmieren können und sich schon mehrere internetseiten oder gar foren zusammengebaut haben. programmieren gehört heutzutage einfach zum alltag – täglich muss man neue apps laden und updaten [fachwort für auf den neuesten stand bringen] oder sein ipod mit dem macbook syncronisieren, den router neu starten weil irgendwie kein internetempfang usw usw. programmieren ist wichtig für uns alle und es ist kein hexenwerk. programmieren ist einfach nur eine sprache neben deutsch französisch und englisch. (/ironie)
vielleicht kann ja fast jeder programmieren lernen im sinne von 10zeilen code schreiben – da würde ich als nichtITler /fertiglösungen aus internetrecherchierer nicht mal dran zweifeln. aber richtig programmieren im sinne von funktionierende programme schreiben und selbst sich neues ausdenken ist sicher ein ganz anderes niveau/handwerk .
genauso kann vielleicht fast jeder schreiben oder ein instrument lernen. (guter/erfolgreicher) schriftsteller/drehbuchautor oder musiker ist man damit aber noch lange nicht. und wenn einer grad so seinen namen schreiben kann macht das nicht viel schaden wenn der keine juristisch wasserdichten verträge verfassen muss aber wenn jeder halblegastheniker seine unausgegorene software entwickelt und ins internet stellt sicher schon.
oh wow hatte den kommentar geschrieben nachdem ich bis einschließlich des ersten zitats im text las und dann sowas
Ein Beispiel für die kreative Nutzung sieht der studierte Physiker in Apps, die öffentliche Daten aufbereiten
zum thema tolle serien
– realitätsnaheste arztserie soll anscheinend scrubs sein
http://www.slate.com/articles/arts/culturebox/2009/05/scrubs.html
nix mit menschenhassenden Dr Houses die wundersam alle patienten heilen (wobei laut einigen gerüchten die mich erreichten dass “menschenhassend” doch rel oft zutreffen soll)
– gibt auch serien über IT (nicht nur wie hier wo halt die faulenzenden ITspezialisten fragen ob der stecker für strom steckt… keine ahnung kucke die sachen wie ITcrowd nicht). aber da beschränkt sich der IT teil auf sehr schnell geschriebene grüne schrift auf schwarzem grund (live) infolgedessen dann der virus der alle systeme bedroht hat weg ist und der rest ist beziehungskram und “wir brauchen ein neues social-network-programm thingy” + “so sieht die oberfläche toll aus aber wie wärs wenn wir die bilder größer, die schrift anders fett und den hintergrund dunkelgrün machen?”
insgesamt fehlen mir serien mit wirklichem inhalt, die nicht übertreiben um spannend zu sein sondern die gewollt versuchen so autentisch wie möglich zu sein… wo man auch mal das ein oder andere aus dem abgebildeten berufszweig/feld lernt. ist aber sicher auch schwer umzusetzen und/oder bei allzu großer realitätsnähe zu langweilig. aber grade die GEZsender die nicht auf einschaltquote achten müssen könnten doch 1-2mal im jahr informative sachen rausbringen auch wenn die nicht so populär sind…
>> “Jeder kann programmieren” ist halt so wie “Jeder ist ein Handwerker” oder so.
>Ja.
>Und was meinst Du, was die einem erzählen, wenn der Laie mit nem >Buch in der Hand die Hauselektrik, die Heizungsanlage, die >Gasleitung, die tragenden Wände usw. installiert?
>Rate mal, warum sowas nicht jeder machen darf. Und warum man auch >nicht sagt, dass jeder Elektriker sein kann.
Weil Handwerkskammer-Lobbyisten diese Anforderungen politisch durchgesetzt haben, um ihrer Klientel ein gesichertes Einkommen zu verschaffen? (Randinfo: ich habe Physik studiert und durfte trotzdem meinen Stromanschluss nicht selbst setzen. Dabei versteht sicher JEDER ausgebildete Physiker nach kurzer Einweisung mehr davon als die “Meister”, die das dürfen.)
Yogeshwar meint vielleicht: JEDER sollte sich ein wenig handwerklich, sportlich, mathematisch, programmierend… beschäftigen. Das ist ein Bildungsideal. Dem man sicher uneingeschränkt zustimmen kann, solange man nicht dem Elitendenken verfallen ist. Und was du aus Yogeshwars Vorschlag rausliest, muss er nicht unbedingt so gemeint haben.
Natürlich hast du andererseits recht mit deinen Erläuterungen, warum eben nicht jeder “einfach programmieren” kann. Programmieren ist eine Kunst mit nach oben offenem Schwierigkeitsgrad.
Und nochmal zum Handwerkervergleich: es wäre m.E. eine ziemliche Katastrophe, wenn man zum Programmieren in Zukunft auch eine “Erlaubnis” (Meisterbrief o.ä.) benötigen würde.
Fry
Naja, wiederum die Ineinssetzung von Programmierer, Codierer und Operator womöglich auch noch… 🙂
Das was Hadmut so ausführlich beschreibt, hies in der Parallelwelt vulgo früher ORG…
Hadmut
10.6.2014 22:23
Und was meinst Du, was die einem erzählen, wenn der Laie mit nem Buch in der Hand die Hauselektrik, die Heizungsanlage, die Gasleitung, die tragenden Wände usw. installiert?
hehe mein vater ist so nen “heimwerker”
wollte mal das internetkabel vom router aus dem ersten stock der wohnung (maisonette) in den 2.stock verlegen wo der PC stand. er wollte es aber nicht durch den ganzen wohnungsflur, treppe etc legen. seine lösung:kabel hoch an die decke und dann ein loch in die decke, kabel durch das loch und im anliegenden zimmer über den boden wo es am anderen ende durch ein zweites loch in der wand ins zielzimmer ging.
komischerweise ging dann das internet nicht. und woran lags?er hatte mit dem bohrer nur kleine löcher in die decke/wand gebohrt vom kabel das dicke kopf/endstück abgeschnitten und das dann vom durchmesser passende kabel durch die löcher in decke und wand bis ins zielzimmer verlegt wo er dann das endstück wieder am kabel zusammen- bzw festgemacht.
hat dann ca 10min gedauert bis wir beim einrichten des internets am pc drauf kamen dass irgendwas nicht stimmen kann (der 2.PC unten in der wohnung hatte internet ohne probleme). das gelächter nach dem prüfen ob das kabel richtig angeschlossen war -erst wurde nur geschaut ob es im pc und router steckt, dann wurde es erst rausgezogen und näher inspiziert- dauerte mindestens doppelt lang.
ach ich liebe solche DAU-geschichten und wenns dann auch noch live vor der eigenen nase passiert, ich nicht schuld bin und mich nix kostet
@kokko: Hach, ich liebe solche Anekdoten.
Als ich beim Bund Truppenfernmelder war, war das so üblich, mit der Kabelspule auf dem Rücken durch den Wald zu rennen um Telefon in den Wald zu legen. Irgendwann gab’s das Problem, dass das Telefon nicht funktioniert. Nach viel hin und her beschlossen das Kabel zu prüfen. Irgendein Depp hatte das Kabel an insgesamt 8 Stellen durchgerissen und dann einfach (mitsamt Isolierung) zusammengeknotet, ohne einen Kontakt herzustellen.
Als ich im Informatik-Studium war, haben sie in Karlsruhe den neuen Informatik-Bau errichtet. Irgendein Schwachkopf hatte entschieden, dass der letzte Schrei der Informatik ein zentraler Mainframe und Terminals mit serieller (RS232) Schnittstelle seien. Also bestand die Hausverkabelung nur aus seriellen Litzen mit DB25-Steckern in den Wänden (Kat5, Twisted pair und sowas gab’s damals noch nicht). Man stellte dann aber fest, dass das ein Scheiß ist und dass man das ändern muss. Also wurde eine Firma beauftragt, 10Base5 zu legen (die alten dicken gelben Kabel mit stehender Welle, die man an bestimmten Stellen angebohrt und mit der Vampirkralle anbissen und dann per AUI-Kabel mit dem Host verbunden werden. Das waren noch Zeiten).
Ging aber nicht.
Lange gesucht, Rätsels Lösung: Diese alten 10Base5-Kabel (Koaxial) waren sehr empfindlich. Wenn man die zu stramm zog oder hängebelastete, dehnten die sich etwas und dann war’s mit der stehenden Welle vorbei.
Und die haben die halt in den Aufzugsschacht gehängt, durch Löcher gezwängt und dran gezogen wie Harry, und hinterher war’s dann unbrauchbar.
Wir haben dann damals mit sogenannten TPAUs (Twisted Pair Access Units), dem inkompatiblen Vorgänger des späteren 10BaseT-Ethernet, von dem unser heutiges 100GB und TB-Ethernet abgeleitet ist, beholfen, die auf die seriellen Leitungen mit 8 Kabeln tatsächlich per DB-25-Adapter zwei AUI-Ethernet-Anbindungen legen konnten, obwohl die nicht mal verdrillt waren. In anderen Räumen dann eine wilde 10Base2-Verkabelung durch die Decken.
Hach, waren das Zeiten…
Fry
10.6.2014 23:02
Randinfo: ich habe Physik studiert und durfte trotzdem meinen Stromanschluss nicht selbst setzen. Dabei versteht sicher JEDER ausgebildete Physiker nach kurzer Einweisung mehr davon als die “Meister”, die das dürfen
erinnert mich an die elektrikerwitze
was ist schwarz und rieselt von der decke
– ein blonder elektriker
was ist das lied der elektriker
– 1000mal berührt 1000mal ist nix passiert
oder die berühmten letzte worte scherze:
– keine angst, ich mach das nicht zum ersten mal…
– ist da noch saft drauf…?
– es ist auf jeden fall dieses kabel…
funktioniert sicher noch besser mit physikern die es sowieso besser können als leute mit ner gezielten ausbildung + berufserfahrung
> Dabei versteht sicher JEDER ausgebildete Physiker nach kurzer Einweisung mehr davon als die “Meister”, die das dürfen
Das wage ich zu bezweifeln. Ich hatte mal einen Kollegen, der ausgebildeter Elektriker war. Der hat mir so ein paar Dinge erzählt, die Physiker alle nicht drauf haben.
Allerdings kann ich mich da nur noch an wenig erinnern. Beispielsweise, dass wenn man ein 3-poliges Stromkabel an einen Schuko-Stecker anschließt, das Erdungskabel das längste sein muss, damit es beim Abriss als letztes reißt.
Oder in der Bundeswehrfahrschule, warum man bei Starthilfekabeln erst den Plus- und dann den Minus-Pol anschließen muss (bzw. umgekehrt wieder trennen). Physikalisch ist das wurscht, praktisch aber nicht.
Im Fernsehen sind Informatiker normalerweise Freaks in seltsamen Klamotten, die aus unscharfen Bildern niedrigaufgelöster Überwachungskameras mit Gemurmel und magischen Handbewegungen auch ein nur ein Pixel großes Gesicht zu einem gestochen scharfen Großportrait aufzoomen.
naja fast.
http://www.youtube.com/watch?v=KiqkclCJsZs
sorry! xD
[…]mühsam und zwar interessant, aber für Außenstehende stinklangweilig ist.
das ist ein großes verständnisproblem. der normalanwender denkt, dass der serverumzug mit daten von 400 arbeitsplätzen mit ebenso wenigen klicks und häkchen setzen getan ist, wie den lokalen drucker wieder zum laufen zu bringen. ansonsten faulenzen die it-heinis nur rum, kommen hochnäsig und genervt daher und tun so, als käme magie aus ihren fingern.
Ich sehen das auch so nur ein wenig schärfer. Seit 2007 habe ich kein Programm mehr geschrieben, manchmal will ich noch aber dann auch wieder nicht. 20 Jahre habe ich programmiert, alles mögliche. Ganz dicht am Betriebssystem, Datenbanken und auch ein eigenes Betriebssystem. Fraunhofer und die Engländer waren dabei es war eine Abhöranlage für ein PKW. Hardware und Software wurden in einem Haus entwickelt, sogar in Stereo.
Der letzte der mich inspirieren wollte war einer der meinte der Zugriff auf einer Webseite nehme immer mehr zu und nun sollte der PHP Code optimiert werden. Er sollte umgeschrieben werden, Objektorientiert. Ich erbat mir Bedenkzeit und wurde dort nie wieder gesehen. Ich hatte Vorschläge nur hatte die nichts mit programmieren zu tun. Verraten habe ich aber auch nichts.
Mit der einen Funktion in OpenSSL, die wilde Sprünge im RAM ausführen kann, ist fast alles möglich was sich so ein NSA Entwickler wünschen kann.
Was seit Snowden veröffentlicht wurde ist eine Katastrophe. Anonym im Web wie kann das noch gehen, ohne Aufwand? Einige kluge Köpfe arbeiten ja an einer Verschlüsselung aber Anonym?
Das ist ein riesiges Betätigungsfeld für die neuen Programmierer. Es soll ja keine VDS geben aber es gibt sie, von 7 bis 180 Tage wird lustig gespeichert und rausgerückt.
Alles im allem gibt es riesige Betätigungsfelder für junge Programmieren.
“Eine Kernfähigkeit eines guten Informatikers (oder meinetwegen auch Programmierers) ist es, das Problem zu erfassen, zu verstehen und zu beschreiben.”
Das ist die Kernfähigkeit eines JEDEN Wissenschaftlers. Genau das machen Physiker, Chemiker, Biologen usw.
Um genau zu sein machen diese das sogar mit mathematischen Mitteln was in deiner Definition noch nicht explizit gefordert ist.
> Das ist die Kernfähigkeit eines JEDEN Wissenschaftlers. Genau das machen Physiker, Chemiker, Biologen usw.
Die befassen sich aber mit jeweils ganz unterschiedlichen Methoden und Lösungswegen.
Die Problemklasse, die man mit Programmieren bearbeitet, ist das Ding der Informatiker.
@ Fry
>Dabei versteht sicher JEDER ausgebildete Physiker nach kurzer Einweisung mehr davon als die “Meister”, die das dürfen.
Aha, Physiker die Wunderknaben! Kann man ja auch an dem hier besprochenen “Pro-Quote” Freund sehen was die alles wissen. Der Mann ist Physiker …
Und Du wirst sicher nach kurzer Einführung wissen welche Netzform Du vor Dir hast und die Sicherheitstechnichen Besonderheiten beachten können. TT, TN oder TN-C, TN-C-S sind Dir als Physiker sicher Begriffe. Die Handhabung von Schutzmaßnahmenprüfgeräten, die Du selbstverständlich auch zur Verfügung hast, sind Dir auch vertraut. Physiker können sowas eben. Die Zuordnung der Überstromschutzeinrichtungen, der zulässigen Leitungslängen und Querschnitte, alles kein Problem für so einen Studierten. Solche Leute sind auch besser als so ein doofer Elektrofutzi, keine Frage!
Gasanschluß hätteste auch gerne selbst gemacht und die TÜV Abnahme von Deiner Physiker-Kutsche kannste auch besser als diese komischen Schrauber.
Du musst wissen alle ausser Du, vor allem die doofen Handwerkerpurschen, machen das wie die Maler: Dünn auf’n Pinsel, dick auf die Rechnung! 🙂
Ich hoffe Deine Überheblichkeit bringt Dich nicht mal in Schwulitäten …
@Hadmut
10.6.2014 23:44
allein ob der steten flut solcher unterhaltsamen begebenheiten beneide ich ITler. gibts zwar in anderen berufen auch dolle geschichten aber so oft wie in der IT hat man in den meisten anderen berufsfeldern sicher nicht zu lachen. wobei es für die betroffenen dann eher weniger lustig ist wenn sie die von anderen angerührte suppe auslöffeln dürfen. auch wenn die stories hier sicher stark übertrieben sind aber sowas will ich dann doch lieber nicht selber aufm tisch haben http://www.youtube.com/watch?v=ZBzTvItBclY
Das sind aber alles so Dinge, die den Erfahrungsschatz auch des Programmierers ausmachen. Lauter so verrücktes, abgedrehtes Zeug, aus dem man aber sehr viel lernen kann.
Naja, beim Programmieren kommt es zunächst auch mal darauf an, was für eine Programmiersprache man wählt. Denn: Wer das Problem dann verstanden hat, der muss nun sehen, wie man die Problemlösung mit der jeweiligen Programmiersprache entwickeln kann.
Das Problem ist einfach, dass Yogeshwar einfach von nichts eine Ahnung hat und gerne vor sich hin fantasiert, was seine Redakteure und Praktikanten ihm ins Ohr flüstern.
Ein weiteres Problem ist auch, dass viele so nette Lego-Bausätze sehen, die auch beschränkte Scripte zulassen.
Da sieht der Yogeshwar dann “niki der Roboter” und meint: “Mensch, programmieren kann ja echt jeder!”.
Und Yogeshwar hat recht! Nur leider mit einer Einschränkung: “Niki der Roboter” müsste dann wirklich das sein, was der Informatiker den ganzen Tag macht. Und hier prallen einfach 2 Welten aufeinander:
Welt 1, die Fantasie des Ahnungslosen Yogeshwar und Welt 2, die umgangssprachlich auch Realität genannt wird.
Aber ich beobachte auch in der Informatik eine zunehmende “Infantilisierung”: Immer mehr simple Scriptsprachen kommen auf. Immer mehr Vereinfachungen kommen hinzu. Und das nur, weil man glaubt, dass die Menschheit C++ z.B. geistig nicht erfassen kann. Wozu denn einen Speicherbereich “reservieren”? Mein “Kompeiler” macht das automatisch! Ja, dein Compiler macht einfach irgendwas. Du hast keine Kontrolle über gar nichts und der Compiler wirft dann die Hühnerknochen in die Luft. Evt. sieht das was da am Ende bei herauskommt sogar einigermaßen richtig aus. Ob es aber wirklich richtig ist, oder aber lediglich unter bestimmten Umständen ein korrekt anmutendes Ergebnis auswirft, das weiß keiner.
Das kotzt mich einfach an.
Und irgendwann… in ein paar Jahren… da hat Yogeshwar dann recht, denn die, die noch wissen, was da wirklich passiert, die werden alt und ausgemustert. Während der Rest der Welt den ganzen Tag “Niki der Roboter” “programmiert” und jubelt, dass da irgendwas irgendwie funktioniert.
Programmiersprachen werden immer einfacher (und oftmals auch langsamer), weil man glaubt, dass man den Leuten viele Dinge gar nicht mehr erklären könnte. Aber wer nun wirklich programmieren will und sich nicht vorstellen kann, wann da wo und wie Speicher “reserviert” wird und was passiert, wenn man bei einem ‘int a[10]’ wirklich mal den Index 10 einsetzen würde, der hat einfach nicht zu programmieren.
Ich erfinde ja auch keine neue Sprache, die mit 100 Worten auskommt, nur damit der letzte Depp sie sprechen kann – egal wie ungenau und mühsam die Kommunikation damit würde – bloß damit ich dann voller stolz verkünden kann: “Seht her! Jeder Depp kann meine Sprache!!!”
Bei Programmierern ist Analphabetismus dagegen hoch im Kurs.
Simples Beispiel:
Neues Projekt soll bitte in Python verwirklicht werden. Ich frage: Warum? Antwort: Ja…. einfacher….typenunabhängig…. bla. Gesülze eben.
Am Ende stehe ich dann da, darf den Mist umsetzen und muss noch viel mehr als bei C++ auf meine Typen achten, denn: Achte ich mal nicht auf meine Variablentypen (Casts an jeder Ecke!), dann wirft der Compiler die Hühnerknochen in die Luft und es kommt Murks dabei heraus. Überladene Funktionen gibt es auch nicht usw. Aber es ist ja einfacher! Und dann ist man sauer und teilt dies mit und dann kommt: “jaaa bei C++ kann ich ja gar nicht typenunabhängig programmieren!!!” – genau! Denn um das zu schaffen, müsste man Templates kennen und wissen wovon man redet…. arrrrrrrrrrrrg.
Und ich weiß jetzt gerade nicht, ob der Typ “auto” schon in den neuesten C++ Bibliotheken enthalten ist, aber das ist auch so der Versuch, sich an die Idiotie der Mitmenschen anzubiedern.
Nun ja, von “doofen Handwerkern” habe ich nicht geschrieben. Nur von Handwerkerlobbyisten, die Privilegien und damit Vorrechte sichern wollen.
Und es gibt tatsächlich Leute, die mehr können, als irgendein Stück Papier belegt. Und an die Physikergeschädigten unter euch: auch ein Dr-Ing in E-technik darf in Deutschland seinen Hauszähler nicht selbst anschließen. Es muss ein “berechtigter” Betrieb sein. Na? 🙂
Die Story mit dem “längeren Erdungskabel” ist übrigens ein Witz. Weder ist das notwendig, noch wird es von den “Profis” so gemacht. Solche Stories dienen nur dazu, dem Laien Angst zu machen und damit die eigenen Privilegien abzusichern.
Ich hatte mal in einem Forum eine längere Diskussion über maximale Leitungslängen und Leitungsschutz. Die “Profis” (“ich mache das seit XXX Jahren” usw) meinten, bei zu langer Leitung würden die Sicherungen im Kurzschlussfall nicht schnell genug abschalten.
Am Ende haben mir die “Profis” Normenschriften geliefert, vermeintlich zur Stützung ihrer physikalisch sinnlosen Behauptungen. Dummerweise hatten sie die Schriften selbst nicht gelesen, da stand nämlich was ganz anderes drin, nämlich dass bei längeren Leitungen dickere Adern genommen werden, um den Spannungsabfall zu begrenzen. Oder auch, wesentlich glaubwürdiger: um mehr Kupfer zu verkaufen.
Ok, und zurück zum Thema: Programmieren ist eine Kunst, und das will gelernt sein. Ein Informatikstudium mag dabei helfen. Ich kenne aber auch Mathematiker oder (hust) Physiker, die das ziemlich gut können.
…und ums nochmal auf den Punkt zu bringen: Elitenbildung, also Bildung exklusiver Gemeinschaften, deren Mitglieder irgendwas “können”, weil sie es “gelernt” haben und es folglich als einzige “dürfen”, ist ungerechter Quatsch.
(Das ändert nichts daran, dass Gleichstellung und Quote auch Quatsch ist)
da fehlt erst mal die definition von “programmieren”.
ist programmieren die entwicklung eines algorithmus, oder die umsetzung eines algorithmus (evtl. in form eines flußdiagrams) in quelltext?
ich selbst bin seit ca. 25 jahren “programmierer”- ich habe auf verschiedenen computern mit verschiedenen sprachen verschiedene programme programmiert. dabei sind einige (für hobby-projekte) durchaus umfangreiche sachen bei rausgekommen (ich nenn’s mal “umfangreich”, so 15.000 zeilen ohne kommentare (liest ja eh keiner außer mir)). trotzdem würde ich wohl- laut eigeneinschätzung- für sowas banales wie den algorithmus “türme von hanoi” in eigenentwicklung viel zeit brauchen, oder evtl. das internet bemühen müssen.
soll heißen: “jeder kann programmieren”- na klar.
“jeder kann programme/algorithmen entwicklen, die einen gewissen qualitätsstandard aufweisen”- eher nicht.
ich kann aber nichts schlechtes daran finden, z.b. schüler zu motivieren, mal programmierversuche zu starten, anstatt angry birds zu spielen.
kürzlich äußerte ich im heise-forum mal den gedanken, daß ich ein tablet erst dann als vollwertigen computer ansehen würde, wenn ich *auf* dem tablet programme *für* das tablet entwickeln könnte. mit anderen worten, ein android tablet sollte ein android-sdk mit java compiler installiert haben. wofür ich- witzigerweise im heise-developer-bereich- gelächter erntete.
@ Hadmut
Na komm, dass dir die Batterie um die Ohren fliegen kann wenn beim Anschliessen/Abziehen des Kabels die Funken auf das Knallgas aus der Batterie treffen duerfte einem Physiker noch klar sein.
Fuer einen Schukostecker muss er notfalls noch einen Ingenieur dazubemuehen, dann passt das auch mit dem laengeren Schutzleiter 😉 (Moderne Stecker haben zudem auch alle eine nach hinten versetzte Klemme fuer den Schutzleiter.)
Mein persoenliches Problem mit den meisten Handwerksprofessionen war bisher meistens, dass die teuer bezahlten Fachleute mithin voellig inkompetent waren. Gelernte Elektriker die Litze in Luesterklemmen ohne Aderendhuelse klemmen gehoeren eigentlich an Ort und Stelle koerperlich gezuechtigt. Doppelt, wenn es auch noch in einem KFZ passiert. Gesehen habe ich es trotzdem mehr als einmal.
Und was ich von KFZ-Mechanikern persoenlich erlebt habe geht auch kaum auf eine Kuhhaut. Man konnte das Lager in den Querlenker eigentlich nur auf zwei Arten falsch montieren: Gedreht um seine Laengsachse, da der daempfende Gummiteil nicht rotationssymmetrisch war, und eben mit der falschen Seite nach oben. Als ich den Querlenker zurueck bekam fiel mir dann auf, dass man es auch einfach nicht weit genug einpressen kann. Ja, ein gestandener Geselle in einer Markenwerkstatt macht drei von zwei Fehlern.
Ein Bekannter haette mal fast den Meister in einer KFZ-Werkstatt zusammengeschlagen. Noch auf dem Hof rutschte das Bremspedal ins Leere, Entluefternippel nicht richtig zugezogen. War eine offizielle VW-Bude.
Eine Kollegin hatte auch Probleme mit den Bremsen ihres Golf, weil die manchmal schwer gingen. Die Werkstatt konnte nichts finden. Ein Handgriff an den Unterdruckschlauch zum Bremskraftverstaerker, voellig typische Schwachstelle seit mindestens dem Golf II, und das Raetsel war geloest.
Es steht nicht nur um die akademischen Professionen ziemlich schlecht. Kompetente Leute die ihr Handwerk wirklich beherrschen und nicht nur den ganzen Tag vor sich hin doesen sind ueberall rar.
Zum eigentlichen Thema:
Ich stimme Dir grundsaetzlich zu. Mich stoert auch ganz massiv die Formulierung, die impliziert, dass das eine voellig triviale Taetigkeit sei, die man nicht einmal lernen muesse.
Die grundsaetzliche Idee, Leute mal mit der Materie in Kontakt zu bringen und ihnen ein paar einfache, ermutigende Dinge hinzuwerfen, halte ich aber fuer gut. Nicht wegen der 95% die es danach sein lassen oder sich toll halten, sondern wegen den 5%, bei denen sowas Begeisterung weckt und die sich danach ernsthaft mit dem Thema beschaeftigen. Selbst wenn es nur jemand ist, der sich danach mal ein bisschen VBA fuer Office anschaut ist das ein Fortschritt.
Wenn man mir mit 12 einen Computer gezeigt haette oder vor meinem Erststudium ein paar Zeilen Code hingeschmissen haette, haette ich in meiner Jugend nicht mit Elektrikzeug gespielt und Informatik waere mein Erststudium geworden.
Möglicherweise kann nicht jeder Programmieren, aber hacken kann man schon mit 14:
“Geldautomat gehackt: 14-Jährige mit Admin-Zugang”
http://www.chip.de/news/Geldautomat-gehackt-14-Jaehrige-mit-Admin-Zugang_70290090.html
Da waren wohl einige der Automaten-Hersteller und/bzw. -Betreiber zu blöd…
> Warum lässt man sich von Sigmar Gabriel noch begleiten anstatt ihm zu sagen, dass SPD-Politik eine wesentliche Hauptursache für die Knappheit an einsatztauglichen Informatikern ist?
Als ob die CDU/FDP da anders wär.
Yogeshwar ist einfach nur ein Gesicht, um das Ganze ein wenig seriös zu präsentieren. Da muss kein Informatiker stehen – oder wollt ihr ernsthaft Hadmut zur Eröffnung eines solchen Events aufs Podium stellen? 🙂
Ansonsten empfinde ich die Stoßrichtung als durchaus positiv. Es geht ja nun nicht darum, der Hausfrau die Steuerung der E-Werke zu übertragen, sondern eher darum, dass sich Chantalle auch mal selbst mit einem Excel-Makro helfen kann.
Ich habe selbst erlebt, wie eine kleine API, die ein paar Sensorik-Werte in Excel zurückliefert, ganze Labore zu Hobbyprogrammierern gemacht hat.
Und noch einmal, es geht nicht um Geldautomaten, Bremssysteme oder Prozessleitsysteme, sondern darum, Interesse an einem Thema zu schüren.
Das empfinde das als durchaus positiv.
Ein wenig problematisch wird es dann, wenn sich Kevin in kritischer OS-Software verewigen möchte. Dann ist das nächste Herzbluten bereits vorprogrammiert (Was’n Wortspiel!).
Wobei ich die Probleme dort eher in der QS sehe.
Tito
@ Fry
Ich merke schon, Du hast Ahnung! Es gibt tatsächlich Schutzmaßnahmen bei denen ist der Schleifenwiderstand wichtig, darf einen bestimmten Wert nicht überschreiten.. Das macht man zB in TN-Netzen, aber wem sage ich das.
In Eurem Streit ging es wahrscheinlich um Spannungsabfall. Das ist das Zeug wo ich einen Physikus losschicken würde mal ein paar Müllsäcke mit dem Aufdruck “Spannungsabfall” vom Lager zu holen. 🙂
Da Du das mit dem PE nicht verstanden hast, eine kurze Erklärung. Bei der Schutzklasse 1 ist der wichtigste Leiter der PE Leiter. Warum? Weil die anderen Leiter (Schukostecker) nur für die Funktion zuständig sind, der PE aber im Fehlerfall (Körperschluß) lebenswichtig sein kann. Schutzeinrichtungen können auslösen usw …
Wenn also einer der beiden anderen abreißt, geht das Ding einfach nur nicht, wärend Du bei unterbrochenem PE in Lebensgefahr bist!
Das es reichlich Nixkönner unter Handwersmeistern gibt stimmt schon, aber Dir würde ich wirklich raten die Hände ganz schnell in die Hasentaschen zu stecken wenn Du mal was am Strom machen willst.
Denn Du könntest es auch nicht wenn Du wolltest.
Also ob irgendwas zusammenklicken (Scratch… noch nie gehört…) als “programmieren” zu bezeichnen ist, halte ich für gewagt! Aber ist voll in der aktuellen “Programmierschiene”! Kennt noch wer Anfang/mitte der 90er? Als das Internet langsam etwas mehr Einzug in die Wohnung fand? Da hat sich “jeder” als Programmierer/Coder betätigt und sich hässliche Webseiten zusammengebastelt! Und heute? Klatscht man sich nen WordPress irgendwo hin, stellt in den Einstellungen ne andere Hintergrundfarbe ein und “hei”, hat ne eigene Webseite “programmiert”! … Sofern man überhaupt “so weit” geht; man hat ja Fratzenbuch, da kann man “Blog”einträge schreiben und Bilder hochladen etc. Irgendwelchen Code muss “keiner” mehr sehen!
Oh, da du auch hier bisle VDS lobst und interessanterweise keiner der Kommentatoren darauf angesprungen ist, muss ich das mal tun:
Ich weiss nicht, was genau du da als Beispiel hast und was/wie da gelaufen ist, aber das klingt jetzt danach, dass sich jemand Verdächtig gemacht und man da weiter geforscht hat. Für sowas brauchen wir keine VDS, da kann man dann gezielt die entsprechenden Daten abspeichern lassen und auswerten.
Die VDS kommt aber eher als “Idee” rüber, dass man einfach mal alles sammelt und schaut, ob irgendwo was “interessantes” passiert! Da gibt es keine Unschuldsvermutung mehr! Man guckt einfach mal, ob man was finden! Im Prinzip das gleiche, was ja die NSA und andere Geheimdienste ja gerne machen!
Und DAS kann ich in einem Rechtsstaat (sogar in so einer Bananenrepublik wie BRD) nicht gutheißen!
>Eine ganze Menge Leute, die auf dem Markt unterwegs sind, können trotz
>jahrelanger Tätigkeit nicht brauchbar programmieren. Brauchbar im
>Sinne von Lesbarkeit, Wartbarkeit, Dokumentation, Fehlerfreiheit,
>Sicherheit.
Nun, da sprichst du ein wahres Thema an. Ich habe sogar inzwischen das Gefühl, das “sauberes” Programmieren nicht mehr gewünscht wird. Ja, das von den meisten Beteiligten nicht mal verstanden wird, was man mit “sauberem und wartbarem” Code überhaupt meint.
Die neue Planung sieht inzwischen eher Scrum vor, wobei der Produktmanager 100% der Vor- und Denkarbeit leistet. Die Programmierer werden dann frisch von der Uni eingestellt. Fachwissen eines Programmierers ist nicht mehr nötig und von der Geschäftsleitung so auch nicht mehr erwünscht. Sauberes Programmieren auch nicht mehr, denn man macht ja Wochensprints, die man jederzeit über den Haufen werfen kann.
Die Intension dahinter, ist ganz einfach: Eine Fachkraft die vorgibt was man programmiert und 20 Entwickler die nur “Code reinhacken”, kein Fachwissen haben und beliebig und billig austauschbar sein sollen.
Mir kommt das bei mehreren Themen inzwischen so vor, als wenn wir hier einiges von der Ideologie der Ex-DRR verpasst bekommen sollen.
Quoten, Gleichmachung und Jeder kann alles irgendwie…
Ich habe das jetzt eher so verstanden, dass allen eine Grundkenntnis vermittelt werden soll, was Programmieren angeht. Insbesondere, damit auch die breite Masse der Bevölkerung vielleicht einen besseren Einblick in die elektronischen Gerätschaften erhält, die sie tagtäglich benutzen.
Finde ich gut soweit.
Professionelle Informatiker und Programmierer sollen natürlich nicht durch Laien ersetzt werden, das wäre ja auch schwachsinnig.
Und die Anforderungen in Beruf und Studium sollen auch nicht durch Förderung von Grundkenntnissen in der allgemeinen Bevölkerung abgesenkt werden.
Das Schlimmste, was passieren kann, ist, dass Informatiker ihre mystische Maschinenjockeyaura verlieren und mehr Leute ‘BULLSHIT’ rufen, wenn Hacken im Film gezeigt wird.
Ich denke, das der Artikel an dem gemeinten vorbeigeht. Ich habe nicht den Eindruck das Yogidingsda mit “rogrammieren” semiprofessionelle oder professionelle Softwareentwicklung meinte.
Sondern eher die -auch zum Spaß- “Alltagsprogrammierung”. Gibt ja immer mehr Geräte, die eine eingebaute Programmiermöglichkeit mitbringen, vom Radiowecker angefangen. Ich lese -habe mal im “Stern” geschaut, das gar nicht als Versuch, möglichst viele inkompetente Informatiker zu generieren, sondern als Versuch, den Leutchen diese Möglichkeiten nahezubringen.
Und wenn dabei ein paar Spaß dran finden und eine Informatiklaufbahn einschlagen, warum nicht.
@Tito: Yep, so sehe ich das auch.
@TR: “…tablet erst dann als vollwertigen computer ansehen würde, wenn ich *auf* dem tablet programme *für* das tablet entwickeln könnte. mit anderen worten, ein android tablet sollte ein android-sdk mit java compiler installiert haben. wofür ich- witzigerweise im heise-developer-bereich- gelächter erntete.”
Ohne Gelächter, da kann ich Dir AIDE empfehlen. Gute IDE für Android, ich “arbeite” damit auf Nexus 7. Kleinere Projekte können direkt durch Copy & Paste mit Eclipse ausgetauscht werden.
danke martin, werd ich mir mal ansehen.
…oder auch nicht. ich hasse es, jetzt das klischee zu erfüllen, daß android-anwender angeblich immer alles umsonst haben wollen, aber wenn ich mir die kommentare dazu so durchlese- da ist mal von 10 euro die rede, dann von 23 euro, in-app-käufe etc etc.
damit bringt man sicher niemand dazu, mal selber programmierversuche zu starten.
nix für ungut, aber gcc kost’ ja auch nichts 😉
Nein, nicht jeder kann programmieren, denn es ist genetisch vorprogrammiert. Im Gymnasium hatte ich das kleine Einmaleins vom Klang her gelernt, größere Multiplikationen errechnete ich durch mehrfaches Verdoppeln. Durch die ganze Schule ist von der ganzen Algebra, Geométrie und Trigonométrie nichts geblieben als der Frust über die vielen hundert nutzlos verlorenen Stunden, die ich mit leerem Blick durchsaß. Meine analytische linke Gehirnhälfte ist unterentwickelt, das Sprachenzentrum hingegen sehr gut. Neue Telephonnummern vergesse ich auf der Treppe in mein Bureau, mit der Realität verbundene Daten aus der Geschichte hingegen sehr gut.
Natürlich habe ich Bücher gekauft wie “Delphi 2 in 12 Stunden” oder Turbo Pascal pour les Nuls (für Dummies) n aber bald schwamm mir der inhalslose -text vor den Augen, mein Kurzzeitgedächtnis ist sehr schwach, enotionnel getragene Erinnerungen, Buchseiten oder den ersten Kuss behalte ich seit über 60 Jahren, wohl in der rechten Gehirnhälfte.
Politiker sprechen stets von der Alleingültigkeit der taktilen Blindenschrift , die vor der erfindung der Eletrizität und der Tonspeicherung erfunden wurde. Die Behindertenkonvention der Vereinten Nationen kennt als einzigen Zugang für das geschribene Wort die Brailleschrift. Der Vorsitzende der Royal Society for the Blind erklärt in Leipzig, Braille könne man in a couple of hours lernen. Wie kommt es dann, dass in Frankreich nach einer Studie von 2008 nur 1 von 21 Sehgeschädigten die Interpretation von Krümeln beherrschen, 3,6% ?Das ist die Arbeit der Sehtüchtigen Politiker und Vereins- und Verbandslobbyder Berufsblinden, wo der akustische vielsprachige Screenreader nicht ernst genommen wird, weil der sich in einer Woche erlernen lässt
Also, zum Programmierer muss man genetisch befähigt sein…
Bei Ähnlichen Diskussionen nehme ich das Beispiel “Eine Mahlzeit zubereiten” oder “Kochen”.
Es ist eine grundlegende Kulturtechnik und im Prinzip ist jeder fähig dazu. Deswegen muss sich nicht jeder sich Koch schimpfen, der verletzungsfrei eine Dosensuppe erwärmen kann.
Wenn ein “programmieren für alle” dazu führt, das manchen die Erkenntnis kommt: “Für mich ist das Nichts und ich wusste gar nicht, das das so kompliziert ist. Da frag ich doch mal die Fachperson.” wäre der Welt auch schon mal geholfen.
Ich wage zu bezweifeln, dass Yogeshwar irgendwo erwähnt hätte, dass Laien fortan sicherheitskritische Software entwickeln sollen. Jedem ist klar, dass es einiges an Ausbildung im Bereich Software Engineering und Programmierung erfordert, ehe das möglich ist. Mag sein, dass wir einen Qualitätssturz erleben, aber das liegt einfach an der Unattraktivität der Informatik. Gilt heutzutage als nerdiges Langweilerfach. Und die meisten Informatikvorlesungen sind langweilig, was nicht zuletzt daran liegt, dass Profs nur noch Folien vorlesen. Eventuell würde mehr Eigeninitiative (was Yogeshwar ja eigentlich vorschlägt) im Bereich Programmierung auch mittelfristig bessere Softwareingenieure hervorbringen.
In der Tat sollten wir gut unterscheiden zwischen ‘Informatik’ und ‘Programmieren’. Während das erste seinen Schwerpunkt (mMn) auf theoretische Hintergründe, theoretische (Un-)Möglichkeiten und generelle Konzepterstellung setzt, ist das zweite die möglichst gekonnte Umsetzung der geplanten Werke in die passende Form.
Natürlich ist die Schnittmenge auch groß.
Ähnlich wie beim Hausbau: ein Architekt entwirft den Bauplan, und sollte aber auch Ahnung haben, was (technisch/rechtlich) erforderlich ist. Der Handwerker sollte den Plan verstehen können und mit den passenden Werkzeugen die Arbeiten durchführen. Wenn beide bei auftretenden Problemen dann auch noch kommunizieren: Teamwork.
Ich schraube auch an meinem Motorrad rum, soweit ich mich auskenne und mich penibel über die Vorgaben/Risiken informiert habe. Aber als ‘Schrauber’ würde ich mich jetzt nicht bezeichnen. Erfahrener Anwender bestenfalls 🙂
@kokko: so hatte ich mein Netzwerkkabel auch verlegt. Lief ohne Probleme, waren aber nur 10m.
Als Moderator und Journalist hat Ranga Yogeshwar sicherlich so seine Stärken und Schwächen.
Seine Stärken bestehen aus meiner Sicht darin, zusammen mit seinem Team komplexe Zusammenhänge allgemeinverständlich zu erklären und das Publikum für Natur und Technik zu interessieren. Seine Schwäche besteht in der mit seiner Medienpräsenz verbundenen Eitelkeit die ihn offenbar empfänglich für bestimmte – sicherlich auch gut bezahlte – Angebote aus Politik und Wirtschaft machen.
Ähnlich gelagert sieht die Sache bei Fraunhofer aus:
Nach den eigenen Statuten müssen die Fraunhofer Institute ihren Etat zu ungefähr 50% aus Industriemitteln mit “angewandter Forschung und Entwicklung” erwirtschaften – andernfalls droht Schließung. Da ich selber sechs Jahre in einem Fraunhofer Institut gearbeitet habe, während ich in meiner Freizeit promovierte, weiß ich nur zu gut wie toll das ist seine F&E Ergebnisse auf Messen den desinteressierten und reichlich blasierten Industriemanagern anzudienen. Letztendlich wird keine noch kleine Gelegenheit ausgelassen um die Werbe-trommel zu rühren und Industrieprojekte reinzuholen.
Kommt dann jemand aus der Politik und winkt mit vielen Euro-Scheinen, so werden sich dem die wenigsten verweigern – und sei die Angelegenheit noch so fragwürdig. So entstehen dann so recht unheilige Allianzen wie diese Kampagne – Geld regiert die Welt!
Für die Fraunhofler ist das völlig in Ordnung, da sie ja gemäß ihren Statuten handeln und daraus auch nie eine Hehl machten. Für Yogeshwar besteht allerdings das Problem, dass er mit solchen Kampagne sein wichtigstes Kapital – seine Glaubwürdigkeit damit aufs Spiel setzt.
„Jeder kann programmieren”
Das ist natürlich ebenso totaler Blödsinn wie nicht jeder professionell mauern, schreinern, musizieren, tanzen, Bücher schreiben oder Marathon laufen kann.
Natürlich kann man sich mit etwas Talent als Autodidakt viele Dinge aneignen und es dabei auch zu einer gewissen professionellen Reife bringen. Allerdings setzt dies ein gewisses Mindestmaß an Fähigkeiten, Interesse, Fleiß und Beharrlichkeit voraus.
Die Frage – die sich offenkundig weder der wehrte Herr Sozialpädagoge Gabriel von der SPD noch der gute Herr Yogeshwar stellen lautet:
WARUM SOLL überhaupt in einer arbeitsteiligen Gesellschaft JEDER PROGRAMMIEREN können?
Mauern die etwa ihr Heim auch selber?
Fertigen die etwa ihre eigene Kleidung / Möbel an?
Schneiden die sich zuhause gegenseitig die Haare? (Dafür sehen die zu professionell frisiert aus)
Backen die zuhause sich selber ihr Brot und betreiben nebenher noch Ackerbau und Viehzucht?
Zudem impliziert, die Forderung, dass jeder Programmieren lernen soll, auch die Aussage, dass jeder in seinem alltäglichen Leben auch eigene, individuelle Programme benötigt – was ich nach mehr als 20 Jahren als Informatiker für recht abwegig halte.
Ich kann diese Aussage daher nur so verstehen, dass man den sich abzeichnenden Nachwuchsmangel in den MINT Fächern mit solch fragwürdigen Kampagnen begegnen möchte. Daran zeigt sich wieder einmal, dass das Gegenteil von gut – gut gemeint ist.
Naja, von Yogeshwar halte ich eh nicht viel, seit er seinen “Ziehvater” Jean Pütz (Hobbythek; wer erinnert sich noch?) mal fast zu einem Gott erklärte (auch wenn er wohl später mit ihm aneinander geriet).
Ich habe ein paar der späteren Sendungen von Yogeschwar gesehen und mich über die darin enthaltene Main-Stream-Propaganda – quasi in Fortsetzung der späten Hobbythek-Folgen – geärgert.
Mir scheint Yogeshwar ist einer von denen die auf jeden populären Zug aufspringen um Kohle zu machen und dafür Wissenschaftlichkeit verraten.
(Irgendwo in meinem Hinterkopf ist er auch als Unterzeichner einer oder mehrerer genderistischer “Manifeste” gespeichert!?)
@ Hadmut: Da Du mehrere US-Serien ansprichst (Dr. House-Folgen werden sogar an manchen (auch deutschen) Unis zu Ausbildungszwecken im Medizinstudium verwendet, so gut sind die!), was hältst Du von “Numb3ers”?
@dentix07:
> Da Du mehrere US-Serien ansprichst
Ich bin eigentlich kein regelmäßiger US-Serien-Gucker. Star Trek natürlich rauf und runter, aber ansonsten nur mal hin und wieder und nicht entfernt regelmäßig Simpsons, Dr. House, Columbo, Monk, früher ab und zu mal Magnum, Quincy. Und als kleines Kind hab ich Flipper und Daktari geguckt, is aber schon sehr lange her. Zieht man Star Trek ab und dividiert den Rest durchs Lebensalter, ist mein Konsum an US-Serien eher dünn.
> was hältst Du von “Numb3ers”?
Kenn ich nicht. Nie gehört. Was ist das?
“Vorstandsvorsitzende der Stiftung MINT-Entertainment-Education-Excellence”
Was ein Bullshit. MINT Fächer zur Unterhaltung ummuddeln oder wie? Mein Ingenieursstudium war nicht gerade spaßig. Und das finde ich toll. Denn im Gegensatz zu den Flachpfeifen der Sozialstudiengängen wusste ich, was ich mit dem Abschluß anfangen konnte und verdiene gutes Geld bei Produktivem arbeiten.
Ein bisschen überkritisch bist du schon.
Letztlich fängt das Programmieren beim Videorekorder und dem Funkwecker an. Das sollte wirklich jeder einigermaßen hinbekommen.
Das um was es dir geht ist die Planung vor der Umsetzung. So wie die Arbeitsvorbereitung dafür sorgen muss, das Material, Werkzeuge und Leute an den richtigen Orten zur rechten Zeit sind, muss man bei größeren Projekten erstmal verstanden haben, wie der Laden läuft und man die Anforderungen darauf abbildet. Die Detailarbeiten, wie eine Welle nach technischer Zeichnung drehen bekommt dann der Metallfacharbeiter hin.
Den Transport und/oder die Bestückung einer vollständig programmierten Maschine kann praktisch jeder nach kurzer Einweisung. Auch hier kann man noch einiges falsch machen.
Genauso umfasst “Programmieren” einen sehr weiten Bereich. Viele Kleinigkeiten, die für Informatiker eher unter einstellen oder konfigurieren fallen, sind für Laien auch Programmierarbeiten. Hier ist es wirklich sinnvoll Berührungsängste zu mindern.
Zum Vergleich mir Schrieben und Lesen: Programmieren ist eher mit dem Verfassen von Texten zu vergleichen. Und da sind wir dann auch schon beim Problem. Selbst die Urlaubspostkarte bekommen viele nicht formuliert. Von einer Einladung zum Vereinsfest mal ganz zu schweigen. Und wir wissen alle, das es hier nicht endet. Wir wissen aber auch, das es im E-Book Bereich durchaus gute Schriftstellerlaien gibt.
Insofern bin ich für Laienapplikationen durchaus zu haben, auch wenn 99% kaum nutzbar sind. Viele der kleinen Werkzeuge, die man sich so schreibt bieten Problemlösungen, von denen auch andere profitieren könnten. Aber meist fehlt die Muße das so zu verpacken, das das möglich wäre.
Fredi, 11.6.2014 8:59 hat meinen Beitrag vorweggenommen.
Der einzige Zusatz, der noch fehlt ist, “…und es sollte dafür gesorgt werden, dass jeder die folgen zu hoher Komplexität selbst zu spüren bekommt.”
Bei den ganzen “Nixprogrammierern” gilt nämlich immer noch “mehr Features == besser” anstatt “was nicht da ist, kann nicht versagen”.
@Action Jackson: “Eine Fachkraft die vorgibt was man programmiert und 20 Entwickler die nur “Code reinhacken”, kein Fachwissen haben und beliebig und billig austauschbar sein sollen.”
Wir hatten hier nacheinander Inder, Rumänen und Russen. Alle wieder weg. Die einen wegen Minderleistung, die anderen hatten keine Lust für’n Appel&Ei zu arbeiten. Die Guten kosten halt, und in dem Beruf ist Alter, Aussehen, Herkunft wirklich fast egal.
Der Scrummaster ist übrigens auch schon wieder weg… ups 🙂 .
Die Leistung muss stimmen.
@Hanz Moser “Mein persoenliches Problem mit den meisten Handwerksprofessionen war bisher meistens, dass die teuer bezahlten Fachleute mithin voellig inkompetent waren.”
Gnihihi, lass dir mal von einem Heizungsbau-Meister das Konstrukt “relative Luftfeuchte” erklären… oder die Wirkungsweise eines Latentwärmetauschers. Oder setz dich mal daneben und geh mit ihm seine “Auslegung” für die neue Hackschnitzelheizung durch (x-fach überdimensioniert, frisst dich mit dem Betriebsstrom arm, und der halbe Pufferspeicher ist wegen Temperaturschichtung unwirksam… alles schon erlebt. Und das ist kein Einzelfall.)
> Fry
10.6.2014 23:02
Randinfo: ich habe Physik studiert und durfte trotzdem meinen Stromanschluss nicht selbst setzen. Dabei versteht sicher JEDER ausgebildete Physiker nach kurzer Einweisung mehr davon als die “Meister”, die das dürfen
Vor solchen Leuten hatte ich mich zu meiner Elektrikerzeit immer gefürchtet.
Nur weil Jemand etwas von Physik versteht ist er noch lange kein Elektriker, da hat die “Innungsverschwörung” nichts mit zu tun.
Zum Programmieren muß man ja auch erstmal richtig denken können. 30-60 % der angehenden Informatikstudenten scheitern schon am simpelsten Denkvorgang: dem Assignment, die anderen bekommen es hin. Schaut man näher hin, sieht man daß jede der beiden Gruppen, eine eigene Glockenkurve hat:
http://blog.codinghorror.com/separating-programming-sheep-from-non-programming-goats/
Oder anders ausgedrückt. Yogeshwar wurde bereits widerlegt, er ist über den Stand der Forschung nicht informiert. Schwache Leistung für einen “wissenschaftsjournalisten”.
Diejenigen, die es (das Denken) vor dem Studium nicht draufhaben, es auch nicht mehr lernen. Diese Leute schaffen aber trotzdem den Abschluß und dürfen dann an verschiedenen Stellen Kompetenz simulieren. Was wohl das zentrale Problem ist, welches Hadmut anspricht.
Die Intension dahinter, ist ganz einfach: Eine Fachkraft die vorgibt was man programmiert und 20 Entwickler die nur “Code reinhacken”, kein Fachwissen haben und beliebig und billig austauschbar sein sollen.
Das ist genau das, was man dort macht, wo der Yogeshwar herkommt: Man beauftragt für einen Spottpreis 10 Leute mit der Aufgabe und bezahlt den einen, der es auf die Reihe bekommen hat. Gibt ja genug “Human Resources” auf dem Subkontinent. Deshalb rate ich auch jedem dringend von einer Computerei-Karriere ab. Das nämlich ungefähr so sinnvoll, wie in den späten 80ern einen auf Radiofernsehheini zu machen.
@Fry: “Dabei versteht sicher JEDER (bezogen auf das setzen eines Stromanschlusses) ausgebildete Physiker nach kurzer Einweisung mehr davon als die “Meister”, die das dürfen.”.
Verstehen vielleicht, ob er es auch umsetzen kann ist die andere Frage.
Doch auch als Betroffener kann wegen meiner Einer der Meisterzwang gerne abgeschafft werden. Wird er auch. Und dann soll jeder so schrauben und die Anmeldungen ausfuellen wie er lustig ist. Den Rest regelt dann die Physik.
N-Leiter,
xxHyFoxx
Der sympathische Ranga meint wahrscheinlich “endlich lernen, mit dem Computer richtig umzugehen” und umschreibt das unsinnigerweise mit “programmieren”, was natürlich seriöse Programmmierer schmunzeln läßt.
“Doch wer wird denn gleich in die Luft gehen? Rauche lieber…”
“Oder in der Bundeswehrfahrschule, warum man bei Starthilfekabeln erst den Plus- und dann den Minus-Pol anschließen muss (bzw. umgekehrt wieder trennen). Physikalisch ist das wurscht, praktisch aber nicht.”
.
Sowas hab’ ich als Teenager & unstudierter Laie (und keine Bundeswehr) in den sechziger Jahren schon gewusst, das lernte man damals irgendwie von Freunden, zusammen mit dem “ersten Auto”.
@ Hadmut: in welchem Jahtzehnt hast Du Studiert?
@Noob:
> @ Hadmut: in welchem Jahtzehnt hast Du Studiert?
Ende 1986 bis Anfang 1994
> „Jeder kann programmieren” – meint er. Oder: Warum Programmieren doch nichts für Physiker ist.
Hadmut, willst Du nicht mal einen Artikel über Zufallsstichproben schreiben?
http://de.wikipedia.org/wiki/Zufallsstichprobe
Dürfte nach dem Verwechseln der drei großen K’s (Koinzidenz Korrelation und Kausalität) wohl einer der prominentesten Fehler bei der Auswertung von Statistiken sein.
P.S.: Das Physikstudium macht arrogant und zynisch – aber es hat auch Nachteile 🙂
> Hadmut, willst Du nicht mal einen Artikel über Zufallsstichproben schreiben?
Wenn ich mal Zeit dafür finde. Voraussichtlich etwa 17 Jahre nach Renteneintritt. Oder so.
@Hadmut Numb3ers:
Die Geschichte handelt von dem FBI-Mitarbeiter Don Eppes und seinem Bruder Charlie, der Mathematik an der Universität unterrichtet und ein Genie seines Faches ist. Zusammen versuchen sie Kriminalfälle mit Hilfe von mathematischen Formeln aufzuklären.
Die Produktion hat Ähnlichkeit mit der Erfolgsserie CSI: Den Tätern auf der Spur und deren Ablegern, ist jedoch etwas anders angelegt. So dreht sich die Handlung weniger um die Spurensicherung, sondern eher um die Vorhersage weiterer Verbrechen von Serientätern mithilfe moderner angewandter Mathematik, Physik und Informatik wie z. B. der Numerik, Spieltheorie, Fluiddynamik, maschinellem Lernen und Data-Mining anhand der Beweismittel und vorhergegangenen Handlungen des Täters.
Vom Niveau bewegt sich die Serie grob auf dem Niveau von CSI. D.h. die verwendeten Methoden kommen schon vor und sind realen Beispielen entlehnt, jedoch i.d.R. übertrieben und funktionieren immer sofort 😉
Auch das typische Aufzoomen von pixligen Bildern kommt vor 😉
> Das ist genau das, was man dort macht, wo der Yogeshwar herkommt:
> Man beauftragt für einen Spottpreis 10 Leute mit der Aufgabe und
> bezahlt den einen, der es auf die Reihe bekommen hat.
> Gibt ja genug “Human Resources” auf dem Subkontinent.
In Luxemburg macht man das wirklich so? Da kommt der nämlich her.
> Deshalb rate ich auch jedem dringend von einer Computerei-Karriere ab.
> Das nämlich ungefähr so sinnvoll, wie in den späten 80ern einen auf
> Radiofernsehheini zu machen.
Die gleichen Leute machen heute “irgendwas mit Medien”. Dann schon lieber Informatik.
So, nachdem hier so sehr auf Physiker und andere Wissenschaftler eingedroschen wird, muss ich mich jetzt zu dem Thema auch mal äussern:
Zuallererst will ich mal Hadmut’s Blog-Posting zitieren
>>>Eine Kernfähigkeit eines guten Informatikers (oder meinetwegen auch Programmierers) ist es, das Problem zu erfassen, zu verstehen und zu beschreiben. Das ist die Grundlage des Programmierens, noch bevor man eine Zeile Programmcode geschrieben hat.<<<
Für Physiker sieht die Stellenbeschreibung dagegen so aus: "Die **Hauptfähigkeit** eines Physikers ist es, ein System derart in einzelne Probleme zu zerlegen, dass diese verstanden werden können. Formal mathematische Methoden müssen angewandt werden um die Beschreibung des Problems (Modell) theoretisch abzusichern. Wesentlich für die Arbeit des Physikers ist zudem die praktische Implementierung des theoretischen Models in Form von Vorhersagen die die Planung und Durchführungen von Experimenten ermöglichen."
Das geht IMHO wesentlich weiter als die Stellenausschreibung der Informatiker. Es gibt unter Physikern einen Witz, nämlich, dass ein Mathematiker nach 10 Stunden Arbeit an einem Problem die Existenz einer Lösung bewiesen hat und damit zufrieden ist. Der Physiker denkt 10 Sekunden nach und schreibt die Lösung direkt hin und beweist die Korrektheit des Ansatzes.
Man darf auch nicht vergessen, dass es vor allem Physiker (und Elektrotechniker) waren, die die Entwicklung der Computer am Anfang der Informatik extrem vorangetrieben haben. Sowohl theoretisch als auch praktisch. Richard Feynman z.B. hat einige sehr wichtige Beiträge zur Numerik geliefert (effiziente Berechnung von Logarithmen und Divisionen) die heute Standardalgorithmen sind.
Ein Studium der Physik alleine befähigt natürlich niemanden dazu, gut programmieren zu können. Das schafft ein Studium der Informatik aber genauso wenig, denn die Informatik befasst sich ja vor allem mit den theoretischen Grundlagen, also Themen wie Berechenbarkeit, Grammatiken usw. In einem Informatik-Studium wird man natürlich in wesentlich größerem Umfang damit konfrontiert, Programme zu schreiben. Und viele Physiker kommen nur während der Pflichtveranstaltungen "Kurs Programmiersparache X" (mit X entweder C++, Python oder sogar noch Fortran (örks)) und "Numerik" damit in Berührung. Das ist dann aber auch der Hauptunterschied: Die Menge an erzwungener Programmiererfahrung im Studium.
Von Ranga Yogeschwar weiß ich übrigens, dass er sich als Jugendlicher intensiv mit Informatik und Programmierung beschäftigt hat. Vor einigen Jahren (auf einer "Jugend forscht"-Veranstaltung bei der ich als Alumni eingeladen war) hatte ich ein Gespräch mit ihm, in der er die Frage stellte, wie man den heute Kinder am besten an Computer heranführen könnte. Das Problem ist ja, das man heute den Kisten nicht mehr ansieht, wie sie funktioneren.
Das sind Black Boxes und das Betriebsystem abstrahiert so vieles so weit weg, das da komplett der Bezug fehlt. Bei einem alten 486er oder älter mit ISA-Bus kann man mit den outb/inb-Befehlen an den Address-/Daten-Leitungen herumwackeln und wenn man ein Oszilloskop dran hält oder mit einem Widerstand nach +5V oder GND brückt sieht man das. Bei den ganzen Home-Computern (C64, Amiga, Atari usw.) ganz genauso. Bei einem modernen PC sitzen dagegen mindestens 5 Abstraktioneebenen zwischen dem Programm und der Hardware, dass da komplett der hämdsärmelige Zugang fehlt. Mikrocontroller geben einem zwar ein wenig von diesem Gefühl zurück, aber es ist nicht das gleiche wie bei einem PC bei dem man in einem Debuger interaktiv Befehle reinhackt und es tut sich direkt was.
Moderne Betriebssysteme sind das andere **lerntechnische** Problem, denn diese Verbergen die ganze Komplexität der Speicher und Prozessverwaltung. Klar, für die tägliche Arbeit des Programmierens wünscht man sich, mit einem wohlüberlegt entworfenen und implementierten Betriebsystem zu arbeiten, damit man sich auf die wesentlichen Dinge konzentrieren kann. Aber wenn es darum geht zu **lernen** wie die Dinge zusammenhängen, dann sind moderne Betriebssysteme ein echtes Hindernis.
Es ist nicht der Unwille oder Unfähigkeit von Neulingen, dass diese nie lernen richtig zu Programmieren oder zu verstehen was sie da eigentlich tun. Es ist diese (bildlich gesprochen) Lichtjahre hohe Komplexitätsmauer, die man heute überwinden muss bevor man einen gewissen Überblick gewonnen hat.
Ich beschäftige mich jetzt seit fast 25 mit Computern und Informatik. Bei der Einschreibung zum Studium war die Frage, welches Hauptfach: Physik oder Informatik. Entschieden habe ich mich dann für Physik, weil mir das als die größere Herausforderung und das lohnendere Fach erschien. Ich war auch mehrere Semester lang Tutor für Numerik und die Programmierkurse. Die meiste Zeit meiner Programmiertätigkeit schreibe ich C. C++ meide ich wie der Teufel das Weihwasser obwohl das die erste Sprache mit C-artiger Syntax war, die ich gelernt habe. Dabei ist es nicht so sehr die Sprache selbst die mir das Grausen bereitet, sondern mein naiver Versuch vor etlichen Jahren einen Parser für C++ zu schreiben; ich musste lernen, dass das nicht geht, wenn man nicht einen kompletten Compiler schreiben will. Das hat mich in die Abgründe der existierenden Compiler, der inkonsistenten ABIs, nichtexistenter Standards für C++ ABIs usw. getrieben. Mal abgesehen davon, dass C++ derartig komplex ist, dass es wohl niemanden weltweit gibt, der die Sprache vollumfänglich sicher beherrscht.
C ist mir da um einiges lieber, wobei diese Sprache damit nervt, das sie so überhaupt keine eingebauten Primitive für Allerweltsdatenstrukturen enthält: Listen und Arrays mit Bounds-Checking. Das C keine assoziativen Arrays hat, geschenkt, aber das Arrays über Pointer-Arithmetik abgebildet werden ist IMHO ein grober Design-Schnitzer. Es gibt ja viele Leute, die C als "Hochassembler" betrachen. Diesen Leuten empfehle ich, sich mal die C-Spezifikation sehr genau durch zu lesen. Das ist alles sehr abstrakt geschrieben und die Spezifikation enthält so viele Fälle von "undefined behavior" das einem das Grausen kommt. Genau da liegt nämlich der Pfeffer begraben: Mir ist z.B. keine einzige Prozessorarchitektur bekannt, die einem nicht in irgendeiner Form mitteilt, dass das Ergebnis einer Integer-Operation nicht valide ist (Overflow, Division durch 0, etc.). C dagegen sagt einfach: "Wenn man zwei Integer miteinander verrechnet, ist das Ergebnis ein Integer mit der gleichen Größe wie der größere der beiden Operanden und wenn ein signed mit einem unsigned verrechnet wird, promoted es zu unsigned. Alle Ergebnisse die sich damit nicht abbilden lassen sind undefined behavior." Großartig, das fällt für mich unter mutwillige Böswilligkeit. Das ist so unintuitiv, dass die meisten Leute die C nicht in-und-auswendig Beherrschen mit Sicherheit darauf reinfallen. Schlimmer noch: Die meisten Konstrukte die zum erkennen von Integer-Überläufen verwendet werden, sind "undefined behavior" und werden z.B. vom GCC aktiv wegoptimiert, weil die ja nicht definiert sind. Da kann man den Leuten noch so oft eintrichtern "Eingabedaten validieren!", wenn es einem die am weitesten verbreitete Sprache für Systemprogrammierung so schwer macht, es richtig und dabei performat zu machen.
Das ist die Ebene auf der Sicherheitslücken entstehen. Es ist weder die Unfähigkeit zu programmieren, noch Unwissenheit über die prinzipielle Art der Verwundbarkeit. Es ist teilweise extrem "obskures", fehlendes "Spezialwissen" zu Eigenheiten der Programmiersprache mit der heute ein Großteil der Systemprogrammierung betrieben wird (was eigentlich bedeutet, dass dieses Spezialwissen Grundwissen sein sollte).
Und dann ist da noch der Punkt, dass eine solcherart rustikale Sprache wie C heute einfach nicht mehr zeitgemäß ist. Hadmut drischt ja mit Vorliebe auf funktionale Programmierung ein, mit dem Argument "das wäre kein richtiges Programmieren" (äh, wieso nicht? Lisp-Machine anyone?) und Pseudoargumenten wie "damit kann man nicht sicherstellen, dass man am Ende alle Kopien eines Krypto-Schlüssels sauber weggeräumt hat". Da habe ich eine traurige Nachricht für die Hadtmut: Das klappt auch mit imperativen Programmiersprachen nicht zuverlässig; da muss man schon um so APIs wie mlock wissen, um den Speicher entsprechend festzunageln; und solche APIs kann man auch funktional anbieten. Das gleiche gilt für Timing-Angriffe. Abgesehen davon sind derlei Seitenkanalangriffe heute noch in der Minderheit der Sicherheitslücken. Das meiste sind eklatante Logik- und Implementierungsfehler. Und wenn einem eine Programmiersprache durch Anwendung streng formaler Methoden ein Programm so lange nicht baut, da dank des Curry-Howard-Isomorphismus gezeicht werden kann, dass da ein Logikfehler drin steckt, dann ist das doch eine wünschenswerte Sache.
Ausserdem kann man heute doch wohl erwarten, dass einem eine moderne Programmiersprache/-Umgebung lästige aber fehleranfällige Routine-Aufgaben abnimmt. Bei Betriebsystemen ist das seit Jahrzehnten ein Grundparadigma. Aber dann benutzen wir Programmiersysteme, die sich genauso lange nicht weiterentwickelt haben, obwohl sich da eigentlich eine Menge getan hat und einiges seit Jahren existiert was wesentlich besser wäre als der Schmonz den wir nach wie vor benutzen.
Es muss ja nicht alles rein funktional sein. Ordentliche statische Typisierung, gescheite Typ-Inferenz, ein Satz von Standard-Containern (Liste, Bounds-Checked-Array, assoziatives Array), Closures, Scope-Cleanup und vor allem in allen Situationen definierte Integer-Arithmetik würden schon mal viel bringen (und mit Go und Rust gibt es ja Sprachen, die all das abdecken und hoffentlich bald im Mainstream landen, Go ist ja schon Standard-Feature der GNU Compiler Collection).
Zu behaupten, jemand könne nicht programmieren, nur weil er nicht all die Feinheiten eines Sprachstandards beherrscht ist so, wie zu behaupten jemand sei Analphabet, da er kein publizierender hochbezahlter Author mit abgeschlossenem Linguistikstudium sei. Die meisten Menschen kommen mit ihren Schreib- und Lesefähigkeiten im täglichen Leben wunderbar klar.
Und damit komme ich jetzt noch zu Hadmuts Lieblingsthema "Universitätsbetrieb vs. freie Wirtschaft". Ich bin in einem Forschungsbereich tätig in dem eng mit Partnern aus der Industrie zusammengearbeitet wird. Es handelt sich übrigens um Medizintechnik und der Code der da aus der Industrie kommt ist teilweise einfach nur GRAUENHAFT! Es herrschen auch eine Menge von Missverständnissen die sich aus dem oben genannten Black-Box-Problem ergeben; die Leute wissen nicht wie es im Detail funktioniert, also wird geraten. Und die naiven Annahmen sind nicht dumm; sie sind das, was jeder vernünftige Mensch, der den Kram nicht im Detail kennt, als aller erstes Annehmen würde.
Ein praktisches Beispiel, mit dem ich tatsächlich konfrontiert war: Es ging darum, in einem diagnostischen Medizinprodukt die einzelnen Softwaremodule sauber voneinander zu trennen. Vorgabe der Fördermittelgebers war, da einen externen Consultant hinzuzuholen. 15 Jahre älter als ich, Dipl.-Ing. und dessen Vorschlag war "Aufteilen in mehrere Klassen und alle Variablen `private` und Zugriff nur per setter/getter". Ich habe den nur verdutzt angesehen und gefragt: "Äh, und was genau soll das bringen?" Die Antwort "dann packen Sie es halt noch in DLLs wenn ihnen das nicht reicht." hat mir die Socken ausgezogen; auf der anderen Seite ist dieses Fehlverständnis absolut nachvollziehbar.
Akademia vs. Industrie? Das gibt sich in der Verteilung des Wissens und der Kompetenz der Leute nicht viel. Ich würde sagen, dass der Anteil der Leute, sich sich wirklich um Code-Qualität und Sicherheit bemühen in der akademischen Welt sogar größer sein dürfte, da der Druck der Deadlines und des "es muss ausgeliefert werden" wegfällt.
Und was das "jeder kann Programmieren" angeht: Nein sicher nicht jeder, es gehört eine gewisse mentale Mindestbefähigung dazu. Die ist aber nicht auf bestimmte Berufsgruppen beschränkt. Es gibt Physiker die beschissenen Code schreiben und es gibt Informatiker die beschissenen Code schreiben. Und es gibt Physiker die richtig gut programmieren können und es gibt Informatiker die richtig gut programmieren können. Es gibt High-School-Schüler die so gut programmieren können, dass sie regelmäßig bei Bug-Bounties groß absahnen.
@Peter:
>Wir hatten hier nacheinander Inder, Rumänen und Russen. Alle wieder >weg. Die einen wegen Minderleistung, die anderen hatten keine Lust >für’n Appel&Ei zu arbeiten. Die Guten kosten halt, und in dem Beruf >ist Alter, Aussehen, Herkunft wirklich fast egal.
Wir auch 🙂 Und sind zur gleichen Erkenntnis gekommen. Unterm Strich haben sich die Inder nicht gelohnt, zuviel Abstimmarbeit, zuwenig und zu schlechter Output. Nach 5 Jahren hat man dann eingesehen das ein ortsansässiger Programmierer wahrscheinlich billiger und besser gewesen wäre.
Nur leider sind wir inzwischen an eine kleine Klitsche verkauft worden und nun haben die wiederrum solche Irrsinnsideen.
Jedem, der eine Weile in diesem Umfeld gearbeitet hat, weiss wie kritisch solche Ideen zu beurteilen sind.
Nunja,
das ist eine Aussage wie:
– jeder kann Kochen,
– jeder kann Fußballspielen,
– jeder kann “Bumm”.
Trotzdem gibt es Leute
– die Wasser anbrennen lassen,
– sich fragen, warum sich 25 Personinnen um einen Ball streiten müssen und nicht jederin seinen eigenen bekommt,
– oder an den drei Fingern abzählen können, wann sie den Böller loslassen müssen. 🙂
Es kann, bei entsprechendem Interesse sinnvoll sein, Kids zu zeigen, wie man selbst eigene Programme schreiben kann. Aber ohne etsprechende Anleitung ist das genauso sinnvoll und gefährlich wie einem Kind zu sagen, daß man einfach etwas Aluminium- und Eisenoxidpulver vermischen und anzünden kann, um ein dollen Effekt zu bekommen (ala “jeder kann Chemie”).
Ranga sollte lieber bei seinem Quark bleiben, als so einen Blödsinn in die Welt zu setzen.
Ach ja. Interessante Informatikerserien:
“Person of Interest” ist eine US-Serie, die ein aufregendes “Informatikerleben” zeigt, allerdings manchmal mit etwas hanebüchenen Über- oder Untertreibungen.
Das Clarkesche Gesetz: Jede genügend weit fortgeschrittene Technologie ist von Magie nicht mehr zu unterscheiden. Das war natürlich auf die Anwender gemünzt, aber es betrifft auch die Lehre. Das, was den Unterschied zwischen Magie und technologie ausmacht, kann immer schlechter gelehrt werden. Der Raspberry ist ja nicht wirklich kleichter zugänglich als ein PC, ind Microcontroller sind langweilig…
Jetzt ruft die Wirtschaft nach Zauberlehrlingen. Soll sie doch beim Vollbad ersaufen!
“Das Physikstudium macht arrogant und zynisch – aber es hat auch Nachteile”
.
Ist das folgende evtl. das Original? =
Die Wahrheit über Heiner Müller.
Heiner Müller hörte geduldig zu, wie Friedrich Schorlemer über die Folgen des Mauerfalls sprach: “Da gab es plötzlich mehr Verkehrstote, die Selbstmordrate stieg sprunghaft an, viele hatte keine Arbeit mehr und begannen zu trinken…”
Da unterbrach ihn Heiner Müller: “Aber es gab auch Nachteile!”
@ Hadmut
Eine US-Serie in der ein Mathematiker im Dienste des FBI mithilfe der Mathematik Kriminalfälle löst.
Ausnahmsweise ein Zitat aus WikiP.: “Die Geschichte handelt von dem FBI-Mitarbeiter Don Eppes und seinem Bruder Charlie, der Mathematik an der Universität unterrichtet und ein Genie seines Faches ist. Zusammen versuchen sie Kriminalfälle mit Hilfe von mathematischen Formeln aufzuklären.
Die Produktion hat Ähnlichkeit mit der Erfolgsserie CSI: Den Tätern auf der Spur und deren Ablegern, ist jedoch etwas anders angelegt. So dreht sich die Handlung weniger um die Spurensicherung, sondern eher um die Vorhersage weiterer Verbrechen von Serientätern mithilfe moderner angewandter Mathematik, Physik und Informatik wie z. B. der Numerik, Spieltheorie, Fluiddynamik, maschinellem Lernen und Data-Mining anhand der Beweismittel und vorhergegangenen Handlungen des Täters.” und
“Als Consultant für alle Fragen auf dem Gebiet der Mathematik, die einen Hauptreiz der Sendung ausmachen, dient Wolfram Research, die unter anderem die Plattform Wolfram Alpha betreibt und mit Mathematica eines der meistbenutzten mathematisch-naturwissenschaftlichen Programmpakete der Welt entwickelt.”
Ob das so realistisch ist, kann ICH nicht beurteilen, aber ich finde den Ansatz Mathe in dieser Form praktisch und im Alltag anzuwenden sehr interessant.
Sollte es realistisch sein, meine Hochachtung vor US-Serien Schreibern, die so gekonnt darstellen, daß (höhere) Mathematik nicht nur ein abgehobenes Fach ist, sondern tatsächlich Alltagsrelevanz besitzt!
@ Peter
Ich hatte einen Bautrockner der nicht glauben wollte, dass Kondenstrockner und Turbinen mit einer Anschlussleistung von 2kW im Keller ungefaehr dasselbe Ergebnis haben wie ein 2kW Heizluefter. Den haette ich wohl mal fragen sollen, warum beim Lueften nur eine Haelfte der Scheibe beschlaegt 😀
Das Problem mit den ueberdimensionierten Heizungen kenne ich auch. Selbst mit offener Terrassentuer koennte ich hier im Winter noch 20 Grad haben. Fast noch schlimmer ist aber die uebliche Einstellung dazu. Ich will nicht wissen wie viel Heizoel jedes Jahr verbraten wird, weil die meisten Heizungen sinnlos hohe Vorlauftemperaturen haben oder das Warmwasser Winter wie Sommer Tag und Nacht im Kreis pumpen.
Hm. Vielleicht sollte man das “Jeder kann X” Motto einfach als einen sehr zynischen und trocken vorgetragenen Scherz darueber auffassen, dass mittlerweile nicht nur die selbsternannten Fachleute unfaehig sind, sondern die meisten “echten” Fachleute auch.
@Hadmut:
Da ich ja großer Fan von DS9 war (meines Erachtens nach die bestgeschriebene Serie, auch wenn ENT zum Schluss dem sehr nahe kam), bin ich etwas neugierig. Was war denn deine Lieblingsserie von Star-Trek?
> Was war denn deine Lieblingsserie von Star-Trek?
Überwiegend DS9, allerdings gabe es auch bei Voyager einige gute Folgen. Auch bei den ganz neuen Star-Trek-Folgen, die vor der ersten spielten.
@maSu: “Aber ich beobachte auch in der Informatik eine zunehmende ‘Infantilisierung’: Immer mehr simple Scriptsprachen kommen auf. Immer mehr Vereinfachungen kommen hinzu. […] Programmiersprachen werden immer einfacher (und oftmals auch langsamer)…”
Im Grunde gebe ich Dir recht, sehe das aber auch mit gemischten Gefühlen. Grundsätzlich ist es positiv, wenn in der Informatik Vereinfachungen statt finden: so kann sich ein Entwickler auf die Lösung des Problems konzentrieren und muss sich nicht die meiste Zeit mit dem “Werkzeug” (Sprachen und Compiler) herumschlagen. “Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder”, Sergej Koroljow.
Aber leider verwechseln manche Leute Vereinfachung mit Infantilisierung (treffender Begriff!). Ich sage nur Script-Sprachen. Die gehören grundsätzlich verboten. Dann darf man aber wiederum nicht ins Gegenteil verfallen: die Syntax von C/C++ ist derart schlecht lesbar, dass man sich nicht wundern braucht, wenn einem die Prozesse abschmieren (PASCAL war viel schöner und konnte fast genauso viel wie C/C++).
Java und C# haben daraus gelernt und C/C++ von den syntaktischen Scheußlichkeiten befreit. Dummerweise hat man diese Sprachen in ressourcenfressende Laufzeitumgebungen verpackt, dass einem die Füße einschlafen. Das Ganze gipfelt dann auch noch in der XML-Hype. Ein maschinen-fremdes Format, aufgebläht und performant wie eine Oma mit nur einem Bein, die auch noch ihre Krücken verloren hat.
Was soll man aber auch anderes von Made in USA erwarten? Deutschland, das für seine Gedankentiefe und für abstraktes Denken bekannt ist, hat den Zug seinerzeit verschlafen und heute ist es derart nach US-Manier verseicht, dass es das nicht einmal mehr könnte, selbst wenn es wollte.
@dentix07:
Leider gar nicht besonders realistisch (jedenfalls nicht die Folgen, die ich gesehen habe). Hari Seldon läßt grüßen.
Aber unterhaltsam und – und das finde ich tatsächlich ziemlich gut – Mathematik und Mathematiker sind durch die Serie positiv besetzt (nicht wie sonst sympathische oder fiese Irre, die sich mit etwas beschäftigen, was ‘normale’ Menschen moralisch fragwürdig finden müssen…). Mit der Einschränkung, dass ich nur eine kleine Stichprobe besprechen kann (~8 – 10 Folgen vielleicht?).
kvm: malloc.c:2451: sYSMALLOc: Assertion 0040old_top == (((mbinptr) (((char *) &((av)->bins[((1) – 1) * 2])) – __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) – 1)) & ~((2 * (sizeof(size_t))) – 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)’ failed.
Frage:
Hat das ein richtiger Programmierer geschrieben, der Praktikant oder Ranga Yogeshwar selbst?
@quarc: “Die gleichen Leute machen heute “irgendwas mit Medien”. Dann schon lieber Informatik.”
Das stimmt wohl… hier sind unter den 10 Berufen mit den höchsten Anteilen erfolgloser Bewerber gleich 3 mit “Medien oder irgendwas gestalten/designen”. Und gleich 2 unter den ersten 3….
http://www.welt.de/wirtschaft/article128974646/Diese-Berufe-sind-bei-Jugendlichen-unbeliebt.html
@rleo:
Das war ein Informatiker mit zu viel Freizeit und mit ohne Kreativität 😉 Solche Leute neigen dazu, so nett verschachtelte Codezeilen zu produzieren. Nach dem Motto: “Weil ich´s kann!”
Zum Thema: Ich wage auch sehr stark zu bezweifeln, daß Yogeshwar damit Softwareentwicklung in kritischen Bereichen meinte.
Was mir an Hadmut unangenehm auffällt, ist diese (leider recht typische) Attitüde des “Studierten”, alle anderen für völlig verblödet zu halten und als Beweis dafür eben sowas wie “Software für Kernkraftwerke” anzuführen. Und eigentlich zu wissen, daß diese Argumentation ganz großer Bullshit ist.
Wertungsfrei betrachtet sagt der Satz “Jeder kann programmieren” nichts weiter aus, als daß im Grunde jeder (irgendetwas) programmieren kann. Dagegen ist kaum etwas einzuwenden. Wer Spaß dran hat, kriegt irgendetwas programmiert. Ein Spielchen, irgendein kleines Helferlein für den Desktop-Alltag, sowas. Geht. Muß man nicht für studiert haben. Muß nicht zwingend irgendeine andere Informatik-Triefnase lesen UND verstehen können. Muß nicht durch´s Audit. Alles gut.
Hätte klein Ranga etwas von “jeder kann Software für Kernkraftwerks-Steuerungen programmieren” gesagt, wäre die Lage komplett anders. Hat er aber nicht.
Was ich auch ziemlich schräg fand ist, sofort die (zugegebenermaßen) desolaten Zustände der doitschen Wissenschaft rauszukramen und das ganze Elend solchen Aussagen wie die von Ranga Yogeshwar anzulasten. Bullshit, der macht nur, was er immer macht. Die intellektülle Variante von Galileo. Der macht keine Hochschulpolitik. Dafür sind andere Leute zuständig.
Hätte Hadmut sich diesbezüglich an dem gemütlichen Herrn Gabriel abgearbeitet, hätte ich ihm in dem Punkt sogar zustimmen können. Der ist nämlich Politiker.
Fazit: Bei allem (vielleicht berechtigten) Stolz auf sprachliche Analysefähigkeiten ging es bei Hadmut diesmal lichtjahreweit am Kontext vorbei. Mehr reininterpretiert, als der Text hergibt. Ist vermutlich dem Beißreflex geschuldet…
> Hätte Hadmut sich diesbezüglich an dem gemütlichen Herrn Gabriel abgearbeitet,
Dazu wird sich vielleicht irgendwann mal eine Gelegenheit ergeben. Den mag ich nämlich nicht. Und bekanntlich schreibe ich bevorzugt über Leute, die ich nicht mag.
@Datenwolf: Sehr guter Kommentar, danke! Tatsächlich dürfte die Einstiegshürde höher liegen als früher und die -im Wortsinne- “Begreifbarkeit” wesentlich schlechter sein, als früher. Die Abtraktionslayer haben eben nicht nur Vorteile.
@claus: Toller Satirebeitrag, hab selten so gelacht 🙂 Die sprichwörtliche “deutsche Gedankentiefe” ist eher als Irrationalismus und romantisierender Idealismus bekannt.
Und das “deutsche Denken” hätte der Welt vermutlich die wohl schwurbeligste, sowohl wortreichste wie sinnloseste Programmiersprache beschert, die die Idee über die Ausführung stellt und zu nix gut ist.
Könnte man Hegel oder Heidegger nennen, statt Pascal….
@claus
Was soll man aber auch anderes von Made in USA erwarten?
Ich dachte, Python wäre ein Projekt der Universität Amsterdam und XML käme vom CERN bzw. dem W3C?
Klar ist das maschinenfremd, soll ja auch human-readable sein. Angeblich soll auch der Erfinder des ersten Assemblers auf den Sack gekriegt haben, wie man denn teure Rechenzeit zur Übersetzung von Mnemonics vergeuden könne.
Und welche nennenswerten Beiträge zur Entwicklung der Informationstechnologie kommen überhaupt aus Deutschland nach Zuse?
Dünkel (neudeutsch: sich selber total geil vorkommen) gibt’s geschenkt, Anerkennung muss man sich erarbeiten.
Etwas zum Seitenthema hier, Computer/Informatik in Serien/im Film.
Das hier amuesierte mich schon vor etwa 15 Jahren:
http://www.inflection-point.com/jokes/88.htm
@claus:
Ja c# und Java haben bei der Syntax so ihre Vorteile. Da sind viele Vereinfachungen durchaus sinnvoll. Der Preis, die ressourcenvernichtende Umgebung, ist allerdings zu hoch.
Und genau darum bin ich ein großer Fan von C++ und sofern man sich an gewisse Namensregelungen hält, ist der Code fantastisch lesbar. Das Problem sind dann eher so Leute wie Yogeshwar. Wenn solche “Profis”(damit meine ich nicht Physiker, sondern jene, die alles unterschätzen) dann mal programmieren, dann ist der Code wirklich nicht lesbar. Ich habe schon Cpp-Code gesehen, der sah grausig aus, das glaubt man nicht. Da sucht man Ewigkeiten nach kleinen Fehlern. Aber ich habe auch Firmen und Menschen kennengelernt, die sich auf sinnvolle Regeln geeinigt haben und dann kann man nur noch schwer erkennen, wer das wirklich programmiert hat, alles ist gut lesbar. Dokumentiert wird mit Doxygen und eine geeignete Versionskontrolle wird auch benutzt.
Und genau das vergisst auch der Yogeshwar völlig. Ja jeder Depp bekommt ein “Hallo Welt” irgendwie hin, aber die Wege sind in der Informatik unendlich und die Wege der Programmierer sind oft unergründlich. Und da erkennt man eben gute und schlechte Programmierer: Die Guten liefern gut lesbaren Code ab und kommentieren jeden Algorithmus und kommen auf wirklich “pfiffige” Lösungen, die auch ein gewisses mathematisches Verständnis benötigen. Die schlechten Programmierer liefern irgendwas ab, was hoffentlich den Vorgaben entspricht, bei der ersten Erweiterung eine Katastrophe wird und schon direkt von der ersten Sekunde an mit Patches versorgt werden muss, damit es irgendwann mal stabil läuft.
Ich erinnere mich gerne an knifflige Aufgaben zurück. Da gab es vieles bei, was mir außerordentlich Spaß gemacht hat. zB die Ellipse berechnen und darstellen, die beim Schnitt einer abgebildeten Ebene mit einem im Raum liegenden (beliebig verschobenen und verdrehten) Ellipsoid entsteht. Oder das Vieleck anzeigen, welches bei der Betrachtung der Schnittpunkte einer Ebene mit einem Quader entsteht. Das sind interessante Aufgaben, die es effizient zu lösen gilt und viele Lösungen verlangen da entsprechende Herangehensweisen – je nachdem welche (antiquierten) Werkzeuge zur Verfügung stehen. Da tüftelt man Tage oder Wochen an entsprechenden Formeln und Algorithmen, da das alles ja auch noch in Echtzeit für 50 Objekte, die sich mit der Ebene schneiden funktionieren muss. Und dann muss der Anwender die Ebene oder die Objekte auch noch mit dem Mauszeiger manipulieren können und alle Anzeigen müssen instant neu berechnet und aktualisiert werden. Und da ist nichts mit irgendwelchen tollen Tools gewesen. Ich durfte einzelne Linien von X1|Y1 nach X2|Y2 malen. Das war mein Werkzeug. Sonst nichts.
Natürlich kann das auch ein Yogeshwar programmieren. Irgendwann nach Wochen ist er dann mal fertig. Das Programm läuft dann langsam. Es vergehen teils mehrere Sekunden ehe das Bild aktualisiert werden kann. Bei mehr als 5 Objekten stürzt es ab. Beliebig viele neue Objekte einfügen geht nicht. Das entfernen alter Objekte auch nicht.
Im übrigen wäre das Projekt mit den geometrischen Formen in Java schlicht nicht umsetzbar gewesen. Mal abgesehen von der speziellen Umgebung (Soft- und Hardware) wären die Ressourcen dafür gar nicht verfügbar gewesen.
Mal ganz OT und nur für Liebhaber des Themas Korrelation und Kausalität:
Der Humanistische Pressedienst berichtet über “Spurious correlations”
das ist platz 3 beim wettbewerb des wettbewerbes: wer schreibt das unleserlichste programm”
Jeder kann malen!
http://www.youtube.com/watch?v=22awlp1J8sA
Carsten
—
Terroristen schaffen Arbeitsplätze
> Jeder kann malen!
Kitsch as Kitsch can…
@HanzMoser,
bezueglich der Vorlauftemperaturen folgender Tipp: Stell sie runter! Mit Brennwertgeraet/Waermepumpe hast Du ungeahnte Moeglichkeiten. Falls Du aber in einem Mietshaus wohnst, bedanke Dich bei Deinen Nachbrarn. Da ist bestimmt einer dabei der IMMER friert. Und damit wir alle unsere Ruhe haben… .
wechselwarm,
xxHyFoxx
2 Möglichkeiten: 1. Man kann programmieren oder
2. Man benutzt brain.exe
http://brain.yubb.de/
C/C++
Es soll ja tatsächlich Leute geben, die halten “C/C++” für eine Programmiersprache. Es sind aber zwei grundverschiedene: Ein Geniestreich von Ritchie und ein unwartbares Monstrum eines dänischen Informatikprofessors.
C++ und sofern man sich an gewisse Namensregelungen hält, ist der Code fantastisch lesbar.
C++ ist weder von Menschen noch von Compilern wirklich beherrschbar, weshalb man schon in den 90ern schnell Alternativen geschaffen hat. Auch der Linux-Projektleiter muß sich ständig Forderungen erwehren, einen C++-Compiler einzuführen.
Alles weitere, was man zu C++ wissen muß, findet man hier: http://www.yosefk.com/c++fqa/defective.html
@Fry @11.6.2014 @1:25
…und ums nochmal auf den Punkt zu bringen: Elitenbildung, also Bildung exklusiver Gemeinschaften, deren Mitglieder irgendwas “können”, weil sie es “gelernt” haben und es folglich als einzige “dürfen”, ist ungerechter Quatsch.
Sag’ mal, Fry, träumst Du Dir dieses hirnlose Blafasel eigentlich eine Nacht vorher zurecht? Oder sprudelt dieser Quark direkt aus dem Gedärm in Deine Griffel, ohne jeden Umweg?
> Bildung exklusiver Gemeinschaften, deren Mitglieder irgendwas “können”, weil sie es “gelernt” haben und es folglich als einzige “dürfen”, ist ungerechter Quatsch.
Find ich ja auch.
Ich geh jetzt erst mal ein paar Leute operieren. Mal sehen, ob ich diesmal den Blinddarm finde. Einmal muss es ja klappen. Dumm nur, dass von meinen selbstgebrauten Medikamenten schon so viele Leute gestorben sind. Dabei hab ich mir solche Mühe gegeben und alle Harry Potter gelesen.
Danach werd ich mal nen A380 nach, naja irgendwohin über den großen Teich fliegen. Kann ja nicht so schwer sein, wollte ich schon immer mal probieren. Pilotenscheine sind genauso rausgeworfenes Geld wie Autoführerscheine, die braucht man eigentlich auch nicht.
Immerhin hab ich schon einen aus der Nähe gesehen. Ich hab mal eine Turbine repariert. Ich hab ja auch schon mal Küchenmixer repariert. Dafür, dass das Ding dann abgestürzt ist, kann ich ja nix, abgehoben hat der schon. Und das komische Leuchten – war doch mal was anderes.
Seh ich auch so, dass man das nicht lernen muss. Fühle mich viel freier seither.
@ HyFo
Es ist noch eine ganz klassische Oelheizung, aber laengst erledigt.
@maSu
Das Performanceargument mit der Laufzeitumgebung ist in 99% aller Faelle Kaese. Fuer einen riesigen Teil von Software sind die Mengen an RAM und Rechenleistung seit Jahren unbedeutend, weil jede 400 Euro Buechse um Groessenordnungen mehr davon hat als man braeuchte.
Dazu ueberschaetzen gusseiserne C++ fast immer den Geschwindigkeitsunterschied zwischen bspw. Java und C++.
Das Argument, dass man ohne manuelle Speicherverwaltung keine Kontrolle mehr habe, ist auch fuer fast alle Faelle voellig hirnverbrannt. Zum einen ist Speicherverwaltung eine gigantische Fehlerquelle. Jeder der davon noch nicht in den Arsch gebissen wurde hat eher Spielzeug als richtige Software geschrieben oder war schlicht zu dumm zu bemerken, dass er irgenetwas falsch gemacht hat. Zum Anderen ist es eine Sache die man deshalb sehr gut wegabstrahieren kann, weil sie mit dem, was man eigentlich tun will, in der Regel nichts zu tun hat bzw. implizit ist.
Der damit verbundene Kontrollverlust eriinert an die Angst vor fliessend Wasser. An die Gefahr eines unter Druck stehenden Leitungsnetzes im ganzen Haus, das in den Waenden vor sich hinrotten und lecken kann ohne das man es merkt, woraufhin Schimmel und gesundheitliche Probleme drohen, nimmt auch jeder hin. Ich kenne niemanden der sein Wasser noch vom Brunnen holt und mir ganz stolz erzaehlt, dass alle anderen doch nur zu dumm oder zu ungeschickt waeren einen Eimer zu tragen.
Das ausgerechnet ein C++ Befuerworter sich ueber die Abhaengigkeit anderer vom Compiler lustig macht hat und im gleichen Atemzug von Kontrollverlust spricht ist fast ein Treppenwitz. Schau dir mal an, wie absurd komplex das Parsen von C++ ist, wie viel Interpretationsspielraum bleibt und wie intensiv danach optimiert wird. Dann versuch mal einfach nur den Compiler zu wechseln und schau was passiert.
> Ich erinnere mich gerne an knifflige Aufgaben zurück.
Oh ja, ich bin frueher auch mit dem Rad zur Schule gefahren. Im Winter, bei Regen und es ging hin wie zurueck bergauf und dann wurde man noch von wilden Hunden gejagt.
Wenn du das alles noch gerne machst, ich kann es ohne jede Ironie sehr gut nachvollziehen, empfehle ich dir dich mal mit Microcontrollern zu beschaeftigen. Dort muss man nicht selten um eine Hand voll Taktzyklen feilschen und tut gut daran sehr genau zu wissen, wie der Speicher organisiert ist und ihn von Hand zu verwalten.
Was den Punkt den immer staerkeren Mangel an Verstaendnis fuer die Funktionsweise von Rechnern unterhalb der Programmiersprache angeht stimme ich dir aber zu. Lass mal einen durchschnittlichen Informatiker unter 30 auf einen seriellen Port los und gib ihm ein sehr timing sensitives Protokoll. Versteck aber vorher nicht den USB-seriell Adapter. Dann hast du eine Woche Spass.
@Wolfgang
Der Code ist aus dem Linux Kernel.
Die Meldung kommt, wenn man in KVM eine nicht geeignete VGA Karte angibt (der VGA Parameter ist dokumentiert, funktioniert aber nicht immer).
Ich wollte zeigen, dass nicht jeder in der Lage ist, guten Code zu schreiben.
‘Alle’ schon gar nicht.
Solcher Code, wie oben, gehört in die Tonne getreten, ist aber weiterhin drin und führt vermutlich dazu, dass versteckte Fehler nie gefunden werden.
Das ist übelstes C Konglomerat.
Da hat einer zeigen wollen, wie schlau er verschachtelte Logik bauen kann.
Auf Kosten des Nachfolgers, und mit exorbitant steigenden Wartungskosten.
@Joe
Im Kontrast zu Dir halte ich C++ für eine geniale Sprache.
Einfach, klar, ohne die vielen Fehlermöglichkeiten von C.
@Joe
Man kann auch mit C++ katastrophale Programme schreiben, da gebe ich dir recht. Das liegt aber nicht am C++, sondern am Programmierer.
Ich hab viel sogenannten C++ Code gesehen, der aus grottenschlechtem C Code bestand, und in dem man simpel ‘class{};’ drumgewickelt hat.
Nix Klassen, nix Kapselung , nix STL, nur C, mit hunderten von unkontrollierten Pointern und ähnlichem Mist.
Und diese Entwickler meinten auch, ja von C++ waren wir nicht begeistert, die gleichen Pointerfehler wie mit C.
@Joe
Den Link habe ich mir angeschaut. Schon der erste Punkt ist schlichtweg falsch.
Weiter habe ich nicht gelesen.
@Joe: Viele der angeblichen “Mängel” von C++ sind zu vermeiden, indem man beim programmieren das Hirn einschaltet. Klar ist: Mit C++ kann man echt richtigen Dreck programmieren. Da sind andere Sprachen wirklich DAU-freundlicher. Aber ich sehe das so: Es ist nicht das Problem der Leinwand, wenn der Maler kein Talent hat 😉
Ich habe mal in Visual Basic ein Programm zusammengestrickt, welches aus einer Textdatei Datum und Name ausliest, mit dem aktuellen Datum abgleicht und ab einer Woche vorher anzeigt, wer denn nun als nächstes Geburtstag hat. Das war damals eine großartige Leistung für mich (und das Programm ist heute noch im Einsatz).
Das sollte ein nennenswerter Anteil der Bevölkerung hinkriegen können, wenn man ihnen erklärt, wie sowas funktioniert. Einfache Probleme kann man mit solchen Kenntnissen selbst lösen, man lernt etwas über die Funktionsweise von Computern – und man lernt relativ schnell, was “Komplexität” eigentlich bedeutet.
Insofern bin ich sehr dafür, dass jeder ein bisschen Programmierung übergeholfen kriegen soll. Wenn das die Hälfte nicht peilt, dann ist das eben so (kann ja auch nicht jeder Mathe und kommt trotzdem klar). Daraus aber zu schlussfolgern, dass professionelle Programmierer jetzt überflüssig sind, ist trotzdem falsch…
> Bildung exklusiver Gemeinschaften, deren Mitglieder irgendwas “können”, weil sie es “gelernt” haben und es folglich als einzige “dürfen”, ist ungerechter Quatsch.
Ich würde Fry da in einem Punkt schon zustimmen. Nämlich jedesmal, wenn es sich auf reine Privatangelegenheiten bezieht.
Mein Dad hat auch immer behauptet, jeder könnte alles Lernen.
Ich halte so eine Aussage für grob fahrlässig, und kompletten Unsinn, weil eben die Tiefe dieser Aussage fehlt. Nur weil jeder Mensch den gleichen Grundaufbau besitzt, heisst es noch lange nicht das jeder Mensch auch das Gleiche kann bzw. lernen kann.
Programmieren ist eben eine Kunst wie Malen oder Musizieren. Klar, macht es mir auch Spass auf der Gitarre neue Akkorde zu Lernen und ein paar Standard-Blues-Patterns auswendig zu Lernen. Nur zwischen ein bisschen Blues klampfen und B.B. King ist eine Kluft wie zwischen Himmel und Hölle, bzw. ich bin mir bewusst dieses Instrument niemals so zu beherrschen als das ich auch nur in einer Band spielen könnte.
Nichts anderes ist Programmieren. Gleich wie Malen, Tanzen oder Handwerken. Es ist eine Begabung, die nicht jeder Mensch besitzt, aber ausprobieren kann es sicherlich jeder.
Wenn es gerade mal für ‘nen Dübel in die Wand hauen reicht, kann man sich leider immer noch kein Haus bauen.
danisch stellt wieder falsche behauptungen auf und arbeitet sich endlos akribisch daran ab, von wichtigeren themen ganz zu schweigen.
ich dachte du bist sicherheitsexperte, davon liest man hier erstaunlich wenig, ausser es gibt ne meldung in so deppenblättern wie welt, fokus oder spiegel, dann kommt auch der danisch mit nem nachruf hinterhergerannt.
> ich dachte du bist sicherheitsexperte, davon liest man hier erstaunlich wenig,
Das hat berufliche Gründe. Über das, was ich tue, unterliege ich nicht nur einem NDA, sondern halte es auch für meine Pflicht, meine berufliche und meine private Tätigkeit zu trennen.
Im übrigen predige ich als Sicherheits-Heini immer, dass die Leute ihr Zeugs nicht rumposaunen sollen. Also tue ich es auch nicht. Sicherheits-Heinis haben’s nämlich mit Vertraulichkeit und so.
@Hans Moser:
Zum Ressourcenverbrauch: Man hat eben nicht bei jeder Anwendung unendlich Arbeitsspeicher zur Verfügung. Frage mal Programmierer im Bereich der Bildverarbeitung. Die hantieren da aus guten Grund meist mit C++ herum und nicht mit Java. und selbst wenn man unendlich Arbeitsspeicher zur Verfügung hätte: Diesen zu benutzen verbraucht Zeit. Und kein Anwender will nach einem Rechtsklick auf einer Oberfläche 3-5 Sekunden auf das Dropdown-Menü warten. Und gerade in der Bildverarbeitung sind viele Algorithmen sehr zeitkritisch, weil große Datenmengen verarbeitet werden müssen. Da erwarten Anwender, dass sie die Ergebnisse in Sekundenbruchteilen sehen.
Dann zur manuellen Speicherverwaltung: Das ist ja das tolle an C++: Man kann alles manuell anlegen und verwalten, man kann sich seitenweise mit “new” und “delete” herumschlagen und seine helle Freude daran haben – wenn man weiß was man tut. Man kann auch Containerklassen benutzen, die das dann übernehmen und evt. nicht 100% performant, aber in der Situation geeignet sind. Der Programmierer kann jederzeit entscheiden, was situativ angemessen ist. Auch gibt es die Möglichkeit, Pointer zu verwenden, deren Speicher beim Verlassen des Gültigkeitsbereiches automatisch freigegeben wird. Die Summe der Möglichkeiten zeichnet C++ aus.
Auch wüsste ich nicht, wo viel “Interpretationsspielraum” für Compiler besteht. Der Code ist immer eindeutig und sollte immer zu den gleichen Ergebnissen führen. Und ja, natürlich wird da viel optimiert vom Compiler. Das ist auch der Unterschied zum Interpreter und einer der Hauptgründe, warum C++ viel schneller ist als zB Java.
C++ ist natürlich nicht die Krone der Schöpfung. Es gibt Branchen, in denen sind andere Programmiersprachen aus gutem Grund beliebter, weil sie weniger kompliziert und einfach “genügen”. Trotzdem habe ich noch nichts gesehen, was man mit Java, C# usw anstellen konnte, was mit C++ nicht ging. Umgekehrt gibt es da aber einiges – alleine schon bei den Möglichkeiten der manuellen Speicherverwaltung.
>Mein Dad hat auch immer behauptet, jeder könnte alles Lernen.
grundsätzlich stimmt das schon. da fällt mir die geschichte von diesem chinesischen meister ein, der eine karate-schule betrieb. er war über die grenzen seiner stadt bekannt, und gelegentlich kamen die meister andere schulen, um sich mit ihm zu messen. und er hat sie natürlich alle besiegt. so fingen alle an zu glauben, daß hinter seiner kampfkunst ein geheimnis steckte, das er aber niemand verriet.
aber auch er wurde älter, und irgendwann nahte sein ende. er lag also auf dem sterbebett, und seine ältesten schüler versammelten sich um ihn. einer sagte: “meister, du hast uns im laufe der jahre immer wieder gezeigt, daß deine kampfkunst vollkommen ist. aber jetzt, wo sich dein leben dem ende zuneigt, mußt du uns das geheimnis deiner kampfkunst verraten, damit es nicht verloren geht, wenn du stirbst.”
der meister nickte seinem schüler zu und deutete ihm, näherzukommen. der schüler tat das und fragte nocheinmal: “meister, was ist das geheimnis deiner kunst?” dann legte er sein ohr nah an die lippen des meisters, der schon sehr schwach war und kaum noch sprechen konnte, und dieser sagte: “üben…üben…üben.”
@rleo: Aus Interesse und weil ich nur wenig C++ programmiert habe (und das letzte mal so um 1997/98 rum) : Was genau ist denn daran falsch?
“As to the cost of changes to the the private parts – they trigger recompilation of all code that #includes your class definition. ”
Was stimmt daran nicht?
Oh, @maSu !
Ein echter Held. Programmieren in der Lieblingssprache ist ja ganz nett, aber doch eher Hobbyistenniveau. Und das keine Grafik in Java geht ist ziemlich daneben, das zeigen schon die mitgelieferten Demos.
Auch die Ablehnung von XML zeigt eine gewisse Verweigerung der Realität. XML ist ein maschinenlesbares Austauschformat. Wenn ich das von OS-9 nach Solaris nach Windows und weiter zu QNX transferiere, bekomme ich überall die Daten sauber extrahiert, ohne mich mit Alignment und prozessorspezifischer Byteorder beschäftigen zu müssen. Natürlich ist das nicht der Echtzeitbereich, aber die Konfiguration und die Einstelldaten müssen halt auch verteilt werden. Wieso sollte man da seine ganze Energie reinstecken müssen, da gibt es sinnvollere Ziele.
Desweiteren sind komplexere Systeme nicht zwangläufig mit einem durchgängigen Programmiersystem “gesegnet”. Wenn vor Ort Steuerungstechnik im Wert von mehreren Millionen steht, die noch in Assembler programmiert wurde, müssen Anpassungen in Assembler vorgenommen werden. Das kann auch Pascal oder C mit einer Threadbibliothek sein, da eine Betriebssystemlizenz zu teuer wäre. Linux würde Treiber benötigen und läuft ohnehin nicht auf Systemen ohne MMU, also etwa 68000.
Man kann dann alle Telegramme von Hand aufdröseln oder man nimmt einen Codegenerator. Und hier bieten sich Java und C# um einen Editor zu schreiben, der dann Strukturen und/oder Routinen zum Erzeugen und Parsen der Telegramme für C, C++, Modula-2, Pascal, 6809-Assembler und Java liefert. Desweiteren Hilfedateien und einen Teil des Tabellenteils des Handbuchs. Das Parsen in Java ist für die Analysesoftware, das hilft dem Inbetriebnehmer vor Ort. Die Datenablage in XML ist dann ganz hilfreich bei der Fehlersuche und wenn man das Ganze als Online-Hilfe auf die Intranetseite stellen will.
Wer seine Software schön in ein Programm verpacken kann, hat es mit eher einfachen Systemen zu tun.
@rleo:
Bevor Du auf Code eindrischt nur weil Du ihn nicht verstehst solltest Du Dir darüber klar werden, dass Code der in Fehlermeldungen angezeigt ist so dargestellt wird, wie ihn der Compiler sieht. Das was der Programmierer da hingeschrieben hat ist normalerweise wesentlich lesbarer. Dieses Code-Fragment entsteht durch Expansion eines Makros im Präprozessor. Dass Du das siehst liegt daran, dass es innerhalb eines `assert` auftaucht und wenn das fehl schlägt, dann wird der Inhalt des verursachenden Code-Fragments (so wie es der Compiler gesehen hat) ausgegeben.
Das ist Code der sich mit Speicher-Allokation beschäftigt. Natürlich ist sowas auf den ersten Blick für den Laien nicht so einfach lesbar. Aber wenn man genügend lange Programmiererfahrung gesammelt hat, dann ist das eigentlich sehr einfach zu verstehen. Und nein, das ist kein C-Typischer-Code und nein, das ist auch nicht unnötig kompliziert. Wenn man sich das schön hin formatiert sieht man *sofort* was das (selbst wenn man die Markro-Expansion so lässt): http://pastebin.com/bDzFPg7M
Das Auftauchen von __builtin_offsetof, der Armada von Klammern und den vielen Typcasts ist ein sicheres Zeichen dafür, dass das ein expandiertes Makro ist.
Aber ein fehlschlagendes Assert sollst Du als User eigentlich gar nicht sehen. Asserts sind nämlich dazu da, festzustellen ob der Zustand eines Prozesses konsistent ist und das Fehlschlagen eines Asserts ist ein Zeichen dafür, dass es irgendwo einen Bug gibt um das sich der Entwickler kümmern muss. Und wenn der die Zeile die in der Fehlermeldung angegeben ist im Editor öffnet wird das sicher sehr gut lesbar sein.
Was C++ angeht: Äh, nein, das ist keine geniale Sprache, das ist ein furchtbares Konglomerat mit Regeln die extrem unintuitiv sind. Hier mal ein Vortrag von Scott Meyers (DER C++ Guru schlecht hin) dazu: http://www.ustream.tv/recorded/47947981
Ich bin doch etwas erstaunt über den (neuerlichen) Tonfall hier. Bin ich so nicht mehr gewohnt, seitdem refefe geschlossen hat.
(Was die Manieren der Menschen angeht, so ist der Vergleich Internet mit Autobahn offenbar angebracht).
Nochmal kurz und knackig: die Regel “das dürfen nur die, die es gelernt haben” gibt es für (manche) Handwerker, weil diese das zum Schutz ihrer Geschäftsmodelle politisch durchgesetzt haben. Nicht weil es zwingend erforderlich wäre. Überhaupt ist die Argumentation “da gibt es eine Regel, die wird schon einen Sinn haben” ziemlich schwach.
Wenn man solche Regeln konsequent durchziehen würde, käme das einem Verbot der Eigeninitiative, des Bastlertums, des Heimwerkertums, des Erfindertums gleich. Und das kann ja keiner wollen.
Gerade bei Software, wo man IN DER REGEL bei Fehlern ja nicht gleich Schwerverletzte und Tote zu erwarten hat, finde ich den Spruch “jeder kann programmieren”, als ERMUTIGUNG verstanden, hilfreich und sinnvoll.
Wenn man den Spruch wörtlich nimmt – wie Hadmut – muss man natürlich feststellen, leider kann nicht jeder programmieren.
Also ich habe auch so einige religiöse Debatten bezüglich Programmiersprachen hinter mir.
Letztendlich bin ich zum Schluss gekommen, dass man kaum der Programmiersprache die Schuld geben kann, wenn ein hirnamputierter Ranzkopf totale Scheiße programmiert.
Ein fähiger Programmierer wird auch in C++ und sogar Fortran-77 gut lesbare, gut wartbare Programme bauen, während ein Schwachkopf auch in der simpelsten Skriptsprache nur Scheiße fabrizieren wird.
Mich erinnert das ein bisschen an die Rechtschreibreform. Meine damalige Freundin war Deutsch-Lehramtsstudentin. Ich sagte zu ihr: “Es ist scheißegal, wie einfach die Regeln gemacht werden. Die meisten sind immer noch zu blöd, einfache Regeln zu kapieren.”
Mein Lieblingsbeispiel: Die Benutzung von “ss” und “ß”. Da gibt’s Ranzköpfe, die schreiben “Fussball”. Die sind zu dämlich zu kapieren, dass nach einem langen Vokal ein “ß” kommt, und nach kurzem Vokal ein “ss” – auch noch analog zu den anderen Konsonantenverdopplungen!
Ich hab ja selber halb nicht geglaubt, dass es möglich sein könnte, dass es Leute gibt, die zu blöd sind, eine so einfache Regel zu durchschauen, aber…
Und was werden solche Leute wohl anstellen, wenn sie programmieren, gleich in welcher Sprache?
Was Python angeht: ich habe die Sprache 2003 für mich entdeckt, als im IRC ein belgischer Maschbaustudent mir den Tipp gab, das mal anzuschauen. Seitdem mache ich alle Prototypen und Wegwerfprogramme mit Python, sogar Shellskripte mit os.system(). Es ist einfach eine effiziente Methode, mit wenig Code schnell zum Ergebnis zu kommen.
Ich würde damit kein Warnsystem für Flugzeug-Kollisionen programmieren, aber ich drehe ja auch nicht mit einem Hammer Schrauben in den Dübel und kloppe Nägel nicht mit einem Schraubenzieher in die Wand.
Im Kontrast zu Dir halte ich C++ für eine geniale Sprache.
Einfach, klar, ohne die vielen Fehlermöglichkeiten von C.
Genau solchen Quatsch bekommt man laufend von selbsternannten Auskennern erzählt. C++ enthält als C-Superset per definitionem _alle_ Fehlermöglichkeiten von C (sind nicht viele) und tausende weitere Möglichkeiten, unabsichtlich Scheiße zu bauen, die nur mit dem C++-Konglomerat möglich sind.
Man kann auch mit C++ katastrophale Programme schreiben, da gebe ich dir recht. Das liegt aber nicht am C++, sondern am Programmierer.
Und deswegen gehe ich da mit Hadmut konform: Zugang zu C++-Compilern nur mit Sprengstoffschein. Fertig.
Ich habe mal in Visual Basic ein Programm zusammengestrickt, welches aus einer Textdatei Datum und Name ausliest, mit dem aktuellen Datum abgleicht und ab einer Woche vorher anzeigt, wer denn nun als nächstes Geburtstag hat. Das war damals eine großartige Leistung für mich (und das Programm ist heute noch im Einsatz).
Das sollte ein nennenswerter Anteil der Bevölkerung hinkriegen können, wenn man ihnen erklärt, wie sowas funktioniert.
30-60 % der angehenden Informatikstudenten bekommen es hin. Der Rest scheitert, auch nach durchlaufenem Studium. Und du willst jetzt also an die Durchschnittsbevölkerung damit.
Ich nehme mal das erste Grundlage, welche zum Verständnis zwingend erforderlich ist: Assignment. Du hast zwei Identifier “Name” und “Datum”.
Die meisten sind nicht in der Lage zu begreifen, daß Identifier für den Menschen da sind und ein Computer nicht weiß, was ein “Name” und “Datum” ist. Weil es Symbole sind und keine Funktionsbeschreibungen. Computern braucht man nicht erklären, wofür etwas ist.
Die meisten sind nicht in der Lage zu begreifen, daß diese Identifier Speicherplätze mit variablem Inhalt beschreiben, denen man Werte zuweisen kann. Diese Abstraktionsfähigkeit kann man nicht erlernen.
Genau an dieser Stelle kommt für die meisten schon die Wand. Da haben wir noch gar nicht mit Datentypen, Strings, Zeigern, Strukturen, Methodenaufrufen usw. angefangen.
Die meisten Programmierspezialexperten sind schon gar nicht fähig, solche Grundlagen zu erklären, die setzen solche Fähigkeiten voraus und glauben, Programmierausbildung erschöpft sich in der Erklärung von Keywords.
Wenn es um die Frage geht, was “Programmieren” eigentlich bedeutet, und welche Fähigkeiten man dafür entwickeln muss, dann hat Hadmut das oben eigentlich recht gut beschrieben.
Programmieren ist eine Kunst, wie auch die Mathematik.
Es wäre aber schön, wenn Programmieren (und damit auch ein bisschen die Mathematik) ein Volkssport würde. Wenn viele sich dafür begeistern könnten. Denn es ist eine schöne Kunst, deren Übung viele Fähigkeiten schult und verbessert.
Also, Respekt vor der Aufgabe, ja. Respekt vor guten Programmierern, ja. Aber Elitenbildung und exklusive Kreise per Zertifikat und Sondererlaubnis, NEIN.
Donald Knuth, Richard Stallman, Larry Wall und viele andere würden dem ganz sicher zustimmen. (Weniger sicher wäre ich mir bei Andy Tanenbaum 🙂
Leute… Ich glaube nicht, dass eine Programmiersprachendebatte uns im Thema weiterbringt.
@Martin: ich sehe schon, dass sich Deutschland durch eine gewisse Gedankentiefe auszeichnete (OK, eine Korrektur: Vergangenheitsform *g*). Die deutschen Physiker vor dem zweiten Weltkrieg erzählen davon. Allerdings tummelten und tummeln sich auch aller hand Schwurbler in diesem Land.
@Manfred P.: XML ist historisch aus HTML hervorgegangen. HTML entstammt zwar dem CERN, basierte aber auf IBMs SGML. Dass XML menschenlesbar sein soll, ist gerade die Krux. Es ist ein Austauschformat zwischen Maschinen und nicht Menschen.
@maSu: ich schätze, dass man mit der Syntax von Java und c# schnellen und “harten” Maschinencode erzeugen könnte, ohne ressourcenfressende Umgebung. Psacal konnte das ja auch (ich oute mich als ehemaliger Pascal/Delphi-Fan). Aber dass man mit C/C++ gut lesbaren Code schreiben kann, naja: es sieht schon ziemlich “krakelig” und verworren aus.
Zu Deiner geometrischen kniffligen Aufgabe: man kann Deinen Zeilen die Begeisterung entnehmen, sich eine Lösung zu erarbeiten. Auch wenn es mühevoll und zeitaufwändig ist. Das macht meiner Ansicht nach gute Softwareentwickler aus. Deine Begeisterung kann ich übrigens gut nachvollziehen: in meiner Freizeit hatte ich mich mal mit Raytracing beschäftigt. Auch mit primitiven Mitteln: “SetPixel” war quasi die einzige eingebaute Grafikroutine, die ich benutzte. Übrigens in c#. Das hat verdammt viel Spaß gemacht.
@ masu
Ressourcenverbrauch: Gewaesch. Ich habe geschrieben 99%. Natuerlich gibt es zeitkritische Alorithmen, ISRs oder Geraetetreiber. Das ist aber ein immer kleiner werdender Teil der Softwareentwicklung. Und der Punkt, ab dem bspw. Java zu langsam ist, wird regelmaessig falsch eingeschaetzt.
Aussagen wie “mehrsekuendige Wartezeit fuer ein Dropdownmenue” fuer Java sind voelliger Humbug.
Wenn du nicht einmal weisst was fuer ein abstruses Monster die Syntax und das Parsen von C++ ist, was weisst du dann ueber C++?
Ich empfehle mal bspw. das hier: http://www.computing.surrey.ac.uk/research/dsrg/fog/FogThesis.pdf
Oder einfacher verdaulich als Einstieg das: http://stackoverflow.com/questions/794015/what-do-people-mean-when-they-say-c-has-undecidable-grammar
C++ Code ist eben genau NICHT immer eindeutig. Du beweihraeucherst ein Werkzeug, dass du nicht einmal verstehst!
Worauf mir eine Antwort fehlt ist der Widerspruch zwischen der Angst vor Kontrollverlust hinsichtlich des Speichermanagements, nicht aber hinsichtlich Compileroptimierungen.
Im Uebrigen ist die Aussage, dass das bei Java nicht stattfinden wuerde und die Sprache interpretiert waere, schlicht falsch. Google mal nach “Hotspot Compiler”.
Was mit Java geht und mit C++ nicht? Reflection. Jetzt kennst du eine Sache. Wenn du ein wenig dazu liest kannst du mir auch vorwerfen, dass die Antwort eigentlich komplizierter ist 😉
Natuerlich eigenen sich Java und C# nicht zur Systemprogrammierung. Aber wie gesagt ist nichts absolut und man sollte das Werkzeug nach der Aufgabe auswaehlen. Einen Microcontroller wuerde ich auch nicht in Java programmieren.
Dein Dogmatismus hinsichtlich der vermeintlichen Ueberlegenheit eines speziellen Werkzeuges, dass du dazu auch nur bedingt kennst und verstehst, riecht fuer mich nach Selbstueberschaetzung und mangelndem Blick ueber den Tellerrand hinaus.
Damit du das nicht falsch verstehst: C++ ist nicht grundsaetzlich schlecht oder schlechter als X. So ziemlich jede Programmiersprache hat Aspekte in denen sie schlicht schlicht scheisse sind. Frag mal bspw. bei Java nach Generics und Type Erasure.
Aber genau das ist der Grund, warum sich so viele verschiedene Sprachen halten: Das Problem das sie loesen ist komplex und das Allheilmittel gibt es nicht.
Manfred P. schrieb:
Ein fähiger Programmierer wird auch in C++ und sogar Fortran-77 gut lesbare, gut wartbare Programme bauen, während ein Schwachkopf auch in der simpelsten Skriptsprache nur Scheiße fabrizieren wird.
Dem kann ich aus eigener Erfahrung zustimmen. (Zumindest für mich selber würde ich allerding xslt ausnehmen… :)).
Zum Thema des Blog-Posts:
joelonsoftware schreibt in seinem ‘Guerilla guide to interviewing’:
Many “C programmers” just don’t know how to make pointer arithmetic work. (…) I’ve discovered that understanding pointers in C is not a skill, it’s an aptitude. In Freshman year CompSci, there are always about 200 kids at the beginning of the semester, all of whom wrote complex adventure games in BASIC for their Atari 800s when they were 4 years old. They are having a good ol’ time learning Pascal in college, until one day their professor introduces pointers, and suddenly, they don’t get it. They just don’t understand anything any more. 90% of the class goes off and becomes PoliSci majors, then they tell their friends that there weren’t enough good looking members of the appropriate sex in their CompSci classes, that’s why they switched. For some reason most people seem to be born without the part of the brain that understands pointers. This is an aptitude thing, not a skill thing – it requires a complex form of doubly-indirected thinking that some people just can’t do.
Ich denke, dass ist es, was Hadmuts von Rangas Ansprüchen unterscheidet.
Wenn du nicht einmal weisst was fuer ein abstruses Monster die Syntax und das Parsen von C++ ist, was weisst du dann ueber C++?
In den 1980ern war Basic mal äußerst beliebt, bis dann an den Universitäten ein Shitstorm dagegen gestartet wurde. In Folge sind alle die, die vorher mit Basic rumdilettiert haben, zu C++ gewechselt.
Das hat die Menschheit und die IT-Sicherheit sicherlich enorm weitergebracht…
@Fry, den Physiker:
“Dummerweise hatten sie die Schriften selbst nicht gelesen, da stand nämlich was ganz anderes drin, nämlich dass bei längeren Leitungen dickere Adern genommen werden, um den Spannungsabfall zu begrenzen. Oder auch, wesentlich glaubwürdiger: um mehr Kupfer zu verkaufen.”
UND
“Nochmal kurz und knackig: die Regel “das dürfen nur die, die es gelernt haben” gibt es für (manche) Handwerker, weil diese das zum Schutz ihrer Geschäftsmodelle politisch durchgesetzt haben. Nicht weil es zwingend erforderlich wäre. Überhaupt ist die Argumentation “da gibt es eine Regel, die wird schon einen Sinn haben” ziemlich schwach. ”
Wenn ein Physiker nicht einmal den Grund für die dickeren Adern herleiten kann (es ist NICHT der Kupferumsatz), sollte er tunlichst die Finger von Kabeln und Steckern lassen.
Ein Elektro-Ingenieur 🙂
und ausgebildeter Handwerker 🙂 🙂
@CountZero
Das ist ganz interessant, was der über Pointer schreibt. Allerdings hatte ich meine erste Begegnung mit Pointern in Pascal und Speicherallokation auf dem Heap und verketteten Listen. War zugegebenermaßen anfangs verwirrend.
Allerdings vermute ich, dass das von der High-Level-Sicht auf Programmiersprachen kommt. Wenn man nicht vorher Assembler gelernt hat und sieht, dass viele Operationen auf die Berechnung der korrekten Speicheradresse hinauslaufen, dann ist es auch echt schwer zu kapieren, was dieses Zeigerkonzept in C überhaupt soll.
C ist schon recht nah an der Maschine, und wenn man die Maschine nicht grob versteht, dann meine ich, dass es schon recht schwierig ist zu begreifen, was manche Konstrukte in C eigentlich sollen bzw. machen.
Ich habe mich vor kurzem mit CUDA befasst und festgestellt, dass man schon die Speicherhierachie und die Architektur von CUDA-Karten abraffen muss, wenn man tatsächlich Speed-Ups erreichen will.
Die High-Level-Sicht blendet das alles aus, und ich meine nicht, dass das hilft, wirklich gute Leute auszubilden.
@Joe
“enthält als C-Superset per definitionem _alle_ Fehlermöglichkeiten von C ”
Man sollte auch bei der Verwendung von C++ über das Vorwort hinauskommen.
Die Zeit sollte sein.
C ist in C++ enthalten, damit man legacy Code weiter verwenden kann.
Das geht in diesem Umfang mit keiner anderen Sprache.
Versuch mal in Java oder C# die hunderte Tonnen Altlast C Code zu übersetzen.
Mit C++ geht das.
Das teuerste in der Softwareentwicklung ist es, Altlasten, die stabil funktionieren und ausgetestet sind, mit alle Risiken in einer neuen Umgebung neu zu schreiben, zu testen zu debuggen.
Das kann keiner zahlen.
Und wer meint, wenn er den C Teil von C++ verwendet, er hätte ein C++ Programm geschrieben und sich dann noch wundert, warum die gleichen Pointerfehler, wie in C auftreten, soll es lassen, er hat den Sinn nicht verstanden.
Ich verlink mal hierzu die FAQ:
http://www.parashift.com/c++-faq/imperfect-language.html
http://www.parashift.com/c++-faq/dont-learn-c-first.html
Noch ein Tipp:
Mal in ‘The Design und Evolution of C++’
das Kapitel ‘1.3. General Background’ lesen.
Da wird einiges klar, warum C++ so ist und nicht anders.
@Fry
“…dass bei längeren Leitungen dickere Adern genommen werden, um den Spannungsabfall zu begrenzen. Oder auch, wesentlich glaubwürdiger: um mehr Kupfer zu verkaufen.”
Wobei keiner scheint’s nachrechnet, welche Folgen (allzu) niederohmige Quellen haben, so auf Schwingungsverhalten und so…
Soeben bei mir im externen Balkon zu beobachten: Die Dritte-Welt-Freileitung im Ort wurde gegen Erdkabel getauscht, nette Effekte, wenn nun bestimmte Maschinen eingeschaltet werden, das Hauswasserwerk neigt nun zum Schmeissen der LS, wenn zu oft hintereinander geschaltet und der elektr(on)ische Durchlauferhitzer braucht öfter einen Reset. Wobei: die hausinterne Anlage wurde auch gleich komplett erneuert. Kleiner Blick auf das Oszilloskop (Elektriker: “Was ist denn das…?”) zeigt hübsche Schwingungen, für die heutzutage ja eher diverse Hüllkurvengeneratoren zuständig wären…
Versuch mal in Java oder C# die hunderte Tonnen Altlast C Code zu übersetzen. Mit C++ geht das.
Du plapperst nur den üblichen Marketingbullshit nach. Du mußt jeden C-Code bei Übertragung auf einen C++-Compiler sorgfältig durchgehen, weil das C-Subset in C++11 subtil anders funktioniert als echtes C11.
Und wer meint, wenn er den C Teil von C++ verwendet, er hätte ein C++ Programm geschrieben
Auch das sind gültige C++-Programme. Das gibt es übrigens auch nur bei C++, daß jeder versucht, sein Lieblings-Subset als “wahres C++” hinzustellen, wobei da jeder ein subtil anderes beherrscht. Das sagt einiges über C++ aus. Das habe noch von keinem C- oder Java-Programmierer gehört.
*** Schluss jetzt mit dem C++-gegen-C#-Geschwurbel. Das bringt das Thema des Blog-Artikels kein Stückchen weiter. ***
Die programmierende Putzfrau im Krankenhaus. Ich könnte mir gut vorstellen, daß genau sowas tatsächlich (mindestens anteilig) zur Zielvorstellung der ganzen Aktion gehört.
Denn es spart einfach übel viel tolles Geld für Bankenrettungen, wenn die Putzfrau das eben auch einfach noch machen soll und so der übel teure Spezialist gar nicht gerufen und bezahlt werden muss. Gerade was Datensicherheit betrifft sagt der Umstand, daß viele öffentliche Einrichtungen und Ämter gezwungen sind, den IE zu benutzen, eigentlich alles über die Wertschätzung guter informatischer Arbeit und Sachkenntnis. Es würde voll in der Kontinuität liegen, daß man Putzfrauen als “ausreichend technisch geschult” oder so verklären und ihnen daher diese Aufgabe zuschanzen würde.
Zustimmen kann ich allerdings nicht, daß Informatik und MINT im Besonderen gerade irgendwie nicht anerkannt wären. Wenn ich als Erzieher und Behindertepfleger allein sehe, was man hüben und drüben verdient, was für Bedingungen herrschen, dann empfinde ich Klagen über Nichtanerkennung von Informatik/MINT als Klage auf hohem Niveau. Ein Einstiegsnetto von irgendwo um 3.000€ ist nicht Nichtanerkennung. Krankepfleger oder Erzieher verdienen so viel auch nicht nach 40 Jahren. Da kann ich mich täuschen, ich bin ja nie in den Schuhen eines Informatikers gelaufen. Ich kenne aber keinen Informatiker, der sich zb. nicht mal sicher ist, ob er nach 45 Jahren Arbeit überhaupt über Grundsicherungsniveau kommt. Hingegen kenne ich viele Erzieher, Kranken- und Behindertenpfleger, die damit schon fest rechnen können. Bezüglich der Wichtigkeit von deren Arbeit lege ich das Kriterium aus “on bullshit-jobs” vom Mr. Graber an, demzufolge man den Wert einer Arbeit näherungsweise dadurch ermessen könnte, was passiert, wenn alle in dem Beruf tätigen Menschen von heute auf Morgen mit ihrer Tätigkeit aufhören würden und wie schnell diese Folgen einsetzen würden.
Ich will niemandem neiden, was er in seinem Beruf bekommt. Ich meine nur, verglichen mit dem Großteil der auch arbeitenden Bevölkerung geht es Informatikern doch nicht gerade eben schlecht und der Wert, der einer Arbeit beigemessen wird, drückt sich nun mal auch in so etwas wie Lohn und erworbene Rentenanwartschaften aus. _Gute_ informatische Leistung wird nicht mehr honoriert, das könnte ich mir vorstellen, aber das gilt für viele Berufe und – glaubt man manchen Unken – gilt es inzwischen für den gesamten Grundgedanken des meritokratischen Prinzips. Ich denke, das haben auch viele bereits verstanden und leben auch darnach (letztens ging doch die Erhebung rum, daß ca. 70-80% der Arbeitenden in Deutschland nur noch “Dienst nach Vorschrift” machen – entweder haben die alle keine Aufstiegsinteressen oder aber sie glauben nicht daran, daß Aufstieg was mit Leistung zu tun habe)
Daß Informatik gerade an den Universitäten im Niedergang sich befindet, halte ich nicht für speziell gegen die Informatik gerichtet, sondern dieses Problem ist ja eines der ganzen Institutionsstruktur, vom Kindergarten bis zur Universität. Es geht nur noch ums Einsparen, insbesondere dann, wenn dagegen nicht irgend ein exportierbares Produkt gesetzt werden kann und dieses Einsparen ist zwingend erforderlich, weil der Markt sonst nervös wird und zu heulen anfängt, wie eingezwängt in undendlich viele unendlich unnütze Regelung er doch sei, schnief. Daß das auch irgendwann mal bei den Ingenieuren ankommen wird, war absehbar.
Ob dies Sparen der Sache selbst dient (Bildung) ist dabei unwichtig, weswegen auch unwichtig ist, ob es nun die Informatik, die Medizin oder die Literaturwissenschaft betrifft. Vom Standpunkt derer, die diesen ganzen Mist immer wieder durchwinken, ist soviel Differenzierung schon überflüssig, denn es geht nicht um die Qualität des Output, sondern um das durchgedrückte Formalbrimborium, welches den Absolventen in die “war an der Universität”-Statistik zu packen erlaubt.
Immerhin können wir festhalten, dass nicht jeder die Komplexitäten von C++, aber auch nicht die Feinheiten von Java oder C# beherrschen kann.
🙂
Ich denke, wir wissen alle, dass eigentlich jeder einen Code hingekackt und hingeschissen kriegt, der etwas ähnliches macht, was verlangt wird, oder halt auch nicht.
Insofern hat Ranga schon Recht.
Jeder, der mal an einem Institut Code übernehmen musste, den ein Chemiker oder Physiker nach der Lektüre von “Programmieren für kleine Muschis” geschrieben hat, weiß sicher, wovon ich rede.
Besonders spannend ist das Auffinden von Speicherfehlern, weil Zeigerarithmetik offenbar nicht so gut erklärt wurde im “Für Muschis”-Buch.
“Jeder kann programmieren” – jaja, blabla.
@andreas: bitte sachlich bleiben. Danke.
@stuff: Probleme durch zu dicke Kabel? Erstaunlich.
@andreas, den E-Techniker:
Die zertifizierten Meister und Experten gefallen sich darin, einem den Hausbrand, Tod und weissnichtwas vorherzusagen, wenn man eine Steckdose selbst anschliesst. Oder, wie bei mir geschehen, 25m 1,5mm^2 Leitung mit 16A absichert. Weil ab 18m ja 2,5mm^2 Pflicht seien. Nach Norm. (Normenschriften sind ja wie die Bibel)
Auch typisch, und bei dir zu sehen: Angriffe ad hominen, wenn einer “ohne Ahnung” etwas sagt oder auch fragt. Da heisst es dann schnell “lern du erstmal XYZ….”. Wer wirklich Ahnung hat, erklaert es auch gern.
Gut, wenn man selbst denken, rechnen und messen kann. Blick uebern Tellerrand der eigenen Ausbildung. (Wobei die Physik ein angenehm grosser “Teller” ist).
Und wer analog meint, fuers Programmieren braucht es ein Studium, der hat genauso Unrecht wie dieser aus dem Zusammenhang gerissene Yogeshwar-Satz, wenn man ihn woertlich nimmt.
Zertifizierung als Berechtigung zum Programmieren? Hoffentlich niemals.
vielleicht hat’s schon jemand gefragt, ich komme erst jetzt drauf: wenn programmieren so immens wichtig ist, warum wird es dann nicht an den schulen zum pflichtfach?
vielleicht hat’s schon jemand gefragt, ich komme erst jetzt drauf: wenn programmieren so immens wichtig ist, warum wird es dann nicht an den schulen zum pflichtfach?
Na ist doch klar, weil die Zeit für Gender-Verblödungs-Unterricht eingeplant ist. 🙂
@Manfred P.
Ja, meine ersten Pointers habe ich auch in TurboPascal kennengelernt, richtig benutzt habe ich das Konzept aber erst mit C (und nach 15 Jahren perl/Java/C# hab ichs wieder vergessen… :)). Ich glaube, C war hier für Spolsky nur ein Beispiel, da das Verständnis für Pointers natürlich nicht an der verwendeten Sprache hängt.
Joel Spolsky legt ‘neuen’ CompSci-Adepten sehr vehement nahe, mindestens eine maschinennahe Veranstaltung (Assembler, Compilerbau, …) zu belegen, genau damit sie am Ende jedenfalls grundsätzlich eine Ahnung haben, was für die heutigen Hochsprachen grundlegend ist.
Und wenn man Software auf Performance analysieren/optimieren muß, ist man eh praktisch direkt wieder nah dran an der Maschine…
Ich denke, es ist schon ein qualitativer Unterschied, ob jemand ein Programm
10 print ‘Ich kann BASIC programmieren’
20 goto 10
und diverse Profanalgorithmen für Nikki, den Roboter schreiben kann, oder ob jemand den Unterschied zwischen Stack und Heap kennt….
Vielleicht noch ein gutes Beispiel, wie kleine Unterschiede (die Yogeschwars “jederman” nicht kennt) grosse Wirkung haben können:
Der neue(ste) sendmail-bug besteht nur in einer falschen (ungünstigen) Anordung von Parametern. https://blog.fefe.de/?ts=ad606516
Ich finde deinen zweiseitigen Rant sehr interessant…einerseits beklagst du die Aussage, dann wiederrum, dass es so ein Problem ist, weil die Leute nichts verstehen von der Technik.
Das Verstaendnis von Technik kommt mit der Beschaeftigen dergleichen.
Natuerlich passiert erstmal Murks…das war bei den “grossen” Programmieren nicht anders.
Wenn du gut Geige spielen willst, musst du mal Anfangen und es klingt scheisse am Anfang und du wirst sicher kein Profi darin und gewinnst Preise, aber du weisst wie das Instrument funktioniert.
Ich sehe die Aussage auch eher als ein: “Setz dich hin und beschaeftige dich mit dem Scheiss, dass du vielleicht verstehst, was in deinem Handy/iPad/Bla passiert.”
Apropos jeder kann programmieren:
in
sieht man, wozu das führt, wenn jeder mal “schnell eine App” programmiert.
🙂
Hallo Hadmuth,
ich denke, Du bist mit Deinem Rant über das Ziel hinausgeschossen:
Das jeder programmieren könnten sollte halte ich durchaus für ein sinnvolles Ziel. Das heisst aber nicht, dass jeder auch Programme für die Öffentlichkeit entwickeln sollte.
Lesen und schreiben können, heisst ja auch nicht, dass man sofort Bellestristik veröffentlicht. Aber das Verständnis von Lesen und Schreiben hiflt, den Mist zu erkennen und verstehen, der einem täglich angeboten wird.
Dann noch etwas: Ich bin ja ‘programmierender’ Physiker. In meiner Diss (1985) habe die die Methoden von Programmier-Patterns eingesetzt, ohne zu wissen, dass sowas später mal in Büchern beschrieben wird (es war einfach die notwendige Lösung von mein Problem).
Im Umkehrschluss ist es so, dass auch Informatiker etwas von Physik verstehen sollten:
“Lange gesucht, Rätsels Lösung: Diese alten 10Base5-Kabel (Koaxial) waren sehr empfindlich. Wenn man die zu stramm zog oder hängebelastete, dehnten die sich etwas und dann war’s mit der stehenden Welle vorbei.”
10Base5 Kabel ist eigentlich sehr robust. Stehende Wellen gibt es darin nicht, weil das Kabel mit je 50 Ohm auf beiden Seiten abgeschlossen wird. Wehe, wenn das nicht der Fall ist. Hättest Du die Physik des Kabels verstanden, wärt ihr von den Problemen verschont geblieben. (Sorry, Retourkutsche).
mfg.
–eh.
> Hättest Du die Physik des Kabels verstanden, wärt ihr von den Problemen verschont geblieben. (Sorry, Retourkutsche).
Ich habe nur drüber berichtet, ich war nicht dran beteiligt. Von mir hing das gar nicht ab. Das waren Bauarbeiter. Wend Dich an die. Kabel, die ich verlegt habe, haben bisher immer funktioniert.
Und 10Base5 war keineswegs robust. Da gab es ganz erhebliche Spezifikationen und Anforderungen, wie das verlegt werden musste. Biegeradien, maximale Zuglast und dergleichen.
Es ist ganz einfach: Man behandelt sie so, wie es die Specs sagen, und sie funktionieren. Oder man behandelt sie nicht so, und sie funktionieren nicht.
Zwei Beispiele:
– OpenSSL wurde von ganz vielen Krypto-Experten “programmiert”, so sieht das Ding nach Meinung vieler Programmierer wohl auch aus
– Bei Debian hatte mal ein Programmierer unintialisierte Speicherstellen genullt – danach war die Entropy weg, auch nicht besser
Ich glaube das Programmieren und ein Verständnis dafür wie solche Programme funktionieren mal zu einer Schulbildung dazu gehören. Nicht jeder der mal Chemie in der Oberstufe hatte wird auch Chemiker.
Ansonsten haben ja sowieso die Experten Programmierer Schuld daran, dass es keine an sich sichere Programmiersprache gibt, mit der der Laie ordentlich und ungefährdet programmieren kann 😉