Wenn Du Bock hast, dass Du deine Datenbank nur lokal hast - why not.

Ich nutze Bitwarden auf einem eigenen RaspberryPi, so hab ich die Datenbank auch unter meiner Hoheit, aber den Vorteil, dass ich es easy auf allen Geräten und mit VPN auch von unterwegs nutzen kann.

Bitwarden gibt's auch als Cloud-Dienst, aber dann liegen deine Daten bei dem Betreiber, das wollte ich nicht.

...zur Antwort

Klingt ziemlich wenig.
Ob das gerechtfertigt ist, kannst aber nur Du wissen.

Rechne durch, wie lange Du tatsächlich brauchst, aber nicht in Tagen, sondern in Stunden. Und plane das auch nicht Pi Mal Daumen, sondern konkret, was ist nötig und wie viel Zeit brauchst Du dafür. Dann überlegst Du dir einen Stundensatz, multiplizierst den mit der Zeit, schlägst Puffer drauf und hast deinen Preis.

Bei 7 Tagen und 1950€ wären das:

7 Tage * 8 Stunden pro Tag * Stundensatz = 1950€
Stundensatz = ca. 35€ ohne Puffer

Nur so als Orientierung:
Viele Firmen verlangen Stundensätze von deutlich über 100€ und z.B. wir schlagen nochmal 50% für Qualitätssicherung und Puffer drauf. Mit 130€ Stundensatz und +50% wären das dann 10.920€, also ganz erheblich mehr.
Freelancer verlangen teilweise sogar noch mehr, da sie auch Kundenakquise, Flauten ohne Kunden, Versicherungen und Co. finanzieren müssen, allerdings hängt das auch immer vom Projekt ab. So wäre der Preis für einen langlaufenden Vertrag (z.B. ein Jahr an einem Projekt) niedriger, da der Mensch in dieser Zeit dann keine finanziellen Lücken und Zeit für Kundenakquise einplanen muss.

Ob Du das aber verlangen kannst oder willst, musst Du entscheiden. Du musst abschätzen, wie viel der Kunde bereit ist zu zahlen und ob deine Arbeit den Preis auch wert ist, immerhin erwartet man bei höheren Preisen auch entsprechend einen Gegenwert und eine entsprechend hohe Qualität.
Wenn Du z.B. noch Anfänger bist und ein erfahrener Entwickler nur zwei Tage brauchen würde, könnte ich verstehen, wenn der Kunde nicht die vollen 7 Tage zahlen will.
Und Du musst auch bedenken, dass ein so extrem niedriger Preis auch ein Vorteil sein kann, da die meisten Konkurrenten deutlich mehr verlangen.

Bedenke aber auch deine finanzielle und rechtliche Absicherung. Es kann je nach Vertrag und Rechtslage z.B. sein, dass Du auf Bug-Meldungen oder sogar finanziellen Schäden durch einen von dir eingebauten Bug sitzen bleibst, dagegen helfen Versicherungen, aber die wollen auch Geld.

...zur Antwort

Niemand gibt dir Geld für eine Idee, solange diese Idee nicht offensichtlich extrem gewinnbringend und patentiert ist.

  1. ist extrem unwahrscheinlich, sonst gäbe es das schon ein rundes Dutzend Mal
  2. ist teuer

Soll heißen:
Im besten Fall zeigt man dir den Vogel, im schlechtesten Fall zeigt man dir den Vogel, klaut dann deine Idee und Du sitzt mir gar nichts da.

Du kannst aber auch auf "üblichem" Weg an Geld kommen, also arbeiten gehen oder (Familien-) Kredit. Einen Kredit bei der Bank bekommt man ohne fein säuberlich ausgearbeiteten Plan und hohen Absicherungen nicht so leicht, ganz besonders solange Du minderjährig bist. Ein Familien-Kredit ist ganz einfach: Hau deinen Vater oder irgendwen anders aus der Familie an, die verarschen dich hoffentlich nicht.
Und Arbeit kommt für dich nicht in Frage, als Minderjähriger (oder Berufseinsteiger) wirst Du niemals in halbwegs braucharen Zeitspannen genug Geld zusammen kratzen können.

