Zum Inhalt springen

Whiz-zarD

Mitglieder
  • Gesamte Inhalte

    2.019
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    48

Alle Inhalte von Whiz-zarD

  1. Das tatsächliche Einfügen ist weniger das Problem, wobei hier die Festplatte der Flaschenhals ist, wenn es sich nicht um eine In-Memory-Datenbank handelt. Das eigentliche Problem wird gerne viel vielen Übersehen: Das Parsen. Es ist zwar für uns nur ein String, aber für ein DBMS harte Arbeit. Das Statement muss geparst werden, damit das DBMS weiß was der Nutzer überhaupt will. Danach wird ein Ablaufplan erstellt, wie man das Statement am performantesten abarbeiten kann. Dabei werden dann u.a. Statistiken der Tabellen und Indizes gelesen und dann wird der Plan abgearbeitet. Bis es zu er tatsächlichen Abarbeitung kommt, wird sehr viel Zeit verbraten und jetzt stelle dir mal vor, das muss das DBMS bei jedem der Tausend Insert-Befehle ausführen. Da wird Tausend Mal immer das selbe gemacht. Gängige DBMS-Systeme können dieses Problem ein wenig kompensieren, indem sie ein Query-Cache implementiert haben, mit dem überprüft werden kann, ob die Query, die gerade geparst werden soll, nicht schon vorher geparst wurde. Das klappt mal mehr, mal weniger gut. Man sollte sich also im Klaren sein, dass ein DBMS auch kein Hexenwerk ist und nicht alles in Echtzeit schafft. Man sollte sich schon damit befassen, wie ein DBMS arbeitet und was man vermeiden sollte. Ein DBMS würde ich auch nicht selbstentwickeln. Erst mal fehlt mir dazu einfach das nötige Know-How und zweitens wozu auch? Es haben sich schon sehr viele andere den Kopf darüber zerbrochen. Ich habe schon Firmen erlebt, die meinten, sie wären Schlauer als Oracle und haben Datenbank-Funktionalität nachprogrammiert. Haben Zehntausende Euro verbraten und was kam raus? Eine instabile Lösung, die jegliche Form von Weiterentwicklung ausbremste.
  2. Ein Hinweis: Ein Insert-Befehl pro Datensatz ist extrem inperformant. Bei 10 Datensätzen ist es noch kein Problem, aber wenn es über 1.000 sind, dann kann es schon einige Zeit dauern, bis alles in die Tabelle geladen wurde. Das ist auch einer der Gründe, warum sich Microsofts O/R-Mapper Entity Framework sich nie richtig durchsetzen konnte, denn dort wurde tatsächlich jeder Insert einzeln ausgeführt. Inzwischen hat Microsoft das Entity Framework komplett neu entwickelt, um diese Fehler zu korrigieren. Je nach dem wie groß das Projekt wird, würde ich ein O/R-Mapper empfehlen, der das dann übernimmt. Dann erzeugt man per Java-Code lediglich nur eine Liste von den Geschäftsobjekten aus der CSV-Datei (Deserialisierung) und sagt dann dem O/R-Mapper, er solle die Liste in die Datenbank einspielen. In Java dominiert der O/R-Mapper Hibernate. Selber SQL-Statements generieren würde ich eigentlich nicht, da man dann sich abhängig von der Datenbank macht und vielleicht möchte man sie irgendwann wechseln. Jede Datenbank hat so seine Eigenheiten und ein O/R-Mapper kapselt diese Eigenheiten, sodass man sich darüber kaum Gedanken mehr machen muss. Aber ich weiß nicht, was du vorhast oder welchen Wissensstand du besitzt aber wenn für dich der O/R-Mapper zu viel Overhead bedeutet, dann generiere doch einfach per Code ein Insert-Statement und schicke es zur Datenbank. Eine CSV-Datei auslesen ist ja nicht schwer.
  3. Was verstehst du denn unter "Konventionen"? Eine Konvention ist ja eine Vereinbarung. Darunter versteht man in der Softwareentwicklung eher sowas wie Namensgebung, Einrückungen, etc. Es gibt zwar empfohlende Konventionen aber das kann sich auch von Firma zu Firma unterscheiden. Keiner muss sich daran halten. Das, was du wohl meinst, sind wohl so etwas wie Design Patterns. Zum Thema Design Patterns kann man noch das gleichnamige Buch von Erich Gamma erwähnen, was eigentlich so zur Pflichtlektüre gehört. Ich kenne das Buch "Code Complete" nicht aber ich denke, das meiste, was man dort findet, findet man auch im Buch "Clean Code". Zumindest liest sich die Agenda sehr ähnlich. Man darf auch nicht vergessen, dass Robert C. Martin als einer Erfinder des Begriffs "SOLID" gilt, was die Welt der objektorientierten Programmierung der letzten 10 Jahren sehr geprägt hat. Ansonsten könnte man noch Begriffe wie Test-driven Development (TDD) und Design-driven Design (DDD) in den Ring werfen. Dazu gibt es dann auch noch haufenweise Bücher aber das sind Praktiken, die man Anwenden kann, wenn man schon mehr Erfahrungen gesammelt hat.
  4. In Japan gilt eigentlich per Gesetz die 40-Stunden-Woche. Einigen Unternehmen ist es auch gestattet, dies auf 44 Stunden auszuweiten. Darunter zählen z.B. Einzelhandelsgeschäfte oder Kinos. Das Bild des Arbeitswütigen Japaners stammt aus den 80ern und noch in die 90er hinein. Damals gabs Todesfälle wegen Überarbeitung aber dies wurde von denen gar nicht verlangt. 1997 hat man dann die 40-Stunden-Woche per Gesetz verabschiedet um der Arbeitswut Einhalt zu gebieten und so viel ist von der Arbeitswut auch gar nicht mehr übrig. Sie ist zwar immer noch recht hoch, aber inzwischen wollen die Japaner auch mehr Zeit für sich und ihrer Familie haben. Viele Firmen bieten sogar inzwischen eine 4-Tages-Woche an. Auch sind die Japaner sehr sozial eingestellt. So übernehmen viele Firmen auch inzwischen die Kita-Kosten, geben einen Mietzuschuss oder bezahlen Kindergeld. Davon können wir hier nur Träumen. Auch wenn man eine sehr lange Zeit Krank ist, bekommt man oft sein Gehalt sechs Monate ausgezahlt. Hier sind es nur 6 Wochen. Danach gibt es hier nur das Geld der Krankenkasse. Es bleiben also nichts weiter als Klischees übrig.
  5. Ja, das Buch ist zu empfehlen und eines der Pflichtlektüre, wenn es um Clean Code geht. Es ist aber ein Irrglaube, wenn du denkst, dass Clean Code gleichzeitig auch eine bessere Performance bietet. Clean Code ist einfacher zu lesen und zu warten aber das hat nichts mit Performance zu tun. Um Performance würde ich mir auch erst mal keine Gedanken machen, sondern es geht erst mal darum, sein Code sauberzuhalten. Wie Einrückungen gemacht werden ist Geschmackssache und auch von Sprache zu Sprache unterschiedlich. Java und C# haben eine nahezu identische Syntax und dennoch sind die empfohlenden Namenskonventionen von Klassen/Methoden unterschiedlich. Während in z.B. Java empfohlen wird, eine Methode so zu schreiben: public void method() { // mach was } Wird sie in C# so empfohlen: public void Method() { // mach was } Und Python definiert die Blöcke nicht mit geschweiften Klammern, sondern mit Tabs. Da wird man also gezwungen, sauer einzurücken. Man muss aber auch darauf achten, dass hier Java gemeint ist, denn in der C#-Welt wird dies ebenfalls nicht empfohlen. In der C#-Welt ist es üblich, dass Interfaces mit einem großen I anfangen und für den eigentlichen Namen nimmt man ein Adjektiv (z.B. IDisposable) oder ein Nomen (z.B. IList). In C# endet auch die konkrete Implementierung nicht mit Imp oder Impl. Das braucht man auch nicht, da schon durch das große I erkennbar ist, was ein Interface und was eine Klasse ist. (z.B. die Klasse List implementiert das Interface IList).
  6. Warum nicht? Ob ich jetzt mehrere Threads auf einer Maschine oder mehrere Prozesse auf mehreren Maschinen starte, spielt für die Parallelität keine Rolle. Fakt ist, es wird parallel etwas verarbeitet.
  7. Anstatt einen Monolithen zu bauen wird heutzutage die Microservice-Architektur bevorzugt. Man startet also nicht einzelne Threads, sondern ganze Prozesse, die untereinander mit einem Messagebroker kommunizieren. Die Microservice-Architektur lässt sich auch einfacher skalieren, da die Microservices auf unterschiedliche Server gehostet werden können und für jeden Microservice kann dann eine geeignete Persistenzschicht gewählt werden. Weil das vielfach einfach nicht nötig tut und over-engineering wäre. So lange es auch auf andere Wege funktioniert, die einfacher zu händeln sind, würde ich nicht auf eine Parallisierung setzen. Nicht überall ist eine Parallisierung schneller, da eine Parallisierung auch mehr Overhead bedeutet. In einigen Fällen ist eine Parallisierung sogar auch langsamer als eine sequentielle Abarbeitung. Besonders wenn die Threads miteinander kommunizieren und aufeinander warten müssen.
  8. Nicht immer ist eine Parallelisierung sinnvoll. Eine Parallelisierung ist nur dann sinnvoll, wenn man auch wirklich eine Berechnung parallelisieren kann und diese auch von der Parallelisierung profitiert. Etwas zu parallelisieren, nur damit die Berechnung 2 Sekunden dauert, anstatt 5, ist einfach unnütz. Du wirst selbst heute noch sehr wenig mit Parallisierung zu tun haben. Eher mit Nebenläufigkeiten, um Daten asychron zu berechnen/zu laden. Parallelisierung wird oftmals erst zum Thema, wenn es Performanceprobleme gibt. Ehrlich gesagt, würde ich mich schon freuen, wenn ich sogar von Entwicklern mit mehrjähriger Erfahrung kein Spaghetticode mehr ansehen muss. Es ist einfach traurig, dass selbst viele Freiberufler und Consulting Agenturen noch nie etwas von Clean Code oder SOLID gehört haben. Aber zum Thema: Warum sollte man es nicht erwähnen, dass man sich mit Themen wie Nebenläufigkeit schon mal auseinandergesetzt hat? Man erwartet ja kaum in Vorstellungsgesprächen, dass er alles ins Detail kennt. Selbst die Stichworte, die der TE aufgeschrieben hat, ist mehr als so manch ein Diplominformatiker weiß. Beim Vorstellungsgespräch kann man ja mit offenen Karten spielen und sagen, dass man sich bis jetzt nur in der Theorie damit auseinandergesetzt hat. Wenn ich einen Azubi einstellen würde, würde ich es auch nicht mal verlangen, dass er weiß wie man so etwas programmiert.
  9. Naja, was will man auch erwarten? Du bist kein ausgebildeter fachinformatiker, sondern die Firmen soll dich ausbilden. Wenn du schon alles weißt, bräuchtest du ja keine Ausbildung mehr. Außerdem muss man sich ja aus der Menge herausstechen. Da könnten solche Fachbegriffe schon hilfreich sein.
  10. Warum sollte man sowas nicht erwähnen? Das zeigt, dass du dich intensiver mit den Themen beschäftigst und da es um ein Ausbildungsplatz gehen soll, kann man sowieso nicht erwarten, dass du schon alles kennst. Die Nebenläufigkeit und die Parallelisierung sind auch ein sehr komplexe Themen. Siehe z.B. das Philosophenproblem (mal unter Wikipedia suchen).
  11. Ich gehe davon aus, dass er/sie meinte, dass der Informatiker nicht wissen muss, wie man ein Drucker oder ein Betriebssystem installiert. Informatiker wurden dann oft in der Wissenschaft eingesetzt um z.B. Algorithmen zu entwerfen. Da braucht man eigentlich keine Programmier-, oder Administratorkenntnisse. Die Informatik ist die Wissenschaft Informationen systematisch zu verarbeiten. Von Programmieren ist da erst einmal keine Rede.
  12. Ja, das tun sie. Aus mehreren Gründen: Die Anforderungen der Firmen gegenüber den Azubis ist deutlich gestiegen. Wo man früher zu meiner Zeit (ich bin jetzt 32 Jahre alt) Azubis noch mit Haupt- und Realschulabschluss eingestellt heute, wird heute schon Fachhochschulreife oder Abitur verlangt. Es ist schon sehr schwer, überhaupt Firmen zu finden, die ausbilden. Ich wohne in Raum Hamburg (aber noch in Schleswig-Holstein) und obwohl Hamburg neben Berlin als DIE IT-Stadt in Deutschland gilt, gibt es kaum Firmen, die FIAEler ausbilden. Auf der IHK-Lehrstellenbörse sind es gerade mal 18 Lehrstellen. Sind die Reaktionszeiten einiger Firmen extrem hoch. Von vielen Firmen bekommt man nicht mal eine Antwort. Ist das Einstigsgehalt eines Studienabsolventen höher, als einem Absolventen einer Ausbildung. Kann ich dir sagen: Die Anforderungen der Schulen werden weiter gesenkt. In Schleswig-Holstein ist es schon so, dass man ab der siebten Klasse nicht mehr sitzenbleiben kann. Man wird also komplett bis zur neunten Klasse durchgeschliffen und hat dann automatisch den Hauptschulabschluss (oder wie sich dieser heute nennt). In Schleswig-Holstein hat man auch nun die Noten der letzten Jahre verglichen und festgestellt, dass sie durchschnittlich so schlecht wie noch nie waren. Als Konsequenz daraus, wir das Niveau an Schulen wohl noch weiter gesenkt. Die andere Seite der Medaille ist aber, dass Schleswig-Holstein noch nie so viele Abiturabsolventen mit einem Schnitt von 1,0 hatte. Früher gabs pro Schule vielleicht alle drei oder Jahre mal so einen Absolventen. Heute sind es gleich mehrere pro Jahr. Da kann man eigentlich sehen, dass das heutige Abitur-Niveau eher dem Niveau des damaligen Realschulabschlusses gleicht. Das Bildungssystem von Schleswig-Holstein galt damals, gleich nach Bayern, als das härteste System in Deutschland. Bei den Wirtschaftsinformatikern spricht man auch Klischeehaft von den BWLern der Informatik. Ein Wirtschaftsinformatiker programmiert eigentlich auch nur sehr wenig, sondern ist eher für die Planung der Anwendungssysteme zuständig, um den Betrieb zu optimieren und automatisieren. Wenn du also Wirtschaftsinformatiker suchst, die auch programmieren können sollen, dann musst du schon schauen, wie deren Studium aussah. Allgemein kann man aber sagen, dass Wirtschaftsinformatiker, die auf einer Fachhochschule studiert haben, eher das Programmierhandwerk gelernt haben, als Absolventen einer Universität. Ja, das halte ich auch für Problematisch. Die Medienwelt spricht zwar von der "digital native"-Generation, da die jungen Leute heute mit Internet, Smartphones und Co. aufwachsen, aber kaum ein jugendlicher macht sich noch Gedanken darüber, wie die Technik überhaupt funktioniert. Ich gehe auch stark davon aus, dass nur die wenigen Jugendlichen wissen, was überhaupt ein Byte ist. Witzig fand ich auch die Story eines Arbeitskollegen, der berichtete, dass sein Sohn nicht mal mehr weiß, was eine Diskette ist aber gleichzeitig ist das heutige "Speichern"-Symbol immer noch eine Diskette. Die Jugendlichen kennen also das "Speichern"-Symbol, wissen aber gar nicht was das Symbol darstellen soll.
  13. Nein. Ein Zeichensatzproblem wäre es nur, wenn anstatt ä ein kryptisches Zeichen geschrieben wird. Das ä wird dann vorher in ein ae umgewandelt.
  14. Whiz-zarD

    Regex-Frage zu Java

    Ah ja, stimmt. Ich bin kein großer Regex-Experte. * steht ja für 0..n. Unter java kannst du reguläre Ausdrücke mit der Pattern- und Matcher-Klasse auswerten: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html (Ich merke schon, ich müsste mich echt mal wieder mit Java beschäftigen. Nach 5 Jahren C# hat man doch vieles von Java verlernt ^^)
  15. Whiz-zarD

    Regex-Frage zu Java

    Dein Code ist auch komplett unübersichtlich. Teile es in Klassen und Methoden auf. Das ist ja reiner Spaghetticode. Die Methode macht viel zu viel. Zu deiner Frage: Der Ausdruck ".*" ist immer true, wenn der String nicht leer ist, da der Ausdruck bedeutet, dass beliebige Zeichen beliebig oft im String stehen dürfen. Die Frage ist also, was willst du damit ausdrücken? Edit: Interessant. Selbst bei leeren String gibt er True zurück.
  16. Natürlich geht das. Das Zauberwort habe ich schon im ersten Beitrag genannt: Ajax Was meinst du, wie z.B. Google Maps in eine Webseite eingebunden wird? Das ist auch nichts anderes als ein asynchroner HTTP-Request. Es gibt kein ICMP-Ping! Ping ist nur der Name eines Tools, was nur die Paketumlaufzeit mit Hilfe eines ICMP Echo-Rquests misst. Der Name des Tools ist völlig unerheblich. Du könntest auch ein eigenes Tool schreiben, was ein Echo-Request abfeuert und es "Hallo" nennen. Außerdem: Ein Echo Request ist so ziemlich nichtssagend, denn genauso gut könnte auch die Gegenstelle der Flaschenhals sein. Also nicht der Nutzer hat eine schlechte Verbindung, sondern der Server. Mit einem Echo Request würde man das nicht rausbekommen. Da müsste man sich u.a. dann schon die Route (z.B. mit dem Tool tracert (Windows) bzw. traceroute (Linux)) anschauen, die für das Datenpaket gewählt wurde. Netzwerkprobleme können so vielseitig sein. Es könnte auch ein DNS-Problem vorliegen. Die ganzen Probleme lassen sich nicht mit einem Echo-Request und einer UDP/TCP-Verbinung lokalisieren und deshalb ist es schon quatsch das Rad neuzuerfinden. Da wäre ich schon auf gängige Tools setzen. Ein Beispiel für ein Netzwerkproblem: Vor einem Jahr beklagten Kabel Deutschland/Vodafone Kunden, dass sie Probleme mit dem Spiel Diablo 3 hatten. Die Paketumlaufzeit zu den Diablo 3-Servern war extrem hoch (die werden schon im Spiel gemessen). Schuldig war die Route, die für diese Pakete gewählt wurde, da diese durch mehrere Netzwerke gingen, die sehr langsam waren. Kabel Deutschland/Vodafone hat deswegen extra für die Diablo 3-Server eine andere Route festgelegt.
  17. Das funktioniert aber nur so lange, wenn die Netzwerkverbindung tatsächlich steht aber diese nur langsam ist. Hat Kunde x gar keine Netzwerkverbindung, so kann er auch die Webseite nicht aufrufen. Ich bin zwar kein Netzwerkadministrator aber es gibt doch tonnenweise Tools für die Netzwerkanalyse.
  18. Wozu soll dann der Server dienen, wenn die Logik im Client liegt? Der Vorteil bei einer Client-Server-Applikation ist der, dass der Client dumm ist und nichts weiter macht, als die Eingabe vom Benutzer entgegen zu nehmen und die Resultate vom Server anzuzeigen. Der Client besitzt keinerlei Businesslogik. Außerdem müssste JavaScript dann auf native Anwendungen zurückgreifen (z.B. ping.exe) und wäre dann somit vom Betriebssystem abhängig und wäre somit nicht mehr Plattformunabhängig.
  19. Da frage ich mich eher, wieso man keine abstrakte Basisklasse verwendet, wenn die generierten Klassen schon so repetitiv, sodass man sie mit einem Codegenerator generieren kann? Wäre dann nicht vielleicht der Einsatz eines O/R-Mappers sinnvoller? Dokumentation ist sowieso so ein Thema für sich. Ja, in der Abschlussprüfung sollte man Wert drauf legen aber in der Praxis werden aber kaum Dokumentationen geschrieben. UML-Diagramme habe ich bis jetzt noch in keiner Softwareentwicklungsfirma gesehen. Klassendiagramme werden häufig dafür verwendet, um Abhängigkeiten festzustellen, die aufgelöst werden müssen oder um die Komplexität einer Klasse festzustellen. Also Dinge die man erst beim Refactoring braucht. Auch Ablauf- oder Sequenzdiagramme sieht man recht selten, weil die Abläufe der Software teils so komplex werden, sodass Diagramme nicht zu einer besseren Dokumentation beitragen und vereinfachte Diagramme, wie z.B. "Kunde drückt Button -> Server erstellt Report -> Server schickt Kunde den Report" braucht kein Mensch. Von Testprotokollen halte ich auch sehr wenig. Was soll den protokolliert werden? Üblicherweise schreibt man Unittests. Soll man die Ergebnisse der Unittests ausdrucken? Also das alles Grün ist? Ich gehe auch nicht davon aus, dass die IHK prüft, ob auch sinnvoll getestet wurde. Sprich, ob man die Testpyramide bestmöglich einhält. Ich halte die Vorgehensweise der IHK für sehr altmodisch. Auch das, was Rienne von der IHK zitert hat, hört sich für mich eher nach einem Wasserfallmodell an, wo schon vor der Implementierung klar ist, was und wie es implementiert werden soll. Das passt aber nicht zur heutigen agilen Softwareentwicklung und die Vorgaben der IHK sind mehr hinderlich als fördernd, weil sie ein völlig veraltetes Bild der Softwareentwicklung zeigen. Per Wasserfall hat man noch in den 80ern und 90ern entwickelt. Wer das heute noch tut ist auf dem Markt nicht mehr konkurrenzfähig, da der Markt sich rapide ändert und man muss mit diesen Änderungen klarkommen und das ist bei einem Wasserfallmodell nicht möglich und gerade durch das Wasserfallmodell entstehen solche Szenarien. Also im Klartext: unwartbarer Legacy Code, der historisch gewachsen ist, bei dem Refactoring eine komplette Neuentwicklung bedeuten würde. Wenn ich jedes Mal ein Cent bekommen würde, wenn ich höre, dass der Code speziell wäre, wäre ich schon Millionär.
  20. Ich hab zwar auch nicht so viel mit Javascript zu tun aber ich würde es als Client-server-applikation entwickeln. Der Client schickt per Ajax-technik ein HTTP-Request an den Server und der Server führt dann den Request (z.B. der ICMP-Echo-Request) aus und das Ergebnis schickt er zum Client zurück, welches der Client dann anzeigt.
  21. Ich wäre da auch sehr vorsichtig, denn es klingt nicht so ganz, dass ihr wisst, was ihr da tut. Wozu ein Verschlüsselungsalgorithmus? Baut ihr den Algorithmus selber? Was soll überhaupt verschlüsselt werden? Wird die Verbindung zum Server verschlüsselt? Wie wollt ihr es denn überhaupt hinbekommen, dass keine Rückschlüsse auf die Wahl und dem Login gezogen werden können? Schließlich muss gewährleistet werden, dass ein Mitarbeiter nur ein mal Wählen darf und gleichzeitig muss die Wahl anonym gespeichert werden. Es darf z.B. mit Hilfe von Zeitstempeln oder IP-Adressen keine Rückschlüsse gezogen werden, wer wen gewählt hat. Das muss unterbunden werden und das ist nicht gerade trivial. Dazu braucht man zwei physisch getrennte Systeme. Ich denke mal, dass ihr euch da ganz schön übernommen habt und auch gar nicht im Klaren seid, welche Risiken in so einen System sich verbergen. Da zerbrechen schon sehr viele ihren Kopf und es gibt ganze Firmen, die sich auf solche Systeme spezialisiert haben und ich denke nicht, dass ein Student aus dem zweiten Semester und ein Azubi dies mal so eben aus den Ärmeln schütteln können. Man liest ja immer wieder, dass E-Wahlen-Projekte wieder eingestellt werden.
  22. Nicht jeder ist Single und hat nur einen Ein-Person-Haushalt. Es gibt Menschen, die essen lieber am Abend mit seinem/ihrem Lebensgefährten und von einem Essen in der Firma hat der Partner nichts von. Folglich muss hier so oder so Geld ausgegeben werden. Außerdem: Woher soll das Essen denn kommen? Nicht jede Firma hat Platz für eine Kantine und von Fraß aus Alu-Schalen oder Fast-Food halte ich sowieso nicht viel.
  23. Naja, unter einem Ehrenamt verstehe ich was anderes ...
  24. Wenn es ehrenamtlich ist, kann man es doch auch mal vorstellen, oder nicht?

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