Zuerst könntest du mit Scratch anfangen. Es ist eine sehr einfache Programmiersprache entwickelt vom MIT. Hier ist alles grafisch aufgebaut und die Sprache bietet einen sehr einfachen Einstieg in die Spieleprogrammierung.

Eine passende Tutorial-Serie zu Scratch findest du zum Beispiel hier:

Scratch-Game-Tutorial-Playlist

Falls du noch nicht so gut in Englisch bist, kannst du YouTube Videos einfach automatisch auf Deutsch übersetzen. Dazu wähle das Zahnradsymbol im Video unten rechts im Player, welches das Tab "Einstellungen" öffnet.

Einstellungen > Untertitel > Automatisch übersetzen (runter scrollen) > Deutsch

Tipp: Neben dem Programmieren kann ich dir stark empfehlen deine Englisch-Kenntnisse zu verbessern. Es hilft enorm auf deinem Weg zum Entwickler, weil du so Zugriff auf einen großen Support-Pool erhältst.

---------------------------------------

Nachdem du mit Scratch Erfahrung gesammelt hast, solltest du den Übergang zu einer Hochsprache angehen.

Ein typische Empfehlung ist hier die Programmiersprache C, weil du damit eigentlich so gut wie alles umsetzen kannst.

Einen sehr gelungenen Übergang von Scratch zu C und die Einführung in die Programmierung liefern zum Beispiel die ersten 5 Videos von dem CS50 Kurs "Einführung in die Informatik" der Harvard Universität.

  1. Computational Thinking & Scratch
  2. C Programming Language
  3. Arrays and Sorting Algorithms
  4. Memory
  5. Data Structures

---------------------------------------

Sobald du die Grundlagen der Programmierung verstanden hast solltest du dich für eine Engine entscheiden.

Hier ein gutes Video dazu:

https://www.youtube.com/watch?v=j48LtUkZRjU

Eine gute Wahl könnte zum Beispiel Unity sein, weil sie auch eine 2D Engine unterstützt und viele Hobby-Entwickler damit arbeiten. Dadurch ist die Wahrscheinlichkeit hoch auf viele deiner Fragen, die du definitiv auf deinem Weg haben wirst, auch Antworten zu erhalten.

Eine kostenlose Möglichkeit um die Grundlagen von Unity zu lernen ist die offizielle Lernplattform Unity Learn. Hier hast du Zugriff auf eine Vielzahl von kostenlosen Kursen für Anfänger und Fortgeschrittene. Der Kurs "Unity Basics" ist ein großartiger Einstieg in die Unity-Entwicklung

https://learn.unity.com/

---------------------------------------

Wenn du die Basics in allen vorher genannten Bereichen erlernt hast kann ich dir zum Abschluss noch die Einführung in Game-Development der Harvard-Universität empfehlen:

Einführung in die Spiele-Entwicklung

Dort lernst du zum Beispiel noch die Skriptsprache Lua und weitere typische Merkmale der Spiele-Entwicklung kennen

---------------------------------------

Viel Spaß und viel Erfolg auf deinem Weg!

...zur Antwort

Wenn es schnell gehen soll, kannst du einfach die Klasse stopwatch aus dem Namespace System.Diagnostics nutzen.

using System;
using System.Diagnostics;


class Program
{
    static void Main(string[] args)
    {
        // Aufforderung an den Benutzer, eine beliebige Taste zu drücken, um die Stoppuhr zu starten
        Console.WriteLine("Drücke eine beliebige Taste, um die Stoppuhr zu starten.");
        Console.ReadKey(); // Warten auf eine Benutzereingabe


        // Erstellung einer neuen Stopwatch-Instanz und Start der Stoppuhr
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();


        // Aufforderung an den Benutzer, eine beliebige Taste zu drücken, um die Stoppuhr anzuhalten
        Console.WriteLine("Die Stoppuhr läuft. Drücke eine beliebige Taste, um sie zu stoppen.");
        Console.ReadKey(); // Warten auf eine Benutzereingabe


        // Stoppen der Stoppuhr und Ausgabe der verstrichenen Zeit
        stopwatch.Stop();
        Console.WriteLine("Die Zeit ist abgelaufen: {0}", stopwatch.Elapsed);


        Console.ReadLine(); // Warten auf eine Benutzereingabe, um die Anwendung zu beenden
    }
}

