Programmier-"Niveau"



  • @Xin: Das ist ein gutes Beispiel für rationale Zahlen. Da kommt dann auch kein 1,00001 vor. Überlauf kann man teilweise verhindern, wenn man den größten gemeinsamen Teiler findet und wenn in deiner rationalen Klasse 1,5 + 1,5 = 2,1 rauskommt, dann hast du sie eben schlicht falsch implementiert...



  • Naja, theoretisch könnte man das dann ja verkaufen als Lektion warum es wichtig ist die Daten richtig zu modellieren.

    Denn oft kann Code enorm viel besser werden, indem die Datenstruktur besser gewählt werden... Aber das hat der Prof da dann wohl auch nicht verstanden gehabt :p



  • Steffo:
    Ich versteh kein Wort. 1. hat Xin von reellen Zahlen gesprochen und 2. ist z.B. 1,00001 sehr wohl eine rationale Zahl, also was willst Du jetzt sagen?



  • Eisflamme schrieb:

    Steffo:
    Ich versteh kein Wort.

    Weil du mich nicht verstehen willst. 😛



  • Wenn Du damit meinst, dass hinter Deinen Worten meist nicht viel steckt, richtig. Darüber hinaus erscheinen mir die Aussagen aber auch falsch. Und ob falsch oder nicht, ich finde es dann auch noch unverständlich formuliert.

    Edit: Das war etwas hart ausgedrückt. Lass es mich einfach korrigieren: Ja.



  • Was ich damit sagen wollte: Man kann tatsächlich ein gutes OO-Beispiel für Zähler/Nenner konstruieren. Bei den reellen Zahlen mag das fehl am Platze sein, bei den rationalen aber nicht.



  • Ich glaube Steffo kann ein Nenner/Zähler Paar nicht von einem vorm Komma / nachm Komma Paar unterscheiden.



  • cooky451 schrieb:

    Ich glaube Steffo kann ein Nenner/Zähler Paar nicht von einem vorm Komma / nachm Komma Paar unterscheiden.

    Was ist denn ein / anderes als ein grosses , ?



  • cooky451 schrieb:

    Hi,

    mir fällt immer mehr auf, dass meine Vorstellung von "programmieren können" und die von den meisten anderen ziemlich weit auseinander geht.

    Als DAU, der tagtäglich die Qualitätsarbeit, die Programmierer bzw. Softwareentwickler so produzieren, bewundern darf, wundert mich das nicht.

    Z.B. bei einer namhaften Softwareschmiede für Datenbanken, deren Programm irgendwann in den 80er Jahren entwickelt wurde, als es noch 14/15-Zoll-Monitore gab.

    Mit heutigen 17 bzw. 19 Zöllern besteht die Darstellung auf dem Bildschirm dann zu einem Drittel oder so aus weißer Fläche, sprich die Leutz haben es in 20 Jahren nicht geschafft, ihre Software auf neue Monitore auszurichten.



  • redrew99 schrieb:

    Mit heutigen 17 bzw. 19 Zöllern besteht die Darstellung auf dem Bildschirm

    Also in meinem "heute" gibt es 22 und 24 Zöller :p
    Aber das von dir beschriebene Problem ist ärgerlich, ja.



  • Ich kann Xin's erste Antwort sofort unterschreiben.
    Die Problematik ist nun, dass man so gut sein kann wie man will, wenn man die Entwicklung der Buzzwords nicht verfolgt (hat), kommt man an keinem Personalchef vorbei. Auf den ersten Blick vielleicht sogar zurecht, denn es fehlen dann einfach Vokabeln in der Kommunikation mit einem Team. Die Frage bleibt - wie oft arbeitet man tatsächlich in einem Team?

    Persönlich habe ich da mal haarsträubende Erfahrungen mit der Nachfrage nach der Nutzung von Design Patterns gehabt. Nachdem ich mir mal angesehen habe, um was es da überhaupt geht, mußte ich feststellen, dass ich viele der Techniken unbewußt schon lange angewendet habe - wahrscheinlich weil ein ordentliches Design diese Methoden regelrecht erzwingt.

    Heutzutage ist der Boden im Wesentlichen festgetreten. Ich denke, es kommt mehr darauf an, wie gut man Libraries kennt und wie flexibel man damit umgehen kann.

    Und wie auch immer ein Niveau definiert sein mag - bei der Anwendung mehrerer Sprachen verteilt sich dieses sehr schnell...



  • In jedem Projektantrag gibs nen Abschnitt "State of the Art". Man muss nunmal auch einen Überblick darüber haben was der Rest der Welt so tut.

    Wenn du Designpattern nutz dir das aber nicht bewusst ist, dann ist das vllt schlau und toll, aber es läßt dich als desinteressierter Einzellgänger erscheinen der nicht weiss was läuft.
    Wie willst du somit jemanden überzeugen, das dich dein Tun überhaupt interesseiert?

    Klar sind das Buzzwörter, die man für sich nicht braucht. Aber wie wir in diesem Thread eindrucksvoll festellen konnten, ist das notwenidg für Kommunikation.



  • Bitsy schrieb:

    Ich kann Xin's erste Antwort sofort unterschreiben.
    Die Problematik ist nun, dass man so gut sein kann wie man will, wenn man die Entwicklung der Buzzwords nicht verfolgt (hat), kommt man an keinem Personalchef vorbei. Auf den ersten Blick vielleicht sogar zurecht, denn es fehlen dann einfach Vokabeln in der Kommunikation mit einem Team. Die Frage bleibt - wie oft arbeitet man tatsächlich in einem Team?

    Bleibt die Frage, was ist, wenn sich Vokabeln in verschiedenen Bereichen unterschiedlich benutzt werden. Array, Vector, ArrayList, Zeiger auf erstes Element. Als mir das erste mal jemand mit einem Vector kam, war ich in der Mathematik.
    Jemand hier, der einen std::vector schonmal für die Vektorrechnung benutzt hat? ^^

    Bitsy schrieb:

    Persönlich habe ich da mal haarsträubende Erfahrungen mit der Nachfrage nach der Nutzung von Design Patterns gehabt. Nachdem ich mir mal angesehen habe, um was es da überhaupt geht, mußte ich feststellen, dass ich viele der Techniken unbewußt schon lange angewendet habe - wahrscheinlich weil ein ordentliches Design diese Methoden regelrecht erzwingt.

    Hehehe, die Erfahrung habe ich auch gemacht. Vollkommen entsetzt stand mein Chef vor mir - damals war ich noch Praktikant - und meinte, ich müsse unbedingt und sofort das Buch der Gang Of Four lesen. Also habe ich mir das Buch gekauft - und das ist wirklich ein sehr gutes Buch - aber da stand jetzt auch nichts Neues drin.

    Dazu muss man sich vielleicht auch einfach vor Augen führen, dass "Entwurfsmuster" nicht als wissenschaftliches Lehrbuch geschrieben wurde, sondern als Zusammenfassung von Erfahrungen, die eben erfahrene Programmierer so gemacht haben, die sich zusammengesetzt haben und darüber philosophiert haben. Vermutlich in einem freundlicheren Umgangston, als auf den vorherigen Seiten dieses Threads, aber sicherlich genauso engagiert.
    Man hat also aufgeschrieben, was jeder benutzt und den Dingen einen Namen gegeben.

    Was ich für viel Schlimmer finde ist die Erwartungshaltung, dass jeder jeden Namen kennen soll und man sofort als unfähig dasteht, wenn ein Wort nicht den "Achja, klar..."-Reflex auslöst. So flog mir mal das "Curiously Recurring Template Pattern (CRTP)" um die Ohren. Jemand eine Ahnung, was das ist?
    Ich wusste es auch nicht, ich musste es auch gerade erst in meinem Forum suchen, weil sowas merke ich mich auch nicht.

    Worum geht's? Man sagt der Templateklasse, von der man ableitet, wer man selbst ist. class B : public A<B>. Jemand dabei gewesen, der bei "Curiously Recurring Template Pattern" schon wusste, worum es ging?

    Wenn mir also jemand kommt und mir erklärt, dass eine Lösung mit CRTP erledigt werden soll, habe ich kein Problem damit, dem ein freundliches "Häh?" zu entgegnen. CRTP benutze ich jetzt seit... sagen wir einfach Jahren, keine Ahnung, aber dass es dafür wieder einen Namen und eine Buchstabenkombination für gibt, weiß ich auch erst seit diesem Jahr. Und nach diesem Posting habe ich das auch wieder vergessen.
    Das einzige Design Pattern, dass ich nicht vergesse ist OOP, aber das auch nur, weil so viele es zum Paradigma erkoren haben... und darüber kann man mit mir wieder vortrefflich streiten. 😉

    Bitsy schrieb:

    Und wie auch immer ein Niveau definiert sein mag - bei der Anwendung mehrerer Sprachen verteilt sich dieses sehr schnell...

    Das ist mal wirklich wunderschön formuliert. 👍

    ScottZhang schrieb:

    Klar sind das Buzzwörter, die man für sich nicht braucht. Aber wie wir in diesem Thread eindrucksvoll festellen konnten, ist das notwenidg für Kommunikation.

    Nein, die Wörter braucht man zur Kommunikation nicht zwangsläufig. Zur Kommunikation benötigt man Kommunikation. Das heißt, es gibt ein ganz übliches Kommunikationsprotokoll. Begrüßung, Sprachabgleich, Informationsvermittlung, Verabschiedung. Wer den Sprachabgleich überspringt und bei der Informationsübermittlung nicht verifiziert, dass die Informationen korrekt übermittelt werden, der scheitert an der Kommunikation. Nicht umsonst gibt es soviele Codepages... ^^
    Das berühmte Beispiel, wenn die Touris in Köln einen Halven Hahn bestellen und sich wundern. Wer vorher nicht die Codepage abgleicht, hat eine 50:50-Chance zu bekommen, was er bestellt hat. Schließlich weiß weder der Kellner, was der Gast bestellt hat, noch der Gast, was der Kellner verstanden hat.

    PS: Ich bin mir über die Bedeutung des Wortes 'Vektor' im Klaren... nur bevor mir jetzt einer erklärt, dass ich das falsch verstehen würde... 😉



  • Xin schrieb:

    Jemand eine Ahnung, was das ist?

    Sicher doch. CRTP ❤ 🕶



  • cooky451 schrieb:

    Xin schrieb:

    Jemand eine Ahnung, was das ist?

    Sicher doch. CRTP ❤ 🕶

    Vielleicht hätte man es CRTA nennen sollen, besonders weil ein C++ Idiom ist. Aber technische Begriffe als Buzzword zu bezeichen, weil man für unnötig halt das Kind einen Namen zu geben, naja....



  • Zeus schrieb:

    Vielleicht hätte man es CRTA nennen sollen, besonders weil ein C++ Idiom ist. Aber technische Begriffe als Buzzword zu bezeichen, weil man für unnötig halt das Kind einen Namen zu geben, naja....

    Ich halte Worte für unabdingbar, um komplexe Sachverhalte zu denken und zu kommunizieren.

    Nur werden Wortneuschöpfungen inflationär. Für die Basics gibt es zuviele Worte, für die allgemein seltener gebrauchten Dinge finden sich sowieso meist beliebige interne Buzzwords.

    Zu gibt es bei uns den Fachbegriffe "zumseln", "zubbeln" oder "bläähblubb". Ich denke, dass das der einzige Weg sinnvoller Kommunikation in der Zukunft ist: Sich in einem Feld ein eigenes, aber überschaubares Wörterbuch zu halten mit in der Allgemeinsprache ungewöhnlichen Worten. Wie ein Namensraum: Firma::zumseln. Quasi die Schaffung eigener Wortschöpfungen, aber eben ohne den Willen, diese Wortschöpfungen in die Welt hinauszutragen und als neuen Standard zu verkaufen.
    So ist zubbeln bei uns das Verschieben von Punkten, Kanten oder Flächen eines Volumenkörpers im 3D-Raum, zumseln ist das gleiche wie Zubbeln, nur halt in epsilontischen Bereich. Das wird vermutlich nie im Informatikduden landen... 😉
    Bläähblubb ist ein temporär definiertes Wort, dass während eines Gesprächs definiert wird und nur für den Verlauf des Gesprächs Gültigkeit besitzt, um eine Idee mit weniger verschachtelten Sätzen vermitteln zu können.
    Diese Worte liegen im sozialen Netz unter der IP 192.168.$(Kernentwicklung).0: Nicht von außen addressierbar.
    Die ganzen Konzepte finden sich in der Informatik reihenweise wieder, nur halt eben nicht in der Sprache der Informatiker. ^^

    Das ist ja eben jetzt nichts Neues. Neu wäre lediglich das Bewusstsein und die Akzeptanz, dass man allgemein weniger bedeutende Dinge entweder erstmalig erklärt und sich dann auf ein gemeinsames Wort einigt.

    Das mache ich auch mit mir selbst aus, um komplexe Ideen zu denken und zu abstrahieren, die einfach noch keinen Namen haben. Die bekommen dann einen verpasst, die nicht zu meiner Sprache gehören, aber das kann ich so ja keinem anderen erklären. Ich kann's teilweise ja nichtmals aussprechen, weil es eher meistens eher Störgeräuche als Worte sind. Es soll im Gedankengang ja schon auffallen. 😉

    Dieses Störgeräuch, das ein .NET Entwickler bei einem Assemblerentwickler vermeldet, muss dem Assemblerentwickler ja nicht unbekannt sein. Nur hat er dafür eben eine andere Bezeichnung, eine andere Perspektive. So wie ich mich weigere OOP als Paradigma anzuerkennen, weil es nur ein DesignPattern ist, eine übliche Lösung für ein übliches Problem der imperativen Entwicklung.

    Wenn man die üblichen Wege eines Kommunikationsprotokolls akzeptiert und zwar auch für ein Forum, dann bedeutet das einen gewissen Overhead, aber deutlich kontrolliertere und damit effizientere Informationsweitergabe, weil sich alle Seiten die Information sparen kann, dass man kein Anfänger mehr ist, auch wenn das Gegenüber das gerade mal vermutet.

    Das bedeutet, dass man Buzzwords aber als "variabel" betrachtet und nicht als Gottgegeben. Einige davon werden sich abschleifen, bis man das praktischste Wort in die Alltagssprache der Informatik übertragt und daraus statische Begrifflichkeiten wie Bedingung, Schleife der Stack entstehen.



  • Hallo,

    Xin schrieb:

    ScottZhang schrieb:

    Klar sind das Buzzwörter, die man für sich nicht braucht. Aber wie wir in diesem Thread eindrucksvoll festellen konnten, ist das notwenidg für Kommunikation.

    Nein, die Wörter braucht man zur Kommunikation nicht zwangsläufig. Zur Kommunikation benötigt man Kommunikation. Das heißt, es gibt ein ganz übliches Kommunikationsprotokoll. Begrüßung, Sprachabgleich, Informationsvermittlung, Verabschiedung. Wer den Sprachabgleich überspringt und bei der Informationsübermittlung nicht verifiziert, dass die Informationen korrekt übermittelt werden, der scheitert an der Kommunikation. Nicht umsonst gibt es soviele Codepages... ^^
    Das berühmte Beispiel, wenn die Touris in Köln einen Halven Hahn bestellen und sich wundern. Wer vorher nicht die Codepage abgleicht, hat eine 50:50-Chance zu bekommen, was er bestellt hat. Schließlich weiß weder der Kellner, was der Gast bestellt hat, noch der Gast, was der Kellner verstanden hat.

    Ja genauso hab ich das gemeint. Schade, dass das nicht klar rübergekommen ist.
    Diese Buzzwörter zu kennen heßt nix anderes als die Codepages gelesen zu haben, in deiner Analogie. Man kennt diese Buzzwörter nur wenn man kommuniziert.

    Darum sind das eben nicht nur tolle Begriffe für möglicherweise triviale Sachen, die man getroßt ignorieren kann. Dahinter verbirgt sich der Stand der Technik ...
    (Ich gehe jetzt ma davon dass wir von jemanden sprechen der nicht nur die Wörter kennt sonder auch deren Bedeutung :))



  • Sorry deine Thread haben viel zu viel raschen als, dass man sich die durchlesen sollte. Wenn man sich intensive beschäftigt und darüber redet, wird man nicht daran rumkommen, eine Definition mit ein einem Name zu versehen. Sonst gibst einfach zu viel Redundanz in der Nachricht.

    Ich sehs schon
    Das Pattern, dass so Aussieht und dem Zweck dienst ist orthogonal zu dem, dass für dies und das entwickelt.

    Anstatt zu sagen
    A ist orthogonal zu B entwickelt.



  • ScottZhang schrieb:

    Ja genauso hab ich das gemeint. Schade, dass das nicht klar rübergekommen ist.
    Diese Buzzwörter zu kennen heßt nix anderes als die Codepages gelesen zu haben, in deiner Analogie. Man kennt diese Buzzwörter nur wenn man kommuniziert.

    Darum sind das eben nicht nur tolle Begriffe für möglicherweise triviale Sachen, die man getroßt ignorieren kann. Dahinter verbirgt sich der Stand der Technik ...

    Die Umschreibung finde ich gut. "Dahinter verbirgt sich der Stand der Technik."

    Ich sehe das anders. Ich denke, dass die Technik sich in den letzten Jahren etwas umstrukturiert hat, aber im Prinzip unverändert ist. Computer werden schneller, Hilfsprozessoren wie GPUs spezialisieren sich für gewisse Aufgaben. Java und .NET ist Technik aus den 60ern, Hilfsprozessoren waren in den 80ern schon Stand der Technik, zum Beispiel als eine CPU noch nicht zwangsläufig eine FPU oder MMU besaß.

    Ich bin seit 1985 mit Computern unterwegs. Ist seit der Jahrtausendwende irgendetwas bemerkenswertes passiert? Hab ich was verpasst? Wir haben uns Ende der 90er in die 70er zurückgebeamt und befinden uns auf der Zielgrade zurück in die 90er. Der Stand der Technik findet sich irgendwo Mitte der 90er. Ich vermute in etwa 10 Jahren sind wir da angekommen. Das ist für mich persönlich blöd, weil bisher konnte ich über 15 Jahren sagen, wie die Zukunft aussieht, in 10 Jahren muss ich vermutlich selber darüber nachdenken.

    Seit meinem Studium wird mir der Stand der Technik nur in leeren Worthülsen verkauft. Ich möchte nicht wissen, wieviel Zeit ich für Begriffe wie RAII, Closure, Metaprogrammierung etc. verschwendet habe, auf der Suche nach der großen Neuerung und eigentlich immer nur heiße Luft... mal eine Vereinfachung, aber in der Regel nur ein Name für irgendwas, was es schon lange gab - nur halt nicht unter dem Namen.
    Software wird besser bedienbar, zuverlässiger, aber sie erfindet sich nicht neu. Vor allem wird sie klobiger.

    Was ist mit den Menschen, die Bedeutungen kennen, aber nicht die Worte dafür, die in der Gegenwart modern sind? Der Stand-der-Technik sind in der Regel nur eine neue Codepage, aber dahinter verbirgt sich der gleiche Kram wie zuvor.

    Mein derzeitiges Lieblingswort ist "die Cloud". Heute speichert man nicht mehr altmodisch Daten mit (S)FTP auf einem Internetserver. Heute speichert man in der Cloud. ^^

    Als ich im Studium war, gab es noch keine Cloud. Aber wenn zwei Rechner über ein Netzwerk verbunden waren, dann führte man auf einer Konzeptzeichnung von beiden eine Linie in einen wolkenartigen Kringel. Und während ich zu Hause nur ein altmodisches NAS stehen habe, hat ein Freund von mir schon ein NAS mit Cloud-Funktion... Bingo! 😉

    Zeus schrieb:

    Sorry deine Thread haben viel zu viel raschen als, dass man sich die durchlesen sollte. Wenn man sich intensive beschäftigt und darüber redet, wird man nicht daran rumkommen, eine Definition mit ein einem Name zu versehen. Sonst gibst einfach zu viel Redundanz in der Nachricht.

    Ich würde das nicht als Rauschen bezeichnen, sondern als Griff. Du hast mein Posting zwar gut zusammengefasst, aber der Zusammenfassung fehlt, dass es einen Grund gibt und bereits Lösungen in technischen Kommunikationsprotokollen. Für die meisten Leser ist eine derartige Zusammenfassung ein Satz, der da halt so rumsteht. Er kommt auf den Punkt, aber er zeigt nicht, von wo er kommt und er weist nirgendwo hin. Es ist eine Ortsangabe und kein Weg.
    Die Bedeutung ist vergleichbar, aber es ist nicht zu Begreifen.



  • Xin schrieb:

    Zeus schrieb:

    Sorry deine Thread haben viel zu viel raschen als, dass man sich die durchlesen sollte. Wenn man sich intensive beschäftigt und darüber redet, wird man nicht daran rumkommen, eine Definition mit ein einem Name zu versehen. Sonst gibst einfach zu viel Redundanz in der Nachricht.

    Ich würde das nicht als Rauschen bezeichnen, sondern als Griff. Du hast mein Posting zwar gut zusammengefasst, aber der Zusammenfassung fehlt, dass es einen Grund gibt und bereits Lösungen in technischen Kommunikationsprotokollen. Für die meisten Leser ist eine derartige Zusammenfassung ein Satz, der da halt so rumsteht. Er kommt auf den Punkt, aber er zeigt nicht, von wo er kommt und er weist nirgendwo hin. Es ist eine Ortsangabe und kein Weg.
    Die Bedeutung ist vergleichbar, aber es ist nicht zu Begreifen.

    Ich glaub nicht, dass du mein Punkt verstanden hast, du willst hier etwas jemand beibringen, etwas vermitteln? Ich hätte Shade kurzfassung im ersten lesen total zugestimmt - eh? Dabei hast du doch etwas anders geschrieben. Du rauscht! Bloß wessen problem ist das? Ich glaub nicht meins, immerhin muss du den Walltext hier hinterschieben.


Anmelden zum Antworten