Wenn Du das Geld doch irgendwo her bekommen solltest, kannst Du einen Dienstleister mit der Entwicklung beauftragen. Allerdings ist das alles andere als einfach, weil:

  • Wenn sie für dich mitdenken und hohe Qualität liefern sollen, sind sie extrem teuer.
  • Wenn sie günstig sein sollen, denken sie nicht für dich mit und liefern miese Qualität.

Die Planung so einer Software ist extrem komplex und selbst wenn der Dienstleister das für dich macht (heißt: Sie denken für dich mit), musst Du beurteilen können, ob deren Arbeit was taugt und auch das ist nicht gerade einfach.
Also entweder Du brauchst zumindest Ahnung von dem Thema, um deren Arbeit einschätzen zu können, oder sehr viel Ahnung und Erfahrung, um alles fein säuberlich selber so planen zu können, dass der Dienstleister damit arbeiten kann.
Und wenn die Planung verhauen wird, dann hast Du am Ende ein teures Stück Software, was unter Umständen nicht einmal das tut, was Du willst und vermutlich nicht wartbar ist, was bedeutet: Wenn Du etwas ändern oder korrigieren lassen willst, darfst Du neu anfangen, ergo: Noch viel teurer.
Oder der Dienstleister fährt einen agilen Ansatz, so hast Du die meiste Kontrolle im Entwicklungsprozess, allerdings dauert sowas deutlich länger (heißt: teurer), da man ganz bewusst nicht alles 100% durch plant, um hinterher bei Planungsfehlern die Folgen im Griff zu haben.

Professionelle Softwareentwicklung ist (natürlich abhängig vom Projekt) sehr komplex und teuer, es kommt sogar vor, dass ganze Firmen sterben, weil sie sich mit ihrem Projekt verkalkuliert haben, weil das deutlich aufwändiger und/oder teurer wurde, als ursprünglich geplant. Sowas kann Budgets schnell auffressen oder man stellt Jahre später fest, dass die Software von der Zielgruppe nicht angenommen wird oder jemand anderes schneller war und man bleibt auf allen Kosten sitzen.

Lange rede, kurzer Sinn: Lass es bleiben.

Wenn Du von deiner Idee überzeugt bist, dann lerne alles, was Du brauchst, um sie selber umzusetzen. So kann es zwar immer noch sein, dass jemand anderes dir zuvor kommt, aber das Risiko hast Du immer. Dafür hast Du aber nicht das Risiko, dass Du alles verlierst, weil deine einzige Investition ist deine eigene Zeit. Außerdem lernst Du auf diese Weise eine wertvolle Fähigkeit und - sollte deine Idee klappen - hast das Knowhow, um dir professionelle Unterstützung (Dienstleister oder Mitarbeiter) zu suchen.

Wie man es auch dreht und wendet, solange Du oder deine Familie nicht im Geld schwimmen ist selber entwickeln eigentlich die einzige Option.

...zur Antwort

Das geht in vielen Berufen, eben alle, bei denen man eigentlich nur am PC arbeitet. Aber die Firmen müssen das auch wollen.

Ich arbeite derzeit 100% im Homeoffice.
Ein früherer Arbeitgeber hat das aber maximal schwer gemacht und wollte es eigentlich gar nicht.
Viele Firmen fahren eine Misch-Variante, z.B. zwei Tage Homeoffice, drei Tage Büro.

...zur Antwort

Zur Systemintegration kann ich nichts sagen, aber zur Anwendungsentwicklung.
Systemintegration sollte aber ähnlich sein.

Er meint, dass man ständig etwas Neues lernen muss

Stimmt, außer Du arbeitest in einer Firma, die auf der Stelle tritts. Ob die Firma auf der Stelle tretend auch lange konkurrenzfähig bleiben kann, ist eine andere Frage.

Aber ja, es stimmt, in diesen Berufen sollte man Spaß daran haben, neue Technologien zu lernen, allerdings vermute ich, dass das in der Systemintegration etwas entspannter ist, als in der Anwendungsentwicklung.

