Möchten Sie Ihre Codierung verbessern? Probieren Sie eine wettbewerbsfähige Coding-Challenge aus!
Zusammenfassung
- Mit Wettbewerbs-Codierungsherausforderungen können Sie Ihr Wissen über Datenstrukturen und Algorithmen testen und vertiefen.
- Die Herausforderungen richten sich an unterschiedliche Fähigkeitsniveaus und bieten Vorteile wie die Vorbereitung auf Vorstellungsgespräche und das Erlernen, wie man effizienteren Code erstellt.
- Zu den Tipps für Anfänger gehören die Verwendung Ihrer bevorzugten IDE, die Bereitstellung einer Basislösung und die Prüfung auf Randfälle.
Es gibt viele Wege, vom Programmieranfänger zu jemandem mit etwas Erfahrung zu werden. Wenn Sie kein Unternehmen haben, bei dem Sie ein Praktikum absolvieren können, besteht eine der effektivsten Möglichkeiten, Ihr Programmierniveau zu verbessern, darin, wettbewerbsfähige Online-Codierungsherausforderungen durchzuführen. Lass es mich erklären.
Was ist überhaupt eine wettbewerbsorientierte Codierungsherausforderung?
Competitive Coding Challenges sind eine Reihe von Problemen, die Sie in einer Programmiersprache Ihrer Wahl so schnell und effizient wie möglich lösen müssen. Bei einer Codierungsherausforderung werden Sie wahrscheinlich auf Dinge stoßen, die Sie aus den Kerngrundlagen Ihres Lernens kennen. Beispielsweise haben wir Datenstrukturen im Rezeptmanager behandelt, den wir in Rust codiert haben. Viele Codierungsherausforderungen helfen Ihnen dabei, den einfachen Aufbau von Datenstrukturen zu erlernen und Ihr Wissen über das Codieren benutzerdefinierter Datenstrukturen zu testen.
Das Beste an Codierungsherausforderungen ist, dass Sie unabhängig von Ihrem Kenntnisstand eine Herausforderung finden können, die Ihr Wissen auf die Probe stellt und Ihr Lernen stärkt. Diese Herausforderungen gibt es auch in zeitlich begrenzter Form, sodass Sie die Erfahrung machen können, schnell zu denken, um ein Problem zu lösen. Sie müssen herausfinden, welche dieser Codierungsherausforderungen am besten zu Ihrem Können und Wissen passt.
Welche Vorteile bieten Codierungsherausforderungen?
Jeder Programmierer kann Programmierherausforderungen meistern. Was Sie bei einer Codierungsherausforderung erkunden möchten, hängt jedoch davon ab, was Sie lernen möchten. Zu den Vorteilen, die Sie durch die Auseinandersetzung mit Codierungsherausforderungen erhalten, gehören:
- Grundlagen vertiefen: Sie wissen ein wenig über Datentypen, Strukturen und grundlegende Algorithmen, möchten aber mehr erfahren? Grundlagen tauchen in den Kern einer Sprache ein und helfen Ihnen dabei, das zu festigen, was Sie bereits über die Grundlagen der Sprache wissen, einschließlich Bedingungen, Flussanweisungen und Datenstrukturen.
- Vorbereitung auf das Vorstellungsgespräch: Wenn Sie planen, Programmierer zu werden, müssen Sie eine praktische Ausbildung absolvieren, bevor Sie zu einem Vorstellungsgespräch gehen. In technischen Vorstellungsgesprächen werden Sie manchmal aufgefordert, Programme spontan zu lösen, und diese Programmierherausforderungen geben Bewerbern einen Überblick über die Art der Fragen, die ihnen wahrscheinlich gestellt werden.
- Wettbewerbsorientiertes Codieren: Wenn Sie gerne aus Spaß programmieren und es genießen, als Herausforderung Dinge effizienter zu gestalten, dann belohnen Codierungsherausforderungen Konkurrenten manchmal mit guten Lösungen. Die Preise können variieren, aber einige Programmierer verdienen gutes Geld, indem sie wettbewerbsfähig programmieren.
- Verbindungen aufbauen: Nichts verbindet Menschen mehr als die Begegnung mit ähnlichen Problemen. Viele dieser konkurrierenden Coding-Sites verfügen über aktive Communities, die anderen helfen, das Problem zu lösen, oder neue und einzigartige Wege zur Lösung eines bekannten Problems vorschlagen. Sie sind eine großartige Ressource, um Freunde zu finden, die das Programmieren genauso lieben wie Sie.
C++, Java und Python sind die häufigsten Sprachen, für die Codierungsherausforderungen angeboten werden, und einige Codierungsherausforderungsseiten sind auf einige dieser Sprachen spezialisiert. Wie sieht also das Innere einer Codierungsherausforderung aus? Finden wir es heraus!
Starten und Abschließen einer Coding-Challenge
Schauen wir uns eine beispielhafte Codierungsherausforderung an. Dieses von HackerRank konzentriert sich auf die Grundlagen der Python-Codierung. Auf den ersten Blick sehen Sie, dass im linken Bereich eine unkomplizierte Aufgabe und im rechten Bereich ein eingebetteter Compiler aufgeführt ist.
Ganz links, außerhalb des Bereichs, befinden sich eine Reihe von Registerkarten, mit denen Sie die Einsendungen auf Hinweise überprüfen oder in der Bestenliste sehen können, wer für diese Herausforderung eingereicht und erfolgreich war.
Schauen wir uns diese besondere Codierungsherausforderung an. Wir müssen herausfinden, ob n, die gegebene ganze Zahl, ungerade ist. Wenn ja, geben wir „Weird“ aus. Das gibt uns schon eine Zeile:
if n % 2 == 1: # Check if n is odd
print("Weird")
Das scheint in Ordnung zu sein, aber was ist mit den anderen Bedingungen? Nun, wir können eine elif-Anweisung verwenden, um andere Bedingungen zu überprüfen. Der letzte Code, den ich mir dafür ausgedacht habe, ist:
import math
import os
import random
import re
import sys
if __name__ == '__main__':
n = int(input().strip())
if n % 2 == 1: # Check if n is odd
print("Weird")
else: # If n is even
if 2 <= n <= 5:
print("Not Weird")
elif 6 <= n <= 20:
print("Weird")
elif n > 20:
print("Not Weird")
In diesem Fall verwende ich elif
im gesamten Codeblock, um Fall-Through-Anweisungen zu erstellen, bei denen die Bedingungen erfüllt sind. Dies ist eine einfache Herausforderung, die sich auf die Verwendung der if-then-else-Bedingungsanweisung in Python konzentriert, aber einige sind sehr involviert. Zu den Codierungsherausforderungen mit mittlerem Schwierigkeitsgrad gehören Iteratoren und sogar etwas, das bei Regex-Befehlen hilft.
Ein paar Tipps für die Bewältigung von Codierungsherausforderungen
Codierungsherausforderungen können Spaß machen und man lernt viel daraus, aber wenn man Anfänger ist, kann es überwältigend sein, sich einfach einer Herausforderung zu stellen. Hier sind ein paar Dinge, die Sie bei der Bewältigung dieser Herausforderungen beachten sollten, um sich leichter an sie zu gewöhnen:
- Verwenden Sie Ihre eigene IDE: Wir haben uns bereits mit der Einrichtung von Visual Studio für Python befasst und es ist meine bevorzugte IDE. Wenn Sie jedoch eine haben, die Ihnen besser gefällt, wie Rider oder VS Code, dann programmieren Sie diese und fügen Sie sie ein später in das Challenge-Dokument einfügen.
- Haben Sie eine Basislösung: An einigen Stellen wird Ihnen möglicherweise empfohlen, eine Lösung brutal zu erzwingen – probieren Sie Dinge aus, bis etwas funktioniert. Ich finde immer, dass der effizienteste Weg, Dinge zu lösen, darin besteht, eine Lösung im Kopf zu haben. Wenn das nicht funktioniert, dann gehen Sie zu Plan B.
- Auf Grenzfälle prüfen: Websites wie HackerRank sagen Ihnen nicht direkt, worauf sie in den Testfällen testen. Wenn Sie die potenziellen Randfälle nicht berücksichtigen, wird die Einreichung fehlschlagen.
- Syntax und Datenstrukturen optimieren: Als letztes würde ich vorschlagen, die Syntax und Datenstrukturen Ihres Codes zu optimieren, nachdem Sie mit dem Code fertig sind. Dadurch gewöhnen Sie sich an, effizienten Code zu schreiben. Betrachten Sie es als außerschulischen Ansatz für Programmierherausforderungen.
Wo finden Sie Programmierherausforderungen?
Ich habe HackerRank bereits in der vorherigen Herausforderung behandelt und sie sind die Lösung, auf die ich mich bei meinen eigenen Codierungsherausforderungen verlassen kann. Sie sind jedoch bei weitem nicht die einzige Website, die Sie nutzen können. Zu den Alternativen gehören:
- FreeCodeCamp: Wenn Sie ein Anfänger sind und Hilfe bei den Grundlagen benötigen, ist dies eine großartige Option für Anfänger, um erste Erfahrungen zu sammeln.
- Edabit: Wenn Sie nicht allzu viel Zeit für Ihre Codierungsaufgaben haben, können diese kleinen Herausforderungen in jeden freien Raum in Ihrem Zeitplan passen.
Codierungsherausforderungen sind eine großartige Möglichkeit, anhand praktischer Beispiele zu erforschen, was Sie im Code gelernt haben. Wenn Sie neu im Programmieren sind und sich selbst testen möchten, probieren Sie es aus. Sie werden überrascht sein, wie viel Sie seit Ihrem Start gelernt haben!