Wenn jemand anfängt , das Programmieren zu erlernen , sei es alleine oder durch Online-Kurse, ist es sehr wichtig, einen Schwerpunkt auf einen bestimmten Bereich zu legen und alles zu strukturieren. In diesem Artikel stellen wir unsere Struktur vor – Java-Aufgaben für Anfänger, mit einem Hinweis darauf, wie stark ein bestimmter Aufgabentyp im CodeGym- Online-Programmierkurs vertreten ist, sowie nützlichen Links.
Wo finde ich Denksportaufgaben?

Üben Sie mit der Sprachsyntax
Dies sind die allerersten Java-Programmieraufgaben für Anfänger – die Grundlage – von „Hello, World“ bis hin zu Schleifen und Arrays. CodeGym hat viele davon: Sie konzentrieren sich besonders auf die ersten sechs Level der Java-Syntax- Quest. Es ist unwahrscheinlich, dass Sie anderswo nach mehr davon suchen müssen. Wir haben sicherlich genug, um sie zu meistern. Darüber hinaus überprüfen Sie bei jeder schwierigeren Aufgabe automatisch die Syntax. Aber wenn Sie plötzlich in Not geraten, enthält jedes Java-Lehrbuch für Anfänger ähnliche Probleme. Aber im Gegensatz zu CodeGym verfügen diese Übungsbücher nicht über eine sofortige Aufgabenüberprüfung.Üben Sie mit Sammlungen
Sammlungen sind das erste „ernsthafte“ Thema, mit dem Programmieranfänger in ihrem Studium konfrontiert werden. Auch Anfängeraufgaben, die sich Java-Sammlungen widmen, sind auf CodeGym gut vertreten – auf der siebten und achten Ebene der Java-Syntax-Quest. Hier erfahren die Studierenden zunächst etwas über das Java Collections Framework und arbeiten ein wenig mit den Set-, List- und Map-Schnittstellen sowie einigen ihrer Implementierungen. Zu diesem Zeitpunkt erhalten Sie jedoch nur eine Einführung in dieses nützliche Tool und einfache Java-Aufgaben. Während der Quest „Java-Sammlungen“ lernen Sie Sammlungen genauer kennen . Sie sehen, wie wichtig dieses Thema ist – eine ganze Quest wurde nach ihm benannt!Üben Sie mit Ausnahmen
Java bietet einen speziellen Mechanismus zur Behandlung von Ausnahmesituationen, der das „Abfangen“ von Anwendungsfehlern erheblich vereinfacht. Um jedoch das Beste daraus zu machen, müssen Sie herausfinden, wie die Ausnahmebehandlung in Java funktioniert. CodeGym bietet jede Menge solcher Aufgaben. Sie werden ihnen sogar in der ersten Quest begegnen – Java-Syntax.
Üben Sie das Typcasting
Diese Gruppe von Aufgaben könnte natürlich als grundlegende Aufgaben zur Syntax klassifiziert werden. Unserer bescheidenen Meinung nach werden solche Aufgaben jedoch oft unterschätzt und Neulinge scheitern daran. Aus diesem Grund gehen wir neue Wege: Wir befassen uns nicht gleich zu Beginn mit Aufgaben zur Konvertierung primitiver Typen, wie es andere oft tun. Stattdessen gehen wir sie etwas später an – am Ende der Java-Syntax-Quest. Und dann lernen wir, nicht-primitive Typen (Objekte) umzuwandeln, wenn wir OOP in der Java Core- Quest studieren. CodeGym hat genug von diesen Aufgaben. Sie müssen nicht weiter suchen.Übe mit OOP
OOP ist nicht das schwierigste Thema, aber es ist äußerst wichtig. Und es verbergen sich viele Feinheiten, die Interviewer gerne nutzen, um angehende Nachwuchsentwickler zu schnappen. Der CodeGym-Kurs enthält praktische Programmieraufgaben für Anfänger, die Ihnen helfen, die objektorientierte Philosophie zu verstehen. Aber um OOP wirklich zu verstehen, empfehlen wir Ihnen, verwandte Literatur zu lesen (z. B. „Core Java“ von Cay Horstmann und Gary Cornell, „Object-Oriented Analysis and Design“ von McLaughlin oder andere Bücher ) .Üben Sie mit Eingabe-/Ausgabeströmen
Wir beginnen mit der Nutzung von I/O-Streams, lange bevor wir sie verstehen. Das ist Java, meine junge Heuschrecke! System.out zu erklären, ganz zu schweigen von System.in, ist zunächst schwierig und unnötig. Aber während Sie die Java Core- Quest durcharbeiten , wissen Sie gerade genug, um dieses etwas verwirrende Thema zu verstehen, und wir sprechen nicht nur über Konsolen-I/O, sondern auch über die Arbeit mit dem Dateisystem. Die Hauptsache ist, diese Aufgaben nicht zu überspringen (CodeGym hat ziemlich viele davon) und sich konsequent in die Theorie zu vertiefen.Rätsel
Mit „Denksportaufgaben“ meinen wir Aufgaben mit erhöhter Komplexität, bei denen es weniger um Wissen als vielmehr um die Fähigkeit geht, das Gelernte auf unkonventionelle Weise anzuwenden. Dies sind häufige Aufgaben für einen Junior-Java-Entwickler. Unternehmen fragen sie gerne in Vorstellungsgesprächen, aber in der realen Arbeit trifft man solche Denksportaufgaben nicht sehr oft an. CodeGym hat also einige, aber nicht sehr viele (normalerweise sieht man diese in den Lektionen von Captain Squirrels).
- https://javahungry.blogspot.com/2014/03/java-programming-puzzles-tackling-brainteaser-in-java-interv...
- https://howtodoinjava.com/java-interview-puzzles-answers/
- https://www.codechef.com/
- https://www.codewars.com/?sprache=java
Algorithmen und Datenstrukturen
Was Algorithmen und Datenstrukturen betrifft, gibt es eine ständige Debatte darüber, wie sehr ein zukünftiger Programmierer sie braucht. Wir antworten noch einmal: Sie sind für die Etablierung der richtigen Denkweise unerlässlich, werden aber selten direkt für die Arbeit benötigt. Dies liegt daran, dass Java wie auch andere Programmiersprachen über Bibliotheken mit Implementierungen aller erdenklichen Algorithmen zum Sortieren, Suchen und mehr verfügen. Dennoch kann das Schreiben einer eigenen Implementierung eines Algorithmus sehr hilfreich sein und Ihnen einen Eindruck von seiner Komplexität vermitteln. Besonders für Leute, die nur in der High School Mathematik gelernt haben. Grundsätzlich sind diese Aufgaben mit Denksportaufgaben austauschbar, mit dem einzigen Unterschied, dass sie alle online wiederholt beschrieben und gelöst wurden. Sie benötigen nicht einmal ein Validierungstool. Wählen Sie einen beliebigen Kurs, beispielsweise an der Princeton Universityoder ein College in Kalifornien . Üben Sie mit Datenstrukturen:Multithreading
Jeder kann ein „Hallo, Welt!“ schreiben. Programm. Aber wie wäre es, wenn Sie die Java-Thread-API verwenden, um die berühmte Phrase aus einem separaten Thread anzuzeigen? Oder wie wäre es mit der Anzeige „Hello, World!“ fünfmal aus fünf verschiedenen Threads, ohne die Saiten zu verwechseln? Multithreading wird der beste „Test Ihrer Stärke“ beim Studium von Java Core sein. Eine ganze CodeGym-Aufgabe namens Java Multithreading ist diesem Thema gewidmet, das alles andere als einfach ist. Es enthält eine Vielzahl von Aufgaben, die es den Schülern ermöglichen, den „Schmerz und die Schönheit“ der Parallelverarbeitung zu spüren. Die ersten „richtigen“ Projekte der Schüler enthalten normalerweise ein gewisses Maß an Multithreading. Zum Beispiel einfache Spiele.
Üben Sie mit Multithreading Fünf stille Philosophen sitzen an einem runden Tisch. Vor jedem steht ein Teller Spaghetti. Zwischen jedem Philosophen liegen Gabeln auf dem Tisch (eine links und eine rechts). Jeder Philosoph kann entweder essen oder tiefe Gedanken denken. Aber er oder sie kann nur essen, wenn er oder sie zwei Gabeln hält, indem er oder sie die eine auf der linken und die auf der rechten Seite aufnimmt. „Gabel hochheben“ und „Gabel ablegen“ sind unterschiedliche Aktionen, die nacheinander ausgeführt werden. |
Üben Sie mit Generika
Generalisierung ist das Wesen der Automatisierung und in gewisser Weise auch das Wesen der Programmierung. Dementsprechend können wir das Thema Generika in Java nicht ignorieren. CodeGym hat Programmieraufgaben mit Generika (hauptsächlich in der Quest „Java-Sammlungen“, beginnend mit Level 5). Wo finde ich nützliche Übungen und Materialien zu Generika?- https://docs.oracle.com/javase/tutorial/java/generics/QandE/generics-questions.html
- https://www.geeksforgeeks.org/generics-in-java/
- http://www.angelikalanger.com/GenericsFAQ/FAQSections/ProgrammingIdioms.html
- „Effektives Java“ von Bruce Eckel
Üben Sie mit Entwurfsmustern
Irgendwann (nach zwei Dritteln des CodeGym-Kurses) müssen Programmieranfänger beginnen, sich mit den Regeln auseinanderzusetzen, um beim Programmieren eine gute Form zu erreichen. Wir sprechen über die richtige Codeformatierung (einfacher) und Entwurfsmuster (schwieriger). CodeGym hat hierfür Aufgaben. Sie werden mehr brauchen und diese finden Sie in „ Head First Design Patterns “ von Elisabeth Freeman und Kathy Sierra. Oder Sie überlegen, wie Sie Entwurfsmuster auf bereits gelöste Aufgaben anwenden könnten.Unit-Tests
Eine wichtige Fähigkeit eines jeden Programmierers, die fälschlicherweise oft nur den Testern zugeschrieben wird, ist die Fähigkeit, Komponententests für den eigenen Code zu schreiben. CodeGym hat ein paar Aufgaben im Zusammenhang mit Unit-Tests, aber Sie müssen sich nicht wirklich die Mühe machen, nach mehr zu suchen. Wenn Sie wissen, wie man Unit-Tests schreibt, machen Sie es sich zur Gewohnheit, Ihren Code (in Ihren eigenen Projekten, in Ihrem Studium) damit abzudecken. Dies ist viel hilfreicher als die Durchführung von Überprüfungen mit der Konsolenausgabe, eine Praxis, die normalerweise bei Programmierschülern auftritt. Darüber hinaus besteht die erste Aufgabe neuer Nachwuchsentwickler in Unternehmen häufig darin, Unit-Tests für den Code einer anderen Person zu schreiben.Üben Sie mit regulären Ausdrücken
Dies ist ein einfaches Thema, das fast kein Anfänger versteht, weil es unbekannt und faul ist. Es lohnt sich wirklich, ein paar Tage damit zu verbringen, sich mit dem Thema zu beschäftigen, „Regex“ auf den Grund zu gehen und sich einen Vorteil gegenüber denen zu verschaffen, die das noch nicht getan haben. Dies ist auch deshalb hilfreich, weil reguläre Ausdrücke nahezu sprachunabhängig sind: Wenn Sie sie einmal lernen, können Sie sie überall verwenden. CodeGym hat keine Aufgaben speziell für reguläre Ausdrücke, einige können jedoch mit deren Hilfe gelöst werden. Hier finden Sie zusätzliche Ressourcen zum Verständnis dieses Themas:- regex101.com – eine Website, auf der Sie reguläre Ausdrücke online überprüfen können
- Mike Fitzgeralds „Introducing Regular Expressions“ – eine prägnante und einfache Einführung.

GO TO FULL VERSION