dass man im jüngeren Alter ausgenutzt wird

Es gibt immer Firmen, die ihre Mitarbeiter ausnutzen, unabhängig vom Beruf.
Es hängt aber auch davon ab, was dein Kollege mit "ausgenutzt" meint, mein Verständnis davon kann ich jedenfalls nicht bestätigen. Allerdings bin ich auch nicht der Typ Mensch, der sich ausnutzen lässt ^^

Zudem findet man im fortgeschrittenen Alter keinen Job mehr, weil man sich nicht mehr so gut an die ständigen Neuerungen anpassen kann

Die Auswahl wird kleiner, das kann schon sein.

Aber es gibt auch Firmen, die stellen ganz bewusst ältere Leute ein, um dem jungen Team die Erfahrungen des Älteren zu "impfen", auch wenn der dann nicht das gleiche leisten kann, wie die jüngeren Kollegen.
Und es gibt auch viele Firmen, die auf stein alten Technologien sitzen und nicht modernisieren wollen oder können und die brauchen auch Mitarbeiter.

Aber klar, wer mit der Zeit geht (bzw. gehen kann) hat es natürlich leichter.

dass Erfahrung quasi nichts bringt

Das ist Quatsch.
Erfahrung ist sehr wichtig.
Aber die tollsten Erfahrungen sind nichts wert, wenn man die Technologien nicht kennt, um sie nutzen zu können. Also das gleiche wie bei den älteren Kollegen, nur dass die den Bonus von wirklich sehr viel Erfahrung haben.

immer jüngere Menschen bevorzugt werden

Das hängt vermutlich sehr von der Firma und dem Budget ab.

Softwareentwickler sind teuer und junge Leute sind natürlich günstiger.
Gerade die guten Senior-Entwickler wissen um ihren Wert und können entsprechend viel verlangen, das können sich kleinere Firmen häufig einfach nicht leisten. Außerdem sind solche Leute selten. Es gibt aber auch Firmen, die es sich leisten können und die um deren Wert wissen, es gibt sogar ein paar Ausnahmefälle, die 7-stellig verdienen, einfach weil die Konzerne sie an sich binden wollen.

Auf der anderen Seite bringen jüngere Menschen häufig mehr Begeisterung mit, die im Beruf sehr viel wert sein kann.

Viele Firmen suchen daher nach genau diesem Sweet-Spot: Billig, aber riesiges Potential und die findet man am ehesten in jüngeren Generationen.

Das heißt aber nicht, dass ältere Leute pauschal abgelehnt werden, Du musst dich "nur" verkaufen können. Wenn Du zeigen kannst, dass Spaß am Beruf, Begeisterung für die Technologien *und* Erfahrung hast, dann stichst Du auch junge Bewerber aus.

Daher könne man diesen Job nicht bis ins hohe Alter ausüben.

Nun, ich bin 31, entsprechend kann ich dazu nichts aus eigener Erfahrung sagen.
Aber ich habe in meiner Laufbahn ältere Kollegen gesehen, die häufig einen hohen Status in der Firma genossen, wegen ihren umfangreichen Erfahrungen mit den Projekten und Prozessen der Firma. Und ich habe letztens mit einem Leiter eines Weltkonzerns gesprochen, der ein neues Team aufstellen wollte und dafür bewusst einen deutlich älteren Kollegen eingestellt hat, gerade wegen seiner Erfahrungen.

Abgesehen davon herrscht massiv Fachkräftemangel und das wird auch noch einige Zeit so bleiben. Eventuell ändert KI etwas daran, aber ich vermute eher, dass es den Job verändern und viel Fleißarbeit reduzieren kann, während die Firmen, die versuchen, ihre Mitarbeiter durch KI zu ersetzen, massiv auf die Nase fallen und dann wieder zu menschlichen Mitarbeitern wechseln.
Es gibt aber noch die Leute, die nur Fleißarbeit können, die werden natürlich ersetzt, wie in allen anderen Berufen auch.

