Mehr schein als sein? - Wie siehts mit "ehre" aus?



  • Hi,

    also ich beschäftige mich mit jedermenge kreativer sachen insbesondere die programmierung.

    ich dachte das ich programmieren kann, bin aber seid der letzten zeit der meinung, das dem nicht so ist.
    Viele meinen nähmlich: Wieso das Rad neu erfinden? Es reicht völlig aus zu wissen, wie man mit dem .net framework umgeht...
    Ist dem aber so? Ich denke das es doch irgentwie ein wenig "billig" ist nur dies zu beherschen oder? Könnte da nicht jeder kommen und sagen: "Ja das hätt ich ja auch geschaft!"
    Also: wie denkt ihr darüber? Sich auf Tools und Klassen zu lehnen ist aussreichen oder sollte man (jetzt mal nicht vom satandpunkt Kosten im Unternehmen betrachted) mehr beherschen und beispiels weise ein wenig die win32api kennen? Einfach nur um zu sagen ich bin kein kleiner Script-Kiddi.

    Grus Baldung



  • gerade die kleinen Script-Kiddies programmieren doch mit winapi.



  • Reicht es einfach zu wissen wie man mit der win32 api umgeht und zu sagen "das hätte ich auch selber geschafft"?

    Ich hab kein Problem damit etwas fertiges zu verwenden das ist nicht mal eben selber implementieren könnte. Ich habe da keine Probleme damit, man kann nicht in allem ein Experte sein.



  • Man sollte IMHO die bestehenden Strukturen nutzen. Allerdings wirst du sehen, dass man erst richtig gut werden kann, wenn man sich mit den Sachen dahinter auseinandergesetzt hat.



  • Ich versteh das nicht. Regelmäßig kommen Leute und meinen "blabla .. WinAPI das einzig wahre ..". Begreift es doch endlich: Coole Programme sind nicht cool, weil man sich mit einer dämlichen API Rumgequält hat, sondern weil sie einem coole Funktionen bieten. Ein Framework/API ist nur ein Werkzeug. Wenn es passt benutzt man es, wenn nicht, braucht man ein anderes.

    Und warum sollte man Stunden damit verbringen irgend etwas über Windows-Interna raus zu finden, wenn man eigentlich einfach nur ein cooles Programm schreiben will?



  • Hey Michael,

    du teilst also genau meine Meinung.
    AUch ich möchte mich eben nicht nur auf mein wissen über Ms V-Express verlassen, denn och weiterhin nutzen. Eben aber das Verstehen bzw auseinandersetzen mit den Fundamenten will ich nicht verpassen.

    Also kanst du mir vielicht ein Tip geben, was ich nun am besten machen sollte? Die 5-Bänder-Enzeklopedi der WIN32API zu leihen und zu studieren würde mich in mancher hinsicht (zeit, gedult [sind verdamt große bücher :p ]) überfordern.



  • Lern das High-Level-Zeugs. Wenn du eine Arbeitsweise nicht verstehst und dich fragst, warum du etwas so machen musst bzw. was du da überhaupt machst oder falls du etwas schnelleres brauchst oder wenn dich ein Thema besonders interessiert oder oder oder... dann lernst du die lowleveligen ( 😉 ) Sachen fast automatisch.



  • Es gibt durchaus einige Dinge, bei denen man ein tieferes Verständnis haben sollte, anstatt sie einfach nur so zu nutzen. Das ist betrifft IMHO aber weniger die Vorgänge, die zwischen der WinAPI und einer Abstraktionsschicht, wie dem .NET-Framework vor sich gehen. Viel wichtiger ist Wissen über Datenstrukturen und Algorithmen. Du solltest genau die Bereiche des .NET-Frameworks genauer kennen, in denen es um solche Dinge geht.

    GUI-Komponenten nutzt man hingegen einfach: Ein tieferes Verständnis von diesen bringt einem nicht viel. Dadurch schreibt man zumindest keine besseren Programme.



  • Baldung-chagi schrieb:

    Hi,

    also ich beschäftige mich mit jedermenge kreativer sachen insbesondere die programmierung.

    Vielleicht hättest du dich etwas eingehender mit deiner Frage beschäftigen sollen. Sie ist nämlich alles andere als wirklich kreativ. Und sinnfrei obendrein.

    Allein der Titel - worauf soll sich denn das "sein [sic]", dementsprechen auch der "schein [sic]", beziehen? Und dass du "ehre [sic]" in Anführungszeichen gesetzt hast bringt nicht allzu viel, es liest sich (und ist, IMAO) trotzdem lächerlich.

    Dir scheint deine eigene Frage nicht ganz klar zu sein. Würdest du so etwas auch einen Heimwerker, oder besser noch, jemanden vom Bau fragen?
    "Bist du ein richtiger, ein ehrenvoller ( 🙄 ) Maurer? Warst du tatsächlich selber im Steinbruch, hast eigenhändig Erz gefördert & geschmolzen, deine Kelle selber gebastelt, Zement, Betonmischer, etc?"

    Hättest du dich auf das Verständnis von Algorithmen & Datenstrukturen o.ä. bezogen hättest du einen Punkt, aber so?
    Du denkst "das [sic] es doch irgentwie [sic] ein wenig 'billig' ist nur dies zu beherschen [sic]", dass andere meinen könnten sie hätten das "ja auch geschaft [sic]", oder du seist ein "kleiner [sic] Script-Kiddi [sic]"?

    Sheesh!



  • 🙂 Schätze, jeder hat so seine Art seine Ansicht in Worte zu fassen. Finde aber deinen Einwurf auch nicht uninteresant und kann ich auch irgendwie nach volziehen. Ich spreche von dem Maurer Beispiel.

    (Ich hoffe ich habe dich nun nicht falsch verstanden: Ist nur ein wenig schwer bei manchen Leuten den Kern des Beitrags, aus ihrem "Schlechtertag-"Jargon zu filtern - aber auf jedenfal danke auch für deinen Beitrag 😉 )



  • finix schrieb:

    Dir scheint deine eigene Frage nicht ganz klar zu sein. Würdest du so etwas auch einen Heimwerker, oder besser noch, jemanden vom Bau fragen?
    "Bist du ein richtiger, ein ehrenvoller ( 🙄 ) Maurer? Warst du tatsächlich selber im Steinbruch, hast eigenhändig Erz gefördert & geschmolzen, deine Kelle selber gebastelt, Zement, Betonmischer, etc?"

    Genau, man ist nur ein richtiger Coder, wenn man seinen PC selber zusammen gelötet und eine eigene CPU hergestellt hat. Dislays kaufen ist OK, aber der Rest wird selber gebaut.



  • 😃 Wow, muß schon sagen, ihr seht mein Gedankenanstos ja schon sehr Extrem.
    Also ganz so ins Ultimatum wollte ich nun nicht abschweifen... wolt eben nur mal andere Meinungen lesen. Hätt ja sein können das auch eine Art mittelweg vertreten wird.

    Naja immerhin weiß ich ja nun wie ihr beide so denkt. 😉



  • Nur so aus interesse:

    Worauf ist eigentlich der name "UltimateCoder" bezogen? 🙂



  • Baldung-chagi schrieb:

    🙂 Schätze, jeder hat so seine Art seine Ansicht in Worte zu fassen. Finde aber deinen Einwurf auch nicht uninteresant und kann ich auch irgendwie nach volziehen. Ich spreche von dem Maurer Beispiel.

    (Ich hoffe ich habe dich nun nicht falsch verstanden: Ist nur ein wenig schwer bei manchen Leuten den Kern des Beitrags, aus ihrem "Schlechtertag-"Jargon zu filtern - aber auf jedenfal danke auch für deinen Beitrag 😉 )

    Du solltest dir einfach mal über deine Motivation diese Frage zu stellen klar werden.

    Darüber hinaus - es ist nichts schlechtes dass das Programmieren "irgendwie 'billig'", bzw. einfacher geworden ist. Im Gegenteil, genau das ist der Sinn und Zweck von Tools, und Bibliotheken, und (den meisten) Programmiersprachen.

    Und wenn du einen Augenblick nachdenkst wirst du feststellen dass das häufige Resultat der Programmierung, Anwendungsprogramme, ebenfalls dieses Ziel haben: dir (& anderen) das Leben und bestimmte Aufgaben zu erleichtern.
    Einen Brief mit Word Processor & Drucker zu erstellen ist auch "billiger" als per Feder & Kalligraphie. Sollte man deshalb Abstand davon nehmen wenn man als "ehrenvoller" Schreiber gelten will?

    p.s. auch wenn's nicht so "cool" ist wie selber zu prüfen, besorg dir einen Spell Checker!



  • Baldung-chagi schrieb:

    Nur so aus interesse:

    Worauf ist eigentlich der name "UltimateCoder" bezogen? 🙂

    Keine Ahnung 😃



  • Leute die keine Ahnung haben was hinter den Kulissen so passiert sind ein Problem. Kein riesen Problem, aber sie schreiben oft vollkommen unsinnigen Code. Solange er korrekt und das Design nicht abgrundtief schlecht muss man aber schon dankbar sein. Und mit "was hinter den Kulissen so passiert" meine ich einfach so bissi Assembler können, wissen wie ne CPU bzw. ein Betriebssystem so ganz ganz grob inetwa arbeitet etc.

    Leute die aber keine Ahnung haben von Software-Design, Algorithmen oder auch der Sprache mit der sie programmieren sind das grosse, echte Problem. Oder Leute die auf Fehlerbehandlung scheissen, Sonderfälle erst dann entdecken und Code dafür schreiben wenn man sie mit der Nase darauf stösst etc. Solche Leute schreiben Code der richtig weh tut, der einem lange nachhängt, der schwer zu fixen ist.

    Mir ist lieber ein Programmierer der keine Ahnung hat wieso eine CPU rechnen kann oder dass "" langsamer ist als "+" und "sqrt" langsamer ist als "", dafür aber saubere Programme schreiben kann, verständliche, die auch funktionieren und Sonderfälle abdecken, als ein Programmierer der zwar der mega wahnsinns WIN32/Assembler/Low-Level/... Crack ist und schon im Kindergarten einen Taschenrechner in VHDL aufgeschrieben hat, aber einfach mistige Programme schreibt.

    Davon abgesehen muss jeder Programmierer sich "in der Domäne" zurechtfinden (entweder schon auskennen oder entsprechende Infos suchen und einholen bei Projektstart) um die es bei einem Projekt geht. Wenn der Auftrag ist ein Programm zu machen was auf so viel Windows PCs wie möglich gehen soll ohne dass man noch was installieren muss, und nochdazu klein sein soll, dann wird man um WIN32 nicht herumkommen. Wer da mit .NET loslegt gehört verprügelt.
    Wer andrerseits bei einem "muss bloss gehen, alles andere is Wurst" Projekt anfängt eine kleine GUI mit native WIN32, vielleicht noch ohne MFC zusammenzubasteln, der gehört genauso gehauen.

    ----

    Einen guten Programmierer misst man denke ich auch besser nicht an dem was er schon weiss, sondern an seiner Einstellung und seinen Fähigkeiten. Er muss sich eingestehen können dass er was nicht weiss wenn er was nicht weiss, er muss gewillt sein sich zu informieren wenn er was nicht weiss, er muss fertige Dinge (Libraries/Frameworks/...) akzeptieren können und anwenden wenn es Sinn macht (und nicht immer und überall das Rad neu erfinden), er muss sich an den Vorgaben orientieren, und er muss selbstständig und "gerade" (logisch, "nicht krumm") denken können.



  • Also eigendlich ist es doch ganz einfach:
    Man muss das lernen und beherrschen, was man braucht, um eine geforderte Anwendung sauber schreiben zu können. Dies hängt aber natürlich absolut davon ab, was für Anforderungen gestellt werden.
    Um dies aber umsetzen zu können muss man teilweise auch einwenig weiter denken, auch einwenig hinter die Kulissen schauen. Man muss sich einfach im klaren darüber sein, was man können muss und was man können will. Für eine kleinere Eigenentwicklung benötigt man sicherlich niemals so umfangreiche kentnisse wie für ein grösseres Produkt. Man darf sich das Hintergrundwissen aber sicherlich durchaus aneignen, wenn man die Lust und die Zeit dazu hat 😉



  • Mach es so das du es hinbekommst und gut...
    Wenn dir jemand eine Bibliothek anbietet, in der genau das gelöst ist was du brauchst, dann nutze es.
    Wenn nicht oder dir halt einige Features fehlen und der Source unverständlich/ nicht mitgeliefert ist, dann such eine andere Bibliothek die dir Lizenztechnisch zusagt(GPL ist da manchmal böse) und wenn du DANN nichts mehr findest bau selbst was oder wenn du es nicht kannst frag jemanden der sich damit auskennt :P.

    Man kann so wahnsinnig viel Zeit(->Geld) sparen wenn man nicht unbedingt alles selbst programmieren muss, weil man sich ja so toll fühlen muss...
    Wobei es als Übung wieder etwas anderes ist.



  • Nichts dagegen, wenn man weiß wie etwas dahinter funktioniert. Aber bis zu welchem Grad will man das denn "fordern"? Wenn jemand weiß wie die WinAPI funktioniert, weiß er zwar wie es direkt dahinter läuft. Aber was ist mit der Ebene die nochmal dahinter steckt? Denn die WinAPI ist auch nur eine Abstraktion von etwas anderem. Dieses Spiel lässt sich unendlich lange weiter spinnen, bis jemand mir doch bitte erklären soll, wie man eine CPU designed. Weil schön das er weiß wie Assembler geht, aber Assembler ist auch nur eine Abstraktion der Hardware.

    Es gibt auch Leute die sagen, man soll wissen wie OpenGL funktioniert, und deshalb ist eine 3D-Engine nicht genug. Aber weiß jemand wie man eine GPU ohne OpenGL programmiert? Denn OpenGL ist auch nur eine Abstraktion.

    Also, wenn ich die FLTK benutze, dann ist der größte Müll den mir jemand erzählen kann, das ich wissen soll, wie Win32 funktioniert. Denn FLTK benutze ich, weil ich ebend auf dem Level nichts wissen will. Ganz davon abgesehen, das FLTK auch unter Linux funktioniert. Also müsste ich nicht nur wissen wie Win32 geht, sondern auch Linux.

    Wer wissen will, wie die Win32API zu benutzen ist, soll das gerne machen. Wenns Spaß macht. 😉 🙄 Aber ich muß mir das heute nicht mehr antun! Ich habe damals C64 in Assembler programmiert. RISC OS habe ich auch mit der nativen API benutzt. Und? Heute bin ich froh, wenn ich nicht noch mehr Lowlevel Zeug nutzen muß. Ich will mich auf das wesentliche konzentrieren.



  • Achja, und außerdem: die Win32API ist nun wirklich das schlechtes Beispiel, an dem man "lernen" sollte, wie etwas funktioniert. Wenn jemand wissen will, wie ein OS funktioniert, soll er sich doch bitte das Buch von Tanenbaum kaufen. Da bekommt er sehr gute Infos über Betriebssysteme.



  • Naja, ich kann mir natürlich selbst z.B. einen XML-Parser bauen. Es dauert dann seine Zeit, bis er endlich alles kann, was er so können sollte, bis er fehlerfrei arbeitet und das ganze auch noch in passabler Geschwindigkeit.

    Aber das Ziel des Projektes ist mit Sicherheit nicht einen XML-Parser zu bauen. Er soll einfach nur ein paar Daten aus der Datei lesen oder sie dort hineinschreiben. Es ist also eine nebensächliche Aufgabe. Mein Programm macht eigentlich was ganz anderes, ist vielleicht eine Mitarbeiter-Verwaltung, die dort Daten zu den Mitarbeitern speichert (oder ein Spiel, das die Spielstände dort ablegt, oder oder oder).
    Mein Ziel ist es die Mitarbeiter verwalten zu können (oder eben ein spielbares Spiel zu haben, oder was auch immer) und nicht einen XML-Parser gebastelt zu haben.
    Wozu ihn selbst bauen, wenn ich einen fertigen bekommen kann? Was habe ich davon? Es lenkt mich von meinem Ziel ab und verbraucht Zeit, die ich in das eigentliche Projekt stecken könnte.

    Genauso ist es mit der Winapi. Mein Ziel ist es bestimmt nicht willkürlich Menüs und Knöpfe oder was auch immer irgendwo auf dem Bildschirm zu platzieren. Ich will eine Mitarbeiter-Verwaltung bauen. Dazu brauche ich ein paar Menüs und Knöpfe. Das möchte ich aber mit möglichst wenig Aufwand haben. Ich will mich um die Mitarbeiter-Veraltung kümmern.


Anmelden zum Antworten