In diesem Code wird die Klasse Stopwatch verwendet, um die Zeit zwischen dem Starten und Anhalten der Stoppuhr zu messen.

Zuerst wird der Benutzer aufgefordert, eine beliebige Taste zu drücken, um die Stoppuhr zu starten. Dann wird die Stoppuhr gestartet.

Danach wird der Benutzer erneut aufgefordert, eine beliebige Taste zu drücken, um die Stoppuhr anzuhalten.

Sobald die Stoppuhr angehalten ist, wird die verstrichene Zeit ausgegeben

...zur Antwort

Du könntest es so lösen:

VBS-Code

Set oWSH = CreateObject("WScript.Shell")
vbsInterpreter = "cscript.exe"

For i = 1 to 8
    For j = 1 to 8 - i
        WScript.StdOut.Write " "
    Next
    For j = 1 to (i * 2) - 1
        WScript.StdOut.Write "X"
    Next
    WScript.StdOut.WriteLine ""
Next

Kurze Erklärung zu Syntax:

Set oWSH = CreateObject("WScript.Shell") erstellt ein neues Objekt, welches eine Schnittstelle zu Windows Script Hosts bereitstellt. Dieses Objekt kann dann verwendet werden, um Befehle an den Command Prompt zu senden.

vbsInterpreter = "cscript.exe" legt den Interpreter fest, der verwendet werden soll, um das Skript auszuführen.

WScript.StdOut.WriteLine und WScript.StdOut.Write sind Methoden des WScript-Objekts, die dazu verwendet werden, um Ausgaben in die Command Prompt-Konsole zu schreiben.

WriteLine schreibt eine Zeile Text und springt anschließend zur nächsten Zeile

Write hängt den Text an die aktuelle Zeile an.

Mit For und Next erstellst du die Schleifen

------------------------------------

Den Code speicherst du dann unter einem selbst gewählten Namen, zum Beispiel triangle.vbs

Danach kannst du die Datei über die Kommandozeile in dem Verzeichnis aufrufen, wo die Datei sich befindet.

  1. Öffne die Kommandozeile
  2. Navigiere zu deiner Datei. Zum Beispiel so: cd c:\Users\User\Desktop\triangle.vbs
  3. Öffne die Datei mit dem Befehl cscript triangle.vbs
...zur Antwort

Coole Idee. Soviel ich weiß, soll es wohl möglich sein, aber es gibt dabei einige Einschränkungen und es ist wesentlich aufwändiger, als nur die Videos des Marketplace zu benutzen.

Zum Beispiel sind nur bestimmte Formate erlaubt, wie mp4. Außerdem darf das Video nicht zu groß sein (ich glaube max. 50 MB) und du musst einen Cloud-Service nutzen, der unterstützt wird (Google Drive, Dropbox etc.)

Außerdem müsstest du wahrscheinlich auch ein Script dafür schreiben.

-------------------------------------------------

Wenn du das probieren möchtest (ohne Garantie):

Du könntest zum Beispiel dein Video in mp4-Format, bei Google Drive hochladen (bei Google Drive Anmelden und dann oben links auf "+ Neu" > Datei hochladen).

Danach dann den Link für Roblox vorbereiten:

  1. Öffne Google Drive
  2. Klick mit der rechten Maustaste auf das Video und wähle "Link abrufen" aus dem Kontextmenü.
  3. Stelle sicher, dass die Option "Jeder der über den Link verfügt" ausgewählt ist.
  4. Klick auf "Link kopieren" und füge den Link in die Zwischenablage ein.

Sobald du den Link hast, kannst du ihn in deinem Lua-Code einfügen.

Ein Beispiel:

local videoFrame = script.Parent:WaitForChild("VideoFrame")
local video = "https://drive.google.com/file/d/name-des-videos/view" -- Hier den Link des Videos einfügen

function playVideo()
    videoFrame.Source = video
    videoFrame:Play()
end

playVideo()

Kurze Erklärung zur Syntax:

