コーディングをレベルアップしたいですか?競争力のあるコーディング チャレンジに挑戦してください!
まとめ
- 競争力のあるコーディングの課題では、データ構造とアルゴリズムに関する知識をテストし、強化することができます。
- チャレンジはさまざまなスキル レベルに対応しており、面接の準備やより効率的なコードの作成方法の学習などのメリットがあります。
- 初心者向けのヒントには、好みの IDE を使用すること、基本ソリューションを用意すること、エッジ ケースを確認することなどが含まれます。
初心者のプログラマーから少し経験のあるプログラマーになるには、さまざまな方法があります。インターン先となる企業がない場合、コーディングのレベルを上げる最も効果的な方法の 1 つは、競争力のあるオンライン コーディング チャレンジに参加することです。説明しましょう。
そもそも、競技コーディングチャレンジとは何ですか?
競技コーディングの課題は、選択したプログラミング言語でできるだけ早く効率的に解決しなければならない一連の問題です。コーディングの課題では、おそらく学習の中核となる基礎から知っていることに遭遇するでしょう。たとえば、Rust でコーディングしたレシピ マネージャーのデータ構造について説明しました。多くのコーディング課題は、データ構造を簡単に構築する方法を学び、カスタム データ構造のコーディングに関する知識をテストするのに役立ちます。
コーディング チャレンジの最も良い点の 1 つは、スキル レベルに関係なく、自分の知識をテストし、学習を強化するチャレンジを見つけることができることです。これらのチャレンジには時間制限もあり、自分の足で考えて問題を解決する経験が得られます。これらのコーディング課題のどれが自分のスキル レベルと知識に最も適しているかを判断する必要があります。
コーディングの課題にはどのようなメリットがあるのでしょうか?
どのレベルのプログラマーでもコーディングの課題を完了できます。ただし、コーディングの課題で何を探索するかを選択するかは、何を学びたいかによって異なります。コーディングの課題を検討することで得られるメリットには、次のようなものがあります。
- 基礎の強化: データ型、構造、基本的なアルゴリズムについては少し知っていますが、さらに詳しく知りたいですか? Fundamentals は言語の核心を掘り下げ、条件文、フロー ステートメント、データ構造など、言語の基本についてすでに知っていることを定着させるのに役立ちます。
- 面接の準備: プログラマーになることを計画している場合は、面接に臨む前に実践的なトレーニングを受ける必要があります。技術面接では、その場でプログラムを解くことが求められることがありますが、これらのコーディングの課題により、応募者は聞かれる可能性のある質問の種類を知ることができます。
- 競争力のあるコーディング: コーディングを楽しむことが好きで、物事をより効率的にすることを課題として楽しんでいる場合、コーディングの課題によって競合他社に優れたソリューションが提供されることがあります。賞品はさまざまですが、競争力のあるコーディングで多額の収入を得ているプログラマーもいます。
- つながりの構築: 同じような問題に直面することほど人々を結びつけるものはありません。これらの競合コーディング サイトの多くには、他の人が問題の解決方法を理解したり、よく知られている問題を解決する新しい独自の方法を提案したりするのに役立つ活発なコミュニティがあります。これらは、あなたと同じようにコーディングが好きな友達を作るための素晴らしいリソースです。
C++、Java、Python はコーディング チャレンジが提供される最も一般的な言語であり、一部のコーディング チャレンジ サイトはこれらの言語のいくつかに特化しています。では、コーディングの課題の内部はどのようになっているのでしょうか?調べてみましょう!
コーディング チャレンジの開始と完了
コーディングの課題のサンプルを見てみましょう。 HackerRank のこの記事は、Python コーディングの基本に焦点を当てています。すぐに、左側のペインに簡単なタスクがリストされ、右側のペインに組み込みコンパイラが表示されていることがわかります。
ペインの向こうのずっと左側には一連のタブがあり、提出物をチェックしてヒントを確認したり、リーダーボードで誰がこのチャレンジに提出して成功したかを確認したりできます。
この特定のコーディングの課題を見てみましょう。与えられた整数 n が奇数かどうかを判断する必要があります。そうであれば、「奇妙な」と出力します。これですでに次の行が得られます。
if n % 2 == 1: # Check if n is odd
print("Weird")
それは良いように思えますが、他の条件はどうですか?さて、elif ステートメントを使用して他の条件を確認できます。このために私が思いついた最終的なコードは次のとおりです。
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")
この場合、コード ブロック全体で elif
を使用して、条件が満たされるフォールスルー ステートメントを作成します。これは、Python での if-then-else 条件文の使用に焦点を当てた単純な課題ですが、非常に複雑になる人もいます。中程度の難易度のコーディングの課題には、イテレータや Regex コマンドに役立つものも含まれます。
コーディングチャレンジを行うためのいくつかのヒント
コーディングの課題は楽しいものであり、そこから多くのことを学ぶことができますが、初心者の場合は、いきなり課題に取り組むのは圧倒されるかもしれません。これらの課題に慣れるために、これらの課題に取り組むときに留意すべきことがいくつかあります。
- 独自の IDE を使用する: 以前に Visual Studio for Python のセットアップについて説明しましたが、これが私の推奨 IDE ですが、Rider や VS Code などのより気に入った IDE がある場合は、その中でコーディングして貼り付けてください。後でチャレンジ文書に記入します。
- 基本的な解決策を用意する: 場所によっては、解決策をブルートフォースで解決する、つまり、何かがうまくいくまで試してみることをアドバイスする場合があります。物事を解決する最も効率的な方法は、解決策を頭の中に入れておくことだといつも思います。それがうまくいかない場合は、プランBに進みます。
- エッジ ケースを確認する: HackerRank のようなサイトは、テスト ケースで何をテストしているのかを明確に示しません。潜在的なエッジケースに対処しないと、提出は失敗します。
- 構文とデータ構造を最適化する: 最後にお勧めするのは、コードの完成後にコード構文とデータ構造を最適化することです。これにより、効率的なコードを書く習慣が身に付きます。コーディングの課題の課外活動と考えてください。
コーディングの課題はどこで見つかりますか?
前回の課題で HackerRank についてはすでに説明しましたが、私自身のコーディング課題で頼りにしているのは HackerRank です。ただし、利用できる唯一のサイトではありません。代替案としては次のようなものがあります。
- FreeCodeCamp: 初心者で基本についてのサポートが必要な場合、これは初心者にとってすぐに使える素晴らしいオプションです。
- Edabit: コーディングの課題に取り組む時間があまりない場合は、これらの簡単な課題をスケジュールの空きスペースに収めることができます。
コーディング チャレンジは、実践的な例を使用して、コードで学んだことを探索する優れた方法です。コーディングが初めてで、自分自身をテストしたい場合は、試してみてください。始めてからどれだけ学んだかに驚かれるかもしれません。