Aber so oder so solltest Du keine 50 Jahre in die Zukunft planen, in so viel Zeit kann wirklich alles passieren. Mach das, worauf Du heute Lust hast und beobachte in den nächsten Jahren immer, was so in deinem beruflichen Umfeld passiert, damit Du reagieren kannst, sollte es nötig sein. Wir leben in einer extrem schnelllebigen Zeit, um nicht auf der Strecke zu bleiben, musst Du mit der Zeit gehen, egal in welchem Beruf Du arbeitest.

...zur Antwort

Das Buch kenne ich nicht, aber entscheidend ist, dass es nach 2016 raus kam.

2016 hat Microsoft mit einem grundlegenden Umbau von .NET-Ökosystem begonnen, die Sprach-Syntax ist zwar gleich, aber vieles drum herum hat sich geändert.
Mehr oder weniger beendet wurde der Umbau mit .NET 5 im Jahr 2020, aber 2019 sollte dennoch in Ordnung sein, kannst Du also dabei belassen.

Denke aber nicht, dass Du dann durch bist, solche Bücher können nur die Grundlagen lehren, alles andere wäre einfach zu viel. Du musst also so oder so separat weiter lernen und dann kannst Du dir ja auch die Sprach- und Framework-Neuerungen seit 2019 anschauen.

Und Du solltest, auch wenn im Buch Visual Studio 2019 gezeigt wird, mit 2022 arbeiten, das sollte machbar sein, im schlimmsten Fall musst Du mal kurz recherchieren, wo man XY macht.

...zur Antwort

Gebrochenes Display = Keine Hoffnung

Das Display ist der mit Abstand teuerste Part am Fernseher, den Rest kann man tauschen, bei Display lohnt sich das nicht.

Du kannst natürlich trotzdem schauen, ob Du bei Ebay fündig wirst, wenn Du es dann auch selber einbaust, könnte es sein, dass Du günstiger davon kommst. Die Chance, dass man dir Mist andreht oder Du beim Einbau das neue Display oder andere Teile kaputt machst, wäre mir aber zu groß.

...zur Antwort

Ich empfehle MAUI Hybrid.
Fang aber erst einmal nur mit Blazor ohne MAUI an, da das um einiges einfacher ist.
Danach kannst Du dich dann mit der Integration in MAUI befassen.
Microsoft bietet für beides Anleitungen, einfach danach suchen.

...zur Antwort
Finde ich gut.

Für Wirtschaft, Energieversorgung und Klimawandel absolut sinnvoll.
Ob sie der Weisheit letzter Schluss sind ... vermutlich nicht, aber derzeit sind sie das beste, was wir haben.

Und ob Windräder bei mir in der Nähe stehen, ist mir herzlich egal, solange der Abstand groß genug ist, dass auch bei einem starken Sturm nichts passieren kann.

...zur Antwort
Ich bin dafür (weil…)

Es ist zwingend notwendig.

Die ganze Welt ist schon seit vielen Jahren global und digital vernetzt.
Wer in dieser Welt sich auch zurecht finden will, muss damit umgehen können.

Digitalisierung in der Schule ist also um ein Vielfaches wichtiger, als sowas wie Gedichtinterpretation.

Damit meine ich aber nicht, dass die ganze Arbeit 100% digital stattfinden soll, aber der Umgang mit Computern, einigen zentralen Programmen und - ganz entscheidend - dem Internet will gelernt sein. Und nur, weil ein Kind schon von klein auf im Internet unterwegs ist, kann es noch lange nicht damit umgehen.

...zur Antwort
was anderes

Es hat gaaannz am Anfang viel von Java übernommen, das grundlegende Konzeppt stammt von Java.
Und das ist auch ganz normal. Die meisten Programmiersprache (oder generell Technologien) kupfern mehr oder weniger viel von anderen Programmiersprachen ab und entwickeln es weiter, so funktioniert die IT-Welt.

Seit dem hat sich aber sehr viel getan, C# ist dem ursprünglichen Vorbild auch in einigen Dingen weit voraus. Heute haben beide Sprachen bis auf die Syntax, dieses grundlegende Konzept und ein paar kleine Details nicht mehr viel gemeinsam.

