Zum Inhalt springen

Whiz-zarD

Mitglieder
  • Gesamte Inhalte

    2.019
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    48

Alle Inhalte von Whiz-zarD

  1. Das Wort "Assistent" ist so bescheuertes Wort. Das stört mich auch jedes Mal aber im Grunde ist es nichts weiter als eine schulische Ausbildung zum Fachinformatiker. Es ist quasi ein leichteres Bachelor-Studium. In meiner Berufsfachschule was noch eine Fachhochschule integriert und ich hatte fast die selben Kurse, wie die Informatik Bachelor-Studenten. Während der schulischen Ausbildung habe ich noch Extrakurse für die Fachhochschulreife belegt und könnte jetzt studieren, wenn ich wollte. Falls du den Assistent ins Auge fassen solltest, muss dir aber im Klaren sein, dass dies eine Vollzeit-Schule ist und wenn du auf Geld angewiesen bist, bafög beantragen oder noch nebenbei jobben musst. Ich würde dann also noch mal mit der Schule reden und solche Fragen klären. Oftmals haben solche Schulen eine umfassende Beratung. Vielleicht kannst du auch mal bei ein oder zwei Kursen teilnehmen. Auf der anderen Seite stehen derzeit die Chancen, ein Ausbildungsplatz als FIAE zu bekommen, sehr gut. Man könnte also auch erst mal anfangen, ein Ausbildungsplatz zu suchen. SPS Programmierung hat zwar auch was mit Programmierung zu tun, aber das ist nicht so komplex, wie Softwareentwicklung. Als Mechatroniker habe ich auch SPS-Programmierung gelernt (damals noch Siemens S5) aber die Programmierung bestand häufig nur aus simplen Petrinetzen, die man schnell runterhacken konnte und mittels "Trial & Error" direkt an der Maschine optimiert wurde. Es spricht auch nicht gerade für die SPS-Programmierung, wenn die Siemens S7 erst zu einem Erfolg wurde, als Siemens den Kontakt- und Funktionsplan in ihrer Entwicklungsumgebung implementiert hatten. Die Anweisungsliste wurde damals von keinem SPS-Programmierer angefasst und die S7 drohte ein gigantischer Flop zu werden. Man klickt sich also lieber die Funktionalität wie ein Lego-Baukasten zusammen, als sie mit Programmcode zu schreiben.
  2. Erst mal ist Informatik ein großer Sammelbegriff, für alles mögliche, was mit Darstellung, Speicherung, Verarbeitung und Übertragung von Informationen zu tun hat. Informatik muss also nicht zwangsläufig was mit Programmierung zu tun haben. Die Programmierung ist nur ein Teilaspekt der Informatik. Auch die Informationstechnik ist ein Teilaspekt. Die Informationstechnik geht eher in die Richtung der technischen Informatik. D.h. du wirst dort mehr mit Hardware und Netzwerken zu tun haben. Mit Glück vielleicht auch ein bisschen Programmierung in Form von Mikroprozessoren. So, wie ich dich verstanden habe, möchtest du aber nun Software entwickeln. Da bist du dann bei der Informationstechnik falsch. Der Techniker ist auch nicht eine neue Ausbildung, sondern nur eine weitergehende Vertiefung und Spezialisierung auf ein Themengebiet. Damals nannte man auch sowas Meister. Wenn du also Softwareentwickler werden möchtest, dann gibt es eigentlich nur wenige Wege. Entweder du machst eine neue Ausbildung als FIAE oder du schaust ob du in der Nähe eine Berufsfachschule gibt, die dir so eine Ausbildung anbieten können (z.B. als Assistent für Informatik). Ich selber habe damals auch eine Mechatroniker-Ausbildung abgeschlossen und auch mehrere Jahre in diesem Beruf gearbeitet, bevor ich dann eine Berufsfachschule besucht habe, wo ich dann Assistent für Medieninformatik gelernt habe. Ich steckte damals in einer ähnlichen Situation, wie du. Ich hatte damals nur ein Realschulabschluss und habe daher kein FIAE-Ausbildungsplatz bekommen. Damals waren die Zeiten auch anders. Der Beruf war gerade neu und die Bewerber standen auch noch Schlage und die Firmen konnten sich die Rosinen rauspicken. Allerdings weiß ich nicht so recht, ob Softwareentwicklung für dich überhaupt was ist, wenn ich so etwas lese: Es klingt nämlich so, als hättest du bis jetzt mit Softwareentwicklung noch gar keine Berührung gehabt, denn C ist eine recht tote Sprache und wird nur noch in speziellen Fällen eingesetzt und von php sollte man Abstand nehmen, wenn man es wirklich ernst meint. Auch ist Softwareentwicklung ein bisschen mehr, als nur Code einzuhacken. Nicht umsonst ist gerade auf Berufsfach- und Fachhochschulen die Abbrecherquote enorm hoch. Im ersten Semester hatte ich noch um die 80 Kommilitonen. Mit mir zusammen haben dann nur noch um die 10 Kommilitonen den Abschluss gemacht. Du solltest dir also schon genau Gedanken machen, was du möchtest und vielleicht auch schon mal Hobbymäßig mal anfangen, etwas zu entwickeln, um ein Gefühl zu bekommen ob es was für dich ist. Wenn man also schon den Beruf wechseln möchte, dann sollte man das schon mit Bedacht machen und nicht, weil man gerade denkt, dass man da vielleicht Bock drauf haben könnte.
  3. if(false == p.CloseMainWindow()) p.Kill(); Das ist echt gruselig zu lesen. Erst mal ist es unnötig, da ein if(!p.CloseMainWindow()) p.Kill(); reicht, da die Methode CloseMainWindow() schon ein Boolean zurückgibt und deswegen nicht mehr mit einem Boolean verglichen werden muss. Wenn der Compiler dies nicht wegoptimieren würde, würden wir sogar ein oder mehrere Prozessorinstruktionen zu viel machen. Und Zweitens stammt diese defensive Schreibweise if(Prüfung == Variable) ... noch aus den C-Zeiten, da man innerhalb einer If-Anweisung auch Variablendeklarationen vornehmen konnte. Dies geschieht dann durch ein einfaches Gleichheitszeichen. Man konnte also in C folgendes schreiben: if(Variable = Prüfung) ... und es war kompilierfähig. Hatte aber einen unvorhersehbaren Effekt. Daher entschied man sich oft für die obere Variante, denn wenn man dort ein Gleichheitszeichen weglässt gibt es ein Kompilierfehler aber es liest sich schlechter, da wir im Sprachgebrauch von Links nach Rechts lesen. Wir würden also zuerst die Bedingung lesen, die erfüllt sein muss und dann erst, worauf diese Bedingung passen soll. Es fühlt sich also vom Sprachgebrauch besser an, wenn wir erst mal schreiben, was wir überprüfen wollen und dann die Bedingung. Also: if(Variable == Prüfung) ...
  4. mmh, irgendwie macht die ganze Berechnung keinen Sinn. Das müsste doch: verbrauch = liter / km * 100 heißen.
  5. In Fachkreisen munkelt man, dass ASP.Net MVC in den kommenden Jahren tot sein wird. Der Grund ist, dass inzwischen immer mehr sog. Single-Page Application (SPA) entwickelt werden. Das generieren des HTML-Dokumentes übernimmt dann nicht mehr der Server, sondern der Client, weil die Clients immer Leistungsstärker werden und somit den Server entlasten. Angenommen wir haben eine Webseite, die pro Stunde von 10.000 Nutzern aufgerufen wird. Da ist es für den Server schon eine Belastung, wenn er für alle 10.000 Nutzern noch das HTML-Dokument generieren muss. Bei SPA wird nur ein HTML-Dokument an den Client geschickt und der Client aktualisiert den Inhalt mittels AJAX und WebAPI-Aufrufe selber. Das bedeutet, dass der Server nur noch JSON-Dateien zum Client schicken muss und man somit den Server entlastet. Frameworks für SPA-Anwendungen sind z.B. AngularJS oder Aurelia. Xamarin ist aber nicht dafür da, um ASP.Net MVC-Anwendungen zu bauen, sondern Mobile-Apps. Mit Hilfe von Xamarin kann für die unterschiedlichen Plattformen (iOS, Android und Windows) einen gemeinsamen Code schreiben und für die jeweilige Plattform kompilieren (für iOS benötigt man weiterhin ein Mac). Xamarin übernimmt auch das Look-and-Feel der einzelnen Systeme. So generiert Xamarin z.B. schon automatisch den Zurück-Button in iOS, während dieser Button in Android schon im System vorhanden ist. Auch werden weiterhin die einzelnen Bedienelemente für die jeweilige Zielplattform angepasst.
  6. Hinweis 1: arbeite bei wahrungsbeträgen nie mit double! C# bietet dafür den decimal-datentyp. Hinweis 2: schreibe nie die Logik in der UI! Das macht die Logik untestbar und falls du mal die UI tauschen möchtehst, musst du die Logik noch mal implementieren.
  7. Wenn ich schon so was lese, könnte ich kotzen. Aber gut. Offenbar richtet sich diese App an 14- bis 18-Jährige. Da mögen solche Begriffe noch Hip und Cool sein aber für einen über 30-jährigen sind solche Begriffe einfach nur noch peinlich.
  8. Mmh, okay. Ich bin eher davon ausgegangen, dass er den string noch weiter analysieren wollte.
  9. Das kann man vielleicht mit einem FISI machen, aber bei einem FIAE würde ich das nicht unbedingt tun. Auf unsere Software würde ich ihn nicht gleich loslassen. Schon gar nicht, wenn er nur wenig bis gar keine Programmierkenntnisse hat. Das wird ihn nur versauen, weil die Software echt gruselig entwickelt wurde und so gegen alle best practices verstößt, die man sich so vorstellen kann. Ich bin zwar kein Ausbilder aber bei einem FIAEler würde ich tatsächlich erst mal mit etwas spielerischem Anfangen, wie z.B. ein Sudoku-Löser oder ein Taschenrechner (ein guter Taschenrechner ist gar nicht mal so simpel) oder ein paar Coding-Katas und ihm dabei auch ein paar grundlegende Dinge beibringen, wie z.B. Variablentypen und die Probleme bei Fließkomma-Operationen und wie man ein Geldbetrag abbilden sollte, dann Design Patterns, Unittests etc. und erst dann, wenn er es so einigermaßen drauf hat, kann man ihn ja mal ein paar leichte Aufgaben aus dem Tagesgeschäft geben und ihn dann weiter betreuen.
  10. Dein Code ist schon recht komplex. Ein Problem hierbei ist schon, dass NewLine-Steuerkommando Systemabhängig ist. Unter Windows \r\n ist standardmäßig und unter Linux ist der Standard \n. Das lässt sich aber konfigurieren. Das .Net-Framework bietet hierzu die Enviroment.NewLine Konstante, die das aktuelle Newline-Kommando zurückliefert. Ich würde im ersten Schritt alle Text-Steuerkommandos entfernen: s = Regex.Replace(s, @"\t|\n|\r", " "); Dann würde ich den String in ein Array aufteilen: var array1 = s.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); Dann würde ich die beiden relevanten Ergebnisse extrahieren: var s2 = s1.Skip(Array.FindIndex(s1, x => x.ToLower() == "blato:") + 1).Take(2); und zum Schluss würde ich dann die Ergebnisse in ein String joinen: var result = string.Join(" ", s2); Und schon hat man mit vier Zeilen Code das Ergebnis und das ohne großartig reguläre Ausdrücke zu benutzen. Ich versuche sowieso reguläre Ausdrücke zu meiden, weil diese eh keine Sau versteht. Der gesamte Code: s = Regex.Replace(s, @"\t|\n|\r", " "); var s1 = s.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); var s2 = s1.Skip(Array.FindIndex(s1, x => x.ToLower() == "blato:") + 1).Take(2); var result = string.Join(" ", s2); Ist jetzt von der Variablenbenennung beschissen, aber ich hoffe, du kannst damit was anfangen.
  11. Klingt nach einem anderen Fehler. Die Funktion date_create_from_format() gibt dir ein Objekt zurück und kein String. Offenbar behandelst du irgendwo das Objekt als String und dann kommt es zur dieser Fehlermeldung. Bei der Ausgabe muss du die Format()-Funktion aus dem DateTime-Objekt benutzen. z.B. echo $datum->format('Y-m-d H:i:s')
  12. PDF-Dateien kann man auch so ohne weiteres nicht auslesen. Das ist ein recht komplexes Dateiformat mit einer eigenen Syntax zur Textgestaltung. Hier ist eine recht gute Übersicht, was die das Format funktioniert. Daher würde ich dir schon raten, eine Bibliothek dafür zu nehmen. Wir selbst erstellen nur Listen als PDF-Datei aber dafür verwenden wir List&Label von Combit. Das Tool ist aber nicht kostenlos. Ansonsten hast du ja schon einige Biblitoheken genannt, die du verwenden könntest. Etwas eigenes zu schreiben halte ich für zu fehleranfällig.
  13. Es wird ein Zeitplan auf Stundenebene erwartet und das spricht gegen die agile Entwicklung. Diese Zeitangaben ist auch eine einzige Mogelpackung, denn wer kontrolliert es und wer kann sich daran halten?
  14. TDD heißt nicht gleich, dass Agil gearbeitet wird. Agile Softwareentwicklung ist noch was anderes. Schaut man sich das "Agile Manifesto" an, so findet man folgende Leitsätze (kopiert aus Wikipedia): Menschen und Interaktionen stehen über Prozessen und Werkzeugen Funktionierende Software steht über einer umfassenden Dokumentation Zusammenarbeit mit dem Kunden steht über der Vertragsverhandlung Reagieren auf Veränderung steht über dem Befolgen eines Plans Und das widerspricht so allem, was die IHK von der Abschlussprüfung erwartet. Aber gut, da rege ich mich schon seit über 10 Jahren auf. Als ich damals meine Mechatroniker-Ausbildung absolviert hatte, musste ich sogar noch auf die Uhrzeit genau angeben, was ich mache ... Da ist es schon ein großer Fortschritt, dass man nur noch die Stunden angeben muss. Kanban muss aber auch nicht unbedingt agil sein. wenn z.B. bei Kanban nicht mit dem Kunden geredet wird, sondern stur die Aufgaben von "Bereit" bis "Fertig" abgearbeitet werden, haben wir hier ebenfalls ein Wasserfallmodell.
  15. Eine kleine Anekdote aus meinem Berufsleben: In der Software, an der ich arbeite, wurde damals in der Designphase (das war weit vor meiner Zeit) einen gravierenden Fehler gemacht und zwar hat man die Geschäftsobjekte direkt mit der Persistenzschicht verdrahtet. D.h. um ein Geschäftsobjekt erzeugen zu können, brauchst du zwingend eine Datenbankverbindung. Bei so einer Architektur im nachhinein Unittests zu schreiben ist unmöglich, da man anfangen müsste, die Datenbank zu mocken. Desweiteren wurde der Fehler gemacht, Geschäftslogik in die UI zu verlegen, weil das so schön einfach ist. Unter Visual Studio einfach ein Doppelklick auf dem Button im Designer und los gehts ... Schreibe aber mal dafür einen Unittest. Viel Spaß. Mit TDD umgeht man diese ganzen Probleme, weil man schon vornherein gezwungen wird, den Code so zu schreiben, sodass er auch Testbar ist. Ein weiteres Problem ist, wenn man die Unittests danach schreibt, dass man eigentlich nur noch die Schnittstellen nach außen testet und das reicht oft für ein Test nicht aus. Man sieht dann zwar, dass sich ein Ergebnis ändert hat, aber wo der neue Wert herkommt, sieht man nicht. Bei TDD geht es also darum, testbaren Code zu schreiben. Unittests Teste deine Klassen und die Methoden. Informiere dich mal über den Begriff "Testpyramide". Manuelle Tests gilt es zu vermeiden, weil die sehr zeitaufwendig sind und Zeit ist Geld. Hier in der Firma besteht der Regressionstest hauptsächlich aus manuellen Tests (die gründe stehen weiter oben) und der Test wird pro Major-Release mit 200 - 300 PT veranschlagt. Das ist enorm. Bei uns steht die Testpyramide auch auf dem Kopf und das ist das Worst-Case-Szenario. Manuelle Tests sind eigentlich nur noch UI-Tests und die testen nur noch den Workflow. Also dass z.B. wenn man auf Button X klickt auch Dialog Y auftaucht und dass Eingabefehler abgefangen wird aber auch diese Tests lassen sich automatisieren. Da gibt es genug Tools. Tests sollten immer durchgeführt werden, bevor es zum Kunden geht. Ansonsten hast du eine Bananen-Software: Reift beim Kunden. Aber ich persönlich sehe viele Probleme bei der Abschlussprüfung, wie die IHK es sich vorstellt. Das sind veraltete Methoden, die man heute nicht mehr anwenden sollte. Heutzutage versucht man den Kunden mit in die Entwicklung zu integrieren, sodass er für Fragen und Antworten bereitsteht und so kann man auch viel schneller auf Anpassungen reagieren (sprich agil arbeiten).
  16. Hast du auf dem Server alle Fehlermeldungen aktiviert? Vielleicht tritt dort ein Fehler auf und du siehst es nur nicht. Aber noch ein Hinweis: Vermeide SELECT *, denn das gibt zu viele Informationen zurück und kann auch zu Problemen führen, wenn man weitere Tabellen gejoint hat, die wiederum Spalten besitzen, die den selben Namen haben. Gib immer explizit an, welche Spalten du haben willst. In diesem Fall hast du sogar zwei Tabellen gejoint, also gibt dir die Abfrage die Spalten von drei Tabellen zurück. Je nach Anzahl der Recordsets kann es durchaus zu Performanceproblemen kommen.
  17. Unittests im Nachhinein zu entwickeln klappt meist auch nicht, da der Code dann der Code nicht testbar ist. TDD ist zwar anstrengend aber es ist durchaus hilfreich, denn TDD führt dich nicht in die Versuchung, den Code irgendwie hinzuhacken. Der Code bleibt dann immer testbar. Wenn man die Unittests erst hinterher schreiben will, hat man dann oft ein Code, der nur sehr schwer testbar ist. Dann testet man nur die Schnittstellen nach außen. Wenn aber dann ein Fehler auftauchen sollte, ist man da erst mal mit dem Suchen beschäftigt, wo der Fehler überhaupt herkommt und je nach Komplexität kann es sehr Zeitaufwendig sein. Ich kenne es auch eigener Erfahrung, dass man die Entwicklungskosten gerne niedrig halten möchte und daher gerne auf Unittests verzichtet werden, weil Unittests Geld kosten und von Unittests hat der Kunde nichts aber das Geld, was man hier investiert, spart man später bei der Pflege des Codes. Ich selber arbeite an einem unwartbaren Monstrum, wo die Entwickler an vielen Stellen im Code sich nicht rantrauen, weil sie nicht wissen, welche Seiteneffekte entstehen könnten, wenn sie was am Code ändern sollten. Der Analyseaufwand steigt somit ins unermessliche. Wenn aber schon vornherein dafür gesorgt wurde, dass vernünftige Unittests geschrieben worden sind, kann man bei Änderungen sehr schnell herausfinden, ob noch alles so läuft, wie vorher. Zeitdruck herrscht immer, denn Zeit ist Geld. Geld, was der Kunde nicht ausgeben will und ich weiß, dass es schwer sein kann, den Chef davon zu überzeugen, aber das ist einfach eine Milchmädchenrechnung, wenn man meint, dass man beim Sparen an Unittests grundsätzlich Geld spart, nur weil das Produkt schneller zum Kunden kommt. Die ganzen Bugs, die der Kunde meldet und der enorme Zeitanstieg bei der Beseitigung der Bugs oder bei der Implementierung von Weiterentwicklungen, sieht oft der Chef nicht. Also muss man ihn dies vor Augen führen, welche Folgekosten so etwas hat.
  18. Das hast du so gut wie in jedem Beruf und dennoch spricht man nicht gerade von einem "kaufmännischen Teil". Ein Kaufmann ist schon ein bisschen mehr, als Kosten- und Nutzen abzuwiegen.
  19. Such dir was aus und du hast deine Antwort... Also ist man sich eigentlich gar nicht im Klaren, was ein Anwendungsentwickler ist? Ich selber habe eine schulische Ausbildung zum "Assitent für Medieninformatik" und vor 16 Jahren eine Mechatroniker-Ausbildung absolviert und in beiden Berufen habe ich nichts über einen Kaufmann gelernt,
  20. Was muss man denn als FIAEler für einen kaufmännischen Teil lernen? Was hat ein Entwickler mit einem Kaufmann zu tun? Außerdem das e-book vom Rheinwerk Verlag würde ich nicht unbedingt empfehlen. Es ist komplett veraltet und die Programmierbeispiele sind oft abschreckende Beispiele, wie man es nicht machen sollte.
  21. So, wie ich das verstanden habe, will er das auch machen. Seine Frage ist wohl nur, ob und wie er es verkauft bekommen kann, irgendwas in Richtung "Medizin" zu machen, obwohl sein Arbeitgeber im Bereich "Musik" tätig ist.
  22. Whiz-zarD

    Übergabe Variablen

    Selbst dann nicht mal wirklich. Sie sollten über Interfaces kommunizieren.
  23. Sowas ist schlechter Programmierstil, da du hier HTML und JavaScript miteinander vermischst. Auf der Webseite von Fancybox ist doch ein Beispiel, wie das funktioniert. (Die "Inline"-Beispiele) Was genau ist denn dein Problem? Wieso kannst du es denn nicht so umsetzen, wie im Beispiel?
  24. Hallo, Ich persönlich würde auch die Finger von lassen, denn offenbar ist der Belegschaft nicht klar, welche Probleme herrschen. Wenn schon die Entwicklungsabteilung nicht mosert, dann ist da irgendwas im Busch. Da würde ich mich fragen, ob überhaupt das Know-how da ist, um geine neue Softwaregeneration einzuleiten? Wenn der Wille und das Know-how fehlt, dann bringt es auch nichts als Geschäftsführer auf den Tisch zu hauen, denn man stößt auf taube Ohren und dann wird das Schiff erst recht untergehen.

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...