gulmezbugra/think-like-programmer

プログラマーが「何を学ぶべきか」「この本・講演・論文・コース・キャリア・面接のリソース」を尋ねたときに、ソフトウェア基礎に関する厳選リソースを推薦するスキル。

think-like-programmer とは?

このスキルは、ソフトウェア開発者なら誰もが知っておくべき技術リソースの厳選カタログを提供します。スキルレベルや使用技術スタックを問わず、アルゴリズム、データ構造、分散システム、セキュリティ、キャリア、実践的コーディングなど幅広いトピックをカバーしています。ユーザーが「次に何を学ぶべきか」「特定の概念についての定番資料」を尋ねたときに、カタログから適切なセクションを選び、2~4個のリソースを推薦します。初心者には視覚的で易しいリソース(『Grokking Algorithms』など)を、経験者には深い古典的資料(『Introduction to Algorithms』など)を優先します。また、面接準備やコーディング練習サイトの提案も行い、回答はユーザーの言語で行い、リソースタイトルは原文を保持します。カタログにないトピックはその旨を伝え、一般知識で答えるように設計されています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/gulmezbugra/think-like-programmer/tree/HEAD/think-like-programmer

Installed? Explore more 生産性&コラボレーション skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

プログラマーのように考える

あらゆるスキルレベルや技術スタックのソフトウェア開発者が知っておくべき(主に技術的な)リソースの厳選カタログ。Alexey Migutskyとコントリビューターによるコミュニティリスト(https://github.com/mtdvio/every-programmer-should-know)を基にしており、CC BY 4.0ライセンスです。オリジナルは「非常に主観的で、科学的根拠はなく」順不同です。

いつ使うか

  • 「次に何を学ぶべきか / すべての開発者がXについて知っておくべきことは?」
  • 基礎トピックに関する本、講演、論文、コース、記事のリクエスト
  • ある概念(浮動小数点、タイムゾーン、Unicode、メモリ、CAP/分散クロック、暗号)を説明するとき、定番の読み物を紹介したい場合
  • キャリアに関する質問:面接、オファー交渉、株式、リモートワーク、履歴書
  • 「どこでコーディング練習や面接対策ができるか?」

使い方

  1. 質問をカタログの1つ以上のセクションにマッチさせる。
  2. セクション全体ではなく、2~4個のリソースを推薦する。それぞれについて、なぜ適切か、および形式(本/動画/記事/論文/コース/サイト)を1行で説明する。
  3. レベルに合わせて調整する:初心者には視覚的で易しいリソース(『Grokking Algorithms』『Hello Algo』『Learn X in Y Minutes』)を最初に、経験者には深いまたは古典的な資料(『Introduction to Algorithms』『DDIA』『Lamport』『Out of the Tar Pit』)を推薦する。
  4. トピックがカタログにない場合は、その旨を明確に伝え、一般知識から回答する。無関係なリンクを強制しない。
  5. 一部のリンクは古く、移動または削除されている可能性がある。Webアクセスが可能でリンクが重要な場合は、使用前に確認する。そうでなければ、リンクが古い可能性があることを伝える。
  6. ユーザーの言語で返答する。リソースタイトルは原文のまま保持する。
  7. 必要に応じて、誰もこれをすべて暗記する必要はないことを伝える。これは地図であり、チェックリストではない。

推奨パス(カタログからの組み合わせ)

  • CS初心者: Map of Computer Science → Computer Science Roadmap → Grokking Algorithms → Big O Cheatsheet → Floating Point Guide → Unicode and Character Sets
  • バックエンド/分散システム: Latency Numbers → Understanding Distributed Systems → Designing Data-Intensive Applications → Fallacies of Distributed Computing → Time, Clocks and the Ordering of Events → Jepsen
  • より良いコードを書く: The Art of Readable Code → Clean Code / Code Complete → Working Effectively with Legacy Code → Out of the Tar Pit → Simple Made Easy
  • 面接対策: Tech Interview Handbook → Cracking the Coding Interview → LeetCode / Codility → How To Interview As a Developer Candidate → Ten Rules for Negotiating a Job Offer
  • セキュリティ基礎: OWASP Top 10 → Portswigger Academy → Hashing, Encryption and Encoding → Cryptographic Right Answers → Rolling Your Own Crypto(なぜすべきでないか)

カタログ

はじめに

誤った前提

  • Awesome Falsehoods(リスト)— https://github.com/kdeldycke/awesome-falsehood — プログラマーが文字列、住所、名前、数値、メール、タイムゾーン、日付などについて信じがちな誤った前提

アルゴリズム

データ構造

数値

文字列

レイテンシ

時間

メモリ

分散システム

機械学習

正規表現

セキュリティ

UX / ユーザビリティ

SEO

アーキテクチャ

コード設計

エンジニアリング哲学

プラクティス

キャリア

面接対策

コーディング練習

その他

関連スキル