#ProjectEuler100チャレンジの紹介:コーディング成果の「ダークソウル」

「どうすれば競技プログラミングに参加できますか?」とよく聞かれます。

私の答えは常に単純です。できるだけ多くのアルゴリズムとデータ構造の問題を練習してください。

しかし、今日、私はあなたのためにもっと具体的な何かを持っています。コンピュータサイエンスと数学の知識を拡大すると同時に、プログラミングの練習をたくさん提供するチャレンジ。

それは#ProjectEuler100と呼ばれます。そして、多くの人々がすでに公に挑戦を受け入れています。

このチャレンジは、歴史上最も多作な数学者の1人であるレオンハルトオイラーにちなんで名付けられました。

ハードモードでの学習を表します。この挑戦を終えるには、あなたが持っているとさえ知らなかった創造性と問題解決スキルが必要になります。それはあなたを信じられないほど機知に富んだ開発者に変えます。それはあなたに最も野心的なプロジェクトに取り組む自信を与えるでしょう。

要するに、#ProjectEuler100チャレンジは、スーパーサイヤ人の自己が鍛えられ、世界に潜在的なエンジニアリングの天才を解き放つ準備ができているるつぼになります。

プロジェクトオイラーとは何ですか?

プロジェクトオイラーは2001年に作成されたウェブサイトです。これは、数学博士号を取得している人でもまだ苦労しているところまで、次第に難しくなる約600の異なるアルゴリズム問題のコレクションをホストしています。

そうは言っても、最初の100の問題は、新しい開発者によって完全に実行可能です。何千人もの人々が、何年にもわたって最初の100のプロジェクトオイラー問題を完了しました。

それはただ残酷に難しいです。のように...ダークソウルズハード。

プロジェクトオイラーの問題が大好きです。私が最初にコーディングを学んだとき、私はそれらを広範囲に使用しました。私はこれらが大好きなので、これらのプロジェクトオイラーの問題をfreeCodeCampの面接準備セクションに追加しました。

これらは本当にあなたの脳を破壊します。しかし、彼らはやりがいがあります。彼らは難しいですが、公平です。そして、あなたが自分のプライドを飲み込んで、ウィキペディアのウサギの穴をいくつか下って行く気があるなら、あなたもそれらを解決することができます。

クインシー・ラーソン @ ossia

「あなたは自分のエゴの低価格でインターネット上で多くを学ぶことができます。」

-Shawn Wang(@ swyx)

486 12:52PM-2019年3月19日Twitter広告情報とプライバシー126人がこれについて話している

それで、あなたはどう思いますか。最初の100のプロジェクトオイラー問題を解決する準備はできていますか?これがルールです。

#ProjectEuler100チャレンジのルール

私はすべての参加者が従わなければならないこれらの6つの簡単なルールにすべてを要約しました。

  1. 親指を立てて、#ProjectEuler100チャレンジに取り組んでいることを発表している自分の写真をツイートしてください。
  2. GitHubリポジトリを作成します。
  3. チャレンジを完了するたびに、ソリューションをGitHubリポジトリに追加し、#ProjectEuler100ハッシュタグを使用してソリューションへのリンクをツイートします。
  4. 次に、#ProjectEuler100ハッシュタグをスクロールして、他の開発者からの少なくとも2つのツイートについて支持的なフィードバックを提供します。
  5. 次のプロジェクトオイラーチャレンジに進みます。先にスキップすることはできません。100の問題すべてを順番に完了する必要があります。ただし、これらを解決したい任意のプログラミング言語を使用できます。
  6. 100個すべてを終えたら、ラップトップをGitHubリポジトリに開いた状態で、自分のお祝いの写真をツイートします。

コーディングはどこで行いますか?

20年前のプロジェクトオイラーのウェブサイト自体を使用できます。

または、freeCodeCamp.orgバージョンを使用することもできます。これにより、ブラウザーで直接コーディングでき、テストが組み込まれています。

