Zum Inhalt springen

Tician

Mitglieder
  • Gesamte Inhalte

    541
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    9

Alle Inhalte von Tician

  1. Hatte gestern Berufsschule und bin etwas genervt weil ich das hier durchziehen möchte, aber immer neue Anforderungen kommen und ich versuche die Zeit zu finden mir diese Dinge für die OOP anzueignen, aber momentan sieht es so aus das Programme schnell fertig werden müssen und diese schnell untereinander zu schreiben dauert 1/5 von der Zeit die ich brauchen würde um das ganze mit OOP zu basteln. Zeitgleich kommt hinzu das ich durch meine gewählte Fachrichtung auch anderes zu tun habe, mein eigenes kleines Netzwerk schimmelt schon vor sich hin (von meiner Ausbildungsnachweise jede Woche könnte man definitiv meinen ich bin FIAE ) @Whiz-zarDDeine Vorschläge sind super! Ich denke ich habe es auch verstanden und modelliere den Code um sobald ich kann!
  2. Also das Programm funktioniert wieder und soweit war ich mit meiner Idee gar nicht weg *freu* Da sollen noch ein paar Dinge dazu kommen, aber die würde ich später hinzufügen wenn das Programm so wie es ist mal an die durchschnittlichen Ansprüchen der OOP ran kommt. Stand der Dinge: class Program { static void Main(string[] args) { try { SettingsLoader loader = new SettingsLoader(); Settings settings1 = loader.Load("settings.ini"); CsvChanger changer = new CsvChanger(); changer.FindCsv(settings1.source); changer.ReadCsv(); changer.ChangeCsv(); changer.WriteFiles(settings1.destination); Console.ReadKey(); } catch { Console.WriteLine("Unknown error"); } } } class Settings { public string iniText; public string source { get; set; } public string destination { get; set; } } class SettingsLoader { string filename; string iniText; public Settings Load(string filename) { this.filename = filename; iniText = File.ReadAllText(filename); Regex rsource = new Regex("(?<=Source\\=).+"); Match msource = rsource.Match(iniText); Regex rdestination = new Regex("(?<=Destination\\=).+"); Match mdestination = rdestination.Match(iniText); return new Settings { source = Convert.ToString(msource).Replace("\r", ""), destination = Convert.ToString(mdestination).Replace("\r", ""), iniText = iniText }; } } class CsvChanger { private string[] changedContent; private int fileCount; private string[] files; private string[] fileContent; //Settings settings2 = new Settings(); string source; string destination; public void FindCsv(string source) { try { this.source = source; files = Directory.GetFiles(source, "GAR_EXPORT_*.csv"); fileCount = files.Length; if (fileCount == 0) { Console.WriteLine("Keine Dateien gefunden. Bitte Taste drücken..."); Console.ReadKey(); Environment.Exit(0); } Console.WriteLine("{0} Dateien gefunden!", fileCount); } catch { Console.WriteLine("Error finding files"); } } public void ReadCsv() { try { fileContent = new string[fileCount]; for (int x = 0; x < fileCount; x++) { fileContent[x] = File.ReadAllText(files[x]); } Console.WriteLine("Dateien erfolgreich eingelesen!"); } catch { Console.WriteLine("Couldn't read CSV"); } } public void ChangeCsv() { try { changedContent = new string[fileCount]; for (int x = 0; x < fileCount; x++) { changedContent[x] = fileContent[x].Replace("\"", ""); } Console.WriteLine("Anführungszeichen erfolgreich ersetzt!"); } catch { Console.WriteLine("Couldn't replace file-content"); } } public void WriteFiles(string destination) { try { this.destination = destination; for (int x = 0; x < fileCount; x++) { using (StreamWriter sw = new StreamWriter(destination + Path.GetFileName(files[x]))) { sw.Write(changedContent[x]); } } Console.WriteLine("Dateien in Ziel-Pfad geschrieben! \n Fertig :)"); } catch { Console.WriteLine("Error writing files to destination"); } } } @GottlikeDen Link kenne ich schon (immerhin besser als der vorherige für Delphi :P) und bis auf die Überladungen (bzw wie man die schreiben kann) kenne ich alles schon. Allgemein das mit der Rückgabe habe ich zwar in diesem Thread erst verstanden, aber das dann statt den mir bekannten Datentypen (int, byte, string,...) plötzlich mit einer Klasse hat mich verwirrt, aber auch das habe ich denke ich jetzt verstanden.
  3. Also gut, wie gesagt ich habe keine Ahnung wie man das benutzt und habe mal sämtliche Errors und Warnungen ignoriert und es so hingebastelt wie ich dachte das es (so oder so ähnlich) funktionieren würde: class Program { static void Main(string[] args) { SettingsLoader loader = new SettingsLoader(); Settings settings1 = loader.Load("settings.ini"); } } class Settings { private string iniText; public string source { get; set; } public string destination { get; set; } } class SettingsLoader { string filename; string iniText; public Settings Load(string filename) { this.filename = filename; iniText = File.ReadAllText(filename); Regex rsource = new Regex("(?<=Source\\=).+"); Match msource = rsource.Match(iniText); Regex rdestination = new Regex("(?<=Destination\\=).+"); Match mdestination = rdestination.Match(iniText); return Convert.ToString(mdestination).Replace("\r", ""); return Convert.ToString(msource).Replace("\r", ""); return iniText; } } Das Hauptproblem ist das ich null Ahnung von der Rückgabe habe, das ich nicht mehrmals "return" haben kann ist mir klar, das soll auch mehr symbolisch zeigen was ich eigentlich machen möchte, ich brauche schließlich 3 Variablen brauche. Außerdem sind meine getter und setter so irgendwie nutzlos... sorry ich blicks nicht ._.
  4. Das Seltsame an den Regex ist das ich das bisher immer benutzt habe und auch immer mit mehreren Zeilen in der ini-Datei und nie hatte ich dieses '\r' beim konvertieren mit drin. @Whiz-zarD Könnte ich ein kurzes Beispiel haben was Datenstruktur und was Logik ist? Ist Datenstruktur alles was ich deklariere, während Logik die Ausführung von Vorgängen ist? public class SettingsLoader { public Settings Load(string fileName) { ... } } Das habe ich noch nie gesehen, ich weiß gar nicht was es macht. Wie nennt sich das, nach was kann ich schauen? Kann man das ohne Fachbegriffe beschreiben oder gibt es eine andere Schreibweise wie man das schreiben könnte um es zu verstehen (wie get und set auszuschreiben)? Ich kenne bisher nur Klassen mit eigenen Methoden (mit oder ohne Rückgabe eines mir bekannten Datentyps) und den Konstruktor. Und das ich Variablen über die Klammern in die Methode einer anderen Klasse 'übergeben' kann. Als Rückgabewert eine Klasse zu haben ist mir neu und verwirrt mich gerade etwas, ich versuche ein Beispiel zu finden um es zu verstehen aber irgendwie ist das recht schwierig.
  5. Gecheckt! So hatte ich es ja auch als allererstes aus irgendeinem Grund dachte ich ich müsste es ändern...
  6. @Gottlike Ich denke du kannst mir nochmal helfen: Main: Settings settings1 = new Settings(); source = settings1.GetSource(); destination = settings1.GetDestination(); Beim Zeilenweisen durchgehen rufe ich GetSource() sowohl im Konstruktor als auch noch einmal über die Methode selbst auf. Es wird also 2 mal durchlaufen. Ist das Sinn der Sache und normal? Oder kann man das so hinbasteln das GetSource() nur ein einziges mal durchläuft und ich die Variable in meiner Program class zur verfügung habe?
  7. Immerhin das sagt mir ich bewege mich in die richtige Richtung, das freut mich
  8. Also gut^^ Ich musste jetzt auch das ReadFile() in den Konstruktor nehmen sonst funktionieren die Getter nicht weil die ini-Datei fehlt. Neuer Code sieht so aus: class Program { static void Main(string[] args) { string source; string destination; try { Settings settings1 = new Settings(); source = settings1.GetSource(); destination = settings1.GetDestination(); CsvChanger changer = new CsvChanger(); changer.FindCsv(source); changer.ReadCsv(); changer.ChangeCsv(); changer.WriteFiles(destination); Console.ReadKey(); } catch { Console.WriteLine("Unknown error"); } } } class Settings { private string iniText; public string source { get; set; } public string destination { get; set; } public Settings() { ReadFile("settings.ini"); this.source = GetSource(); this.destination = GetDestination(); } public void ReadFile(string iniFile) { try { iniText = File.ReadAllText(iniFile); } catch { Console.WriteLine("settings.ini not found"); } } public string GetSource() { try { Regex rsource = new Regex("(?<=Source\\=).+"); Match msource = rsource.Match(iniText); return Convert.ToString(msource); } catch { Console.WriteLine("Could not find 'Source' in settings"); return ""; } } public string GetDestination() { try { Regex rdestination = new Regex("(?<=Destination\\=).+"); Match mdestination = rdestination.Match(iniText); return Convert.ToString(mdestination); } catch { Console.WriteLine("Could not find 'Destination' in settings"); return ""; } } } class CsvChanger { private string[] changedContent; private int fileCount; private string[] files; private string[] fileContent; string source; string destination; public void FindCsv(string source) { try { this.source = source; files = Directory.GetFiles(source, "GAR_EXPORT_*.csv"); fileCount = files.Length; if (files == null) { Environment.Exit(0); } } catch (Exception ex) { Console.WriteLine("Error finding files"); Console.WriteLine(Convert.ToString(ex)); } } public void ReadCsv() { try { for (int x = 1; x <= fileCount; x++) { fileContent[x] = File.ReadAllText(files[x]); } } catch { Console.WriteLine("Couldn't read CSV"); } } public void ChangeCsv() { try { for (int x = 1; x <= fileCount; x++) { changedContent[x] = fileContent[x].Replace("\"", ""); } } catch { Console.WriteLine("Couldn't replace file-content"); } } public void WriteFiles(string destination) { try { this.destination = destination; for (int x = 1; x <= fileCount; x++) { using (StreamWriter sw = new StreamWriter(destination + Path.GetFileName(files[x]))) { sw.Write(changedContent[x]); } } } catch { Console.WriteLine("Error writing files to destination"); } } } Das Problem mit dem '\r' beim konvertieren zu einem string bleibt :/
  9. Apropo Exception handling. Da ich alles in meiner Main aufrufe, könnte ich nicht alle Exceptions weglassen bis auf das hier? class Program { static void Main(string[] args) { string source; string destination; try { Settings settings1 = new Settings(); settings1.ReadFile("settings.ini"); source = settings1.GetSource(); destination = settings1.GetDestination(); CsvChanger changer = new CsvChanger(); changer.FindCsv(source); changer.ReadCsv(); changer.ChangeCsv(); changer.WriteFiles(destination); Console.ReadKey(); } catch { Console.WriteLine("Unknown error"); } } } Oder gilt das nicht?
  10. public string GetSource() { try { Regex rsource = new Regex("(?<=Source\\=).+"); Match msource = rsource.Match(iniText); return Convert.ToString(msource); } catch { Console.WriteLine("Could not find 'Source' in settings"); } } Ich hatte es ähnlich versucht und kam auf dasselbe Ergebnis: "Settings.GetSource(): nicht alle Codepfade geben einen Wert zurück" Deswegen bin ich auch verwirrt.
  11. Verstehe ich das richtig, ich muss um die Source aus der ini-Datei zu bekommen eine Methode machen und brauche für die Rückgabe nochmal eine Methode? Ne die Variable müsste über get und set ja schon selbst etwas haben... ich bin verwirrt. Wie setze ich denn die source-variable nachdem ich die ini-Datei ausgelesen habe?
  12. Moinsen, auch wenn es noch nicht funktioniert stelle ich mal meinen ersten vollständigen Versuch zur OOP vor. Nach wie vor hoffe ich das ich nicht meilenweit am Ziel vorbei geschossen bin. Das Programm soll bestimmte csv-Dateien aus einem (in einer ini-Datei) festgelegten Pfad auslesen, die Anführungszeichen in den Dateien löschen und sie wieder in einem anderen Pfad speichern. Ich hoffe das sollte für den Anfang vom Schwierigkeitsgrad her einfach genug sein. Mein Ziel ist mich der OOP Schrittweise zu nähern, daher bitte ich euch keine komplette Überarbeitung zu posten. Ich versuche - sofern mir möglich - die Vorschläge nacheinander umzusetzen und natürlich zu verstehen. Ich habe 3 Klassen: Program (Main); Settings (um die 2 Zeilen in der ini-Datei auszulesen); CsvChanger (suchen, lesen, verändern und schreiben der Dateien) Der Code: class Program { static void Main(string[] args) { try { Settings settings1 = new Settings(); settings1.ReadFile("settings.ini"); settings1.GetSource(); settings1.GetDestination(); CsvChanger changer = new CsvChanger(); changer.FindCsv(settings1.source); changer.ReadCsv(); changer.ChangeCsv(); changer.WriteFiles(settings1.destination); Console.ReadKey(); } catch { Console.WriteLine("Unknown error"); } } } class Settings { private string iniText; public string source { get; set; } public string destination { get; set; } public void ReadFile(string iniFile) { try { iniText = File.ReadAllText(iniFile); } catch { Console.WriteLine("settings.ini not found"); } } public void GetSource() { try { Regex rsource = new Regex("(?<=Source\\=).+"); Match msource = rsource.Match(iniText); source = Convert.ToString(msource); } catch { Console.WriteLine("Could not find 'Source' in settings"); } } public void GetDestination() { try { Regex rdestination = new Regex("(?<=Destination\\=).+"); Match mdestination = rdestination.Match(iniText); destination = Convert.ToString(mdestination); } catch { Console.WriteLine("Could not find 'Destination' in settings"); } } } class CsvChanger { private string[] changedContent; private int fileCount; private string[] files; private string[] fileContent; //Settings settings2 = new Settings(); string source; string destination; public void FindCsv(string source) { try { this.source = source; files = Directory.GetFiles(source, "GAR_EXPORT_*.csv"); fileCount = files.Length; if (files == null) { Environment.Exit(0); } } catch (Exception ex) { Console.WriteLine("Error finding files"); Console.WriteLine(Convert.ToString(ex)); } } public void ReadCsv() { try { for (int x = 1; x <= fileCount; x++) { fileContent[x] = File.ReadAllText(files[x]); } } catch { Console.WriteLine("Couldn't read CSV"); } } public void ChangeCsv() { try { for (int x = 1; x <= fileCount; x++) { changedContent[x] = fileContent[x].Replace("\"", ""); } } catch { Console.WriteLine("Couldn't replace file-content"); } } public void WriteFiles(string destination) { try { this.destination = destination; for (int x = 1; x <= fileCount; x++) { using (StreamWriter sw = new StreamWriter(destination + Path.GetFileName(files[x]))) { sw.Write(changedContent[x]); } } } catch { Console.WriteLine("Error writing files to destination"); } } } Einen Vorschlag hatte ich schon bekommen: Die Get-Methoden haben kein return, allerdings sind sie trotzdem dafür da etwas auszulesen und in eine Variable zu speichern. Ich weiß nicht wie ich das sonst nennen soll^^ Warum das Programm nicht funktioniert: try { Regex rsource = new Regex("(?<=Source\\=).+"); Match msource = rsource.Match(iniText); source = Convert.ToString(msource); } Ich mache nichts anders als sonst auch aber folgendes passiert: msource hat genau das was ich möchte, in der Überwachung sieht es so aus: msource = "C:\\Users\\ich\\desktop\\" allerdings sobald ich in einen string convertiere sieht source dann so aus: source = "C:\\Users\\ich\\desktop\\\r" und ich bekomme die Meldung "ungültige Zeichen in Pfad" als Exception. Ich habe keine Ahnung wo dieses '\r' her kommt und warum es in all meinen vorherigen Programmen in denen ich Regex zum ini-Datei auslesen benutzt habe einwandfrei funktioniert hat. Hat da jemand eine Idee?
  13. Mein Lehrer konnte mein Problem identifizieren. Ich hab in meiner Klasse C ein neues Objekt der Klasse B angelegt und das kannte natürlich das "source" nicht mehr das ich in Klasse A zugewiesen habe. Mein Spaghetti-Code-Programm muss heute fertig werden, danach kann ich mich wieder um das neue Projekt mit der OOP kümmern.
  14. Ich hab morgen Berufssschule, ich bezweifel das ich da zu etwas komme, ich versuch es am Freitag nochmal etwas genauer zu posten.
  15. Ich dachte ich hätte es verstanden... irgendwie nicht Wenn ich folgendes habe: class A (Main) { B.GetSource C.DoSomething } class B { public string source {get;set;} public void GetSource { //blabla source = //blabla } } class C { public void DoSomething { string file = Directory.GetFiles(B.source, "*.csv"); } } Ich dachte das würde so funktionieren, aber ich bekomme nur ein "ArgumentNullException" das sich auf "source" bezieht. Wenn ich Schritt für Schritt durchgehe bekommt source einen Wert, aber sobald es zu Class C kommt ist der nicht mehr vorhanden. Was mache ich falsch?
  16. Also ich hab wieder ein neues Projekt aber das werde ich erst für Verbesserungsvorschläge freigeben wenn es fertig ist Jetzt habe ich gerade aber eine Frage: Wann benutze ich das: Class B { A.Nummer = 15; A.TuEtwas(); } Class A { int Nummer {get;set;} public void TuEtwas() { //mach etwas mit Nummer } und wann das: Class B { int nummer = 15; A.TuEtwas(nummer) } Class A { //int nummer; public void TuEtwas(int nummer) { this.nummer = nummer; //Tu etwas mit nummer } } Beides schiebt - sofern ich das verstanden habe - den Inhalt einer Variable von einer Klasse in die andere. Bei ersterem einfach nur rein die Variable und bei zweiterem zur direkten Verwendung in einer Methode. Kann ich also sagen wenn ich eine Variable in mehreren Methoden brauche dann benutze ich ersteres und wenn ich es nur für eine methode brauche zweiteres?
  17. Schau mal hier Aus meiner Sicht als Azubi: Nimm dir Zeit. Wenn ich etwas frage und mein AUsbilder sieht ich verstehe es nicht dann schnappt er sich Stift und Zettel und fängt an zu zeichnen und zu erklären. Vernachlässige das nicht, ich als Azubi finde das mega wichtig.
  18. Meine Erfahrung: kleine Betriebe zahlen oft weniger bis gut, haben keine Zeiterfassung (heißt viele unbezahlte Überstunden) allerdings gibt es durch die sehr breit gefächerten Aufgaben viel zu lernen. Große Betriebe zahlen oft mehr, haben eine Zeiterfassung, allerdings beschränkt sich der Aufgabenbereich darauf die eigene Firma zu betreuen. Diese Erfahrung beruht auf dem was Klassenkameraden erzählen und den 2 Betrieben in denen ich schon war. Also je nachdem was dir liegt. Ansonsten sollte es natürlich vom menschlichen her passen.
  19. Ich weiß nicht wann man das mit den Gibi, Mibi,...byte eingeführt hat aber wenn ich das jetzt richtig verstanden habe dann wäre meine Lösung absolut korrekt gewesen, ich vermute solch eine Aufgabe würde heutzutage (wenn die IHK den Umrechnungsfaktor 1024 verlangt) mit GiByte und MiByte gefragt werden? Ich hab es zumidnest schonmal irgendwo so gesehen.
  20. Habt ihr mir eine gute Seite die die Umrechnung erklärt und vielleicht auch gleich Gibibyte, Mibibyte und wie sie nicht alle heißen mit einbezieht? Sämtliche Online-Rechner scheinen nur mit dem Faktor 1000 zu rechnen.
  21. Ich habe die Vorläufige Lösung gefundne in der steht 53 Gbyte. Egal wie ich rechne auf DAS komme ich nicht.
  22. Moinsen, ich geh gerade so langsam die Zwischenprüfungen durch und an einer Aufgabe hänge ich gerade in der meine Lösung nicht dem entspricht was auf das Papier gekritzelt wurde und ich weiß nicht welche Lösung stimmt. Die Aufgabe: 1800 Kameras nehmen Bilder mit einem Datenstrom von 6 MBit/s auf. Die Daten werden 1:15 komprimiert und für 10 Minuten auf eine Festplatte gespeichert. Berechnen Sie den erforderlichen Speicherplatz in Gbyte. Meine Lösung: 6 Mbit/s * 60 (für eine Minute) * 10 (für 10 Minuten) = 3600 Mbit pro Kamera in 10 Minuten 3600 * 1800 (für alle Kameras) / 15 (komprimierung) = 432000 Mbit 432000 / 8 = 54000 Mbyte = 54 GByte Andere Lösung: 6Mbit/s /15 = 400 kbit/s pro Kamera 400 * 10 * 60 = 240 Mbit pro Kamera in 10 Minuten 240 * 1800 = 432000 MB Hier wurde gar nicht von bit auf byte umgerechnet. Wir hatten solche Aufgaben noch nie in der Schule, muss man das nicht, habe ich was verpasst? Was ist die Lösung? Edit: Als Hinweis wird angegeben: 1Gbyte = 1024³ Byte Selbst das verwirrt mich schon
  23. Hi @CAEYO Da du vermutlich recht neu bist würde ich behaupten du hast eine Sache verpasst: Ich mach eine Ausbildung zur FISI (apropo ich bin weiblich Whiz_zard). Mein Ausbilder ist ein Crack was Pearl angeht und in etwa kann er meinen Code auch verstehen, aber wenn es ums eingemachte geht kann er mir nicht weiterhelfen, er weiß auch nur noch das was er vor ~10 Jahren in der Schule gelernt hat. Und mehr Informatiker sind wir hier nicht im Betrieb^^ Da ich zu den etwas älteren (26) in der Klasse gehöre bin ich etwas reifer, ich würde es richtig cool finden jemanden zu haben der IRGENDETWAS mit mir machen würde (Programmieren, Server aufsetzen, vernetzen, irgendwas halt) weil es zusammen mit anderen natürlich viel mehr Spaß macht. Die Zwischenprüfungen stehen an, ich frage herum ob jemand nachmittags bleiben möchte um gemeinsam alte Prüfungen durchzugehen, ich biete an zusammen auf Klassenarbeiten zu lernen aber keiner scheint so "hyped" zu sein wie ich - nicht einmal aus dem engeren Freundeskreis in der Schule. Ich habe andere Prioritäten wie meine Mitschüler, wenn der Lehrer uns früher gehen lässt heißt es bei anderen "Juhu Freizeit", bei mir ist es eher ein "wir sind doch schon hinterher, wie soll ich so auf die Prüfung vorbereitet werden?" Ich habe ein Buch in englisch (Head First C#) und habe es auch angefangen durchzuarbeiten aber nachdem ich in gleich am Anfang mit WPF konfrontiert wurde und ums verrecken nichts gefunden habe was mir sagt wie ich eine falsch platzierte Linie in meinem Grid (Gitter) wieder löschen kann war mir nicht mehr danach Ich werde es bei Zeiten nochmal versuchen.
  24. Ich kann den Lehrer nur verteidigen, im Prinzip würde ich es der Schule in die Schuhe schieben weil sie keinen Lehrer für das 1. Lehrjahr gefunden haben. Der Mensch ist kein Lehrer, war es nie und hat vermutlich auch nie ausgebildet oder unterrichtet. Er programmiert und hat schätzungsweise versucht das was im Lehrplan steht irgendwie in diese (PVoss liegt richtig) 4 Schulstunden alle 2 Wochen unterzubringen. Jetzt im 2. Lehrjahr ist es so das wir beim neuen Lehrer auch nur die Themen durchrennen. UML, Struktogramme, State Chart, Vererbung, OOP Dieses Jahr habe ich erst verstanden was es überhaupt mit dem Konstruktor auf sich hat. Vererbung wurde auch mal kurz angeschnitten als wir unser Programm gemacht haben bei dem die Buttons auf der Form rumspringen. Klassenarbeit war dieses Jahr gar nichts mit eigenem Programmieren dabei, wir haben ein paar (halb)fertige Programme (Sudoku, bewegende System.Draw-Kreise) vor die Nase geklatscht bekommen und sollten diese entweder durch Verbesserung der Fehler zum laufen bringen oder etwas dazu programmieren/verändern. Das Ergebnis werden wir am Donnerstag erfahren, der Lehrer ist nicht bekannt dafür die schwächeren Schüler "mitzunehmen". Es waren einige Dinge dabei die ich nie gewusst hätte wenn ich nicht selbst mit z.B. dem Paint-Event letztes Jahr experimentiert hätte und nicht wüsste was das rießegroße rote X auf der Form ist. Ein Paint-Event das gegen die Wand rennt schmeißt (habe ich zumindest irgendwie in Erinnerung) kein Exception, stattdessen sieht man dieses rote Kreuz. Das wusste keiner. Ich behaupte mal frech das von dieser Gruppe aus zusammengewürfelten (1) FIAE und (15) FISI aus 3 verschiedenen Klassen ich noch unter den Top 3-4 bin. Vielleicht bin ich einfach in der falschen FI-Richtung gelandet, aber ich liebe meinen Betrieb und hauptsächlich wird eben ein Admin hier gebraucht und kein Programmierer (es sei denn ich könnte eine Logistik-Software selbst auf die Beine stellen - hell no) Ich versuche soviel wie möglich hier mit zu nehmen, ich weiß es ist schwierig über ein Forum zu lernen aber bisher wurde mir immer gut geholfen und ich hoffe das ich mit Geduld und Erfahrung auch irgendwann Code schreibe bei dem euch nicht die Augen aus dem Kopf fallen

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