
2026/11/07 1:59
PyLings:演習を解きながら Python を学ぶ
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
このドキュメントは、Junior レベルから Senior レベルまでの開発者を導くことを目的とした専用 Python 3.14 学習環境を詳細に説明しており、堅牢かつ依存関係のないワークフローを採用しています。カリキュラムは、Warm-ups(文字列やイテレーターなどの基本に焦点を当てた 35 タスク)、Middle Level(イテレーターユーティリティおよび LRU キャッシュをカバーする 6 タスク)、Middle+ Level(レイトリミターとイベントバスを含む 4 タスク)、そして Senior/Staff Levels(サーキットブレーカー、アシンクロニックマップ、DI コンテナなどの高度なタスクを含む 10 タスク以上)という 4 つの明確なティアに構成された 55 の構造化された演習からなります。
プラットフォームの主な強みは、外部ツールへの依存を防ぎながら、ファイル保存のたびにテストを即座に実行する自動化されたフィードバックサイクルにあります。ユーザーはファイルを手動で開くのではなく、特定のキーボードショートカット(例:次の問題に進むための
n、解答を見るための s)を使用して課題を進めます。このワークフローは、解答や面接討論問題を参照する前にコーディング、テスト、エッジケースの精査を継続的なサイクルとして強制し、スクリプトと大規模システム設計の間のギャップを効果的に埋めるものです。本文
Python 面接準備課題集「Rustlings」スタイル
環境と概要
- Python 버전: 3.14
- 依存関係: 外部ライブラリ不要
- 機能: 課題の保存ごとにテストが自動的に再実行されます。
キーボード操作一覧
| キー | 機能 |
|---|---|
| 次の課題へ移動 |
| ヒントを表示 |
| テストを再実行 |
| すべての課題一覧を表示 |
| すべての課題をチェック |
| リセット(初期状態に戻す) |
| 解答例を見る |
| 退出 |
演習課題の構成
35 つのウォームアップ課題と、レベル別の面接用演習問題が含まれています。
レベル別フォルダ構成
-
ウォームアップ:
exercises/0_warmups/- 文字列、コレクション、関数、クラス、イテレーター、装飾器、asyncio などに関する基本課題。
- 内容:「このコードを直せ」という形式の短問 35 題。
-
ミドル:
exercises/1_middle/- 課題 01〜06:イテーターユーティリティ、LRU キャッシュ、再試行装飾器、バグ発見、キー・値トランザクション、ログレポート。
-
ミドル+:
exercises/2_middle_plus/- 課題 07〜10:通貨計算、レートリミッター、イベントバス、タスクグラフ。
-
シニア:
exercises/3_senior/- 課題 11〜17:contextmanager、single-flight キャッシュ、サーキットブレーカー、外部ソート、非同期マップ、ワーカープール、バグ発見。
-
スタッフ:
exercises/4_staff/- 課題 18〜20:ジェネレーターベースのイベントループ、ミニ Pydantic、依存注入コンテナ。
解答と面接問題
- 解答例:
フォルダ(メインディレクトリと同じ構造)。solutions/ - 面接用演習問題:
- ミドルレベル:
questions/middle.md - シニアレベル:
questions/senior.md
- ミドルレベル:
学習のヒント
- 解答例へのアクセス制限: テストがパスするまで、絶対に
フォルダを開かないでください。solutions/ - エッジケースの定義: コードを書く前に、処理すべき特殊なケース(エッジケース)を先にリストアップしましょう。
- 面接対策: テストがパスしたら、各課題末尾にある「ディスカッション」質問に回答してください。ここが面接で最も問われる内容です。
マニュアル実行方法
pylings を使用しない場合
特定のテストファイルを実行したい場合は以下のコマンドを使用します(例:
test_ex05*)。
python3 -m unittest discover -s tests -p "test_ex05*" -v
解答例を有効にした全テストレ実行
解答例の動作を確認する場合は、環境変数
SOLUTIONS=1 を設定して実行します。
SOLUTIONS=1 python3 -m unittest discover -s tests