または、辛い場合は、これらの課題を解決するための独自のWebサイトを構築できます。(プロジェクトオイラーの問題はすべてクリエイティブコモンズライセンスであり、非営利目的で無料で使用できます。)

ソリューションをGitHubに配置する必要があるのはなぜですか?

ソリューションをGitHub(またはGitLabまたはBitBucket)に入れると、いくつかのことが達成されます。

  1. それはあなたが他の人々と共有することができるあなたの進歩の素晴らしい公記録をあなたに与えます。
  2. それはあなたのGitHubプロファイルをあなたを雇おうとしている雇用者/クライアントにとって非常にアクティブに見えるようにします。
  3. それはあなたがあなたの孫に見せることができる何かをあなたに与えます。

他の人の解決策を見ることができますか?

あなた自身がすでに解決した問題について、他の人の解決策を見ることができます。

それぞれの課題は、さまざまな方法で解決できます。いくつかは他よりもエレガントです。そして、あなたは彼らのアプローチで他の人々を褒めることができます。

とはいえ、2020年です。現実には、これらの問題の解決策はすでにWeb全体に浸透しています。ヒントを探していると、誤って解決策に出くわす可能性があります。

まだ自分で完了していない課題の解決策にさらされている場合は、そこに表示されているコードを絶対に使用しないでください。これらの問題のそれぞれについて、自分でコードソリューションを考え出す必要があります。

自分の試みをライブストリーミングできますか?

はい。ぜひ。私が言ったように、これらの問題の解決策はすでにウェブ全体にあります。そして、TwitchやYouTubeに注目する人の多くは、チャレンジをしません。彼らは、一般的にプログラミングストリームを見るのを楽しむだけです。

したがって、ライブストリーム中に何かを「スポイリング」することを心配する必要はありません。

freeCodeCampのYouTubeチャンネルで#ProjectEuler100の試みをライブストリーミングします。

とはいえ、これらの問題への参照として人々が使用するビデオガイドや記事を作成している場合は、ネタバレ警告を含めることをお勧めします。人々は、完全な解決策ではなく、行き詰まりを解消できるようにヒントを求めています。

これらをどれくらい速く解決する必要がありますか?

偉大な人を引用するには:

「止まらない限り、どれだけゆっくり進んでもかまいません。」-レオンハルトオイラー

(OK、その引用は一般的に孔子に起因します。しかし、すべての種類の引用は孔子に誤って帰属されるので、私はこの引用を私の少年オイラーに誤って帰属させています。?)

最初のいくつかの問題は比較的簡単です。しかし、それらは急速に増加し、困難を伴います。最後の20または30に到達するまでに、1つの問題を解決するために何日も費やしている可能性があります。

ですから、「100日で完成します」などと間違えないでください。毎日少しずつこれらに取り組んでください。あなたはあなたがフィニッシュラインを通過するのを助けるためにあなたの周りにコミュニティ全体を持っています。

コミュニティはあなたをサポートするためにここにあります

私たちは皆一緒にいます。Twitterの#ProjectEuler100ハッシュタグに群がっています。これは、チャレンジルールに組み込まれています。(「ルール#4:#ProjectEuler100ハッシュタグをスクロールして、他の開発者からの少なくとも2つのツイートについて支持的なフィードバックを提供してください。」)

この課題に着手する他の開発者をサポートします。そして、彼らはあなたをサポートするためにそこにいるでしょう。

また、チャレンジについてチャットしてサポートを受けることができる#ProjectEuler100Discordチャットルームに参加することをお勧めします。

そして、私たちの#ProjectEuler100Twitterボットをフォローすることができます。

したがって、準備ができたら、最初の一歩を踏み出してください。親指を立てて、#ProjectEuler100チャレンジに取り組んでいることを発表している自分の写真をツイートしてください。

あなたはこれを持っています。