Chcesz ulepszyć swoje kodowanie? Wypróbuj konkurencyjne wyzwanie związane z kodowaniem!
Streszczenie
- Konkurencyjne wyzwania związane z kodowaniem pozwalają przetestować i utrwalić swoją wiedzę na temat struktur danych i algorytmów.
- Wyzwania odpowiadają różnym poziomom umiejętności i oferują korzyści, takie jak przygotowanie do rozmowy kwalifikacyjnej i nauka tworzenia bardziej wydajnego kodu.
- Wskazówki dla początkujących obejmują korzystanie z preferowanego IDE, posiadanie rozwiązania podstawowego i sprawdzanie przypadków brzegowych.
Istnieje wiele sposobów, aby przejść od początkującego programisty do kogoś z odrobiną doświadczenia. Jeśli nie masz firmy, w której możesz odbyć staż, jednym z najskuteczniejszych sposobów na udoskonalenie umiejętności programowania są konkurencyjne wyzwania związane z kodowaniem online. Pozwól mi wyjaśnić.
Czym w ogóle jest konkurencyjne wyzwanie w kodowaniu?
Konkurencyjne wyzwania związane z kodowaniem to seria problemów, które musisz rozwiązać w wybranym przez siebie języku programowania tak szybko i efektywnie, jak to możliwe. Podczas wyzwania związanego z kodowaniem prawdopodobnie natkniesz się na rzeczy, które znasz z podstaw swojej nauki. Na przykład omówiliśmy struktury danych w menedżerze receptur, który zakodowaliśmy w Rust. Wiele wyzwań związanych z kodowaniem pomoże Ci nauczyć się łatwo budować struktury danych i sprawdzić swoją wiedzę na temat kodowania niestandardowych struktur danych.
Jedną z najlepszych rzeczy w wyzwaniach związanych z kodowaniem jest to, że niezależnie od poziomu Twoich umiejętności, możesz znaleźć wyzwanie, które sprawdzi Twoją wiedzę i wzmocni Twoją naukę. Wyzwania te są również dostępne w różnym czasie, dzięki czemu możesz samodzielnie myśleć o rozwiązaniu problemu. Musisz określić, które z tych wyzwań związanych z kodowaniem najlepiej odpowiada Twojemu poziomowi umiejętności i wiedzy.
Jakie korzyści płyną z wyzwań związanych z kodowaniem?
Programista na każdym poziomie może wykonywać wyzwania związane z kodowaniem. Jednak to, co wybierzesz w ramach wyzwania związanego z kodowaniem, różni się w zależności od tego, czego chcesz się nauczyć. Wśród korzyści, jakie można uzyskać dzięki odkrywaniu wyzwań związanych z kodowaniem, znajdują się:
- Podstawy wzmacniające: wiesz trochę o typach danych, strukturach i podstawowych algorytmach, ale chcesz dowiedzieć się więcej? Podstawy pozwalają zagłębić się w rdzeń języka i pomóc Ci utrwalić to, co już wiesz o podstawach języka, w tym o instrukcjach warunkowych, instrukcjach przepływu i strukturach danych.
- Przygotowanie do rozmowy kwalifikacyjnej: jeśli planujesz zostać programistą, przed przystąpieniem do rozmowy kwalifikacyjnej musisz przejść szkolenie praktyczne. Rozmowy kwalifikacyjne techniczne wymagają czasami rozwiązywania programów na bieżąco, a wyzwania związane z kodowaniem dają kandydatom wiedzę na temat rodzaju pytań, jakie prawdopodobnie zostaną im zadane.
- Kodowanie konkurencyjne: jeśli lubisz kodować dla zabawy i lubisz zwiększać wydajność pracy jako wyzwanie, wyzwania związane z kodowaniem czasami nagradzają konkurencję dobrymi rozwiązaniami. Nagrody mogą być różne, ale niektórzy programiści zarabiają dobre pieniądze, pisząc kodowanie w sposób konkurencyjny.
- Budowanie połączeń: nic tak nie jednoczy ludzi, jak stawianie czoła podobnym problemom. Wiele z tych konkurencyjnych witryn zajmujących się kodowaniem ma aktywne społeczności, które pomagają innym zrozumieć, jak rozwiązać problem lub zaproponować nowe i unikalne sposoby rozwiązania dobrze znanego problemu. Są doskonałym źródłem nowych znajomości, które tak samo jak Ty uwielbiają kodować.
C++, Java i Python to najpopularniejsze języki, dla których oferowane są wyzwania związane z kodowaniem, a niektóre witryny z wyzwaniami w zakresie kodowania specjalizują się w kilku z tych języków. Jak zatem wygląda wnętrze wyzwania związanego z kodowaniem? Przekonajmy się!
Rozpoczęcie i ukończenie wyzwania kodowania
Przyjrzyjmy się przykładowemu wyzwaniu związanemu z kodowaniem. Ten z HackerRank skupia się na podstawach kodowania w Pythonie. Od razu widać, że w lewym okienku znajduje się proste zadanie z osadzonym kompilatorem w prawym okienku.
Po lewej stronie, poza panelem, znajduje się szereg zakładek umożliwiających sprawdzenie zgłoszeń w celu uzyskania wskazówek lub tabeli liderów, aby zobaczyć, kto zgłosił się do tego wyzwania i odniósł sukces.
Przyjrzyjmy się temu konkretnemu wyzwaniu związanemu z kodowaniem. Musimy dowiedzieć się, czy n, podana liczba całkowita, jest nieparzysta. Jeśli tak, drukujemy „Dziwne”. To już daje nam linię:
if n % 2 == 1: # Check if n is odd
print("Weird")
Wydaje się to w porządku, ale co z innymi warunkami? Cóż, możemy użyć instrukcji elif, aby sprawdzić inne warunki. Ostatni kod, który wymyśliłem, to:
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")
W tym przypadku używam elif
w całym bloku kodu, aby utworzyć instrukcje awaryjne, w których spełnione są warunki. Jest to proste wyzwanie skupiające się na użyciu instrukcji warunkowej if-then-else w Pythonie, ale niektórzy są bardzo zaangażowani. Wyzwania związane z kodowaniem o średnim stopniu trudności obejmują iteratory, a nawet coś, co pomaga w przypadku poleceń Regex.
Kilka wskazówek dotyczących podejmowania wyzwań związanych z kodowaniem
Wyzwania związane z kodowaniem mogą być świetną zabawą i wiele się z nich nauczysz, ale jeśli jesteś początkujący, samo podjęcie wyzwania może być przytłaczające. Oto kilka rzeczy, o których powinieneś pamiętać, podejmując się tych wyzwań, aby łatwiej się im podołać:
- Użyj własnego IDE: Omówiliśmy już wcześniej konfigurowanie programu Visual Studio dla języka Python i jest to moje preferowane IDE, ale jeśli masz takie, które bardziej Ci odpowiada, np. Rider lub VS Code, wpisz w nim kod i wklej do dokumentu kwestionującego później.
- Zastosuj rozwiązanie podstawowe: w niektórych miejscach zaleca się rozwiązanie metodą brute-force — próbuj różnych rozwiązań, aż coś zadziała. Zawsze uważam, że najskuteczniejszym sposobem rozwiązania problemu jest posiadanie rozwiązania w umyśle. Jeśli to nie pomoże, przejdź do planu B.
- Sprawdź przypadki brzegowe: witryny takie jak HackerRank nie powiedzą Ci wprost, co testują w przypadkach testowych. Jeśli nie poradzisz sobie z potencjalnymi przypadkami brzegowymi, nie uda Ci się przesłać zgłoszenia.
- Optymalizuj składnię i struktury danych: Ostatnią rzeczą, jaką sugeruję, jest optymalizacja składni kodu i struktur danych po jego zakończeniu. Dzięki temu wyrobisz nawyk pisania wydajnego kodu. Potraktuj to jako zajęcia pozalekcyjne związane z wyzwaniami związanymi z kodowaniem.
Gdzie można znaleźć wyzwania związane z kodowaniem?
Opisałem już HackerRank w poprzednim wyzwaniu i to właśnie na nich polegam w przypadku moich własnych wyzwań związanych z kodowaniem. Jednak nie są to jedyne witryny, z których możesz korzystać. Wśród alternatyw są:
- FreeCodeCamp: Jeśli jesteś początkujący i potrzebujesz pomocy z podstawami, jest to świetna opcja dla nowicjuszy, aby zmoczyć stopy.
- Edabit: Jeśli nie masz zbyt dużo czasu na wyzwania związane z kodowaniem, te niewielkie wyzwania zmieszczą się w dowolnej wolnej przestrzeni w Twoim harmonogramie.
Wyzwania związane z kodowaniem to świetny sposób na sprawdzenie, czego nauczyłeś się w kodzie, za pomocą praktycznych przykładów. Jeśli dopiero zaczynasz programować i chcesz się sprawdzić, daj im szansę. Możesz być zaskoczony, jak wiele się nauczyłeś od czasu, gdy zacząłeś!