Wie bei vielen Sortierverfahren gibt es auch zum Countingsort einen Wikipedia-Artikel, in dem der Algorithmus erklärt und sogar mit einem Pseudocode beschrieben wird. Das heißt, dort findest du alle notwendigen Informationen, um ein Struktogramm zusammenbauen zu können.

Wenn dir die einzelnen Komponenten eines Struktogramms nicht bekannt sein sollten: Schau erneut auf Wikipedia, diesmal nach Nassi-Shneiderman-Diagramm.

...zur Antwort

GMS:2 ist einfacher als Unity aufgebaut und auch die darin genutzte Skriptsprache (GML) ist einfacher. Ich denke daher, dass dir ein Einstieg dort leichter fallen wird.

Direkt mit Unity starten zu wollen, würde ich jedenfalls nicht empfehlen, denn es erwartet doch schon, dass du bestimmte C#-Grundkenntnisse bereits beherrschst. Zudem muss man sich gerade für so ein Thema (Programmierung) einfach auch Zeit nehmen. Für die Theorie, für eigene Experimente und Übungen. Crashkurse sind in dieser Hinsicht ineffizient und oft zu oberflächlich.

In der Hinsicht wäre es also zielführender, sich erst mit C# (und in dem Zuge auch mit Visual Studio) generell vertraut zu machen. Konsolenanwendungen reichen für den Start aus, GUI-Anwendungen machen es wiederum eher komplexer. Und dabei sollte es durchaus ausreichen, neben Kontrollstrukturen, Arrays und Co, die OOP-Konzepte zu kennen und zu verstehen.

Hier habe ich schon einmal verschiedene gute Lernquellen für C# aufgelistet. Später für Unity können dir womöglich die hier verlinkten Informationen noch zum Verständnis der Engine weiterhelfen.

Nun beschränkt sich deine Frage noch nur auf zwei Möglichkeiten, mit der Spieleprogrammierung zu beginnen. Doch ich würde an dieser Stelle einfach noch zwei andere Optionen vorstellen. Vielleicht sagen sie dir zu / erscheinen dir als hilfreich.

  • Eine Programmiersprache, die ziemlich oft in der Spiele-Entwicklung Anwendung findet, ist Lua. Sie ist (wie GML) als Skriptsprache konzipiert worden, daher auch nicht schwer. Game Developing Tools, in denen du Lua nutzen kannst, gibt es so einige. Z.B. die CryEngine, das Corona SDK, LÖVE oder Leadwerks.
  • Die Programmiersprache Processing wurde damals mit dem Ziel entwickelt, Designern einen leichten Übergang in die Programmierung zu bieten. Dementsprechend steht dir von Beginn an (neben einer Konsole) eine Zeichenfläche zur Verfügung. Das heißt auch, dass es leicht fällt, mit nur wenigen Grundlagenkenntnissen schon Spiele wie Pong oder Breakout zusammenzubauen. Der wesentliche Kern des Programmierens (lernen, wie man Probleme analysiert und Lösungswege - also Algorithmen aufstellt) lässt sich aufgrund der gegebenen Möglichkeiten gut üben und an das ECS (s. mein insgesamt zweiter Link) wirst du ebenfalls bereits leicht herangeführt. Da die Syntax zu Java und C# recht ähnlich ist, fällt dir ein späterer Umstieg womöglich nicht so schwer.
...zur Antwort

Wenn du in select auch vorab prüfen würdest, ob sich die übergebenen Parameterwerte im erlaubten Rahmen befinden (Gilt 0 <= x < max. Spalte und 0 <= y < max. Reihe?), bräuchtest du dir beim Aufruf darüber keine Gedanken mehr machen.

PS.: Die Verwendung von innerHTML ist m.E. übertrieben, wenn du nur reinen Text setzt. Das innerText-Property reicht vollkommen aus.

...zur Antwort

