一键导入
computer-science-fundamentals
コンピュータサイエンスの基礎知識を網羅的にカバー。ハードウェアの仕組みからデータ表現、アルゴリズム、データ構造、計算理論、プログラミングパラダイム、ソフトウェアエンジニアリング基礎まで、エンジニアに必要な全てのCS基礎知識を体系的に解説。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
コンピュータサイエンスの基礎知識を網羅的にカバー。ハードウェアの仕組みからデータ表現、アルゴリズム、データ構造、計算理論、プログラミングパラダイム、ソフトウェアエンジニアリング基礎まで、エンジニアに必要な全てのCS基礎知識を体系的に解説。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Fundamentals of modern web development. Framework selection (React, Vue, Next.js), project architecture, state management, routing, build tools, and CSS strategy best practices.
A comprehensive guide covering the fundamentals of computer science. From hardware internals and data representation to algorithms, data structures, computation theory, programming paradigms, and software engineering basics — a systematic guide to all the CS foundations every engineer needs.
DJテクニック(Rekordbox 7.2.7)と楽曲制作(Ableton Live 12 Suite)を体系的に学べる包括的なガイド。基礎音楽理論から応用テクニック、キャリア構築まで、DJ・音楽プロデューサーに必要な全スキルをカバー。
CLIツール開発ガイド。Node.js(Commander、Inquirer)、Python(Click、Typer)、Go(Cobra)、引数パース、インタラクティブUI、アーキテクチャ設計、テスト、配布方法など、プロフェッショナルなCLIツール開発のベストプラクティス。
スクリプト開発ガイド。Shell、Python、Node.jsスクリプト、自動化、バッチ処理、環境変数管理など、効率的なスクリプト開発のベストプラクティス。
バックエンド開発の基礎。API設計、データベース設計、認証・認可、エラーハンドリング、セキュリティなど、堅牢なバックエンドシステム構築のベストプラクティス。
| name | computer-science-fundamentals |
| description | コンピュータサイエンスの基礎知識を網羅的にカバー。ハードウェアの仕組みからデータ表現、アルゴリズム、データ構造、計算理論、プログラミングパラダイム、ソフトウェアエンジニアリング基礎まで、エンジニアに必要な全てのCS基礎知識を体系的に解説。 |
このSkillは、コンピュータサイエンスの基礎知識を包括的にカバーする。フレームワークやライブラリは5年で変わるが、ここで扱うCS基礎は50年以上変わらない普遍的な知識であり、エンジニアとしての基礎体力そのものである。
00-introduction → 01-hardware-basics → 02-data-representation
「コンピュータが物理的にどう動くか」を理解する
03-algorithms-basics → 04-data-structures
「問題を効率的に解く方法」を身につける
05-computation-theory → 06-programming-paradigms → 07-software-engineering-basics → 08-advanced-topics
「なぜそうなのか」を理論的に理解し、実務に応用する
| # | ファイル | 内容 |
|---|---|---|
| 00 | overview.md | コンピュータサイエンスの全体像 — CSの定義、主要分野、なぜ学ぶべきか |
| 01 | history-of-computing.md | コンピューティングの歴史 — そろばんから量子コンピュータまで |
| 02 | why-learn-cs.md | なぜCSを学ぶのか — 具体的なメリット、CS知識なしの失敗例 |
| 03 | learning-path.md | CS学習ロードマップ — 目標別カスタムパス、リソース一覧 |
コンピュータサイエンスとは何か、その全体像を俯瞰する導入セクション。CSの歴史を紐解きながら、なぜエンジニアにCSの知識が不可欠なのかを具体例を交えて解説する。さらに、読者のレベルと目標に応じた最適な学習パスを提示し、本Skill全体の見通しを立てる。
CSは単なる「プログラミング」ではない。計算可能性、効率性、正確性を数学的に扱う学問であり、その基礎はハードウェアからソフトウェア、理論から応用まで広範囲にわたる。本セクションではその全体像を把握し、以降のセクションへの道標を提供する。
| # | ファイル | 内容 |
|---|---|---|
| 00 | cpu-architecture.md | CPUアーキテクチャ — 命令サイクル、パイプライン、CISC vs RISC |
| 01 | memory-hierarchy.md | メモリ階層 — キャッシュ、RAM、局所性の原理、仮想メモリ |
| 02 | storage-systems.md | ストレージ — HDD、SSD、NVMe、ファイルシステム、RAID |
| 03 | motherboard-and-bus.md | マザーボードとバス — PCIe、USB、チップセット、ブートプロセス |
| 04 | gpu-and-parallel.md | GPUと並列計算 — CUDA、OpenCL、AI学習エンジン |
| 05 | io-systems.md | I/Oシステム — 割り込み、DMA、デバイスドライバ |
| 06 | pcb-and-circuits.md | 電子回路 — トランジスタ、論理ゲート、半導体製造 |
| 07 | capacity-limits.md | 性能限界と未来 — ムーアの法則、量子コンピュータ |
ソフトウェアは最終的にハードウェア上で動く。CPUが命令をどう実行し、メモリがどう階層化され、ストレージがどうデータを永続化するかを理解することは、パフォーマンスを意識したプログラミングの第一歩である。
CPUのパイプライン処理を理解すれば分岐予測ミスのコストが分かり、メモリ階層を知ればキャッシュフレンドリーなコードが書ける。GPUの仕組みを知ればAI学習の高速化が理解でき、I/Oの仕組みを知ればio_uringやDPDKの意義が分かる。このセクションはプログラマーの視点でハードウェアを解説し、実務に直結する知識を提供する。
| # | ファイル | 内容 |
|---|---|---|
| 00 | binary-and-number-systems.md | 2進数と数値表現 — ビット演算、基数変換 |
| 01 | character-encoding.md | 文字コード — ASCII、Unicode、UTF-8、文字化け対策 |
| 02 | integer-representation.md | 整数表現 — 2の補数、オーバーフロー、エンディアン |
| 03 | floating-point.md | 浮動小数点数 — IEEE 754、丸め誤差、0.1+0.2問題 |
| 04 | compression-algorithms.md | 圧縮アルゴリズム — ハフマン、LZ77、DEFLATE、JPEG/MP3 |
| 05 | storage-capacity.md | データ量の感覚 — 単位、Back-of-the-envelope計算 |
| 06 | brain-vs-computer.md | 脳とコンピュータの比較 — 情報処理方式の根本的な違い |
コンピュータ内部では全てのデータが0と1で表現される。テキスト、数値、画像、音声 — 全てはビット列の解釈の仕方が異なるだけである。このセクションではデータ表現の全てを解説する。
0.1 + 0.2 ≠ 0.3 の理由、文字化けの原因、整数オーバーフローによる事故事例(Ariane 5ロケット爆発)など、データ表現の理解不足が引き起こす実務上の問題は多い。IEEE 754の仕組みをビットレベルで理解し、UTF-8のバイト構造を把握することで、これらの問題を根本から理解し予防できる。
| # | ファイル | 内容 |
|---|---|---|
| 00 | what-is-algorithm.md | アルゴリズムとは — 定義、表現方法、設計手法概観 |
| 01 | complexity-analysis.md | 計算量解析 — Big-O、Big-Ω、Big-Θ、償却計算量 |
| 02 | sorting-algorithms.md | ソートアルゴリズム — バブル〜TimSort、比較ソートの下界 |
| 03 | searching-algorithms.md | 探索アルゴリズム — 線形、二分、ハッシュ、文字列探索 |
| 04 | recursion-and-divide.md | 再帰と分割統治 — コールスタック、Master Theorem |
| 05 | greedy-algorithms.md | 貪欲法 — 活動選択、ハフマン、ダイクストラ |
| 06 | dynamic-programming.md | 動的計画法 — ナップサック、LCS、編集距離 |
| 07 | graph-algorithms.md | グラフアルゴリズム — BFS/DFS、最短経路、MST、トポロジカルソート |
アルゴリズムはCSの心臓部である。O(n)とO(n²)の違いは、データが100万件になると「1秒 vs 11.5日」の差になる。この差を理解し、適切なアルゴリズムを選択できるかどうかが、エンジニアの実力を分ける。
ソート、探索、再帰、動的計画法、グラフアルゴリズムという5大テーマを、理論(計算量証明)と実践(動作するコード)の両面から解説する。各アルゴリズムは「なぜこの方法が効率的なのか」を内部的に解説し、単なる暗記ではなく深い理解を促す。
| # | ファイル | 内容 |
|---|---|---|
| 00 | arrays-and-lists.md | 配列と連結リスト — 動的配列、スキップリスト |
| 01 | stacks-and-queues.md | スタックとキュー — LIFO/FIFO、Deque、優先度キュー |
| 02 | hash-tables.md | ハッシュテーブル — 衝突解決、ブルームフィルタ、一貫性ハッシュ |
| 03 | trees-basics.md | 木構造の基礎 — 二分探索木、走査、トライ木 |
| 04 | balanced-trees.md | 平衡木 — AVL木、赤黒木、B木、B+木 |
| 05 | heaps-and-priority.md | ヒープと優先度キュー — 二分ヒープ、フィボナッチヒープ |
| 06 | graphs.md | グラフ — 隣接行列/リスト、Union-Find |
| 07 | advanced-structures.md | 発展的データ構造 — ブルームフィルタ、LRUキャッシュ、ロープ |
「適切なデータ構造を選ぶ」ことは、プログラミングにおける最も重要な判断の一つである。配列、ハッシュテーブル、木、グラフ — それぞれに得意・不得意があり、問題に応じた最適な選択ができるかどうかでコードの品質が決まる。
各データ構造について、内部実装の仕組み、計算量、メモリ使用量、キャッシュ効率まで深く解説する。さらに、各プログラミング言語(Python、JavaScript、Java、Rust)での標準ライブラリの実装も比較し、実務ですぐに使える知識を提供する。
| # | ファイル | 内容 |
|---|---|---|
| 00 | automata-theory.md | オートマトン理論 — DFA/NFA、正規表現エンジン |
| 01 | formal-languages.md | 形式言語 — チョムスキー階層、BNF、構文解析 |
| 02 | turing-machines.md | チューリングマシン — 計算の数学的定義 |
| 03 | computability.md | 計算可能性 — 停止問題、決定不能性 |
| 04 | complexity-classes.md | 計算量クラス — P、NP、NP完全、P vs NP問題 |
| 05 | information-theory.md | 情報理論 — エントロピー、シャノンの定理 |
計算理論はCSの最も深い層であり、「何が計算可能で、何が不可能か」を数学的に明らかにする。正規表現がなぜ再帰的なパターンにマッチできないのか、完璧なバグ検出ツールがなぜ作れないのか — これらの「不可能」を理解することは、エンジニアの思考の深さを決定的に変える。
| # | ファイル | 内容 |
|---|---|---|
| 00 | imperative.md | 命令型プログラミング — 手続き型、構造化、C言語 |
| 01 | functional.md | 関数型プログラミング — 純粋関数、不変性、モナド |
| 02 | object-oriented.md | オブジェクト指向 — SOLID、デザインパターン |
| 03 | logic.md | 論理型プログラミング — Prolog、宣言的プログラミング |
| 04 | multi-paradigm.md | マルチパラダイム — Rust、Kotlin、TypeScript |
| # | ファイル | 内容 |
|---|---|---|
| 00 | development-lifecycle.md | 開発ライフサイクル — ウォーターフォール、アジャイル、DevOps |
| 01 | version-control.md | バージョン管理 — Gitの内部構造、ブランチ戦略 |
| 02 | testing-fundamentals.md | テスト基礎 — テストピラミッド、TDD、BDD |
| 03 | debugging-techniques.md | デバッグ技法 — 科学的デバッグ、プロファイリング |
| 04 | documentation-practices.md | ドキュメンテーション — Docs as Code、ADR |
| # | ファイル | 内容 |
|---|---|---|
| 00 | distributed-systems-intro.md | 分散システム入門 — CAP定理、Raft、マイクロサービス |
| 01 | concurrency-intro.md | 並行処理入門 — スレッド、デッドロック、async/await |
| 02 | security-intro.md | セキュリティ入門 — 暗号、TLS、OWASP Top 10 |
| 03 | ai-ml-intro.md | AI/ML入門 — 機械学習分類、ニューラルネット、LLM |
| ディレクトリ | 内容 | ファイル数 |
|---|---|---|
docs/00-introduction/ | 導入、歴史、学習パス | 4 |
docs/01-hardware-basics/ | ハードウェアの仕組み | 8 |
docs/02-data-representation/ | データの内部表現 | 7 |
docs/03-algorithms-basics/ | アルゴリズムの基礎 | 8 |
docs/04-data-structures/ | データ構造 | 8 |
docs/05-computation-theory/ | 計算理論 | 6 |
docs/06-programming-paradigms/ | プログラミングパラダイム | 5 |
docs/07-software-engineering-basics/ | SE基礎 | 5 |
docs/08-advanced-topics/ | 発展トピック | 4 |
| 合計 | 55 |
| Skill | 関係 |
|---|