これは、CodeSignal上画面に見られるものと同様に、業界のコーディングフレームワーク評価の模擬例として機能します。インターネット上のこれらのタイプの評価をナビゲートする包括的なガイドや例の希少性を強調することが重要です。このドキュメントは、そのような課題に備えようとしている人にとって非常に貴重なリソースになります。
その他の洞察とリソースについては、Twitter @paullockettkpbで作成者をフォローしてください。
このガイドは、コーディングコミュニティ内で知識を探索し共有する彼の旅の一部です。
このドキュメントで概説されているタスクは、技術的なインタビューやコーディング競技中に通常遭遇するコーディング評価の複雑さと幅をエミュレートするために作成されています。各レベルでは、データ構造、アルゴリズム、ソフトウェアエンジニアリングの原則を確実に理解する必要がある段階的に複雑な問題を導入します。
このガイドで概説されているタスクに飛び込み、テストを実行する前に、開発環境が適切にセットアップされるようにすることが重要です。テストとシミュレーションを効果的に実行するために必要な前提条件は次のとおりです。
python --versionまたはpython3 --versionを実行して、インストールを確認できます。重要な注意:CodeSignalは、評価にPythonバージョン3.10.6を利用しています。
ターミナルまたはコマンドプロンプトへの精通:端末(Mac/Linux)またはコマンドプロンプト(Windows)の使用に関する基本的な知識が有益です。それを使用して、 test_simulation.pyファイルで提供されたテストスクリプトを実行する必要があります。
必要なPythonパッケージをインストールする:タスクから始める前に、 requirements.txtファイルにリストされているPythonパッケージをインストールすることが不可欠です。これらのパッケージには、このガイドのタスク全体で使用される可能性のある必要なライブラリが含まれています。これらのパッケージをインストールするには、端末またはコマンドプロンプトで次のコマンドを実行します。
pip install -r requirements.txt
または
/path/to/python3.10.6 -m pip install -r requirements.txt
このコマンドは、PythonのパッケージインストーラーであるPipに、 requirements.txtにリストされているすべてのパッケージをインストールするように指示します。このコマンドを実行するときに、 requirements.txtと同じディレクトリにあることを確認するか、それに正しいパスを提供します。これらのパッケージを事前にインストールすると、必要なすべてのツールとライブラリが自由に使えるようになり、よりスムーズなコーディングエクスペリエンスが促進されます。
重要な注意:Pythonと必要なパッケージをインストールする場合、PythonインストールされたバージョンがCodeSignalが使用するバージョン( 3.10.6)と一致するようにすることが重要です。さらに、統合開発環境(IDE)が同じPythonインタープリターを使用するように構成されていることを確認します。この一貫性は、Pythonバージョンの違いにより、行動または機能の矛盾を回避するために不可欠です。
これらの前提条件が満たされていることを確認することで、タスクに関与し、テストを実行し、このモックコード設計前のスクリーン評価を最大限に活用できるようになります。よく設定された開発環境は、スムーズで効率的なコーディングエクスペリエンスの鍵であることを忘れないでください。
タイミング:タスクを完了するために、自分自身が90分の厳密な時間制限を設定します。このプラクティスは、実際の評価でしばしば存在する時間制約をシミュレートするように設計されており、効果的な時間管理スキルの開発を促進します。
順次進行:レベル1から始めて、前のものを完全に完了するまで後続のレベルに進めないでください。この系統的なアプローチにより、提示された課題を徐々に徹底的に理解することが保証されます。
テストと開発環境: simulation.pyファイル内でコーディングの取り組みを集中します。このファイルは、ソリューションを実装し、タスクに記載されている操作をシミュレートする場所です。
実行中のテスト:提供されたtest_simulation.pyファイルを使用して、コードに対して単位テストを実行しますか?このファイルには、各レベルのテストケースが含まれているため、ソリューションの正しさを段階的に確認できます。特定のレベルでテストを実行するには、端末またはコマンドプロンプトで次のコマンド構造を使用します。
python3 -m unittest test_simulation.TestSimulateCodingFramework.test_group_1python3 -m unittest test_simulation.TestSimulateCodingFramework.test_group_2test_group_x部分を調整します。リファクタリング:レベルを進めるとき、必要に応じて以前のソリューションを再検討およびリファクタリングして、後のタスクに必要な追加の機能に対応しますか?この反復プロセスは、スケーラブルで保守可能なソフトウェアを開発するための鍵です。
レベルの可能な最速の進行を確保するには、次の戦略を検討してください。
フレームワークに精通してください。タイマーを起動する前に、コーディングフレームワークとタスクの構造を理解するのに時間を費やします(このレポのPDFを参照)。この前払い投資は、時限セッション中にタスクを解釈するのに必要な時間を短縮することにより、配当を支払います。
コードする前に計画:タスクごとに、コーディングを開始する前に数分間アプローチを計画してください。これには、擬似コードの書き込み、図の描画、または必要な手順の概要が含まれます。明確な計画は、より効率的にコーディングし、デバッグに費やす時間を短縮するのに役立ちます。
練習速度タイピング:タイピングの物理的行為は、ボトルネックになる可能性があります。練習を通じてタイピング速度を改善することは、全体的な速度に驚くほど大きな影響を与える可能性があります。
スキミングの芸術をマスターする:タスクの説明をすばやくスキミングして、主要な要件と制約を特定することを学びますか?このスキルにより、タスクを読み終えたとしても、ソリューションの策定を開始できます。
コードスニペットとライブラリを使用します。必要に応じて、コードスニペットとライブラリを使用して、ホイールの再発明を避けます。ただし、図書館に適していないことを強制しようとして時間を無駄にしないように注意してください。
並行してテストとコーディング:可能であれば、環境をセットアップして、タスクの他の部分で作業し続けている間に既に作成したコードでテストを実行できるようにします。これは、問題を早期に特定し、全体的な開発時間を短縮するのに役立ちます。
完璧に渡すテストの合格に焦点を当てる:最もエレガントではない場合でも、できるだけ早く実用的なソリューションを取得することを目指してください。残り時間がある場合は、いつでも後でリファクタリングできます。
これらの戦略を組み込むことにより、速度と効率を大幅に向上させることができ、加速されたペースでレベルを進めることができます。
自動化されたコーディング評価のハッキングから供給された次の表は、業界コーディング評価内の質問の予想される時間配分の詳細な内訳を提供します。明確な理解と参照のためにフォーマットされています。
| レベル | 予想時間(分) |
|---|---|
| 1 | 10-15 |
| 2 | 20-30 |
| 3 | 30-60 |
| 4 | 30-60 |
すべてのレベルにわたって時間の範囲を集約すると、評価を完了するための累積推定値は90〜165分です。ただし、候補者の定めの完了時間は90分に設定されています。この矛盾は意図的であり、以下に概説するように特定の目的に役立ちます。
評価の最大許可完了時間は90分で上限になります。この制約は、候補者がこの制限内ですべてのタスクを解決することへの期待ではありません。短い評価の背後にある理論的根拠は、候補者スキルをより正確に測定する可能性があるにもかかわらず、候補者が評価に関与する候補者の意欲は、期間が2時間を超えるテストで大幅に低下するという観察に根ざしています。候補者の能力を評価することの重要な側面は、すべてのタスクの完了ではなく、割り当てられた時間枠内での進行の程度を観察することにあります。
これらのガイドラインを順守し、指定された時間枠内でタスクを完了すると、コーディング評価に取り組む実践的な経験が装備されます。
幸運を祈ります。また、ソリューションを頻繁にテストして進捗を追跡し、アプローチに関するフィードバックを得ることを忘れないでください。
このガイドに貢献することは、他の人が業界のコーディング評価の準備を支援する素晴らしい方法です。さらに質問や課題を追加することに興味がある場合は、貢献を歓迎します!貢献する方法は次のとおりです。
フレームワークを理解する:新しい質問を作成する前に、既存のコーディングフレームワークとタスクの構造に精通してください。質問をどのように構成すべきか、何を評価するかについての詳細なガイドラインについては、このリポジトリのPDFを参照してください。
新しい質問を作成する:実際のコーディング評価を模倣するために質問を設計します。それらが明確で簡潔であり、さまざまな困難をカバーしていることを確認してください。各質問は、アルゴリズム思考、データ構造、または時間の下での問題解決など、コーディング評価に関連する特定のスキルまたは一連のスキルに挑戦する必要があります。
既存の構造に従ってください。質問はPractice Assessmentsディレクトリ、特にfile_storage例にある構造(コンテンツではなく)に似ている必要があります。この一貫性は、候補者がフォーマットに精通し、問題の解決に集中するのに役立ちます。
PDFガイドラインに準拠しています。リポジトリのPDFは、質問の仕組みに関するルールの概要を示しています。評価の質と関連性を維持するために、質問がこれらのルールに準拠していることを確認してください。
質問を送信:質問を作成したら、 Practice Assessmentsディレクトリにそれらを配置します。質問が現在カバーされていない新しいテーマや概念に基づいている場合は、 Practice Assessments内で新しいサブディレクトリを作成して、それに応じてそれらを整理することを検討してください。
プルリクエストを開く:プルリクエストを介して貢献を送信します。プルリクエストで、質問の簡単な説明と、それらがコーディングフレームワークの目的とどのように一致するかを提供します。私たちのチームは、あなたの提出を確認し、必要に応じてフィードバックを提供します。
魅力的なまま:質問を提出した後、コミュニティとの関わりを維持してください。プルリクエストに関するフィードバックに回答し、レビュー担当者が推奨する質問を調整することにオープンにします。
このガイドに貢献することで、他の人がコーディング評価の準備を支援するだけでなく、意味のある、挑戦的なコーディングの問題を作成するための独自のスキルを磨くのを支援しています。あなたの貢献を見て、実践評価のコレクションを拡大することを楽しみにしています!