Guten Tag,

Das Gefühl, welches du bekommst, weil du weißt, dass du nicht alles weißt, ist völlig normal. Das wirst du auch im Job später oft erfahren und du wirst dich einfach mit der Zeit daran gewöhnen.

Zu deiner Frage, was du konkret lernen musst, um einen Job zu bekommen, hängt von der Rolle und den Jobs, für die du dich bewerben möchtest ab.

Wenn du dich z.B. als Web-Entwickler oder Backend-Developer bewerben möchtest, sind manche skills wichtiger als andere.

Zeit spielt auch eine Rolle, falls du jetzt eher schnell einen neuen Job brauchst, dann solltest du dich genau auf die gefragten Skills fokussieren. Wenn du unter keinem Zeitdruck stehst, kannst du dich eher in verschiedenen Bereichen ausprobieren und deine Skills erweitern, was dir später sehr viel helfen wird.

Wichtig dabei ist natürlich auch, dass diese langen Listen nicht unbedingt ein Ausschlusskriterium sein müssen, sondern oft einfach eine Wunschliste für den idealen Kandidaten sind.

Hoffe das hilft dir weiter.

LG

...zur Antwort

Hey,

ich weiß nicht genau, was du mit „Hardware verknüpfen“ meinst, aber wenn du verschiedene Schnittstellen miteinander verbinden willst, kannst du:

  1. Einen Service nutzen, z. B. Zapier, mit dem du einfach viele verschiedene Services miteinander verbinden kannst.
  2. Es selbst bauen. Das ist besonders praktisch, wenn du schon Programmierkenntnisse hast, kannst du einfach die OpenAI API und eine geeignete Text-To-Speech API nutzen.

Es gibt natürlich auch Libraries, die das, was du beschreibst, noch erleichtern, wie Langchain, aber wie zuvor erwähnt, das funktioniert nur, wenn du schon Vorkenntnisse in einer Programmiersprache hast.

Hier die Links:

Langchain https://docs.langchain.com/docs/

Zapier https://zapier.com/apps/chatgpt/integrations

OpenAI https://platform.openai.com/

...zur Antwort

Dann musst du das escapen:

//span[@class=\"default-label-box\"][@key=\"M[0]Series\"]/text()

...zur Antwort

Mit // am Anfang kannst du relative Pfade angeben. In deinem Fall kannst du das auch so schreiben:

//span[@class="default-label-box"][@key="M[0]Series"]/text()

...zur Antwort

Ich bin mir nicht 100 % sicher. Der Code läuft ja auf einem Server, also sollte es funktionieren, ABER entscheidend ist es auf was für einem Server das läuft, genauer gesagt, wo deine App gehostet wird. Um Selenium auszuführen, musst du eine Browserinstanz starten und das braucht bestimmte permissions(Ports, Dateien usw.).

...zur Antwort

Arrow-Functions sind völlig okay für Funktionale React Components, da du hier nicht wirklich mit this arbeitest. Abgesehen davon, stellt diese Regel nur sicher, das dein Code einheitlich ist. Damit sowas nicht passiert:

function A() {
  return <div/>
}

const B = () => {
  return <div/>
}

Wenn du Arrow-Functions verwenden willst, solltest du

    "react/function-component-definition": [2, { "namedComponents": "arrow-function" }]

zu deiner Eslint Configdatei hinzufügen.

Wenn dir das Egal ist und du alle Optionen benutzen möchtest, dann solltest du die Regel einfach abschalten.

  "react/function-component-definition": "off"
...zur Antwort

Hey,

dafür benötigst du Media Queries, mit denen der Browser weiß, welches Css er z.B. anhand der Größe des Bildschirms des Users benutzen soll.

https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries

...zur Antwort

Du hast recht, einfach nur Routes Clientseitig zu beschützen ist natürlich nicht sehr sicher, deswegen sollte man sicher gehen dass das auch Serverseitig beschützt ist. Protected Routes werden verwendet um eine bessere UX zu liefern. Da du ja hier einen Clientseitigen Router benutzt, solltest du auch hier prüfen, ob der User auf diese Seite darf, genau wie du das mit einem Serverseitigen Router machen würdest.

Wenn du das nicht machst, würdest du Clientseitig anfangen die Seite zu rendern, feuerst einen Request für irgendwelche Daten ab, bis die Antwort vom Server kommt, dass der User gar nicht auf die Seite darf. Dann würdest du redirecten oder irgendeinen Fehler anzeigen, was vom Flow nicht sehr gut ist.

Besser ist es schon vorher wissen zu können, ob der User auf die Seite darf und schon redirecten zu können. Damit sparst du dir auch den Request an den Server.

...zur Antwort

Hey,

als erstes hast du transform in .card1 falsch geschrieben, da steht nämlich tranform.

Zweitens überschreibst du mit deiner Animation das rotate und mit transform: translate(0, 0px) usw. und deswegen passiert nichts.

...zur Antwort

Hey,

kommt drauf an was du erreichen willst.

Wenn du ` if (window.pageYOffset > 1)` im Top-Level, ohne Scrolleventlistener verwendest, wird das nie true sein, da pageYOffset beim initialen Render 0 sein wird (wurde ja nicht gescrollt). Außerdem gibt es ` document.content.style.display` nicht, du solltest eher ` document.body.style.display = "none"` verwenden.