Suche dir alle Funktionen, Attribute und Klassen heraus und beschreibe diese. Bleibe dabei kurz und präzise. Überlege dir, was für einen anderen Entwickler von Interesse wäre, wenn er sich mit dem Projekt beschäftigen / mit den implementierten Elementen arbeite müsste.

  • Für die Klasse ist bspw. bedeutend, welche Rolle sie im Programm einnimmt / welcher generellen Funktion sie nachgehen soll.
  • Bei Funktionen ist von Interesse, welche Funktion sie bieten, welche Daten sie anfordern (Parameter) und was sie als Ergebnis liefern.
  • Private Elemente (z.B. als privat markierte Attribute oder Funktionen) kannst du auslassen. Sie sollten ja nur unterstützende Rollen einnehmen.

Als Hilfstool kannst du Doxygen verwenden. Wie die Doc-Kommentare aussehen sollen, kannst du in der Dokumentation nachlesen.

Wenn deine Dokumentation für das Programm einen zusammenhängenden Artikel darstellen soll (keine API-Dokumentation), kannst du zumindest darauf aufbauen.

...zur Antwort

Dein obiger Code funktioniert so nicht, denn von einem Interface kannst du keine konkrete Instanz anlegen.

Dies würde allerdings gehen:

interface IBase {
  int SOME_VALUE = 3;
}

class Sub implements IBase {
  public Sub() {
    System.out.println(SOME_VALUE);
  }
}

// main:
new Sub();

Die Klasse Sub implementiert das Interface, der konkrete Typ kann die Variable SOME_VALUE weiterverwenden.

Oder du erstellst eine anonyme Klasse:

System.out.println(new IBase() {}.SOME_VALUE);

Beachte, dass die Variablen, die in Interfaces angelegt werden, öffentlich, final (konstant) und statisch sind.

...zur Antwort

Gruppiere erst nach Regisseuren und schaue dann, bei welcher dieser Gruppen es nur einen Eintrag gibt.

select * from movie group by director having count(director) = 1
...zur Antwort
Ich möchte wissen, wie man eine Java- Datei etc. in ein HTML-Skript reinschreibt (...)

Man setzt wenn nur einen Verweis im HTML-Dokument auf eine andere Datei. Bezogen auf Java gab es damals die Möglichkeit, Applets via object-, embed- oder applet-Tag einzubinden oder mittels JavaScript und dem Deployment Toolkit von Oracle.

In modernen Browsern werden Applets aber generell nicht mehr unterstützt, da sie ein Sicherheitsrisiko darstellen. Wenn du dich dennoch unbedingt damit genauer beschäftigen möchtest, könnte dieser Artikel ein Einstieg sein.

Ps: Falls jemand den Befehl <Skript> verwendet, dann bitte nochmal genauer erläutern.

Ich denke, dass du eher eine völlig andere Sprache meinst: JavaScript.

JavaScript-Code kann über den script-Tag in ein Dokument eingebettet werden. Dieses Element ist sowohl im head- als auch auch body-Bereich erlaubt.

Beispiel:

<!doctype html>
<html>
  <head>
    <title>Example page</title>
    <script>
      console.log("Hello");
    </script>
  </head>
  <body>
    <script>
      console.log("World!");
    </script>
  </body>
</html>

Der Unterschied liegt in der Ausführungszeit. Der head-Bereich wird vom Browser zuerst ausgewertet. Wenn du im Skript auf Seitenelemente des DOM zugreifen möchtest, solltest du dein Skript möglichst spät einbinden (z.B. erst kurz vor dem schließenden body-Tag) oder die Ausführung via Event Handling auf einen späteren Zeitpunkt verlegen.

Wie viele script-Tags du in deine Seite einbinden möchtest, ist dir überlassen.

Wenn du eine externe JavaScript-Datei einbetten möchtest, kannst du ebenfalls den script-Tag verwenden. Der Verweis auf die Datei erfolgt über das src-Attribut.

<script src="path/to/your/javascript/file.js"></script>

JavaScript-Code wird in diesem Fall nicht zwischen Start- und Endtag geschrieben.

Weitere Informationen kannst du dir auf MDN anlesen.

...zur Antwort
Ich habe noch keine Praktische Erfahrung, weshalb der Lebenslauf etwas unbeeindurckend aussieht.