"script.Parent" gibt das Elternobjekt des aktuellen Skripts zurück. In diesem Fall, wenn das Skript, das diesen Code enthält, in ein bestimmtes Objekt im Spiel eingebettet ist, dann wird "script.Parent" auf dieses Objekt verweisen.

Die Methode ":WaitForChild" wird auf das Elternobjekt angewendet und sucht nach einem Kind-Objekt mit dem Namen, der als Argument übergeben wird. In diesem Fall wird ":WaitForChild("VideoFrame")" verwendet, um das Kind-Objekt mit dem Namen "VideoFrame" im Elternobjekt zu suchen.

Die Variable local video verweist auf die Asset-ID des Videos, das abgespielt werden soll.

playVideo() ist eine selbst kreierte Funktion

"videoFrame.Source = video" ist eine Methode und ruft den Link als Quelle für das Video auf

Die Methode videoFrame:Play() startet das Video

-------------------------------------------------

Natürlich müsstest du den Code noch an deine Bedürfnisse anpassen.

Weitere Einstellungen/Formatierungen deines VideoFrame-Objekts kannst du mit den Methoden und Events der entsprechenden Klasse anpassen. Hier die offizielle Dokumentation der VideoFrame-Klasse: https://create.roblox.com/docs/reference/engine/classes/VideoFrame

...zur Antwort

Weil bisher noch niemand geantwortet hat, möchte ich versuchen eine allgemeine Antwort, aufgrund meiner Erfahrung als freiberuflicher Web- und Softwareentwickler, zu geben.

Vorweg: Ich habe die Kurse der Developer Akademie selbst nicht absolviert.

Allerdings habe ich in der Vergangenheit bei anderen Konzepten im Bereich der Web- und Softwareentwicklung mitgewirkt, welche darauf ausgelegt sind, Entwickler anzulernen und auf Jobs vorzubereiten.

Erfahrungen zur Developer Akademie

Vielleicht hilft dir ja meine eigene, unabhängige Erfahrung zusammen mit den ca. 100 Erfahrungsberichten und Bewertungen auf Trustpilot zu der "Developer Akademie" https://de.trustpilot.com/review/developerakademie.com

Die beiden Organisatoren sind ja recht aktiv auf YouTube und machen einen seriösen Eindruck. Die Tipps, welche ich dort bisher auf dem Kanal "Programmieren lernen" gesehen habe, kann ich bestätigen.

Habe die Videos selbst schon einige Male für kurze Erklärungen geteilt.

Schnellkurse als Webentwickler

Folgende Ausführungen beziehen sich auf Erfahrungen zu Offline-Weiterbildungen.

Solche Schnellkurse sind in der Regel sehr praxisbezogen. Das heißt, sie sind häufig darauf ausgelegt, dich tatsächlich für konkrete Jobs als Entwickler vorzubereiten.

Der große Vorteil besteht meist darin, dass du immer einen Ansprechpartner hast. Bei jedem noch so kleinen Problem.

Wie ich bisher recherchiert habe, scheint sich der erste Kurs der "Developer Akademie" an Personen komplett ohne Erfahrung zu richten und beinhaltet HTML, CSS und JavaScript.

Der große Nachteil ist natürlich der hohe Preis bei solch enger Betreuung.

Theoretisch kannst du dir das Wissen zu HTML, CSS und JavaScript auch im Selbststudium beibringen oder günstige/kostenlose Online-Kurse absolvieren. Allerdings dauert das länger und ohne direkte Hilfe oder Support-Strukturen kann das auf Dauer ziemlich anstrengend werden. Besonders im Bereich JavaScript und Programmierung.

Warum und für wen sich so eine Investition lohnen kann:

Entwickler Netzwerk

Gerade im Bereich der freiberuflichen Webentwicklung bist du am Anfang ohne Erfahrung auf ein Netzwerk angewiesen. Sprich, du brauchst Kontakte. Ansonsten wird es wahrscheinlich sehr schwierig, Fuß zu fassen. So ist jedenfalls meine Erfahrung in dem Bereich.

Durch deine Investition könntest du dann eventuell Zugriff auf das Netzwerk der Organisatoren solcher Kurse erhalten.

