Zum Inhalt springen

StefanE

Administrators
  • Gesamte Inhalte

    5.833
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    36

Reputationsaktivitäten

  1. Like
    StefanE reagierte auf Sindycate in Projektantrag: Evaluierung, Installation und Integration einer Monitoring Lösung   
    Antrag wurde abgelehnt. Überarbeiteter Antrag ist durchgengange. Die Evaluierung wurde gestrichen + Zeitplanung angepasst.
  2. Like
    StefanE reagierte auf SebastianB. in IHK Prüfung   
    Ich kenne das Problem. Prüfungen sind immer mit Stress verbunden, und zeigen in den seltensten Fällen ein am Können der Person messbares Ergebnis. ABER: Augen zu und durch. Das ganze Leben ist eine Prüfung, zwar die einzige, an der wir wirklich gemessen werden können, aber dafür auch die härteste. Ich hab auch immer Prüfungsangst, mit richtig heftigen "Ich pack das nicht"-Zuständen. Schlafen vor der Prüfung ist quasi unmöglich. Und trotzdem hab ich es immer irgendwie geschafft :). Lernen lernen lernen, mehr hilft da nicht. Und wenn du sie aufbauen willst, dann gib ihr kurz vor der Prüfung etwas leichtere Aufgaben, denn nichts hilft mehr als ein gesundes Selbstvertrauen, dass den Prüfungsstress bekämpft.
  3. Like
    StefanE hat eine Reaktion von Beagol erhalten in Rentnertreff der Forumsoldies   
    @Beagol
    Logisch, die gibts noch. Ich war vor zwei Jahren nochmal dort. Alles wie immer: Laut und schmutzig --> nett.
    http://www.gorilla-bar.de/
  4. Like
    StefanE reagierte auf mapr in Projektantrag: Bereitstellung von virtuellen Desktops mit Thin Clients   
    Liest sich erstmal gut.
    Was konfigurierst du bei Punkt 2.4 alles?

    P. S. Uns nerven nur ganz wenige, aber wir können auch nicht immer überall zugleich sein
  5. Like
    StefanE reagierte auf Beagol in Rentnertreff der Forumsoldies   
    Kickkuck! 
  6. Like
    StefanE hat eine Reaktion von Beagol erhalten in Rentnertreff der Forumsoldies   
  7. Like
    StefanE reagierte auf Whiz-zarD in C# OOP Probleme   
    Wieso sollte man dich töten wollen?
    Softwareentwicklung ist nun mal ein Reifeprozess. Niemand liest nur ein Buch und kann gleich wunderbar sauberen Code schreiben. Mein Code sah zum Anfang auch mies aus und selbst Robert C. Martin, der das Buch "Clean Code" geschrieben hat, sagt von sich aus, dass er nicht die Weisheit mit Löffeln gefressen hat und es auch bei seinen Code-Beispielen sicherlich noch Verbesserungspotenzial gibt aber nur durch Ausprobieren lernt man. 
    Du hast schon richtig erkannt, dass man fürs Einlesen der Datei eine eigene Klasse benötigt. Allerdings gehört die Logik nicht in den Konstruktor. Der Konstruktor dient zur Initialisierung der Klasse. Der Name der Klasse sollte auch die Aufgabe widerspiegeln, was die Klasse tut. "DateiEinlesen" ist vielleicht gut, aber geht es vielleicht noch konkreter? Ich weiß, dass es eine CSV-Datei ist. Vielleicht eher CsvReader?  Wobei dieser Name auch wieder sehr allgemein ist. In der CSV-Datei steckt ja eine Tabelle. Welche Daten besitzt die Tabelle? Vielleicht kann man der Tabelle einen Namen geben. Eine CSV-Datei ist ja eine Art der Serialisierung. Das Verfahrung um so eine Tabelle in ein Objekt zu überführen, nennt man auch Deserialiserung. Das kann man ja erst mal im Hinterkopf behalten.
    Zuerst würde ich mir aber erst mal eine geeignete Datenstruktur überlegen. In der CSV-Datei stecken ja Daten. Ich nehme jetzt mal als Beispiel, dass die CSV-Datei Daten zu Personen beinhaltet:
    Name;Vorname;Geschlecht;Alter Doe;John;Maennlich;38 Also würde ich erst mal eine Klasse für diese Daten erstellen:
    public class Person {     public string Name { get; set; }     public string Vorname { get; set; }     public Geschlecht Geschlecht { get; set; }     public int Alter { get; set; } } public enum Geschlecht {     Maennlich     , Weiblich } Nun könnte ich mich darum kümmern, eine(!) Datei einzulesen. Ich habe eine Datenstruktur und ich weiß, dass ich eine CSV-Datei deserialisieren muss. Also könnte man die Klasse z.B. PersonCsvDeserializer nennen. In dieser Klasse soll es eine Methode geben, die Deserialize() heißt. Ich verzichte hier jetzt erst mal bewusst auf ein Interface, weil ich denke, dass es für dich bis hier hin schon kompliziert genug ist. Das Interface werde ich später noch mal erklären. Erst mal kümmern wir uns darum, was wir alles brauchen, um eine Datei zu deserialisieren. 
    Was muss die Klasse PersonCsvDeserializer alles wissen, um eine CSV-Datei deserialisieren zu können? Man könnte vielleicht im ersten Schritt auf die Idee kommen, dass die Klasse den Pfad und Dateinamen benötigt. Mit den Informationen aus dem letzten Absatz könnte ein erster Entwurf so aussehen: 
    public class PersonCsvDeserializer {     public IEnumerable<Person> Deserialize(string fileName)     {       // ...     } } Als Rückgabewert habe ich IEnumerable<Person> gewählt, weil IEnumerable<T> ein sehr allgemeines Interface ist und einen Enumerator (auf deutsch: Aufzählung; in anderen Sprachen auch Iterator genannt) zur Verfügung stellt, mit dem wir über die Daten iterieren können (mit der foreach-Schleife). Sowohl IList<T>, ICollection<T>, IDictionary<T>, Array und weitere Klassen implementieren dieses Interface und mehr als über die Daten iterieren wollen wir nicht. Wenn wir später damit mehr machen wollen, können wir es leicht mit Linq in eine Collection, List, Array oder auch in ein Dictionary umwandeln. Die Deserialize()-Methode soll also eine Aufzählung von Personen zurückliefern.
    Normalerweise macht man es anders, aber aus einfachheit behaupte ich mal frech, dass die erste Zeile in der CSV-Datei immer ein Header besitzt. In der Implementierung überspringe ich den Header per Linq mit der Skip()-Methode. Die Deserialize()-Methode soll also folgendes machen:
    Die Datei lesen Durch die Datenzeilen iterieren Pro Datenzeile ein Person-Objekt erstellen Die Person-Objekte als Aufzählung zurückliefern Der erste Entwurf könnte daher folgendermaßen aussehen:
    public class PersonCsvDeserializer {     public IEnumerable<Person> Deserialize(string fileName)     {         IList<Person> result = new List<Person>();         foreach (string line in File.ReadAllLines(fileName).Skip(1))         {             string[] elements = line.Split(';');             result.Add(new Person             {                 Name = elements[0],                 Vorname = elements[1],                 Geschlecht = (Geschlecht)Enum.Parse(typeof(Geschlecht), elements[2]),                 Alter = Convert.ToInt32(elements[3])             });         }         return result;     } } Die Methode macht zwar was sie soll, aber ist sie wirklich übersichtlich? Nicht wirklich. Wir haben hier mehrere Ebenen miteinander vermischt. Wir können also mit dem Refactoring anfangen. z.B. das
    File.ReadAllLines(fileName).Skip(1) Wofür ist das genau gut? Wenn man den gesamten Kontext kennt, weiß man es zwar aber eigentlich liegt der Code-Abschnitt eine Ebene Tiefer. Es hantiert mit Dateien und hat mit der eigentlichen Aufgabe der Deserialiserung wenig zu tun. Also sollte man diesen Teil in eine separate Methode packen:
    private IEnumerable<string> ReadDataFromFile(string fileName) {     return File.ReadAllLines(fileName).Skip(1); } Somit wandert das Skip(1) in eine tiefere Ebene und interessiert uns in der Deserialize()-Methode nicht mehr. Als nächstes fällt aber auf, dass wir ein String mit Split() in ein Array teilen und aus diesem Array dann die einzelnen Personendaten herausfischen. Diesen Vorgang nennt man auch Parsing. Also könnten wir diesen Teil auch in eine Methode auslagern:
    private Person Parse(string serializedData) {     string[] elements = serializedData.Split(';');     return new Person     {         Name = elements[0],         Vorname = elements[1],         Geschlecht = (Geschlecht)Enum.Parse(typeof(Geschlecht), elements[2]),         Alter = Convert.ToInt32(elements[3])     }; } Unsere Klasse sieht dann bis jetzt folgendermaßen aus: 
    public class PersonCsvDeserializer {     public IEnumerable<Person> Deserialize(string fileName)     {         IList<Person> result = new List<Person>();         foreach (string serializedData in ReadDataFromFile(fileName))         {             Person person = this.Parse(serializedData);             result.Add(person);         }         return result;     }     private IEnumerable<string> ReadDataFromFile(string fileName)     {         return File.ReadAllLines(fileName).Skip(1);     }     private Person Parse(string serializedData)     {         string[] elements = serializedData.Split(';');         return new Person         {             Name = elements[0],             Vorname = elements[1],             Geschlecht = (Geschlecht)Enum.Parse(typeof(Geschlecht), elements[2]),             Alter = Convert.ToInt32(elements[3])         };     } } Nun ist Deserialize() doch recht gut lesbar. Wir lesen die Daten aus der Datei, parsen die Daten und erhalten ein Person-Objekt, welches wir dann in eine Liste packen und zum Schluss geben wir die Liste zurück.
    Es gäbe hier noch weiteres Verbesserungspotenzial aber ich belasse es erst mal hierbei. Ein paar Hinweise gebe ich aber noch:
    Fehler-Handling? Was passiert, wenn z.B. die Datei nicht existiert? Ist das erzeugte Objekt List<Person> wirklich eine gute Wahl? Angenommen, wir haben es mit einer riesigen CSV-Datei (mehrere Gigabytes) zu tun, die größer ist, als unser Arbeitsspeicher. Hier schmeiße ich mal das "yield return"-Schlüsselwort in den Raum. Auch ist das indexierte Zugreifen auf das Array in der Methode Parse() nicht wirklich glücklich gelöst. Was passiert nämlich, wenn mal eine Spalte in der Datei hinzukommt? Dann muss man ja auch den Code anpassen. Das will man aber eigentlich gar nicht. Zu diskutieren wäre auch, ob die Variable fileName nicht doch besser eine Instanzvariable sein sollte, die per Konstruktor reingereicht wird. Es fällt ja auf, dass die Methoden Deserialize() und ReadDataFromFile() den Dateinamen benötigen. Also stellt fileName ja eine gewisse Abhängigkeit dar, die die Klasse benötigt, um arbeiten zu können.  Als Überlegung kannst du ja selber mal schauen, wie man mit solchen Situation umgehst.
    Um später im Hauptpgramm alle Personen zu iterieren könntest du nun folgendes schreiben:
    static void Main(string[] args) {     string sourcePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\blabla";     IEnumerable<string> fileNames = Directory.GetFiles(rootPath, "*.csv");     PersonCsvDeserializer deserializer = new PersonCsvDeserializer();     foreach(string fileName in fileNames)     {         IEnumerable<Person> persons = deserializer.Deserialize(fileName);         foreach (Person person in persons)         {             // ...         }     } } Nach dem selben Prinzip, wie bei der PersonCsvDeserializer-Klasse kannst du ja mal überlegen, wie man nun diesen Code refactoren an.
    Ab hier wird es noch etwas technischer und tiefgreifender. Ich möchte dir noch zwei Techniken zeigen, die du aber erst mal nicht umsetzen brauchst.
    "Inversion of Control" und "Dependeny Injection"
    In der Klasse PersonCsvDeserializer fällt auf, dass die Klasse von einer Datei abhängig ist aber die Daten können vielleicht aus einer Datenbank kommen oder wir schreiben die CSV-Daten direkt in eine grafische Oberfläche. Möchte man jetzt für jeden Anwendungsfall eine eigene Klasse schreiben? Eigentlich nicht. Die Abhängigkeit zur Datei muss also aufgelöst werden. Das .Net-Framework bietet ja die abstrakte Klasse TextReader, die so ziemlich alles darstellen kann. Ein Reader, der eine Datei liest oder aus einem TCP-Stream oder aus einer Datenbank, etc. Anstatt also den Dateinamen reinzureichen, könnte man auch ein TextReader reinreichen.
    Hier mal ein Beispiel, wie so eine Klasse aussehen könnte:
    public class PersonCsvDeserializer {     private TextReader reader;     private bool isHeaderSkipped;     public PersonCsvDeserializer(TextReader reader)     {         this.reader = reader;     }     public IEnumerable<Person> Deserialize()     {         string serializedData;         while ((serializedData = this.ReadNextData()) != null)         {             Person person = this.Parse(serializedData);             yield return person;         }     }     private string ReadNextData()     {         string serializedData = this.reader.ReadLine();         if (!this.isHeaderSkipped)         {             this.isHeaderSkipped = true;             return this.ReadNextData();         }         return serializedData;     }     private Person Parse(string serializedData)     {         string[] elements = serializedData.Split(';');         return new Person         {             Name = elements[0],             Vorname = elements[1],             Geschlecht = (Geschlecht)Enum.Parse(typeof(Geschlecht), elements[2]),             Alter = Convert.ToInt32(elements[3])         };     } } Die Main-Methode sieht dann so aus:
    static void Main(string[] args) {     string sourcePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\blabla";     IEnumerable<string> fileNames = Directory.GetFiles(rootPath, "*.csv");          foreach(string fileName in fileNames)     {         using (TextReader reader = File.OpenText(fileName))         {             PersonCsvDeserializer deserializer = new PersonCsvDeserializer(reader);                          IEnumerable<Person> persons = deserializer.Deserialize();             foreach (Person person in persons)             {                 // ...             }         }       } } Zugegeben, in diesem Beispiel ist die Klasse PersonCsvDeserializer etwas komplizierter geworden aber es ist jetzt egal, woher die Daten stammen, solange wir ein TextReader in den Konstruktor schieben. Das reinrechen der Abhängigkeit in den Konstruktor nennt sich auch "Dependeny Injection". In diesem Beispiel habe ich auch das yield return verwendet. Da wir jetzt nur noch maximal den Speicher für ein Person-Objekt verbrauchen, könnte die Klasse eigentlich nun unendlich viele Daten deserialisieren. Ein Problem stellt aber immer noch die Indexierung des Arrays dar aber das überlasse ich jetzt dir.
    Das Interface
    Das letzte, was ich noch schreiben wollte, wäre ein geeignetes Interface für den Deserializer. Wollen wir jetzt mehrere Deserializer schreiben oder einen Deserializer als Abhängigkeit in eine Klasse reinreichen, ist ein Interface geeignet, damit es später egal ist, um welchen Deserializer es sich handelt. Man könnte sich ja auch vorstellen, dass die Daten nicht in einer CSV-Datei stecken, sondern in einer XML-Datei. Dafür wäre folgendes Interface recht nützlich
    public interface IDeserializer<T> {     IEnumerable<T> Deserialize(); } Mit diesem Interface könnten wir sogar das hässliche using im Hauptprogramm wieder loswerden. Ich finde, das using stört im Lesefluss. Wir haben ja jetzt eine Klasse, die CSV-Daten aus unterschiedlichsten Quellen von Personen deserialisieren kann. Was hindert uns nun daran, einen weiteren Deserializer zu bauen, der aus Dateien deserialisiert? Beispiel:
    public class PersonCsvFileDeserializer : IDeserializer<Person> {     private string fileName;     public PersonCsvFileDeserializer(string fileName)      {         this.fileName = fileName;     }     public IEnumerable<Person> Deserialize()     {         using (TextReader reader = File.OpenText(fileName))         {             PersonCsvDeserializer deserializer = new PersonCsvDeserializer(reader);             return deserializer.Deserialize();         }     } } Das using wurde nach PersonCsvFileDeserializer und somit eine ebene tiefer verschoben. Wenn du Dependecy Injection verstanden hast, dann würde dir auffallen, dass die Zeile 
    PersonCsvDeserializer deserializer = new PersonCsvDeserializer(reader); eigentlich böse ist, da es eine Abhängigkeit darstellt, die wiederum in den Konstruktor gehört. Ich habe sie aber erst mal hier drinnengelassen, weil das sonst wieder bedeuten würde, dass das using wieder ins Hauptprogramm rein müsste. Eigentlich müsste man sich eine Fabrik-Methode ausdenken, die den PersonCsvFileDeserializer zusammenbaut. Die habe ich hier aber weggelassen. Die kannst du dir ja ausdenken.
    Das Hauptprogramm würde dann so aussehen:
    static void Main(string[] args) {     string sourcePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\blabla";     IEnumerable<string> fileNames = Directory.GetFiles(rootPath, "*.csv");          foreach(string fileName in fileNames)     {         PersonCsvFileDeserializer deserializer = new PersonCsvFileDeserializer(fileName);                      IEnumerable<Person> persons = deserializer.Deserialize();         foreach (Person person in persons)         {             // ...         }      } } Das wäre doch schon wieder ein Schritt übersichtlicher. 
    Wie du also siehst, haben wir allein nur für das Einlesen von den CSV-Dateien drei Klassen:
    Person PersonCsvDeserializer PersonCsvFileDeserializer und ein Interface:
    IDeserializer<T> geschrieben. Man braucht also kein mega großes Projekt, um mehrere Klassen zu schreiben. Es reicht auch schon was ganz einfaches. Man sollte sich immer bewusst machen, dass Klassen immer nur eine Aufgabe machen sollten und Methoden Teilaspekte dieser Aufgabe sind und sie sollten auch nicht mehr machen, als eine Sache. Es macht auch nichts, wenn man zum Anfang Spagetticode schreibt und diesen später nach und nach einem Refactoring unterzieht. Niemand ist perfekt und niemand schreibt perfekten Code. Man fängt also immer erst mal an und arbeitet sich Schritt für Schritt an eine geeignete und saubere Lösung. Selbst meine Lösung ist mit Sicherheit nicht perfekt und ich habe auch nicht die Weisheit mit Löffeln gefressen. Wenn du mein Beitrag richtig verfolgt haben solltest, hast du vielleicht auch gemerkt, dass ich erst mal eine Lösung geschrieben habe und sie dann nach und nach verfeinert und verbessert habe. Das Wissen kommt erst mit Erfahrung und Erfahrung sammelt man nur, indem man es ausprobiert und darüber mit anderen diskutiert. Also trau dich.
    So, das reicht auch fürs erste. Ich denke, das ist erst mal genug Input.
     
  8. Like
    StefanE reagierte auf neinal in Arbeitsverträge werden immer unverschämter   
    Sorry. Wenn man es nicht versucht, wird man das, was man will, natürlich auch nicht erreichen.
    Klingt wie meine ehemaligen Kollegen... "Wo anders bekomme ich doch ganz bestimmt auch nicht mehr"... Ähm.. doch. Aber dafür muss ich natürlich auch mal den Arsch hochbekommen und was machen.
    Es kommt niemand klingeln und bietet dir einen tollen Job an. 
    Und wenn ich schon beim Lesen der Stellenbeschreibung denke, dass es eh nix wird, dann muss ich mich auch nicht wundern, wenn es nix wird. Vorstellungsgespräche sind eigentlich nur Gespräche, in denen man sich selber verkauft. Und wenn man mit der Einstellung da hin geht "Die geben mir eh nicht das, was ich haben will", dann wird man das in aller Wahrscheinlichkeit auch nicht bekommen. Weil man dann eben auch so auftritt. Im Vorstellungsgespräch muss man ganz genau wissen, was man für die Firma an Nutzen bringt. Was man wert ist. Was man kann. Nur dann, kann man sich auch richtig verkaufen.
     
  9. Like
    StefanE hat eine Reaktion von allesweg erhalten in Neue Forensoftware - Fragen und Feedback   
    Leaderboard
  10. Like
    StefanE reagierte auf DashDash in IT - eine Schweine Industrie?   
    Muss bei vielen Meetings immer hier dran denken.. :-)
  11. Like
    StefanE reagierte auf Chief Wiggum in Scrollen Windows CE 6.0 IE Webseite   
    Schafft euch mal aktuelle Hardware an, die Geräte (und damit auch der Browser) sind 10 Jahre alt. Touch war damals mit Stiftbedienung.
  12. Like
    StefanE reagierte auf Kwaiken in Neue Arbeitsstelle / mehrjähriges Projekt   
    Spesen, Wagen, (Sklaven-)Handy und Notebook sind stinknormale Arbeitsutensilien für einen Berater! Das ist so als ob man eine Firma in den Himmel lobt, die für ihre Angestellten Stuhl und Tisch zur Verfügung stellt.
    Auf meiner ganz persönlichen Consulting-Wunschliste stehen mittlerweile in absteigender Reihenfolge:
    freie Wahl des Fahrzeugs und der Ausstattung, ggf. mit Zuzahlung durch AN 3 / 2 / 1 / 1 - Woche (3 Tage für den Kunden vor Ort arbeiten, 2 Übernachtungen, 1 Tag Remote und 1 Tag Homeoffice) Selbstständige Bestellung von notwendigem Zubehör wie Büchern, ext. Festplatten, Maus, etc. bis Betrag X ohne auf Freigabe warten zu müssen ggf. höhere Spesen als die üblichen paar EUR / Tag oder Km bei Aufenthalt außer Haus, auch wenn sie versteuert werden müssen. Es geht mehr um "ein Zeichen für die Wertschätzung zu setzen", als um das Geld. Weiterbildungsbudget an X EUR und Y Tagen pro Jahr zum Abrufen. Ebenso fixe Forschungstage bei neuen Produkten / Funktionen ohne dennoch immer dringendst wegen Kundenprojekt rausgerissen zu werden (Policy: bei F&E Handy und Mail aus!) Im Büro kostenlose Softdrinks, Obst, Haferflocken / Müsli, etc. sowie Zuschlag zum Mittagessen. Wäscheservice für X Hemden und Y Anzüge / Woche (Freitags im Büro abgeben, nächsten Freitag zurück bekommen) Eine Firma die alles gleichzeitig anbietet habe ich nicht getroffen, das muss ich ehrlich zugeben. Aber ich Ihr könnt mir glauben, dass vor allem der oft unterschätzte Punkt 6 mich oft gerettet hat und bei Kollegen, die um 8:00 Uhr in die Telko müssen zur Verbesserung der Laune beiträgt, wenn sie länger schlafen und in der Firma beim gemuteten Mic frühstücken können.
    Aber Auto, Handy und Notebook pauschal als Vorteil beim Consultant-Dasein? Ne, sehe ich nicht so.
  13. Like
    StefanE reagierte auf L-1011-500 in Neue Arbeitsstelle / mehrjähriges Projekt   
    Es gab durchaus Zeiten, als man froh war in der IT überhaupt einen Job zu bekommen. Das was Du als "stinknormale Arbeitsutensilien" bezeichnest ist nicht stinknormal und 2003 durfte ich mir ein Notebook noch selber über ein Firmendahrlehn anschaffen. sprich: Ich habe es selber bezahlt! Ich habe genügend externe hier sitzen, die als als Consultants nicht sonderlich gut ausgestattet sind und sich zudem noch (nur) in 3-Sterne Hotels einbuchen dürfen
    Deine ganz persönlichen Consulting-Wunschliste ist für Otto Normalarbeitnehmer nicht erreichbar und auch jenseits des erreichbaren. Selbst die paar sehr hochpreisigen Consultants (keine Fachinformatiker sondern  durchweg alle mit 1´er  Studium der Informatik und gelebter Firmenehe) die hier sitzen sind so nicht ausgestattet und werden es auch niemals sein. Sicher .. .Du kannst Deine Wünsche gerne mal bei einem potentiellen Arbeitgeber äußern. Wundere Dich aber bitte nicht über die Antworten
    Und Dein "ein Zeichen für die Wertschätzung" wird genau so lange funktionieren, wie Du als Berater bei den Firmen Geld verdienst  Wertschätzung ..... ein nettes Wort.
    Ich hab das 13 Jahre hinter mir und glaube den Beratermarkt beurteilen zu können. Ich denke Du hast hier etwas sehr weltfremde Anforderungen.
    Gruß
    Holger
  14. Like
    StefanE hat eine Reaktion von JimTheLion erhalten in UPS kit für entwickler   
    Liebe(r) Luni,
    du wirst nicht umhin kommen ganz grundsätzlich einzusteigen. Die Community hilft dir bei ganz konkreten Fragestellungen, hilft Dir aber nicht die allerersten Schritte zu machen. Das musst Du selbst tun, z.B. mit einem Videotutorial in c# für Anfänger ohne Vorkenntnisse.
    Bzw: https://channel9.msdn.com/Series/Programmieren-fuer-Beginner-mit-C-
    Wenn du dann Fragen hast, komme gerne wieder her.
  15. Like
    StefanE hat eine Reaktion von Panawr erhalten in UPS kit für entwickler   
    Liebe(r) Luni,
    du wirst nicht umhin kommen ganz grundsätzlich einzusteigen. Die Community hilft dir bei ganz konkreten Fragestellungen, hilft Dir aber nicht die allerersten Schritte zu machen. Das musst Du selbst tun, z.B. mit einem Videotutorial in c# für Anfänger ohne Vorkenntnisse.
    Bzw: https://channel9.msdn.com/Series/Programmieren-fuer-Beginner-mit-C-
    Wenn du dann Fragen hast, komme gerne wieder her.
  16. Like
    StefanE reagierte auf stefan.macke in Netzwerkthemen "praktisch" lernen   
    Hast du es mal mit dem Aufsetzen von ein paar VMs versucht? Meine Studenten im 1. Semester bekommen immer die Aufgabe, einen Windows-Client, einen Windows-Server und einen Linux-Server zu verdrahten. Sprich:
    DHCP und DNS aufsetzen Active Directory aufsetzen Client in Domäne bringen Rechte auf Linux-Server über AD vergeben Netzlaufwerke einrichten Gruppenrichtlinien konfigurieren usw. Da sind wir zwar nicht mehr auf der 1./2. OSI-Schicht, aber die VMs selbst musst du ja auch konfigurieren (z.B. Netzwerkeinstellungen, NATing usw.).
    Kleiner Tipp: Suche dir eine konkrete Aufgabe, die du lösen willst/sollst. Einfach nur ein wenig am Netzwerk rumfummeln, bringt dich nicht weiter. Und noch ein Tipp: Hat dein/e Ausbilder/in keine praktischen Aufgaben für dich im Unternehmen? Dafür ist der Ausbildungsbetrieb doch da...
  17. Like
    StefanE reagierte auf Goulasz in Warum werde ich in keine Bewerbungsgespräche eingeladen?   
    Hallo @King in the North!
    Ha, amüsant. Ich hab eine ähnliche Laufbahn hinter mir.
    Abi mit 19 Zivildienst im Jugendzentrum 4 Semester Lehramt Sek II Deutsch/Englisch - abgebrochen weil zu idealistisch(Club der Toten Dichter lässt grüßen) und gleichzeitig zu disziplinlos(Auslandssemester in Azeroth) ans Studium herangegangen 1 Semester Soziologie mit Nebenfach Psychologie - abgebrochen weil ebenfalls zu theoretisch Jobben beim Schwiegervater im Hochregallager Ausbildung zum FiAe Mein Abi hab ich mit 2,4 gemacht. LKs waren Deutsch/Englisch. In Mathe hatte ich solide 4 Punkte im Abi in der Mündlichen.(fuck tha police) Interessiert niemanden mehr. Was ich an Mathematik benötige, eigne ich mir dann an, wenn ich es brauche. Was erst in den letzten 6 Monaten stärker passiert ist(Data Science, Business Intelligence-Zeugs).
    Ich habe auf die abgebrochenen Studiengänge im Anschreiben weniger Bezug genommen(die sieht man auch im Lebenslauf) als auf den Grund, warum ich jetzt akut eine Ausbildung machen möchte. Nämlich weil sich Computer, Entwicklung, Technik im Allgemeinen als roter Faden durch mein Leben ziehen und immer eine Konstante waren. Bring das ganz klar hervor. Warum willst du jetzt eine Ausbildung machen? Was erhoffst du dir davon? Warum die Fachrichtung? 
    Hauptpunkt für die Ausbildung war bei mir der "Mal richtig was arbeiten"-Praxisfaktor. Natürlich ist eine solide Theorie die beste Grundlage für eine gute Praxis, aber mir war "nur Theorie" zu öd und der Grund kam überall gut an. Gut, letztendlich bin ich in einem ziemlichen Gurkenbetrieb gelandet, wo ich für 400€ als billige Arbeitskraft eingesetzt wurde, aber ich hab mich auf den Hosenboden gesetzt, mir unter anderem hier im Forum Hilfe bzgl. der Rahmenbedingungen der Ausbildung(Projekt, etc.) geholt und meinen Abschluss gemacht. Wenn du den erstmal hast, ist der Rest wurst. Nach spätestens 2 Jahren BE geht es eh nur noch um Referenzen und Projekte. 
    Meine pädagogische(Lehramt) und an Sozialsystemen(Soziologie, Psychologie) interessierte Ader kann ich mittlerweile in der Firma, in der ich arbeite als Ausbildungstutor und Praktikantenbetreuer einbringen. Darüber hinaus lese ich viel in Richtung Organisationstheorien(Systemtheorie nach Niklas Luhman, Gerhard Wohland z.B.) und bringe mich da regelmäßig in entsprechenden Gruppen ein.
    Wenn du Bock hast, können wir uns gerne mal per PN austauschen, falls es nicht hier in den Thread passt.
    Gruß, Goulasz
     
    P.S.: The north remembers!
     
  18. Like
    StefanE reagierte auf DEACTIVATION_REQUEST_REJEC in Wirtschaftsinformatik aufsatteln?   
    Hallo @Gurki,
    ist schon ein Weilchen her aber auf den ersten Blick könnte es folgender Bericht gewesen sein:
    Abschlussbericht: "Evaluierung des IT-Weiterbildungssystems: Untersuchung des Nutzens der IT-Weiterbildung und des Verbleibs von Operativen und Strategischen Professionals"; 76 Seiten; Klick mich
    Edit: Wer nur einen kurzen Überlick haben möchte, einfach 4.1.4 auf Seite 24 ff. lesen.
  19. Like
    StefanE reagierte auf sylenz in Wirtschaftsinformatik aufsatteln?   
    Bei Bewertungen eines mehrjährigen Studiums schreibt man ja nun eher, was einen gestört hat, als das was einem positiv im Gedächnis geblieben ist :-).
    Pauschale Aussagen ("Alle Unterlagen sind mäßig") finde ich in dieser Richtung schwierig. Aus persönlicher Erfahrung kann ich sagen, dass es wahrscheinlich bei den meisten Anbietern Module gibt, die hoffnunslos veraltet sind (WBH - Verteilte Informationssysteme: Die Scripte sehen aus, als wären sie noch mit Schreibmaschine geschrieben :-)), aber der Großteil war echt gut und besonders bei Mathe ist die didaktische Aufbereitung geradezu überlebenswichtig.
  20. Like
    StefanE hat eine Reaktion von Gurki erhalten in Wie sieht der Home Screen (Apps) eures Smartphone aus?   
    Offensichtlich gibt es überdurchschnittlich viele iphone User auf Fi.de.

    Falls ihr es noch nicht gesehen habt, es gibt jetzt auch eine Fi.de App .

    Android folgt im Laufe der Woche...


    Sent from my iPhone using Fachinformatiker.de mobile app
  21. Like
    StefanE reagierte auf Gurki in Wie sieht der Home Screen (Apps) eures Smartphone aus?   
    Einige haben ja echt viele Apps drauf. Ich mag da irgendwie den Minimalismus und habe nicht für alles ne App. Die Meisten die ich drauf habe, verwende ich sogar kaum.
     
     


  22. Like
    StefanE reagierte auf Chief Wiggum in Wie sieht der Home Screen (Apps) eures Smartphone aus?   
    Boah, watt bin ich altmodisch...
    Mein Homescreen ist bis auf eine Analoguhr leer.
    Im Dock sind Browser, Mailclient, SMS und Telefon.
  23. Like
    StefanE reagierte auf afo in Wie sieht der Home Screen (Apps) eures Smartphone aus?   
    1.

    2.

    Bei Interesse kann ich von beiden gerne noch die anderen Screens posten.
  24. Like
    StefanE hat eine Reaktion von afo erhalten in Wie sieht der Home Screen (Apps) eures Smartphone aus?   
    Wer Traut sich? Ich fange an...


    Eigentlich nichts ungewöhnliches, oder?
  25. Like
    StefanE reagierte auf Whiz-zarD in Was tragt Ihr so für Uhren?   
    Eine Binäre Uhr von The One

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