Language Index
言語から知る
各言語の特徴・強み弱み・用途。横断比較もできます。
Concept Map
考え方・概念
言語をまたいで効く「プログラミングの土台」。まず TL;DR で要点を。
API 設計の基本
ソフトウェア同士をつなぐ「使い方の約束(インターフェース)」を、使いやすく壊れにくく設計する考え方です。命名・一貫性・後方互換・エラー設計が品質を左右します。
イミュータビリティ(不変性)
一度作った値を変更せず、変更が必要なときは新しい値を作る設計方針。副作用を減らし、並行処理でも安全に扱えます。
オブジェクト指向プログラミング(OOP)
データ(状態)と処理(振る舞い)を“オブジェクト”にまとめて、現実の概念のようにプログラムを組み立てる考え方。
ガベージコレクション
もう使われないメモリを処理系が自動で見つけて回収する仕組み。手動管理の手間とバグを減らせますが、回収時の一時停止という代償もあります。
クロージャとスコープ
スコープは変数が見える範囲、クロージャは関数が定義時の外側の変数を“閉じ込めて”覚え続ける仕組み。状態を持つ関数を作れます。
コンパイルとインタプリタ
人が書いたソースコードを、コンピュータが実行できる形へ変換する方式の違いです。事前に機械語へ翻訳するか、その場で1行ずつ解釈するかで、速度と配布のしやすさが変わります。
ジェネリクス(総称型)
型を“引数”のように後から指定できる仕組み。同じコードを複数の型で安全に再利用でき、型安全とコード共通化を両立できます。
データ構造(配列・リスト・スタック・キュー・マップ)
データを“どう並べて・どう出し入れするか”を決める入れ物の種類。配列・連結リスト・スタック・キュー・マップの特徴と計算量を押さえると、適材適所で選べる。
デザインパターン
よくある設計上の課題に対する“定番の解き方”をカタログ化したもの。再利用される設計の語彙として、設計の意図を短い名前で共有できます。
テストの基礎
コードが期待どおり動くかを自動で検証する仕組みの入門。単体・結合・E2E の役割と、テストピラミッドの考え方を押さえます。
デバッグの技法
不具合の原因を、当てずっぽうではなく筋道立てて突き止めるための考え方と道具です。再現・仮説・切り分けを軸に、ログやデバッガを使って原因を一つずつ絞り込みます。
ポインタと参照
値そのものではなく、値が置かれたメモリのアドレスを指し示す仕組みです。大きなデータを安く受け渡せる反面、ヌル参照やダングリングといった事故の温床にもなります。
依存関係管理(パッケージ管理)
外部ライブラリの導入とバージョンを、再現可能な形で管理する仕組みです。マニフェストとロックファイルで「誰が・どの版を・どう使うか」を固定し、依存の地獄を避けます。
関数(引数・戻り値・スコープ)
入力(引数)を受け取り、処理して、結果(戻り値)を返す“ひとかたまり”。同じ処理を名前で何度も呼び出せる、再利用の基本単位。
型システム(静的型付け vs 動的型付け)
値の「型」をいつ・どこまで検査するかのルール。コンパイル時に守るか実行時に確かめるかで、安全性と書きやすさが変わる。
計算量と Big-O 記法
データ量が増えたとき、処理時間が“どれくらいの勢いで”増えるかを表す物差し。アルゴリズムの良し悪しを規模で比べられる。
再帰
関数が自分自身を呼び出して、大きな問題を「同じ形の小さな問題」に分割して解くテクニック。木構造の探索や分割統治と相性が良い。
制御構文(条件分岐とループ)
プログラムの「実行する順番」を操る仕組み。上から順に・条件で枝分かれ・同じ処理を繰り返す、の3つを組み合わせてロジックを組み立てる。
正規表現
文字列のパターンを記号で表し、検索・抽出・置換を行うための小さな言語。メールやログの照合などに広く使われます。
同期処理と非同期処理
結果を待ってから次に進むのが同期、待たずに先へ進んで完了は後で受け取るのが非同期。通信やファイル読み書きなど“待ち時間”の扱い方の違い。
変数とデータ型
変数は「値に付ける名札」。値には数値・文字列・真偽値などの“型”があり、プリミティブと参照型で代入やコピーの挙動が変わる。
例外処理(エラーハンドリング)
「処理が続けられない事態」をエラーとして投げ、呼び出し側がまとめて受け止める仕組み。本来の処理とエラー処理を分けて書けるのが利点。