Warum? Weil diese natürlich besonders Leute empfehlen, die sie selbst ausgebildet und persönlich kennengelernt haben.

Kurzum: Nach deiner Ausbildung hast du vielleicht die Möglichkeiten für Jobs vermittelt zu werden.

Tipp: Du könntest das auch vorab in einem Vorgespräch höflich ansprechen/anfragen. So, dass du gleich signalisierst, dass du auf konkrete Aufträge nach dem Kurs abzielst.

Aufträge

Bei solchen Aufträgen kann es sich zum Beispiel um Verträge für freie Mitarbeiter (Freelancer) handeln, wo du dann im Team (online oder offline) an konkreten Kunden-Aufträgen arbeitest. Hierbei werden die Aufgaben häufig an verschiedene Team-Mitglieder aufgeteilt.

Die Verträge regeln auch die Bezahlung.

Wenn du regelmäßig in Teams arbeitest, erhältst du dann wahrscheinlich auch mal direkten Kundenkontakt. Und mit diesem kannst du dir dann theoretisch auch ein eigenes Netzwerk für Aufträge und Mitarbeiter aufbauen.

------------------------------------------------------

HINWEIS: Bei meinen Ausführungen handelt es sich um meine persönlichen Erfahrungen in diesem Berufsfeld. Nicht um meine Erfahrungen mit der "Developer Akademie". Daher sind alle Angaben ohne Gewähr. Bei konkreten Fragen am besten direkt bei dem Anbieter anfragen.

...zur Antwort

Interessante Frage!

Das erste Problem ist, dass es noch keine allgemein gültige Definition von Bewusstsein gibt. Daher ist eine Diskussion schwierig. Zudem wird zwischen philosophischem Bewusstsein und naturwissenschaftlichem Bewusstsein unterschieden.

Allgemeine Definition von Bewusstsein

In der Regel wird Bewusstsein ja als Wahrnehmung eigener Emotionen, Gedanken und Wahrnehmungen beschrieben. Nach dieser Definition haben aber wahrscheinlich die meisten oder sogar alle Tiere nicht mal Bewusstsein. Ausnahme ist der Mensch.

Bewusstsein auf neuronaler Ebene

Auf der anderen Seite, liegen allen neuronalen Ereignisse naturwissenschaftliche Prozesse voraus. Daher könnte eine exakte Kopie aller Impulse und Prozesse von Menschen theoretisch zu einem duplizierte Bewusstsein führen. Was für eine Rechenkraft für eine derartige Simulation nötig ist, weiß ich nicht. Aber sie müsste wahrscheinlich gigantisch sein. Vor Kurzem habe ich einen Artikel über die ersten Versuche von Quantencomputern gelesen. Absolut beeindruckend.

Turing-Test

Auch die ersten Konversationen mit OpenAI haben mich sehr beeindruckt. Ich musste sofort an den Turing-Test denken.

Turing legte die Marke fest, ab wann ein Computer den Test für ein eigenes Bewusstsein bzw. menschenähnliche Intelligenz bestanden hat.

Wie heizfeld es bereits beschrieben hat, liegt das Bestehen des Turing-Testes vor, wenn ein Mensch während einer Unterhaltung nicht mehr unterscheiden kann, ob auf der anderen Seite ein Computer oder Mensch mit jemanden kommuniziert.

Künstliche Intelligenz

Ich nehme an, dass Google wie OpenAI und andere Programme im Bereich der künstlichen Intelligenz, an vergleichbarer Software arbeitet.

Nach offiziellen eigenen Angaben haben so viel ich weiß, all diese Programme noch nicht den Turing-Test bestanden.

Aber wenn du einen passenden Link zu dem Programm bzw. der Quelle der Information schickst, könnte sich jeder hier ja mal selbst ein Bild machen ;) Ich bin jedenfalls interessiert.

...zur Antwort

Hier ein Beispiel in der Programmiersprache C++

