Zum Inhalt springen

Whiz-zarD

Mitglieder
  • Gesamte Inhalte

    2.024
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    48

Beiträge von Whiz-zarD

  1. vor 23 Stunden schrieb allesweg:

    jedoch rein prozedural frickelst?

    vor 21 Stunden schrieb DeveloperX:

    Klar wird man vermutlich ein paar Sachen falsch oder anders lernen, wenn man es autodiktatisch macht

    Die Mär vom "falschen Lernen"... Das lese ich so oft und ist auch totaler Quatsch, wenn ich sehe, wie so manche überstudierte Entwickler mit teuren Zertifikaten und 20+ Jahren Berufserfahrung entwickeln. Da bekomme ich oft einen Schreikrampf.

    Ja, viele Tutorials und Bücher sind nicht das Gelbe vom Ei, besonders nicht diese, die gleich mit einer grafischen Oberfläche anfangen. Von diesen würde ich abraten aber was soll an Autodidakt so schlimm sein? Im Grunde ist jeder Entwickler ein Autodidakt. Jeder, der sich mit einer neuen Technologie auseinandersetzt, lernt es autodidaktisch. Man rennt ja nicht gleich zur nächstbesten Schulung. Um in seinem Job gut zu werden, muss man aber sein Können reklektieren können. Feedback einholen, Feedbach verstehen und auch Feedback berücksichtigen. Das gilt sowohl für angehende Azubis, als auch für Senior-Entwickler. Wer das nicht kann, ist auch kein guter Entwickler.

    Darum, lasst doch einen angehenden Azubi in einer objektorientierten Sprache prozedural entwickeln, wenn er es halt erstmal nicht besser weiß. In der Ausbildung bekommt er ja das Feedback, um sich zu verbessern. Jeder hat doch mal klein angefangen. Blick doch mal auf euren ersten Code zurück. Der war mit Sicherheit auch nicht clean und wenn alle studierten Entwickler und ausgelernten Fachiformatiker sauber entwickeln würden, gäbe es doch überhaupt keinen Legacy Code. Die Welt ist aber voll davon. ;)

    Wenn, dann würde ich aber schon mit der Sprache anfangen, die auch im Betrieb verwendet wird, sofern sie schon bekannt ist. Also um gute Tipps geben zu können, müsste man erstmal wissen, ob die Sprache bekannt ist.

  2. vor 17 Stunden schrieb Stefan_B_25:

    1. UND

    Hier habe ich den Effekt, dass die Ergebnisse der zwei Bedingungen beide WAHR sind, was sich zeigt, wenn man sie separat in Spalten darstellt. Sobald ich sie aber in die UND-Formel schreibe, kommt als Ergebnis für alle Zeilen FALSCH heraus. Anscheinend wird bei der Bereichsschreibweise jede Zeile mit jeder anderen Zeile verglichen.
    Beispiel: =UND(A1:A99999)<>"";B1:B99999)<>""), soll WAHR bringen, wenn sowohl in Spalte A, als auch in Spalte B ein Wert steht.

    Wie soll die Formel

    =(A1:A99999)<>""

    funktionieren? A1:A99999 ist ein Vektor und kein einzelner Wert. Die Formel wird immer FALSCH zurückliefern.

    Darüber hinaus ist das extrem inperformant. Formeln werden bei jeder Zellenänderung neu berechnet und jedes Mal erzeugt er diesen enorm großen Vektor. Je mehr du von diesen Formeln verwendest, desto mehr Zeit braucht er für die Berechnung, was irgendwann dazu führt, dass Excel aus sehr langsam wird. Mir schließt sich auch nicht, was das soll. Benutze doch einfach intelligente Tabellen.

    https://www.hands-on-excel.com/intelligente-tabellen/

    Die haben den Vorteil, dass sie noch eine spezielle Zellenangabe besitzen, die sich dynamisch verändert, sodass man solche Spielereien wie A1:A99999 nicht benötigt.

    https://support.microsoft.com/de-de/office/verwenden-von-strukturierten-verweisen-für-excel-tabellen-f5ed2452-2337-4f71-bed3-c8ae6d2b276e

    grafik.png.1fae64a42167b5dd5ffd92930540f0e0.png

    vor 18 Stunden schrieb Stefan_B_25:

    2. HYPERLINK
    Hier habe ich das Problem, dass ich mich als Quelle für den Pfad (Hyperlink_Adresse, als auch für den angezeigten Text (Freundlicher_Name) auf eine Spalte beziehe, in der ich Devices (komplette Pfade) einer unterhalb der Excel-Arbeitsmappe vorhandene Dateistruktur eingetragen habe.
    So lange ich den Parameter "Freundlicher_Name" leer lasse, gibt es keine Probleme mit der Bereichsschreibweise. Sobald ich aber auch diesen mit der neuen Schreibweise befülle, geht nichts mehr und es wird für alle Zeilen nur der Text "0" angezeigt.

    Verstehe ich nicht.

    vor 18 Stunden schrieb Stefan_B_25:

    3. INDIREKT
    Bei dieser Formel habe ich häufig das Problem, dass sie mit der Bereichsschreibweise nicht funktioniert, also eine Fehlermeldung generiert. Besonders dann, wenn ich sie in Kombination mit der Formel ADRESSE verwende. Da wo es ging bin ich auf die Formel INDEX umgestiegen.
    Beispiel: (für Spalte 3 in der Tabelle "TABELLENBLATT")
    Variante1:   =INDIREKT(ADRESSE(ZEILE(A2:A99999);3;4;1;"TABELLENBLATT")))
    Variante2:  =INDEX(TABELLENBLATT!$1:$1048576;ZEILE(A2:A99999);3)

    Was soll denn bei

    =ZEILE(A2:A99999)

    Auch rauskommen? Lies dir doch mal die Dokumentation durch: "Gibt die Zeilennummer des Bezuges zurück."
    Was soll er denn bei der Formel zurückgeben, wenn du ihm 99998 Zeilen gibst? Da kannst du auch gleich 2 schreiben.

    Ich glaube einfach, dass du nicht verstanden hast, was du da eigentlich tust, da du in allen Punkten die Funktionen völlig falsch verwendest.

  3. vor 5 Stunden schrieb netzniesserin:

    INSERT INTO MitgliedArchiv
           WHERE (SELECT COUNT(idangebot) FROM Angebot WHERE mitgliedid = idmitglied) = 0;

    Ist das die vollständige Lösung? Das ist syntaktisch komplett falsch. Ein INSERT-Statement hat keine WHERE-Klausel. Auch werden hier überhaupt keine Daten selektiert.

    Meine Lösung würde so aussehen:

    CREATE TABLE MitgliedArchiv AS
    SELECT	*
    FROM	Mitglied
    	LEFT JOIN Angebot 
    	ON Angebot.mitgliedid = Mitglied.idmitglied
    WHERE	Angebot.mitgliedid IS NULL

     

    DELETE FROM Mitglied
    WHERE	idmitglied IN (SELECT	idmitglied
                           FROM	MitgliedArchiv)

    In der MitgliedArchiv-Tabelle liegen ja nun die inaktiven Mitglieder. Also muss man doch jetzt beim Löschen einfach nur die IDs der inaktiven holen.

  4. Die Ausbildungsordnung sowie der Ausbildungsrahmenplan sind Bundesweit gültig. Das war schon immer so. Lediglich bei der Gestaltung Abschlussprüfungen hat (oder hatte?) BW eine Sonderwurst.

    Und ja, dies ist der aktuelle Ausbildungsrahmenplan. Sieht man auch in der Fußzeile:

    Zitat

    Ausbildungsrahmenplan
    Fachinformatiker/-in 2020

    Die vorherige Ausbildungsordnung bzw. der vorherige Ausbildungsrahmenplan waren von 1997. Du siehst also, dass sich die Dinge nicht so schnell ändern. ;)

  5. vor 7 Stunden schrieb SENDMELOCATON:

    9 stelle ( eine Stelle kommt hinzu also 30 x 94 = 2820 sec  ) + 1 Stelle also nochmal plus 2820 sec.

     

    Ich wäre es so rangegangen. 
    Ist falsch I know aber wieso kann man es nicht so machen ?

    Weil Anzahl der Möglichkeiten nicht linear steigt, sondern exponentiell.

    1 Stelle = 94^1 = 94 Möglichkeiten
    2 Stellen = 94^2 = 8.836 Möglichkeiten
    3 Stellen = 94^3 = 830.584 Möglichkeiten
    ...

  6. vor 1 Stunde schrieb Graustein:

    Der Satz mit dem 1 byte je Stelle soll wohl heißen dass der Maximalwert ausgeschöpft wird, denn Straße Aalweg 2 nimmt ja weniger Platz ein als Klabusterbeerenstraße 333

    Für mich ist das eher ein Hinweis auf ASCII vs. Unicode. ASCII braucht pro Zeichen genau 1 Byte, während ein Zeichen in Unicode variabel groß sein kann. Wenn der Maximalwert ausgeschöpft werden soll, ließe sich das auch besser umschreiben, da die Angabe von 1 Byte überhaupt kein Sinn machen würde.

  7. vor 9 Stunden schrieb Xovarto:

    Bei der ersten + Stufe also +1 geht der Ausgangswert den die Waffe auf +0 hat um 15 Punkte hoch, im zweiten Fall also +2 geht der Ausgangswert der Waffe um 30 Punkte hoch dann bei +3 um 45 Punkte. Hoffe das war etwas verständlicher.

    Aber was möchtest du mit den Zahlen erreichen? Das ist doch nur eine Multiplikation.
    1 * 15 = 15
    2 * 15 = 30
    3 * 15 = 45
    ...

    Im Grunde reicht es doch, wenn du in der Waffe-Klasse den Multiplikator bereitstellst und dann den Wert ausrechnest:

    class Waffe
    {
      private const int _multiplikator = 15;
      public int Level { get; set; }
      public int Wert => Level * _multiplikator
    }
      

     

    var waffe = new Waffe();
    waffe.Level = 3;
    
    Console.WriteLine(waffe.Wert); // Gibt 15 auf dem Bildschirm aus.

     

    vor 9 Stunden schrieb Xovarto:

    Ichverstehe nicht ganz was es mit dieser Instanz auf sich hat. Ich möchte ja dass mir das Tool diese Instanz generiert und nicht dass ich sie dann im Code wieder selbst schreiben muss. Weil dann kann ich ja den ganz Kladderadatsch auch einfach selbst schreiben. Aber genau das will ich ja verhindern indem mir das Tool das abnimmt und ich nur Werte in die Textboxen schreiben muss.

    Du musst schon schreiben, was der Computer machen soll. ;) Von alleine passiert da nichts. Um es vielleicht anders darzustellen:

    var waffe = new Waffe();
    waffe.Name = nameTextBox.Text;
    waffe.AbLevel = Convert.ToInt32(abLevelTextbox.Text);
    waffe.VNum = Convert.ToInt32(vNumTextbox.Text);
    // ...

    Natürlich ist dies nur eine vereinfachte Darstellung, da Fehler nicht behandelt werden. Auch würde man es professionell anders lösen aber ich möchte nicht zu viel Verwirrung stiften.

  8. vor einer Stunde schrieb Xovarto:

    Ich damit eine Idee rüberkommt wie das ganze aussehen muss am Ende...

    Es soll in dem Sinne wie auf dem ersten Bild zusehen ist die Möglichkeit geben die benötigten Werte einzutragen, diese werden dann an das nächste Form weitergegeben und dort in der Textbox im benötigten Format ausgegeben. Wie wäre da die beste Herangehensweise? Bei dem zweiten Bild handelt es sich nicht um " sonder um das Zeichen ' ...

    Ich verstehe noch nicht so ganz, was das jetzt mit 15, 30, 45, ... zu tun hat.

    Da C# ja eine objektorientierte Sprache ist, würde man für die Werte eine Datenklasse schreiben und die Werte in eine Instanz dieser Klasse speichern. Die Instanz kann man dann ja der nächsten Form übergeben und die kann damit machen, was sie will.

    Wenn ich das richtig verstehe, dass soll im Bild 1 eine Waffe konfiguriert werden. Also hätte man eine Klasse namens "Waffe" und all ihre Eigenschaften würde man als Property implementieren:

    class Waffe
    {
      public string Name { get; set; }
      public int AbLevel {get; set; }
      public int VNum {get; set; }
      // ...
    }

    Um dann eine Instanz zu erzeugen schreibt man dann:

    var waffe = new Waffe();
    waffe.Name = "Ultimative Waffe";
    waffe.AbLevel = 100;
    waffe.VNum = 50;
    // ...

    Und das übergibst du dann später der nächsten Form. Wenn ich dich richtig verstanden haben sollte.

  9. Die Delegates sind ja keine Zauberei. Die sind lediglich nur eine Liste von Funktionszeigern. Eine Methode ist im Grunde ja auch nichts weiter als eine Referenz auf einen Speicherbereich.

    Ich verstehe aber immer noch nicht so ganz, wieso du dies löschen möchtest. Ich habe da nur ein Verdacht, wieso du das tun möchtest aber wenn ich richtig liege, dann muss ich dir sagen, dass die Delegates dafür nicht gedacht sind. Ich vermute mal, dass du die aufzurufenden Methoden per Multithreading abarbeiten möchtest und daher mehrere Instanzen von der Caller-Klasse erzeugst, die alle die gleichen Methodenaufrufe bekommen und du dann die herauslöschen möchtest, du dann schon aufgerufen wurden. Liege ich da richtig?

    Dafür sind Delegates aber nicht gedacht. Delegates werden einfach in einem Thread sequentiell abgearbeitet. Wenn du nebenläufige Aufgaben erledigen möchtest, gibt es die Klasse Task<T>, die solche darstellen und ausgeführt werden. Mit den Methoden Task.WhenAll() bzw. Task.WhenAny() kann man dann auf die Ergebnisse der Tasks warten:

    class Program
    {
      public static async Task Main(string[] args)
      {
        var tasks = new Task<(string, bool)>[]
        {
          new Task<(string, bool)>(() =>
          {
            Console.WriteLine("Start Task 1");
            Thread.Sleep(1000);
            Console.WriteLine("End Task 1");
            return ("Task 1", true);
          }),
          new Task<(string, bool)>(() =>
          {
            Console.WriteLine("Start Task 2");
            Thread.Sleep(100);
            Console.WriteLine("End Task 2");
            return ("Task 2", false);
          })
        };
        
        foreach (var task in tasks)
          task.Start();
        
        foreach (var result in await Task.WhenAll(tasks))
          Console.WriteLine($"{result.Item1} => {result.Item2}");
      }
    }

    Das Threadhandling übernimmt dann die CLR bzw. das .NET Framework für uns.

    Dein Beispiel mit dem Bescheidsager und Ausführer lässt sich auch eleganter lösen, denn im Grunde ist dies das Decorator Pattern. Du schreibst ein Interface, was sowohl dein Bescheidsager, als auch dein Ausführer implementiert. Im Konstruktor vom Bescheidsager gibst du dann eine Instanz vom Ausführer mit, die dann nicht null sein darf. Dann sparst du dir auch dieses lästige if-then-else bei der Ausführung.

    interface IAusfuehrer
    {
      bool Ausfuehren();
    }
    
    class Bescheidsager : IAusfuehrer
    {
      private readonly IAusfuehrer _ausfuehrer;
      
      public Bescheidsager(IAusfuehrer ausfuehrer)
      {
        _ausfuehrer = ausfuehrer ?? throw new ArgumentNullException(nameof(ausfuehrer));
      }
    
      public bool Ausfuehren()
      {
        Console.WriteLine("Starte Methode");
        return _ausfuehrer.Ausfuehren();
      }
    }
    
    class Ausfuehrer : IAusfuehrer
    {
      public bool Ausfuehren()
      {
        Console.WriteLine("Ausfuehrer wird ausgeführt");
        return true;
      }
    }
    
    class Program
    {
      public static void Main(string[] args)
      {
        var ausfuehrer = new Ausfuehrer();
        var bescheidsager = new Bescheidsager(ausfuehrer);
        
        Console.WriteLine(bescheidsager.Ausfuehren());
      }
    }
  10. Und woher weiß du, welches du entfernen möchtest? An irgendwas muss man ja das Objekt erkennen können. Sei es auch nur der Klassentyp. Dann muss man halt selber die Methode in der Invocationlist finden.

    Aber das ist doch recht verquirlt. Die sollen ja auch aus irgendeinen Grund entfernt werden. Wäre es dann nicht sinnvoller, bei der Registrierung zu prüfen, ob die Methode aufgerufen werden soll? Dann spart man sich das Entfernen und kann jede Methode einzeln steuern. Also sowas wie:

    if(...)
      c.DoAction + = ...
    if(...)
      c.DoAction + = ...
    if(...)
      c.DoAction + = ...

     

  11. Naja, man muss ja nicht unbedingt gleich ne Applikation bauen. Man kann auch unabhängig davon seine Programmiererskills erweitern, indem man sich z.B. Programmierprinzipien oder -Methoden anschaut. z.B. SOLID oder auch TDD lässt sich auch mit einfachen Aufgaben üben. Auf exercism.org gibt es auch einen PHP-Track. Das interessante an der Plattform ist halt, dass man auch Tipps von Mentoren holen kann.

  12. Puh, wo soll man da anfangen? Im Grunde ist da so ziemlich alles nicht richtig. Ich würde dir mal raten, mit dem Debugger zu arbeiten und dir mal Schritt für Schritt anschauen, was du falsch machst.

    Du rufst z.B. die Versuche()-Methode ja immer wieder neu auf und da deine Variable i eine lokale Variable ist, wird sie nach jedem Verlassen und Versuche() aus dem Speicher gelöst und beim Eintreten neu gesetzt. Außerdem hast du auch eine Rekursion gebaut, da Login() sich selbst aufruft. Wenn man etliche Male das Passwort falsch eingibt führt dies unweigerlich zu einer StackOverflow Exception. Zusätzlich wird in der Versuche()-Methode deine Eingabe doch überhaupt nicht überprüft. Du gibst dort ein Input vor und dieser entspricht dem Passwort. Der Code wird also nie die Variable i runterzählen.

     

  13. Das Type Name Handling fehlt.

    Die DeserializeObject()-Methode hat noch eine weitere Signatur, womit man eine Konfiguration mitgeben kann. In dieser Konfiguration muss man dann mitgeben, dass er das Type Name Handling aktivieren soll:

    var config = JsonConvert.DeserializeObject<Config>(configString, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Objects });

    Erst dann erzeugt er das gewünschte Objekt.

    https://www.newtonsoft.com/json/help/html/SerializeTypeNameHandling.htm

     

  14. vor 2 Minuten schrieb TooMuchCoffeeMan:

    Das deckt sich mit meinem Eindruck. Ich habe selbst nie in einer Agentur gearbeitet, aber meine Schwester arbeitet seit 12 Jahren für verschiedene Agenturen im Medienbereich (keine Informatikerin). Die Bezahlung war bisher bei all diese Agenturen deutlich am unteren Ende, selbst für studierte Mitarbeiter.

    Wo soll das Geld auch herkommen? Im Grunde konkurrieren Agenturen ja mit den Webseiten-Baukästen. Da ist nicht mehr viel Geld zu holen. Die Agenturen machen nur noch das Design. Viel Programmierung wird da sowieso nicht stattfinden. Mehr als die Templates in PHP bauen, wird da wohl nicht passieren. Wenn die Agentur die Webseite dann noch betreiben soll, geben die meisten Agenturen es auch nur an einen Hoster weiter. Wenn man sich als Softwareentwickler weiterentwickeln möchte, sind Agenturen aus meiner Sicht eine schlechte Wahl.

  15. siehe Wikipedia:

    Zitat

    Ein RAID 1 speichert auf allen Festplatten die gleichen Daten (Spiegelung) und bietet somit volle Redundanz. Die Kapazität des Arrays ist hierbei höchstens so groß wie die kleinste beteiligte Festplatte.

    Also bei 6 HDDs mit jeweils 1 TB wäre die verfügbare Kapazität 1 TB.

    Was der Lehrer meint ist RAID 01. Also 3 HDDs gebündelt mit RAID 0 und diese wiederum werden über RAID 1 gespiegelt.

  16. So, wie du dir das denkst nicht. Nein.

    Man könnte aber dennoch einen Hashwert generieren und diesem einen Fingerabdruck zuordnen. Wenn der Scanner dann einen Fingerabdruck erkennt, wird dann der zuvor generierte Hashwert genommen. Dieser Hashwert wäre aber unabhängig vom Fingerabdruck.

    Ich kenne mich aber damit nicht aus. Man müsste ja irgendwie die Fingerabdruck- und die Metadaten speichern.

  17. vor einer Stunde schrieb Interrupt:

    Objekte, Klassen,  Datenkapselung, Vererbung, Polymorphie, Dynamische Bindung... und das alles in nur 5 Sätzen?!

    Die Sätze lauten:

    1. Alles ist ein Objekt
    2. Objekte kommunizieren durch das Senden und Empfangen von Nachrichten (welche aus Objekten bestehen)
    3. Objekte haben ihren eigenen Speicher (strukturiert als Objekte)
    4. Jedes Objekt ist die Instanz einer Klasse (welche ein Objekt sein muss)
    5. Die Klasse beinhaltet das Verhalten aller ihrer Instanzen (in der Form von Objekten in einer Programmliste)

    Der sechste Satz war mehr eine Eigenschaft von der Programmiersprache Smalltalk.

    Wie gesagt, Vererbung und Polymorphie gibt es auch in C. Mittels Polymorphie werden Treiber geschrieben, indem man den FILE-Struct als Schnittstelle betrachtet. Vererbung lässt sich realisieren, wenn man zwei Structs schreibt und deren Gemeinsamkeiten doppelt implementiert und in eine Reihenfolge bringt. So wurde auch auch die Einfachvererbung in C++ implementiert. Deswegen müssen in C++ auch in der Header-Datei die privaten Methoden und Felder definiert werden, damit der Compiler sie sortiert. Damit hat C++ sogar die Datenkapselung von C kaputtgemacht, da die Header-Datei private Dinge verrät. Somit ist auch die Datenkapselung nichts OOP-spezifisches. OOP hat lediglich nur Vererbung und Polymorphie vereinfacht. Der wahre Vorteil von OOP ist aber die Umkehr der Abhängigkeit. Erst mit OOP ist es möglich, Abhängigkeiten in eine Klasse reinzureichen. Dies ist mit prozeduralen Programmiersprachen nicht möglich gewesen, da die Abhängigkeiten zur Kompilierzeit bekannt sein müssen.

    vor einer Stunde schrieb Interrupt:

    Und die Vorteile von Objektorientierung werden doch automatisch ersichtlich, wenn man das Konzept verstanden hat.

    Offenbar ja nicht. Sonst müsste man ja nicht so viel über Inversion of Control und Dependency Injection reden. ;)

    vor einer Stunde schrieb Interrupt:

    Inwiefern ist eine akademische Ausbildung ebenbürdig mit einer Berufsausbildung? Das ist nicht vergleichbar, da andere Inhalte und anderer Fokus. Mal davon abgesehen hat das doch nichts mehr mit dem Thema zu tun?

    Ich selber habe ja eine Assistentenausbildung gemacht. Die Schule ist integriert in einer FH und wir haben überwiegend die gleichen Vorlesungen besucht und Übungen gemacht, wie die FH-Studenten. Lediglich die Bewertung der Übungen und die Klausuren waren nicht ganz hart. Die FH genießt auch in Norddeutschland einen sehr guten Ruf. Ich kenne also die Inhalte eines FH-Studiums und ich bin der Meinung, dass man diese Inhalte auch gut in eine duale Ausbildung packen könnte. Dafür müsste aber die Ausbildung umstrukturiert werden, indem Betriebe das praktische lehren und Schulen tiefer in die Materie gehen. Also dass Schulen zeigen, z.B. wie Datenstrukturen funktionieren, Arten von Softwarearchitekturen, welche Probleme Nebenläufigkeiten haben können, etc. Das sind Themen, mit denen sich ein Entwickler täglich rumschlagen muss aber in der Ausbildung viel zu kurz kommt.

    vor einer Stunde schrieb Interrupt:

    Mal davon abgesehen hat das doch nichts mehr mit dem Thema zu tun?

    Nein, hat es auch nicht. Ich finde aber auch die Frage nicht wirklich für relevant, da alle Sprachen für den Larifari-Unterricht an Schulen geeignet sind und eher dazu dient die Versäumnisse der Betriebe zu kompensieren. Vielmehr stelle ich den Sinn des derzeitigen Programmierunterricht an Berufschulen in Frage.

  18. vor 3 Stunden schrieb skylake:

    Zumindest in meinem Unterricht werden sehr wohl (einfache) Algorithmen und Datenstrukturen und die Theorie der OOP behandelt. 

    Und was genau habt ihr da gemacht? Aber die Theorie von OOP ist doch sehr schnell erzählt. Das hat Alan Key in fünf bzw. sechs Sätzen geschafft aber der wahre Vorteil von OOP wird doch nie behandelt.

    vor 3 Stunden schrieb skylake:

    Auch die Aussage, dass ein AE im Betrieb programmieren lernt muss ich leider widersprechen. Mittlerweile werden einige AE's im Betrieb dafür missbraucht, um HTML-Dokumente schicker zu gestalten und irgendwo einen Button einzufügen. 
    Auch gibt es in meinem aktuellen Jahrgang mindestens 3-4 AE's die nichts anderes machen dürfen, als 3 Jahre lang XML-Dokumente aufzubereiten.

    Dann werden sie aber nicht richtig ausgebildet. Eine Schule sollte dann nicht die Versäumnisse der Betriebe kompensieren. Schule und Betrieb sollten sich eigentlich ergänzen. Ich bin der Überzeugung, dass eine duale Ausbildung ein FH-Studium ebenbürdig sein kann, wenn man die Ausbildung besser strukturieren und die Ausbildungsbetriebe mehr kontrollieren würde. Die IHK hat aber ein Interessenskonflikt, da die Betriebe Mitglieder der IHK sind und bei Problemen wird dann oft, zu gunsten der Betriebe, beide Augen zu gedrückt und dann kommt da eben so ein Murks raus.

  19. vor 6 Minuten schrieb Interrupt:

    Es ist wichtig zu wissen, was der Unterschied zwischen einen Compiler und einem Interpreter ist oder was der Unterschied zwischen einem Stack und dem Heap ist.Ebenso wäre es schön, wenn man wüsste, was gewisse Fehlermeldungen bedeuten, wenn eine Software eine Exception schmeißt, sodass man nicht (immer) schreiend zu den Entwickler rennen muss sondern eventuell auch das Problem selber beheben kann.

    Sowas lernt man aber nicht in der Berufsschule. Zumindest ist mir keine Berufsschule bekannt. Wenn überhaupt klickt man sich eine Oberfläche zusammen und die Buttons sollen dann irgendwas machen. Das hat nichts mit Objektorientierung zu tun.

    vor 8 Minuten schrieb Interrupt:

    Dann wäre die Berufsschule ziemlich überflüssig, denn diese Aussage kann man auf jedes Thema übertragen.

    Es wäre nicht überflüssig, wenn man wirklich die Grundlagen lehrt aber wie gesagt, das wird nicht gemacht.

    vor 9 Minuten schrieb Interrupt:

    Die Berufsschule hat den Zweck die Theorie zu lernen und in Übungen das gelernte Wissen anzuwenden.

    Kann ich so nicht bestätigen. z.B. in Hamburg gibt es schon fast keinen Unterricht mehr. Es werden hauptsächlich keine Projekte gemacht, was ebenfalls wieder Praxis wäre und nicht Theorie. Theorie wäre sowas wie Algorithmen und Datenstrukturen aber wer lernt in der Berufsschule wirklich sowas?

    vor 16 Minuten schrieb Interrupt:

    Das es ist in der Realität etwas anders aussieht, steht selbstverständlich außer Frage, besonders was die Qualität der Berufsschulen angeht.  

    Also bestätigst du es selber, dass es, wie es derzeit läuft, Zeitverschwendung ist. ;)

  20. Ich frage mich, was soll eigentich Programmieren in der Berufsschule bringen?

    Ein FISI wird es mehr mit Skripten zutun haben. Also Bash bzw. Powershell und ähnliches. Powershell ist zwar objektorientiert aber lernt man Powershell wirklich, wenn man Java lernt? Auch brauchen FISI kein allzu tiefes Verständnis über die internen Abläufe einer Programmiersprache. 

    Ein FIAE lernt programmieren im Betrieb. In der Berufsschule brauch er also keinen Grundlagenkurs über Objektorientierung. Zumal die Schulen eh nicht die Grundlagen lehren, sondern hauptsächlich nur sowas, wie: "Wir basteln uns in Java nun ein Button und mittels Mausklick soll der Button 2 + 2 rechnen". Auch werden keine Algorithmen und Datenstrukturen in Schulen durchgenommen. Also sowas wie:  "Wie funktioniert ein Array? Eine Liste? Ein binärer Suchbaum? etc." Ich denke, für die meisten ist gar nicht klar, dass weder Polymorphie noch Vererbung das Hauptargument für Objektorientierung ist, sondern die Umkehr der Abhängigkeit. Die Objektorientierung hat lediglich Polymorphie und Vererbung vereinfacht. Wird aber schon lange, mit einigen Kniffen, z.B. in C praktiziert.

    So, wie es jetzt läuft, ist es für beide Parteien nur Zeitverschwendung.

    vor 4 Stunden schrieb skylake:

    Aktuell sehe ich folgende Punkte:
    Python Pro:
    - sehr leichte Syntax
    - leicht erlernbar

    Das höre ich immer wieder aber die Meinung teile ich nicht. Die Syntax wirkt für mich sehr inkonsequent. Es gibt auch keine Datenkapselung. Es gibt nur: "Hey, benutz doch bitte nicht die Variablen, die mit einem Unterstrich anfangen.". Auch die Type Hints sind nur ein Nice-To-Have und werden nicht mal überprüft. Im Zweifel sind sie sogar falsch. Man ist also auf Gedeih und Verderb auf die Dokumentation angewiesen, um herauszufinden, welche Parameter eine Methode/Funktion verlangt und was man bekommt. Das Prinzip der Multiparadigmen macht die Sache dann auch nicht einfacher. Mal sind es Funktionen, mal sind es Methoden an Klassen.

  21. vor 20 Stunden schrieb skylake:

    Wie gesagt, Jahreszeugnisse warten einige Betriebe nicht ab, sondern fordern vorher Fehlzeiten und Leistungsstand an. Kommt es zu unentschuldigten Fehlzeiten oder häufen sich diese wird der Betrieb generell informiert. 

    In meinem Vorbereitungskurs für den AdA-Schein wurde genau dieses Thema angesprochen und dass es eben problematisch ist. Ich hab mal ein bisschen recherchiert und ein paar Dinge gefunden. z.B. hat das Kultusministerium Niedersachsen entschieden, dass Berufsschulen Daten an Betriebe weitergeben kann, sofern sie nicht schutzwürdig sind. Schutzwürdig wäre z.B. wenn Fehltage durch eine Erkrankung erklärbar sind, die die Schule kennt. Außerdem muss der Betrieb eine Verpflichtungserklärung unterschreiben.

    https://www.rlsb.de/themen/schulorganisation/datenschutz/datenschutz-im-schulalltag/schuelerakten/weitergabe-schuelerdaten-an-ausbildungsbetriebe

    Andere Berufsschulen erlauben dies grundsätzlich, indem sie dies in die Schulordnung schreiben:

    https://www.bs-gelnhausen.de/fileadmin/Datenschutz_Schule/eu-dsgo_SuS_E_B-Info_v2018-05.pdf

    Also so einfach ist das Thema nicht.

     

  22. vor 21 Minuten schrieb skylake:

    Einige Betriebe in meinem Umkreis möchten nach ca 5 Monaten wissen, wie sich der Schüler in der Berufsschule anstellt um dann zu entscheiden, ob der Azubi noch in der Probezeit gekündigt wird oder nicht. Ganz interessiert sind die Betriebe auch an Fehlzeiten um abzugleichen, ob die Aussagen vom Azubi im Betrieb stimmen.

    Hä?

    Die Probezeit darf maximal nur 4 Monate dauern und während dieser Zeit gibt es auch höchstens nur einen Schulblock. Ich halte es für sehr fragwürdig, aufgrund eines einzigen Schulblockes den Azubi wieder zu kündigen. Außerdem kann man immer noch mit dem Azubi reden und auch fragen, ob man in seine schulischen Unterlagen Einblick bekommen darf.

    vor 24 Minuten schrieb skylake:

    Richtig ist, dass die Schule keine privaten Informationen vom Schüler herausgeben wird (mit Ausnahme von Fehlzeiten, schulischen Leistungen oder anderen Auffälligkeiten). 

    Das sind sehr wohl persönliche Daten und Fehlzeiten stehen ebenfalls auf dem Zeugnis.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...