情報工学 / コンピュータサイエンス / 設計 / 理論
2018-09-01
(Updated : 2024-09-15)
勉強用資料・サイト / 動画
- 講義動画 | 筑波大学オープンコースウェア|TSUKUBA OCW
- Low-Level Academy
- Entire Computer Science Curriculum in 1000 YouTube Videos | Laconicml
- コグニカル
- 2021-04 アルゴリズム・AtCoder のための数学【前編:数学的知識編①】 - Qiita
- cs-books/influential-cs-books: Most influential books on Computer Science/programming
- 機械学習帳
- karanpratapsingh/system-design: Learn how to design systems at scale and prepare for system design interviews
- CS50 for Japanese: コンピュータサイエンスの入門
読み物
- 技術的負債
- Radium Software
- 本質が分かるJavaScript FAQ
- Clojureの作者が作ったデータベースサービス Datomic.com が凄い
- 因果律を否定するバグ
- 百年の言語
- 開発抽象化レイヤ
- Webサービス - プログラマ向けニュースキュレーションサービスを作ってみた話 - Qiita
- もう見た?GitHub最新人気リポジトリTop25総覧【2017年9月版】 - エンジニアHub|若手Webエンジニアのキャリアを考える!
- 40 Key Computer Science Concepts Explained In Layman’s Terms
- プログラマ必読感
- mr-mig/every-programmer-should-know: A collection of (mostly) technical things every software developer should know
- LEARN REGEX THE EASY WAY
- kdn251/interviews: Everything you need to know to get the job.
- 採用面接向けのアルゴリズム知識まとめ
- 2019-02 なぜコンピュータを学ばなければならないのか 21世紀の君主論
- sdmg15/Best-websites-a-programmer-should-visit: Some useful websites for programmers.
- プログラマ向け Web サイト集
- 2019-04 スライド コンピューティングの基礎と高速化入門 - Speaker Deck
- 情報工学基礎系
- 2019-09 インターネットは最終的に、0と1の信号をサーバークライアント間で発受信しているということでしょうか?非常に非効率な気がします。 - Quora
- コンピュータサイエンスと魔法のYコンビネータ
- Accidentally Turing-Complete
- 思いがけずチューリング完全になってしまったものたち
- 2020-06 現代の僕「コンピュータが生まれた歴史知りたい」 - Qiita
- blacklist/whitelist master/slave に関する情報集め
- 2020-06 銀の弾丸に関するノート | Backdrop
- 複雑性 / 同調整 / 可変性 / 不可視性
- 2020-08 「Goの父」ロブ・パイクの「プログラミング5カ条」にネット上で話題 - GIGAZINE
- プログラミングの中心はアルゴリズムではなくデータ構造
- 2020-08 「プログラミング的思考」で問題解決できる子どもを増やしたい。NHKのプログラミング教育番組が目指す未来とは。 | アンドエンジニア
- 動画があるけどこの番組すごく面白い
- 2012-02 プログラマの抱いている名前についての誤謬
- サービスのユーザネームとかに関する間違った仮定の話
- 2021-06 天才プログラマー登氏に聞く、日本が「海外に負けないICT技術」を生み出す方法 |ビジネス+IT
- 2021-10 イーロン・マスクが特許をオープンソース化した理由がブっ飛んでてステキだった – ベルリンで働くソフトウェアエンジニアのブログ
- 2021-04 科学を変えた10のコンピューターコード | Nature ダイジェスト | Nature Portfolio
- 2019-04 イメージで理解できる-ゼロ知識証明|S|note
- 2021-10 できるだけ嘘を書かずに計算量やオーダーの説明をしようとした記事 - えびちゃんの日記
- 2021-10 美術関係者、アーティスト、コレクターの皆さんへ。NFTの真実についてブロックチェーン専門家から一言いわせてください。 - サトウヒロシ - Medium
- 2021-11 たった99秒で「CPUの作り方」がわかるムービー - GIGAZINE
- 2021-12 UNIXができた頃のコンピューター事情 | FJORD BOOT CAMP(フィヨルドブートキャンプ)
- 2022-01 プログラムがメモリをどう使うかを理解する(1)
- 2022-02 「1Byteが8bitに決まったワケ」についての長い話 まずは「バベッジの階差機関」から(1/7 ページ) - ITmedia NEWS
漫画
- 2020-08 無料で読めるITまんが 2020年版 - Publickey
ネタ
- 2021-12 sudo新一
eBook / 教科書
- Game Programming Patterns - Robert Nystrom
- データ構造の入門書 Open Data Structures
- 日本語化プロジェクト OpenDataStructures.jp
情報工学 / 計算機科学
- 情報科学における18のメタテクニック
- 制御工学の基礎あれこれ
- 2019-10 計算量について、償却/期待/平均など - noshi91のメモ
- best / worst / average / expected / amortized(償却)
低レイヤー
- プログラミング :: 高速なプログラムを書く為に :: メモリ
- CPU とキャッシュのはなし - graphics.hatenablog.com
- 実践的低レベルプログラミング
- 2018-09 ファミコンエミュレータの創り方 - Speaker Deck
- 2019-04 低レイヤを知りたい人のためのCコンパイラ作成入門
- Rui Ueyama さんのやつ
- 2019-05 Goコンパイラをゼロから作って147日でセルフホストを達成した - Qiita
- 2019-08 ゲームボーイエミュレータをGo言語で書いた - undefined
- 2020-11 「強いメモリモデル」と「弱いメモリモデル」 - yamasaのネタ帳
ハードウェア
- 2020-07 ストレージの基礎 - Speaker Deck
数理モデル
ソフトウェア開発におけるパターン
パラダイム / 慣習 (Convention)
- プログラミングパラダイムについて、つれづれと - みねこあ
- RESTfulなWebサイトと拡張子を含むURLについて
- 2014年、オブジェクト指向vs関数型プログラミングの壮絶な宗教戦争は終結 OO陣営最後の牙城DOMというWeb標準のUIを破壊した巨砲Facebook-React - Qiita
- 雑把の UI アーキテクチャー史(MVCからMVVMへ) | プログラマーズ雑記帳
- Less is more:プログラミング言語設計の進歩史 | POSTD
- 「プログラミングの常識」を時々見直す必要性について|Rui Ueyama|note
- HDD が SSD になったり、CPU よりメモリの方がずっと遅かったり
- Elixir から Elm の流れで、いよいよオブジェクト指向に対する懐疑心が無視できないレベルに達した2017年冬。 – ゆびてく
- 2019-07 ブログ: オブジェクト指向プログラミング – 1兆ドル規模の大失敗
関数型
リアクティブ
- 【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun’s diary
- 【翻訳】ReactをjQueryの数行に要約する | POSTD
- elab » Webフロントエンドでリアクティブプログラミング
量子コンピュータ
- 2019-11 古典プログラマ向け量子プログラミング入門 [フル版]
- 299 ページのスライド。圧巻
設計思想 / ソフトウェア原則
- 手続き - 構造化 - オブジェクト指向 - 宣言的記述
- Composition over inheritance
- 伽藍とバザール
- 【翻訳】クラスの「継承」より「合成」がよい理由とは?ゲーム開発におけるコードのフレキシビリティと可読性の向上
- ソフトウェア設計とは何か 〜 設計にはプログラミング経験が必要か否か
- Rule of thee – 汎用化のタイミング – Morizotter Blog
- 2019-07 ソフトウェア設計の言語化スキルを磨くこと|qsona|note
- 未来を見通す努力をする。(例: 企画者とよく話す)
- テストを書く。あとから変更しやすいように。
- 頻繁に変更されるかわからない部分は YAGNI (“You ain’t gonna need it”, 必要になってからやる) でいく。
- 非常に小さい努力でできることはする。あるいは、小さい努力である程度の確率で良い設計ができるよう、 プログラマーとしての基本の所作を身につける。
- 2018-08 ボトムアップドメイン駆動設計 │ nrslib
- 充実した内容
- 2020-06 7つの設計原則とオブジェクト指向プログラミング - ソフトウェア設計を考える
- 2020-09 マイクロサービス設計原則: SOLIDではなくIDEALS
- 2003 ソフトウェア原則 ちょっと横道 その2 | Name and Conquer
- 2021-06 「DIは必ずしも善ではない」| Dependency injection is not a virtue by DHH
アーキテクチャ
- 【翻訳】2015年に向けたJavaScriptアプリケーションアーキテクチャ PART 1 | POSTD
- コンポーネント間のメッセージングについての言及がある
- 2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 - Qiita
- これからの Microservices
- 2019-09 How to Learn Software Design and Architecture - a Roadmap
- Stack された図がわかりやすい
システム
Entity-Component System / Data-Oriented
- エンティティ・コンポーネント・システム - Wikipedia
- 階層構造を進化させる
- Avoiding the Blob Antipattern: A Pragmatic Approach to Entity Composition - Tuts+ Game Development Tutorial
- データ指向設計 (または何故OOPで自爆してしまうのか) - 雑記帳
- Games And Entity Systems | Shaun Smith
- ゲーム パフォーマンス: データ指向プログラミング - Google Developer Japan Blog
- Component basedgameenginedesign
- Unity: Now You’re Thinking With Components - Tuts+ Game Development Article
- Entity Systems in game development | rokatainment
- Overview of Entity Component System (ECS) variations with pseudo-code
- Entity Component System framework, redux | IceFall Games
- Managing game object hierarchy in an entity component system | IceFall Games
- より良いプログラムを書くための究極の奇策 – 「Data first, not code first」 | プログラミング | POSTD
- Gamasutra: Megan Fox’s Blog - Game Engines 101: The Entity/Component Model
- What is the role of “systems” in a component-based entity architecture? - Game Development Stack Exchange
- From Game Objects to Entities | John Payne’s Code Blog
- GameplayKit Programming Guide: Entities and Components
- Entity Systems — Entity Systems 2014.02.22 documentation
- データ指向設計 | Cygames Engineers’ Blog
ECS なフレームワーク関連
- Ashフレームワーク説明記事の勝手訳・その1 : ぐりぺん
- Entity/Component Game Design That Works: The Artemis Framework | Piemaster.net
- Introduction to Entity Systems · junkdog/artemis-odb Wiki
- ebs - A component-based entity system framework — Python Utilities 0.0.0 documentation
- Entities and Components | Goo Learn
デザインパターン
- やっと理解できた!JSオブジェクト指向プログラミング再入門
- デザインパターンを読み解く
- Pythonによるデザインパターン
- デザインパターンのメタパターン
- ユニットテストのアンチパターン
- Inversion of Control コンテナと Dependency Injection パターン
- デザインパターン紹介 (GoF 以外)
- kamranahmedse/design-patterns-for-humans: Design Patterns for Humans™ - An ultra-simplified explanation
- Gof以外のデザインパターン
デザインパターン再考
- Design Patterns 15 Years Later: An Interview with Erich Gamma, Richard Helm, and Ralph Johnson | Design Patterns 15 Years Later: An Interview with Erich Gamma, Richard Helm, and Ralph Johnson | InformIT
- 再考: GoF デザインパターン
- ふと GoF のデザインパターンを再考しておく | Moonmile Solutions Blog
- シングルトンについて思うこと
データ構造
- 2010-03 プログラミングコンテストでのデータ構造
- セグメント木とか
- 2023-07 徐々に高度になるリングバッファの話 - Software Transactional Memo
アルゴリズム
- データマイニングで使われるトップ10アルゴリズム
- Chromeのなかのコンピュータ・サイエンス - Google Slides
- GC の話
- Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理 – びりあるの研究ノート
- 効率的にゲームを更新する | コンピュータサイエンス | POSTD
- 初期化配列の実装 - Qiita
- ビット演算 (bit 演算) の使い方を総特集! 〜 マスクビットから bit DP まで 〜 - Qiita
- kdn251/interviews: Everything you need to know to get the job.
- 採用面接向けのアルゴリズム知識まとめ
- 2014-01 大量のテキストからランダムに少数の行を抽出したい - Reservoir Sampling - 唯物是真 @Scaled_Wurm
- 2019-04 イメージで理解できるゼロ知識証明|note
- 2019-12 pattirudon氏のアルゴリズムについて - oupoの日記
- ポケモン剣盾のレイドの乱数 /
xoroshiro128+
- ポケモン剣盾のレイドの乱数 /
- 操車場アルゴリズム - Wikipedia
- TheAlgorithms/Python: All Algorithms implemented in Python
- 2021-12 アルゴリズムの世界地図 - Qiita
- シュトラッセンのアルゴリズム - Wikipedia
- 行列の積を高速に計算するアルゴリズム
ソート
- 【Unity】ソートアルゴリズム12種を可視化してみた - Qiita
- 「ソート」を極める! 〜 なぜソートを学ぶのか 〜 - Qiita
- 2020-07 Slowsort - a pessimal sorting algorithm | Arpit Bhayani
文字列
最適化問題
仮想通貨 / ブロックチェーン
- ブロックチェーンを10分で理解するための資料 - メルミライ - 未来を見るメディア
- 10分でわかるビットコインの本質 | KOMUGI
- BitCoinの仕組みを紙とスタンプのごっこ遊びに例えてみる
- 2019-05 ブロックチェーンは何も解決しない。|S| note
- 2019-08 【全編無料】GoogleによるAI解説・機械学習やゲーム作成・ブロックチェーンなどがわかるUdemy無料講座まとめ - GIGAZINE
圧縮アルゴリズム
音 / 信号処理
- 2020-02 逆FM音源 - Speaker Deck
競技プログラミング
暗号理論
- Gitのhashが衝突するのはどれくらいの確率か : mwSoft blog
- 誕生日攻撃 - Wikipedia
- 以下にも SHA-1 ハッシュ衝突可能性についての言及がある:
- 2023-04 暗号の歴史と現代暗号の基礎理論(RSA, 楕円曲線)-前半- - ABEJA Tech Blog
人工知能 / AI / 機械学習
- 人工知能が急に進化し始めた! | TheWave
- Is Google a Step Away from Developing a Computer that Can “Program Itself”? - Evolution News & Views
- 二次元画像を拡大したいと思ったことはありませんか? - デー
- ゲームの中の人工知能
- 21世紀に“洋ゲー”でゲームAIが遂げた驚異の進化史。その「敗戦」から日本のゲーム業界が再び立ち上がるには?【AI開発者・三宅陽一郎氏インタビュー】
- Deep Learning
- Goodfellow著「Deep Learning」の日本語翻訳
- ディープラーニングの限界 | POSTD
- 2018-10 結構バズったので、AIによる自動着色の現状とその使い方についてまとめた~~人工知能技術の衝撃~~ - Togetter
- ディープラーニング入門:Chainer チュートリアル
- 2019 DL4US コンテンツ公開ページ | 東京大学松尾研究室 - Matsuo Lab
- 松尾研による深層学習の入門教材
- matsuolab-edu/dl4us
- 2019-08 深層学習の数理
- 180 ページのスライド。内容が厚い
- 2019-09 非エンジニアから「CNNって何よ」って聞かれたら、とりあえずこう説明したらいいんでない?という話 - Np-Urのデータ分析教室
- 2022-06 「意識があると言われたAI」と「Googleの技術者」の公開された会話内容 - ナゾロジー
- 2022-10 最強将棋AIが新境地へ、DeepMindのAI「AlphaTensor」が50年以上停滞していた行列乗算アルゴリズムの改良に成功 - GIGAZINE
AI 画像生成
- 2022-08 お絵かきAI Disco Diffusionには解像度が上がる魔法の呪文があるらしい「入れるだけで自動的にこのクオリティ」 - Togetter
- 2022-08 Stable Diffusion メモ: キャンバスの縦横比は構図にどれくらい影響するか - jt_noSke’s diary
- 2022-10 お絵描きAIがどのように絵を描いてるのか解説してる人たち - Togetter
- 2022-10 ブログ: 図解Stable Diffusion
- 2024-07 【自動タイムラプス製造!?】Paints-UNDO技術解説
ChatGPT
- 2022-08 数式を使わないTransformerの解説(前編) - conceptualization
- 2023-03 ChatGPT と結城浩の対話(矛盾や反復を含んだ対話によってAIと人間の識別は行えるか)
- 最後まで読んでヒエッてなった
- 2023-03 (2) 高橋恒一さんはTwitterを使っています: 「GPTでAI界隈が沸騰している。開発者も含めて誰も急激な性能向上の理由を理解出来ていない。普段は半年や1年で古くなるような時事ネタはあまり呟かないことにしているが、このところの動きがあまりに早く、未来に向けての不確実性が高まっているので、少し現時点でのシナリオ整理をしたい。(1⁄15)」 / Twitter