// Funktion um Pac-Man zu bewegen
void movePacman() {
    // Prüfen ob Pac-Man die Wand berührt
    if (hitsWall()) {
        // Change Pac-Man's direction
        if (pacman.direction == UP) {
            pacman.direction = DOWN;
        } else if (pacman.direction == DOWN) {
            pacman.direction = UP;
        } else if (pacman.direction == LEFT) {
            pacman.direction = RIGHT;
        } else if (pacman.direction == RIGHT) {
            pacman.direction = LEFT;
        }
    } else {
        // Weiter in die aktuelle Richtung bewegen
        pacman.x += pacman.direction.x;
        pacman.y += pacman.direction.y;
    }
}

Hinweis: In diesem Beispiel musst du zuerst pacman.direction und pacman.x und pacman.y als Membervariablen des Objektes pacman deklarieren. Außedem muss die Funktion hitsWall vorher implementiert werden.

  • Im obigen Beispiel wird die Funktion movePacman verwendet, um Pac-Man zu bewegen.
  • Innerhalb dieser Funktion wird zunächst überprüft, ob Pac-Man mit einer Wand kollidiert, indem die Funktion hitsWall aufgerufen wird. Sie prüft, ob Pac-Man sich an einer bestimmten Position befindet, die als Wand gekennzeichnet ist.
  • Wenn Pac-Man mit einer Wand kollidiert, ändert der Algorithmus die Richtung von Pac-Man entsprechend.
  • Wenn Pac-Man jedoch nicht mit einer Wand kollidiert, bewegt er sich weiter in seiner aktuellen Richtung.
...zur Antwort

Es ist schwer, eine genaue Aussage darüber zu machen, wann genau Du in der Lage sein wirst, auf hohem Niveau zu programmieren.

Einige Faktoren:

  • Dein Lernstil
  • Deine Erfahrung mit ähnlichen Konzepten
  • Deiner Fähigkeit, komplexe Probleme zu lösen
  • Deine Interessen

Täglich lernen ist schon mal ein guter Anfang. Dadurch hast du die benötigte Wiederholung und Übung, die Konzepte dauerhaft aufzunehmen.

Um dies dauerhaft durchzuziehen benötigst du noch das passende Mindset:

  • Glaubenssätze
  • Gewohnheiten
  • Strukturen bei der Organisation (z.B. Foren, Ansprechpartner/Lehrer usw.)
  • Stabiles soziales Umfeld

Allerdings, 2 Stunden am Tag, innerhalb eines Jahres, ist eine begrenzte Menge an Zeit, die für das Lernen einer Programmiersprache und das Entwickeln von Fähigkeiten auf professionellem Niveau mit hoher Wahrscheinlichkeit nicht ausreichend ist, wenn keine Vorkenntnisse vorhanden sind. Falls ein professionelles Niveau dein Ziel ist.

Es ist wichtig, regelmäßig und kontinuierlich zu lernen, und es wird wahrscheinlich mehrere Monate oder sogar Jahre dauern, bevor Du in der Lage sein wirst, komplexe Projekte in Java erfolgreich umzusetzen. Zumindest auf professionellem Niveau.

Meiner Erfahrung nach ist ein Faktor beim Programmieren lernen am wichtigsten, der dazu beiträgt schnell und erfolgreich zu lernen:

Praxis.

Damit meine ich echte Projekte, die du von Grund auf selbst programmierst.

Und zwar so, dass diese Projekte im Optimalfall aufeinander aufbauen. Also erstmal kleine Projekte. Und diesen dann weitere Konzepte hinzufügen.

Es ist auch wichtig, dich mit anderen Entwicklern auszutauschen, um Feedback und Unterstützung zu erhalten.

...zur Antwort

Ja. Webentwicklung wird in 2023 und darüber hinaus definitiv eine gute Wahl für eine Karriere sein.

Begründung:

Die Nachfrage nach qualifizierten Webentwicklern ist in den letzten Jahren stark gestiegen. Und das sowohl als Freiberufler oder Angestellter in einem Unternehmen.

Unternehmen und Organisationen jeder Größe und Branche setzen immer mehr auf digitale Präsenz und die Fähigkeit, online Geschäfte zu tätigen.

Zum Thema Drag & Drop: Jedes Unternehmen welches es ernst meint, wird seine Online-Präsenz individualisieren müssen. Alles andere macht keinen Sinn, weil Unique Content durch AI und SEO immer wichtiger wird. Neben der Webentwicklung ist es daher sinnvoll frühzeitig mit Textern zusammenzuarbeiten oder sich selbst im Bereich SEO und Marketing weiterzubilden.