Das der Lebenslauf in jungen Jahren noch ziemlich leer aussehen wird, ist nichts Ungewöhnliches. Das weiß ein potenzieller Arbeitgeber auch.

Deshalb kam mir die Idee, ein paar meiner persönlichen Software-Projekte aufzulisten. Denkt ihr das ist gut?

Das sollte hauptsächlich nur Bestandteil deiner persönlichen Kurzbeschreibung sein (Wieso möchtest du ein Praktikum dort beginnen? Was kannst du und interessiert dich? etc.). Es kann als Beleg dafür dienen, dass du dich mit der Materie auseinandergesetzt hast.

Die Fertigkeiten (z.B. C, JavaScript) kannst du nach dem Lebenslauf unter Besondere Kenntnisse auflisten. Lies dazu hier. Es also kurz nochmal mit einer Wortgruppe zu umreißen (z.B.: in einigen Hobbyprojekten eingesetzt ist ok. Mehrere Sätze würde ich da nicht schreiben, sonst wird es schnell zu lang.

Aber welche soll ich auflisten?

Überlege dir, was deine Projekte besonders macht bzw. in welcher Hinsicht sie dich weitergebracht oder dein Interesse besonders geweckt haben.

Ein Beispiel, um es besser zu erklären: Wenn du angeben würdest, dass du dich näher mit der Entwicklung von mobilen Apps beschäftigt hast, könntest du ein besonderes Beispielprojekt benennen. Oder wenn du dich mit einem bestimmten Framework / einer gewissen Technologie (z.B. Unity) auseinandergesetzt hast, dann eben dafür ein Beispiel. Eine gewisse Komplexität sollte aber schon gegeben sein. Ich setze nur eine grobe Vorstellung: Ein Taschenrechner wäre langweilig und eher unpassend.

Zähle zudem nicht alle Beispielprojekte auf, sondern begrenze die Anzahl vielleicht auf drei. Wie gesagt, sollten sie konkrete Fertigkeiten oder Interessen belegen. Nur eine Auflistung überfliegt ein Leser lieber und es sagt nicht so viel über dich als Person aus.

Deine Spieleliste kannst du als Minispiele zusammenfassen: Ich habe einige Arcade Games, wie z.B. Pacman programmiert (...).

Und muss ich erwähnen dass es ein Teamprojekt war?

Es klingt so, als wolltest du so eine Information verbergen, dabei wäre gerade das doch ein Argument dafür, dass du auch schon einmal im Team gearbeitet hast.

Wenn du es nicht angeben willst, gib es nicht an. Nur formuliere auch entsprechend und nicht so, als wäre es auf jeden Fall ein Eigenprojekt gewesen. Selbst wenn so eine Lüge nicht herauskommt, ist es doch nicht schön.

Vielleicht habt ihr auch Ideen was ich beeindruckendes Coden könnte?

Bleibe authentisch und geh nach dem, was dich wirklich interessiert. Konkrete Ideen kannst du mit Kreativitätstechniken auswürfeln.

...zur Antwort

An den Button hängst du einen Listener:

button.addActionListener(event -> openNewFrame());

Die Methode openNewFrame musst du noch implementieren. In ihr, kannst du den neuen Frame erstellen.

JFrame frame = new JFrame("Neuer Frame");
// setup frame ...
frame.setVisible(true);
...zur Antwort
$fileTempname = $_FILES['image']['temp_name'];

Der Key sollte tmp_name heißen.

Wenn du übrigens $file nicht verwendest, kannst du die Variable auch entfernen.

...zur Antwort

Diesen Key: $_POST['image'] gibt es nicht. Er ist stattdessen nur in $_FILES zu finden.

Ein einfaches Beispiel, wie ein Bild-Upload aussehen kann, findest du hier.

...zur Antwort

Verwende ein Flexlayout.

Du hast einen Container:

.container {
  align-items: center;
  display: flex;
  text-align: center;
}

In diesen Container legst du Bild und Text (beide jeweils in einer eigenen Box):

.box {
  flex: 50%;
}
...zur Antwort

1) Deine Seite beinhaltet mehrere Fehler. Diese solltest du erst einmal beheben.