Das mag auf den ersten Blick zwar gleich aussehen, aber wenn man sich etwas näher mit den Details beschäftigt, sieht man, dass es da weit mehr sehr große Unterschiede gibt, als Gemeinsamkeiten.

...zur Antwort
bei einem Passwortmanager ist phishing ja quasi unmöglich oder nicht?

Wieso? Du kannst immer noch manuell hin gehen und das Passwort selber raus suchen und eintragen, könnte ja sein, dass die Match-Erkennung falsch eingestellt ist.

Und dann gibt's auch noch diverse Wege, das Passwort auf deinem PC direkt abzufangen, ein Passwortmanager ist auch nur ein Programm, der Daten im RAM zwischenspeichert und wobald ein Passwort irgendwo eingetragen werden soll, muss es zwangsläufig im klartext im RAM liegen, da führt kein Weg dran vorbei.

Oder das Master-Passwort von deinem Passwortmanager wird geknackt, was machst Du dann?

Ich würde 2FA nicht bei jedem Account einrichten, aber bei den besonders wichtigen Accounts ist das schon sinnvoll.

...zur Antwort
Wie funktionieren Klassen in C#?

Hallo, ich habe große Verständniss Schwierigkeiten mit meinen momentanigen Thema in meinem IT Kurs. Wir machen aktuell C# und antscheind habe ich das Prinzip einer Klasse noch nicht ganz verstanden. Ich werde meinen Code unten rein packen, um Fragen geklärt zu bekommen.

Kontext zum Code

Ich soll im allgemeinen ein Programm schreiben, indem man 4 oder mehr Wiederstände miteinander verrechnet. Dazu soll eine Klasse Wiederstand erstellt werden. Eine Instanz der Klasse kann nur mit der Angabe des Widerstandswerts gebildet werden. Der Wert kann gelesen, aber nicht verändert werden. Instanzen der Klasse Widerstand können mit + addiert werden. Dann ergibt sich der Widerstand, als Gesamtwiderstand einer Reihenschaltung. Der Operator / berechnet den Gesamtwiderstand einer Parallelschaltung. Die Methode ToString() liefert den Widerstandswert als Text mit Einheit zurück. Dazu sollen wir zudem ein User Interface anlegen.

Meine Fragen in Bezug auf den Code:

  1. Wieso kann ich in Operatoren nur 2 Operatoren gleichzeitig überschreiben? Dazu soll ich ja mehrere Wiederstände beispielsweise in eine Reihenschaltung schalten. Den + operator überschreibe ich ja so, dass ich: R1 + R2 zusammen addieren kann. Das geht ja jedoch nur mit max: R1 + R2 + R3 und dann ist schluss. Die einziege Lösung, die mir da einfällt ist ein Array und eine Schleife zu benutzen.
  2. Als zusätzliche Lösung für mein 1 Problem, habe ich überlegt statt einen Operator zu überschreiben eine einfache Funktion anzulegen, die dies berechnet. Jedoch ist das nicht die Aufgabenstellung. Dazu meine Frage: Wieso keine Funktion benutzen sondern einen Operator überschreiben, wo liegt da der Sinn?
  3. Die Frage bezieht sich auf den Code hinter dem User Interface. Wie kann ich generell auf meine Klasse zugreifen und vom User eingebende Werte in meine Klassen Vabriable Wert schreiben? Muss ich dazu immer eine neue Klasse erstellen?
  4. Wie hängt der Operator mit der Vabriable Wert meiner Klasse zusammen? In den Operatoren habe ich ja Vabriablen wie R1 und R2. Wie werden also dort die verschiedenen Werte herrein geschrieben?

Hier mein Code: (ich kann den leider nur als Foto beilegen, da es sonst die Zeichengrenze überschreitet)

Vielen Dank an jeden, der sich die Geduld und Zeit nimmt mir zu helfen, da ich bald eine Klausur schreibe und schon ein bisschen Verzweifelt bin!

...zur Frage

Frage 1

Das hängt damit zusammen, wie die Operatoren ausgewertet werden.
Es wird von links nach rechts immer nur ein Operator ausgewertet und das Ergebnis wird dann für den nächsten Operator verwendet und so weiter.