Durch smarte Geräte und Automatisierung wird das Internet noch weiter in das tägliche Leben eindringen und die Nachfrage wird wahrscheinlich noch für viele Jahre weiter wachsen.

Die Digitalisierung ist noch lange nicht abgeschlossen. Dies gilt ganz besonders für Deutschland.

Mal davon abgesehen bietet der Beruf als Webentwickler eine große Vielfalt an Möglichkeiten innerhalb des Berufsfeldes, wie z.B. Front-End-Entwicklung, Back-End-Entwicklung, Full-Stack-Entwicklung, mobile Webentwicklung und vieles mehr.

Kurzum: Für fast jeden Interessensbereich und jede Erfahrung gibt es Platz in der Webentwicklung.

Außerdem lernst du mit JavaScript und/oder PHP eine Scriptsprache, mit der du dir die Grundlage für andere Programmiersprachen legst. Damit kannst du durch Weiterbildungen in der Zukunft theoretisch auch den Sprung zum Programmierer machen. Falls die Roboter die Welt übernehmen oder so... jemand muss sie schließlich programmieren ;)

...zur Antwort

Hier einige Ideen für fortgeschrittene Scratch-Projekte:

  1. Plattform-Spiel
  2. Puzzle-Spiel
  3. Strategiespiel
  4. Eine animierte Geschichte
  5. Quiz
  6. Lernspiel
  7. Ein interaktives Kunstwerk
  8. Rennspiel
  9. Memory
  10. Escape Room
  11. Kartenspiel
  12. Rhythmusspiel
...zur Antwort

Du könntest scanf mit dem Format-Zeichen "%d" und break nutzen, um damit eine ganze Zahl (int) zu lesen.

Die Funktion gibt dann die Anzahl der erfolgreich eingelesenen Werte zurück.

Wenn sie 1 zurückgibt, war die Eingabe eine gültige Zahl und wir brechen die Schleife ab. Damit wird der Rest des Programms ausgelöst.

Wenn die Eingabe allerdings ungültig war, ignorieren wir sie, indem wir alle verbleibenden Zeichen bis zum Zeilenumbruch ('\n') aus dem Eingabestrom lesen und die Schleife erneut durchlaufen.

Siehe hier:

#include <stdio.h>


int main() {
  int year;


  while (1) {
    printf("Please enter a year: ");
    if (scanf("%d", &year) == 1) {
      // Die Eingabe war eine gültige Zahl, also fahren wir mit dem Programm fort
      break;
    } else {
      // Die Eingabe war ungültig, also ignorieren wir sie und geben erneut die Aufforderung aus
      while (getchar() != '\n');
    }
   
  }


  // Hier kommt der Rest des Programms hin, das mit der eingelesenen Zahl year ausgeführt wird
  if(year % 400 == 0)
  {
      printf("Leap year - YES\n");
  }
  else if(year % 100 == 0 || year % 4 == 0)
  {
      printf("Leap year - YES\n");
  }
  else {
      printf("Leap year - NO\n");
  }
  


  return 0;
}

...zur Antwort

Um sicherzustellen, dass das Prozentzeichen als Textausgabe anstatt als Formatierungszeichen verwendet wird, kannst du es mit einem doppelten Prozentzeichen "%%" maskieren. Dies gibt ein einzelnes Prozentzeichen aus, anstatt es als Formatierungszeichen zu interpretieren.

Die Zeile sollte daher so aussehen:

printf("Please enter your capital in €, your interest rate in %% and the number of days in D followed by a blank:");

...zur Antwort

Eigentlich ist für Text neben Input Elementen wie einem Button das label-Element vorgesehen.

Siehe hier:

<form>
  <label for="ok-btn">Dein Text</label>
  <input type="button" value="OK" id="ok-btn">
</form>

Wenn du ein p-Element direkt neben dem Button positionieren möchtest, kannst du das p-Element in das form-Element einfügen und den Button dann in das p-Element einbetten.

Siehe hier:

<form>
  <p>Dein Text <input type="button" value="OK"></p>
</form>
...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.