Verwende diesen Validator: https://validator.w3.org/ für dein HTML und diesen für dein CSS: https://jigsaw.w3.org/css-validator/.

2) Auch einige Rechtschreibfehler sehe ich.

Beispielsatz:

Damit lassen sich nicht nur Menschen täuchen, sondern auch Maschienen.
Der tatzächliche Wert der Münze ist c.a.30 Cent.

Korrektur:

Damit lassen sich nicht nur Menschen täuschen, sondern auch Maschinen. Der tatsächliche Wert der Münze ist ca. 30 Cent.

3) Ich würde dir empfehlen, für deine Selektoren einheitliche Bezeichner zu wählen. Du verwendest derzeit einen Mix aus Deutsch und Englisch, Groß- und Kleinschreibung.

Ebenso würde ich jegliches CSS auslagern (sei es in deinen style-Tag oder doch eine externe Datei). In deinem Markup sehe ich allerdings ab und zu auch noch Inline-Styles.

Wenn du jegliches CSS an einer Stelle definierst, lässt es sich besser pflegen/überschauen und austauschen. Dein Markup wird vom Styling befreit.

Außerdem wäre es günstig, die Selektoren etwas in ihrer Reihenfolge zu ordnen. Du könntest bspw. nach Verwendung sortieren (Anwendungsreihenfolge) oder nach Spezifität (oben Elementselektoren, unten Klassenselektoren, ID-Selektoren, etc.).

4) Deiner Seite fehlt ein Impressum.

...zur Antwort

a) Du könntest mehrere Label-Elemente einbinden, die abhängig von den Radiobuttons ein-/ausgeblendet werden.

<!-- window ... -->
<Window.Resources>
  <BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter" />
</Window.Resources>
<StackPanel>
  <RadioButton Content="Yes" GroupName="Radio" IsChecked="True" x:Name="YesButton" />
  <RadioButton Content="No" GroupName="Radio" x:Name="NoButton" />
  <Label Visibility="{Binding ElementName=YesButton, Path=IsChecked, Converter={StaticResource BoolToVisibilityConverter}}">Hello</Label>
  <Label Visibility="{Binding ElementName=NoButton, Path=IsChecked, Converter={StaticResource BoolToVisibilityConverter}}">Bye</Label>
</StackPanel>
<!-- ... -->

b) Schau dir diesen Artikel an: https://www.c-sharpcorner.com/article/explain-radio-button-binding-in-mvvm-wpf/

...zur Antwort

Bei

__name = name

ist ja name auch nicht definiert.

Würde dort ein konkreter Wert wie bspw. "Hans" stehen, wäre es ok.

__name = "Hans"

Generell sollte deine Klasse eher so aussehen:

class Person(object):
  def __init__(self, name):
    self.__name = name

Um die Variable anzulegen, kann das self-Objekt genutzt werden. Es verweist ja auch auf die aktuelle Instanz.

...zur Antwort

Die konkret beste Lernmethodik musst du für dich selbst finden. Da spielt ja vieles hinein. Ob es nun die Tageszeit ist oder das Medium, welches du nutzt.

Ich werde dir an dieser Stelle also nur Tipps geben, auf die ich achten würde:

  • Verwende ausschließlich aktuelle Quellen. Webtechnologien ändern sich schnell und veraltete (oder falsche) Informationen zu HTML geistern viel im Netz herum.
  • So wie du es hoffentlich beim Lernen von Java auch gemacht hast: Probiere dich viel in der Praxis. Gerade bei HTML und CSS sollte dies ja kein Problem darstellen.
  • Widme dich, zumindest in Hinsicht HTML/CSS - JavaScript einem nach dem anderen. Alles sofort und parallel geht oft daneben. Da sich HTML und CSS schnell lernen lassen (Grundsyntax), kannst du sie früh in deinen Übungen miteinander verbinden.

Bezüglich Lernquellen würde ich diese empfehlen:

  • MDN
  • SelfHTML
  • Google Web Fundamentals
  • CSS Tricks
  • W3Schools