Beispiel:

var a = new Test(1);
var b = new Test(2);
var c = new Test(3);
var d = new Test(4);
var x = a + b + c + d;

Console.WriteLine(x.Zahl);

class Test
{
    public static Test operator +(Test x, Test y)
    {
        Console.WriteLine($"{x.Zahl} + {y.Zahl}");
        return new Test(x.Zahl + y.Zahl);
    }
    
    public int Zahl { get; }
    
    public Test(int zahl)
    {
        Zahl = zahl;
    }
}

Ausgabe:

1 + 2
3 + 3
6 + 4
10

Frage 2:

Das musst Du den Lehrer fragen.
Ich halte es für sinnvoll, solche Funktionen zu kennen, aber für einen Anfänger ist das dann doch etwas unnötig, besonders da man es in der Praxis so gut wie nie braucht. Häufiger sind da die Operatoren "==" und "!=", das sehe ich tatsächlich immer mal wieder.
Generell halte ich das Beispiel für fragwürdig.

Frage 3:

Ich finde es etwas befremdlich, dass Du diese Frage stellen musst, das lässt an der Qualität des Kurses zweifeln.

Du kannst nicht direkt auf die Methoden zugreifen, Du brauchst dafür eine Instanz der Klasse.

Wiederstand a = new Wiederstand(Box1);
Wiederstand b = new Wiederstand(Box2);
Wiederstand c = a + b;
Wiederstand d = a / b;

Anders wäre das, wenn die Methode statisch ist, dann brauchst Du keine Instanz, sondern kannst sie direkt aufrufen. Aber Du sollst ja mit Operatoren arbeiten und dafür brauchst Du Instanzen.

Frage 4:

Ich hatte ja schon geschrieben, dass Operatoren von links nach rechts ausgewertet werden. Zur Laufzeit wird dann die Variable links vom Operator und die rechts davon verwendet. Der Operator selber ist am Ende nur eine besondere statische Methode, die vom Compiler eingesetzt wird.

Mein Beispiel von oben:

var a = new Test(1);
var b = new Test(2);
var c = new Test(3);
var d = new Test(4);
var x = a + b + c + d;

Das kann man auch so umschreiben:

var x = ((a + b) + c) + d;

Oder so:

var x1 = a + b;
var x2 = x1 + c;
var x3 = x2 + d;

Und der Compiler macht daraus:

var x1 = Test.op_Addition(a, b);
var x2 = Test.op_Addition(x1, c);
var x3 = Test.op_Addition(x2, d);

Die Methode heißt tatsächlich so, sieht man auch daran, dass folgender Code nicht funktioniert:

public static Test operator +(Test x, Test y)
{
    return new Test(x.Zahl + y.Zahl);
}
    
public static Test op_Addition(Test x, Test y)
{
    return new Test(x.Zahl + y.Zahl);
}
error CS0111: Type 'Test' already defines a member called 'op_Addition' with the same parameter types

PS:

Das alles gilt natürlich auch für die anderen Operatoren.

...zur Antwort
Ich befürchte es nicht weil…

Wir haben keine "echte" KI und sind auch noch sehr weit davon entfernt.
Vielleicht erlebe ich noch, dass es da erste Durchbrüche gibt, aber Weltherrschaft durch KI sicher nicht mehr.

Wir haben nur Sprachmodelle, Bild-Generierung, etc. und die haben auch noch einige Macken. Sie sind gut im simulieren von "intelligenter" menschlicher Sprache, aber es bleibt nur eine Simulation.

Die weitaus größere Gefahr geht von den Missbrauchsmöglichkeiten von uns Menschen aus.

...zur Antwort

Telegram kann das.

...zur Antwort

Wenn's dir keinen Spaß macht, lass es bleiben.

Und ja, Deadlines können stressig sein, aber nur, wenn die Deadline zu knapp bemessen ist. Je nach Firma haben die Mitarbeiter aber selber Einfluss und es wird großzügig Puffer eingeplant.

Komplett ohne Stress geht aber kein Beruf, es wird immer stressige Phasen geben, das ist normal.

...zur Antwort