Hier mal das ganze als Beispiel:

window.addEventListener("scroll", () => {
    if(window.pageYOffset > 1) {
        document.body.style.display = "none"
    }
})
...zur Antwort

So einen Shortcut gibt es meines Wissens nach nicht und ist denke ich auch zu spezifisch. Du könntest aber mitHilfe eines Linters wie z.B. prettier oder eslint, semicolons automatisch bei speichern der Datei setzen lassen, ohne dass du drauf achten musst.

Hier ein paar Links die dir vielleicht weiterhelfen könnten:

https://prettier.io/docs/en/editors.html

https://www.digitalocean.com/community/tutorials/linting-and-formatting-with-eslint-in-vs-code

...zur Antwort

Typescript checkt nur bei Compiletime, ob die Typen passen. Wenn du während der Runtime irgendwo einen Int erwartest und ein Objekt zurückbekommst, dann hast du das nicht richtig typisiert und solltest vielleicht wie von TechPech1984 vorgeschlagen, mal die Werte per `console.log` oder mit dem Debugger ausgeben lassen. Wir können ja nicht wissen wo du die Werte herbekommst.

...zur Antwort

Kommt drauf an was du mit hinzufügen meinst. Hostest du deine Webseite über Cloudflare und deine API woanders?

Cloudflare selbst besitzt einen Datenbank Service namens Worker KV mit dem du Daten speichern kannst. Ein Key-Value Store der sich besonders für Daten eignet die du häufig liest aber selten updatest oder schreibst. Diesen kannst du aber leider nur von einem Cloudflare Worker aus benutzen.

https://www.cloudflare.com/products/workers-kv/

Andere Managed-Services wie z.b. MySQL oder so hat Cloudflare nicht.

...zur Antwort

Hey, dafür benötigst du eine Library die es dir erlaubt, deinen Webbrowser zu automatisieren. Mit Selenium kannst du das ganz einfach machen.

https://www.python-lernen.de/selenium-fernsteuern-browser.htm

...zur Antwort

Hey, bin kein Python Profi aber damit du variablen bzw. den Code aus einer Datei benutzen kannst, muss der Python Interpreter das interpretieren. Mit open() öffnest du die Datei nur und bekommst text zurück. Du hast ein paar Optionen:

  • eval() benutzen, um deinen text interpretieren zu lassen und das Ergebnis zu bekommen.

https://pythongeeks.org/python-eval-function/

  • Deine Datei dynamisch als Module importen

https://www.geeksforgeeks.org/how-to-dynamically-load-modules-or-classes-in-python

...zur Antwort

Guten Tag.

Was hast du denn bisher versucht?

Bilder kannst du ganz einfach mit <img src="pfad"/> zu deiner Website hinzufügen.

Schau hier:

https://de.w3docs.com/html-lernen/html-bilder.html

Wenn es eher darum geht wo und wie du deine Bilder hosten kannst, dann kannst du das auch auf Cloudflare machen.

Schau mal hier:

https://developers.cloudflare.com/images/cloudflare-images/upload-images/dashboard-upload/

...zur Antwort

Hey,

focus() aufrufen verursacht keinen rerender. React rendert Komponente neu, wenn sich der State geändert hat. Ein input element im focus zu setzen ändert nichts am State, sondern benutzt einfach die DOM API um das zu bewältigen. Die useRef Hook sorgt dafür, dass deine Referenz zwischen den Re-rendern gleich bleibt und nicht zurückgesetzt wird. Hier ein kleines Beispiel, hoffe es hilft. https://codesandbox.io/s/objective-breeze-1oropt

...zur Antwort

Hey, der schwierigste Teil deines Bots wird es sein, die Daten von diesen Webseiten zu bekommen. Jede Webseite ist anders, manche stellen zum Teil ihre Daten in Form einer API zur Verfügung, andere müsstest du crawlen, um nach den Suchanfragen zu suchen. Genau da würde ich erstmal anfagen, versuch einfach mal nur das Beispiel, welches du genannt hast, in Form eines Prototypen zu nachzubauen. Das geht mit Python ganz gut, vielleicht nicht so schnell, aber sollte trotzdem klappen, einfach mal nach Wörtern wie python crawler oder python http requests googlen (kommt drauf an welches von beiden du brauchst). Nachdem du das geschafft hast, würde ich noch eine andere Webseite probieren und vielleicht erst dann ein Interface bauen.

...zur Antwort

Hey, kann nicht viel helfen ohne selbst auf deine Seite zu gehen. Sieht so aus als würde der Request von deinem HTML Dokument stammen, was aus dem (index) zu erkennen ist. Hast du schon probiert deine Seite über ein privates Browserfenster zu testen. Kann sein dass diese Datei von einer deiner Extensions geladen wird. Wenn das nicht hilft, solltest du gucken ob du irgendwelche Libraries/Plugins auf deiner Seite benutzt, die dieses CSS Datei laden.

...zur Antwort

Hey,

das liegt wahrscheinlich daran, dass das favicon noch im Cache ist. Einfach mal einen hard reload machen und es sollte angezeigt werden.

https://www.filecloud.com/blog/2015/03/tech-tip-how-to-do-hard-refresh-in-browsers/

...zur Antwort