Ein Buch zu HTML / CSS würde ich mir wenn eher für spezielle Themengebiete kaufen (Responsive Design / Grid & UX Design / u.ä.).

Den aktuellen Working Draft zu HTML 5.3 findest du hier. Ich würde die Spezifikation aber nur zum Nachschlagen verwenden.

Die angebotenen Validatoren für HTML und CSS solltest du ab und an nutzen, um deinen Code zu verbessern/korrigieren. Mache dich des Weiteren mit den Entwicklertools deines Browsers vertraut, denn mit diesen kannst du deine Webseite ziemlich gut analysieren. Seien es die einzelnen Seitenelemente, die verwendeten Ressourcen (Welche Dateien werden geladen? u.ä.) oder wie der Ladevorgang der Seite zeitlich vonstatten geht.

Im Übrigen ist in diesen Tools ein Debugger und eine REPL für JavaScript verbaut. Ein paar Features werden hier gezeigt.

Hinsichtlich JavaScript würde ich erneut zuerst auf MDN verweisen. Diese Seite stellt generell eine umfangreiche Dokumentation für verschiedene Webtechnologien bereit, die über JavaScript, HTML und CSS hinausgehen.

Es gibt noch einige andere Online-Tutorials (wieder ein Verweis auf die obige Liste oder z.B. https://javascript.info/). Aber an dieser Stelle würde ich ebenso Bücher auf die Liste setzen, denn es gibt einige Werke, die genauer und tiefer in die JavaScript-Welt eintauchen (z.B. die Buchreihe You Don't Know JS Yet oder Eloquent JavaScript - gibt es in älterer Fassung auch als Open Book). Mache dich vielleicht auch auf die Suche nach Blogs (wie Medium/DailyJS, David Walsh, ...), denn dort lassen sich öfter ebenso Artikel zu Themen finden, die in (0815)-Tutorials/YouTube-Crashkursen nie auch nur angerissen werden würden.

...zur Antwort

Das sind Bounded Wildcards, die da für die generischen Typen eingesetzt werden.

Wie dir bekannt sein sollte, sind generische Typen invariant. Das heißt, das bspw.:

List<Number> numbers = new ArrayList<Integer>();

geht nicht, denn der Typ erwartet ja eine Liste, die Number-Typen aufnehmen kann, nicht nur Integer. Das polymorphe Verhalten gilt hier nicht.

Mit Bounded Wildcards lässt sich das aber umgehen bzw. lösen.

List<Integer> integers = new ArrayList<>();
integers.add(new Integer(1));
List<Float> decimals = new ArrayList<>();
decimals.add(new Float(2.9f));

List<Number> numbers = integers; // error, incompatible types 

List<? extends Number> numbers2 = integers;
numbers2 = decimals;

Das Fragezeichen steht zunächst für einen unbekannten Typ. Es darf nie im Zusammenhang mit einem konkreten Typ genutzt werden. Das heißt:

List<?> list = new ArrayList<?>(); // wrong
List<?> list2 = new ArrayList<Integer>(); // ok

Das Wildcard soll Platzhalter für eine Gruppe möglicher Typen sein.

Zusammen mit extends

? extends Number

sind nur Subtypen von Number (oder Number selbst) erlaubt. Würde es

? super Number

heißen, dürften nur Basistypen von Number (oder Number selbst) eingesetzt werden. Also z.B. Object.

...zur Antwort

Ein moderner und schneller Ansatz, der dir nebenbei noch das Markup sauber hält, wäre die Verwendung von CSS Grid. Direkt auf das Beispiel der verlinkten Seite verwiesen, sieht die Umsetzung so aus: https://codepen.io/tutsplus/pen/ybZGaN

...zur Antwort

Zum einen erstellst du in den verschiedenen Klick-Handlern eine neue Variable WerIstDran. Die globale Variable wird daher also nie neu gesetzt.

Zum anderen wirst du mit den Zuständen (true/false) durcheinandergekommen sein.

...zur Antwort