Der Unterschied zwischen Fachinformatikern und Diplom-Informatikern



  • Haha! 😃 Sieht für mich so aus, als ob sich mathik selbst reingelegt hat. ...bin mal gespannt, wie er sich da rauswinden will. ...vielleicht mit nichtterminierenden Funktionen? 🤡 ...oder nimmt er es mit Humor? 🙂



  • Hab mir die Aufgabenstellung nochmal angesehen, der Witz sollte wohl darin liegen, dass es eine Funktion f und einen Parameter f als Eingabe für die Funktion h gibt, die ja die Funktion f überprüfen soll und man da wohl irgendwie durcheinander kommen sollte. 🙂

    lol, muss doch verdammt peinlich sein, als Fast-Diplom-Informatiker ausgerechnet von nem 16-jährigen Hobbyprogrammierer geowned zu werden. 🙂

    ---
    (Ich stütze mich hier mal voll auf Gregors Annahme, dass sich mathik selbst ein Ei gelegt hat. ;))



  • 16-jähriger Hobbyprogger schrieb:

    lol, muss doch verdammt peinlich sein, als Fast-Diplom-Informatiker ausgerechnet von nem 16-jährigen Hobbyprogrammierer geowned zu werden. 🙂

    Die Peinlichkeit von soetwas hält sich in Grenzen. Soetwas kann jedem mal passieren. Mit Sicherheit hatte die Aufgabe allerdings einen anderen Hintergrund, als Du da vermutest.



  • Gregor schrieb:

    Haha! 😃 Sieht für mich so aus, als ob sich mathik selbst reingelegt hat. ...bin mal gespannt, wie er sich da rauswinden will. ...vielleicht mit nichtterminierenden Funktionen? 🤡 ...oder nimmt er es mit Humor? 🙂

    Oder so? 😉

    int f(int a){
        static int last = INT_MIN;
        return last++ - a;
    }
    


  • Korbinian schrieb:

    hehejo schrieb:

    Oder zu erkennen, dass sich ein Problem z.B. überhaupt nicht lösen lässt, weil man z.B. das Halteproblem darauf reduzieren kann.

    Ich bin ja durchaus auch ein Theoriefan, aber dieses Level an Theorie ist ziemlich anwendungsfremd, und mir bis jetzt noch nicht untergekommen (und ich hab dann doch schon einiges gemacht, wie Graphen, parsen, Differenzialgleichungen und aehnliches...)

    So what? Hast du in TI 1 geschwänzt?



  • 16-jähriger Hobbyprogger schrieb:

    lol, muss doch verdammt peinlich sein, als Fast-Diplom-Informatiker ausgerechnet von nem 16-jährigen Hobbyprogrammierer geowned zu werden. 🙂

    Schreib das Programm mal so um, daß es auch mit strings als Parameter funktioniert. 🙂



  • Gast25250 schrieb:

    Korbinian schrieb:

    hehejo schrieb:

    Oder zu erkennen, dass sich ein Problem z.B. überhaupt nicht lösen lässt, weil man z.B. das Halteproblem darauf reduzieren kann.

    Ich bin ja durchaus auch ein Theoriefan, aber dieses Level an Theorie ist ziemlich anwendungsfremd, und mir bis jetzt noch nicht untergekommen (und ich hab dann doch schon einiges gemacht, wie Graphen, parsen, Differenzialgleichungen und aehnliches...)

    So what? Hast du in TI 1 geschwänzt?

    nein, das 'ist mir bis jetzt noch nicht untergekommen' ist gemeint, dass mir im praktischen bezug das noch nicht untergekommen ist, nicht im studium 😉



  • Gregor schrieb:

    16-jähriger Hobbyprogger schrieb:

    lol, muss doch verdammt peinlich sein, als Fast-Diplom-Informatiker ausgerechnet von nem 16-jährigen Hobbyprogrammierer geowned zu werden. 🙂

    Die Peinlichkeit von soetwas hält sich in Grenzen. Soetwas kann jedem mal passieren. Mit Sicherheit hatte die Aufgabe allerdings einen anderen Hintergrund, als Du da vermutest.

    @16-hobby-progger:
    der parameter f der funktion h enthält eine im string codierte funktion.
    z.B.
    string f = "int f(int a) { return 0;}";
    assert(h(f) == true);
    oder
    string f = "int f(int a) { ganz komplexer code....; return 0;}";

    oder:
    string f = "int f(int a) { return h(f) ? 1 : 0;}";

    usw.

    also, viel Spaß noch beim Lösen! 😃
    mach dir jedoch weniger sorgen um das parsen, sondern überlege dir, wie der grundlegende algorithmus aussehen könnte!

    @Gregor "Satz von Rice" sagt dir doch was, oder?

    Gruß mathik



  • @mathik: Du hast das Problem scheinbar nicht gesehen 🙂
    Es gibt nur endlich viele int-werte. Man muß die Funktion also nur kompilieren und dann alle möglichen Eingabewerte durchprobieren.



  • 16-jähriger Hobbyprogger schrieb:

    mathik schrieb:

    na dann bin ich aber auf die lösung folgender aufgabe gespannt: 😃
    gegeben eine funktion f die als eingabe ein int bekommt und als ausgabe ein int zurückgibt, also int f(int a) {programm-text...; return x; }. schreibe eine funktion bool h(string f), die true zurückgibt, falls f _immer_ eine 0 bei beliebiger eingabe liefert, sonst false.

    bool h(string f)
    {
       bool result = TRUE;
       for(int i=INT_MIN;i<=INT_MAX;i++)
       {
          if(f(i) != 0)
          {
             result = FALSE;
             break;
          }
       }
       return result;
    }
    

    wtf??
    Ich check nicht was du willst! 😕

    sieht schon ganz gut aus!! 😃 was ist jedoch mit funktion, wie z.b.:
    string f = "int f(int a) { return 1 - 1; }";
    ??

    Gruß mathik



  • Jester schrieb:

    @mathik: Du hast das Problem scheinbar nicht gesehen 🙂
    Es gibt nur endlich viele int-werte. Man muß die Funktion also nur kompilieren und dann alle möglichen Eingabewerte durchprobieren.

    oh ja, du hast recht! 🙂 nehmen wir an, dass ein "BigInteger" übergeben wird, der beliebig große zahlen darstellen kann.



  • --- 😉



  • ** sorry, falscher Thread. Bitte löschen **



  • 16-jähriger Hobbyprogger schrieb:

    lol, muss doch verdammt peinlich sein, als Fast-Diplom-Informatiker ausgerechnet von nem 16-jährigen Hobbyprogrammierer geowned zu werden. 🙂

    Ja genau. Dann brich doch am Besten noch heute die Hauptschule (oder ist man mit 16 noch in der großen Gruppe vom Kindergarten?) ab und bewirb dich z.B. bei Microsoft.
    Die nehmen dich sicherlich gleich mit Kusshand, weil zu so schöne Anglizismen "createn" kannst ...



  • mathik schrieb:

    16-jähriger Hobbyprogger schrieb:

    mathik schrieb:

    na dann bin ich aber auf die lösung folgender aufgabe gespannt: 😃
    gegeben eine funktion f die als eingabe ein int bekommt und als ausgabe ein int zurückgibt, also int f(int a) {programm-text...; return x; }. schreibe eine funktion bool h(string f), die true zurückgibt, falls f _immer_ eine 0 bei beliebiger eingabe liefert, sonst false.

    bool h(string f)
    {
       bool result = TRUE;
       for(int i=INT_MIN;i<=INT_MAX;i++)
       {
          if(f(i) != 0)
          {
             result = FALSE;
             break;
          }
       }
       return result;
    }
    

    wtf??
    Ich check nicht was du willst! 😕

    sieht schon ganz gut aus!! 😃 was ist jedoch mit funktion, wie z.b.:
    string f = "int f(int a) { return 1 - 1; }";
    ??

    Gruß mathik

    welches 'f' ist denn gemeint? die funktion oder der string?



  • Jester schrieb:

    @mathik: Du hast das Problem scheinbar nicht gesehen 🙂
    Es gibt nur endlich viele int-werte. Man muß die Funktion also nur kompilieren und dann alle möglichen Eingabewerte durchprobieren.

    aber selbst dann ist es keine lösung. was ist z.b., wenn f für eine eingabe nicht terminiert, habe nichts von totalen funktionen gesagt... 😉
    dann soll ja h false zurückgeben.

    @16-hobby-progger. z.b. so ein fall:
    string f = "int f(BigInteger a) { while(true) { } return 0; }";

    also doch kein ei gelegt? 😉

    Gruß mathik



  • Jester schrieb:

    @mathik: Du hast das Problem scheinbar nicht gesehen 🙂
    Es gibt nur endlich viele int-werte. Man muß die Funktion also nur kompilieren und dann alle möglichen Eingabewerte durchprobieren.

    aber selbst dann ist es keine lösung für h. was ist z.b., wenn f für eine eingabe nicht terminiert? habe nicht gesagt, dass f total sein muss! 😉
    dann soll ja h false zurückgeben.

    @16-hobby-progger. z.b. so ein fall:
    string f = "int f(int a) { while(a == 5) { } return 0; }";

    also doch kein ei gelegt? 😉

    Gruß mathik

    @P.S.: wo ist denn jetzt eigentlich FachmannFürInformatik?? für den war eigentlich diese frage gedacht. Die lösung ist einfacher, als manche denken... und so praxisfern ist doch diese aufagabe nun auch nicht, oder? compiler und alle möglichen werkzeuge machen doch auch ganz viele überprüfungen zur compilezeit, ob z.b. eine variable nicht verwendet wird, ein zweig nicht erreicht wird, usw. warum nicht auch so was?



  • Geht ja gar nicht. ⚠



  • Generell kann man schon sagen, dass ein Dipl. Informatiker ein weitreichenderes Verständnis im Umgang mit digitaler Informationsverarbeitung hat, als ein Fachinformatiker.
    Pauschalisieren würde ich das jedoch nicht.

    Obwohl in meiner letzten Firma Diplominformatiker angestellt waren, durfte ich als Fachinformatiker die Abteilungsleitung übernehmen, da ich schlicht und ergreifend eine bessere, praktische Vorgehensweise bei der Entwicklung zeitkritischer Geschäftssoftware bewiesen habe. Hierbei habe ich auch Einstellungsgespräche und -Tests mit Diplominformatikern geführt, und bei einigen war zwar ein sehr gutes Verständnis der Theorie vorhanden (Datenbanken und dergleichen), mit der praktischen Umsetzung einer Geschäftssoftware als Ganzes schienen sie jedoch vollkommen überfordert.

    Ich habe in meiner Vergangenheit viele kommerzielle Projekte für diverse Auftraggeber durchgezogen - von der abstrakten Planung bis hin zur entgültigen Implementierung - auch ohne Studium. Die Meinung, Fachinformatiker würden lediglich der Planung und den Vorgaben eines Diplominformatiker folgen, und wären darüber hinaus nicht in der Lage, selbstständig eine komplexe Software zu planen, ist falsch.

    Als ich allerdings vor einigen Jahren einen Maschinensprachencompiler entwarf, wäre ich um ein Studium ganz froh gewesen. Ich habe die Implementierung zwar erfolgreich durchgeführt, aber ich habe gemerkt, dass ich mit dem Wissen das durch ein Studium vermittelt wird, wesentlich einfacher, schneller und vermutlich auch eleganter zum Ziel gekommen wäre. Ich habe mir entspr. Fachbücher besorgt, aber natürlich können die nicht das vermitteln, was ein Studium vermitteln kann.
    Von daher: Hut ab vor denen, die Informatik studieren.

    Deshalb möchte ich auch nochmal ganz objektiv sagen: Diplominformatiker haben sicherlich große Vorteile in der theoretischen Ausarbeitung.
    Aber mit dieser Pauschalisierung die manche hier an sich haben, sind sie absolut auf dem Holzweg.



  • mathik schrieb:

    @16-hobby-progger. z.b. so ein fall:
    string f = "int f(int a) { while(a == 5) { } return 0; }";

    also doch kein ei gelegt? 😉

    Ob a nun benutzt wird oder nicht... da ist ein leerer Anweisungsblock und es wird nirgendwo ein Setter verwendet. Als Compiler würde ich die ganze Geschichte komplett in die Tonne werfen und dem Entwickler vielleicht eine "stupid programming warning" werfen.

    Hmmm... erlaubst Du derartiges, so ist es nicht entscheidbar, da es relativ einfach ist, Code zu schreiben, wo Fehler vom Compiler (nahezu gar nicht) zu finden sind, wie

    float f = 1.0;
    
    while( f < 20000000.0 ) f += 1.0;
    

    Ich weiß nicht, ob die Ausbildung des Fachinformatikers ausreicht, um den 'Fehler' in dem Code zu erkennen. Vielleicht können die Fachinformatiker darauf antworten, ob sie den Fehler erkennen können, wenn sie nur den Code da oben sehen.

    Worauf Du hinaus wolltest, mathik, ist allerdings nicht, ob eine Funktion für jeden Bereich true oder false liefert. Eine Funktion kann hängen bleiben. Dies zu erkennen ist notfalls über eine Statusüberwachung möglich, den der Status meiner Funktion hier ändert sich ab einem gewissen Punkt nicht mehr, worauf sich das ganze in eine Endlosschleife verabschiedet.

    float f = 1.0;
    float status = 0.0;
    
    while( f < 20000000.0 ) 
      if( status == f ) 
      { 
        printf( "Status unverändert bei %f\n", status ); 
        return 4711;
      }
      else              
      { 
        status = f; 
        f += 1.0; 
      }
    
    return 0;
    

    Derartige Überwachung kostet Zeit, entsprechend macht das kein Compiler freiwillig und entsprechend kann man Software schreiben, die ohne Statusprüfungen auskommt - und das ist ist ja auch der Regelfall.

    Einen Compiler zu schreiben, der jeden Status zwischenspeichert und bereits einen bereits vorhandenen Status erkennt, ist (theoretisch) kein Problem. Praktisch sieht die Sache natürlich anders aus, da man davon ausgehen muss, dass der Computer ein begrenztes System ist, dass von einem System überwacht wird, dass alle Zustände des begrenzten Systems vergleichen kann.

    Für Deine Aufgabe, ich zitiere "gegeben eine funktion f die als eingabe ein int bekommt und als ausgabe ein int zurückgibt" - also nicht "zurückgeben könnte", sondern wirklich "zurückgibt", wurdest Du soeben von einem 16jährigen "geownt".

    Wenn schon Infomatiker, dann bitte auch mit der eines Informatikers würdigen Logik in der Sprache. ^^

    mathik schrieb:

    oh ja, du hast recht! nehmen wir an, dass ein "BigInteger" übergeben wird, der beliebig große zahlen darstellen kann.

    Wir glauben doch als fast Dipl. Inf. nicht mehr an beliebig große Zahlen, oder?
    Wenn wir uns soweit in die theoretische Informatik(beliebig große Zahlen) wagen, dass wir die Realität (Computer sind begrenzt) hinter uns lassen, dann gibt's nur noch die Antwort "Ja, klappt immer", weil sich alle Variablen herauskürzen lassen oder 'tarot cards out of range error'.

    Das ist ungefähr so als ob Du eine Funktion
    bool IsThereAGodOutThere( void );
    erwarten würdest. Bei dem Auftrag kommt selbst ein Dipl. Inf. ins grübeln. Ein Wirtschaftsinformatiker würde vielleicht eine Teillösung anbieten. 😉

    Meine Erfahrung als Dipl. Inf (FH): FI und Dipl. Inf. haben häufig vergleichbare Kenntnisse, was in der Regel auf eine vergleichbar schlechte Ausbildung zurückzuführen ist und die Tatsache, dass sie sich darauf verlassen haben, dass man ihnen schon alles wichtige beibringt. Das sind in der Regel diejenigen, die keine Ahnung haben - in beiden Lagern.
    Wer nichts in seiner Freizeit tut, wird als DAI den Fachbereich verlassen. Party-Informatiker können daher sehr amüsant sein, wenn man mit ihnen arbeitet darf. Hoffentlich ist man dann nicht der Part, der die Verantwortung trägt.
    FI werden darauf geschult, Handlanger zu werden - bei uns FH-Informatikern war man sich da nicht so sicher. Das lief wohl darauf hinaus, dass wir einen Uni-Abgänger als Chef bekommen sollten und dafür FIer quälen sollen.
    Wem das als FIer zu langweilig ist und man stattdessen auch mal ein brauchbares Buch in die Hand nimmt und versucht zu verstehen, was man eigentlich tut, wenn man programmiert, so sehe ich nicht im Entferntesten einen Grund, warum ein FIer einem Dipl. Inf. überlegen sein kann.
    Inbesondere wäre mir ein selbstkritischer FIer, der weiß, dass er einige Dinge nicht kann lieber, als ein Party-Informatiker, der glaubt, etwas zu können. Ich würde es sogar einsehen, wenn der FIer mit dem Wissen, was er nicht kann, mehr verdient als der gläubige Party-Informatiker.

    Ich bin Dipl. Inf. (FH) und weiß, was ich nicht kann, denn niemand kann alles wissen.


Anmelden zum Antworten