Was sind in Java die schwierigsten Basics? Ist die Aufgabe außerdem schwer?

5 Antworten

Die angeforderte Anwendungslogik deiner gestellten Aufgabe steht eigentlich nicht im direkten Zusammenhang mit statischen Methoden. Das solltest du unterscheiden, um dein Problem besser zu erfassen. Letzteres betrifft eben nur die geforderte Struktur. In einer objektgebundenen Methode würde sich die Logik aber trotzdem nicht ändern.

Die Aufgabe selbst ist einfach. Sie fordert bezogen auf Java lediglich das Verständnis grundlegender Sprachelemente (Schleifen, Verzweigungen, Variablen, Arrays). Nichtsdestotrotz kann ich nachvollziehen, wenn dir die Aufgabe schwer vorkommt. Als Anfänger musst du zu dem Punkt kommen, Probleme soweit herunterbrechen zu können, um darauf aufbauend Lösungen zu finden, die größtenteils nur auf einfachen Grundoperationen basieren.

Zu dem Thema habe ich hier schon häufiger Tipps geschrieben. Hier beispielsweise mit Blick auf Java. Bei deinem konkreten Problem könnte es helfen, sich das Problem bildlich darzustellen.

Array: [ 5, 2, 4, 7, 19, 1 ]
Zahl: 6

Die erste Frage für dich wäre nun, wie du selbst (nicht das Programm) herausfinden würdest, welche Zahlen kleiner als 6 sind. Und diese Operation solltest du in kleinen Einzelschritten beschreiben, so als müsstest du jemanden anders anweisen, was er für die Lösung des Problems tun soll.

Ich kann nur dazu raten, möglichst viele solcher Aufgaben zu suchen und versuchen, zu lösen.

Nur ein paar Übungen, die mir spontan einfallen:

  • Die kleinste Zahl in einem Array finden
  • Die Elemente eines Arrays in umgedrehter Reihenfolge in ein anderes Array kopieren, dessen Länge der Nutzer vorher festlegen kann (das heißt, unter Umständen müssen Werte aus dem Originalarray verloren gehen)
  • Alle Vokale eines Worts gegen ihren Dezimalwert aus der ASCII-Tabelle ersetzen
  • Methoden der String-Klasse (wie substring, indexOf, replace, ...) selbst implementieren
  • Kreation eigener Datenstrukturklassen: Stack, Dynamische Liste, Baum
  • Berechnung der Fakultät
  • Berechnung einer Zahl aus der Fibonacci-Folge (die Stelle sollte unter 10 liegen)
  • Berechnung des Produkts zweier Faktoren, ohne dafür den Multiplikationsoperator zu verwenden
  • Berechnung der Quersumme
Was gehört bei Java von den Basics her zu den schwierigsten Basics?

Ich denke, dass Rekursion für viele Anfänger zu den eher schwierigen / unbequemen Grundlagenthemen gehört.

Übungsaufgaben zur Rekursion, die mir dazu gerade einfallen:

  • Prüfen, ob ein Wort Vokale enthält (Sylt ist kein solches Wort)
  • Prüfen, ob ein Wort ein Palindrom ist (wie Lager - regaL)
  • Eine binäre Suche
  • Traversion durch eine Baumstruktur (inorder, preorder, postorder)
  • Quicksort
  • Mergesort

Weitere Übungen habe ich schon einmal in der Antwort angeführt, die ich oben verlinkt habe.

Möglicherweise werden auch Bitoperationen als schwierig empfunden, da sie mehr in die mathematische Richtung hineindriften. Als Übung dazu kann man ja einmal ein Tic-Tac-Toe entwickeln, welches den Computer gegen sich selbst spielen lässt. Die Felddarstellung wird mit Binärzahlen vorgenommen, für die Spielstrategie der Negamax-Algorithmus verwendet.

daCypher  26.07.2021, 10:23

65ll101 V111k97l101 101105n101s W111rts g101g101n 105hr101n D101z105m97lw101rt 97117s d101r 65SC7373-T97b101ll101 101rs101tz101n

Das ist wirklich mal eine lustige Übungsaufgabe 👍😁

Für Fortgeschrittene ist es auch eine gute Übung, das wieder rückgängig zu machen. Lässt sich gut für Regex-Übungen verwenden.

0

Das sind alles noch die absoluten Basics. Stichwort Schleifen und Bedingungen. Mit dem "static" hat die Aufgabe eigentlich nichts zu tun.

OOP, Klassen, Vererbung sind dann eher die fortgeschrittenen Grundlagen.

Schwer ist es erst wenn du komplexe Algorithmen schreibst oder größere Applikationen wo du echt Datenmodelliierung und Softwarearchitektur betreiben musst. Das eventuell dann auch noch zusammen mit Themen wie Multothreading, Reflection, Annotationen und was weiß ich was es in Java noch gibt.

Deine Aufgabe ist eine absolute Anfängeraufgabe und dient dazu zu lernen wie man Probleme in der Programmierung angeht. Dass man da als blutiger Anfänger vielleicht ein paar Stunden braucht ist ok.

Woher ich das weiß:Studium / Ausbildung – Informatikstudium

Schwierigkeit: 2/10

Eigentlich ist das alles recht simpel, deshalb heißt es ja auch Basics.

Woher ich das weiß:Hobby – Ich programmiere in meiner Freizeit mit Java.

die Aufgabe ist relativ simpel. Da gibt es viele Wege die zu lösen -- kannste sehr ausführlich mit for Schleife und auch sehr elegant und kompakt mit den moderneren Stream APIs lösen.

Java selbst ist eine recht einfache und freundliche Sprache. Schwierig ist da eher die Menge an Zeugs, dass Du als effektiver Entwickler lernen musst (Build Tools wie maven und gradle, komplexe APIs wie Java SE, Java EE, Spring Boot, JPA, hibernate, ...).

Auf einer Skala von 0 bis 10 vielleicht 0.01 bis maximal 0.1 ... Kann man unter Ulk verbuchen.

Woher ich das weiß:Berufserfahrung