プログラミング
コンピュータープログラミング（）とは、ある特定のコンピューティングの結果を得ることを目的として、実行可能なコンピュータープログラムを設計・構築するプロセスのことである。プログラミングが関係するタスクの例としては、アルゴリズムの生成、アルゴリズムの正確さとリソースの消費量のプロファイリング、選択したプログラミング言語でのアルゴリズムの実装（これは一般にコーディングと呼ばれる）などがある。プログラムのソースコードは、コンピューターのCPUで直接実行される機械語ではなく、プログラマーが理解できる1つ以上のプログラミング言語で書かれる。プログラミングの目的は、あるタスク（オペレーティングシステムのように複雑な場合もある）をコンピューター上で自動化する1連の命令を見つけることで、与えられた問題を解決することである。そのため、プログラミングのプロセスには、アプリケーションドメインに関する知識、特定のアルゴリズム、形式論理など、さまざまな主題に関する専門性が要求されることが多い。
プログラミングをするときに関係するタスクには、テスト、デバッグ、ソースコードのメンテナンス、ビルドシステムの構築、コンピュータープログラムの機械コードなどの生成されたの管理などがある。これらのプロセスはプログラミングのプロセスの一部と考えられるが、広義のプロセスはよく「ソフトウェア開発」と呼ばれ、実際にコードを書く行為に対しては、「プログラミング」、「実装」、「コーディング」という名前が使われることが多い。ソフトウェア工学 (software engineering) は、エンジニアリングの技術をソフトウェア開発の実践と組み合わせたものである。「リバースエンジニアリング」はこの逆のプロセスを表す。「ハッカー」とは、技術的な知識を使って問題を解決する技術のあるすべてのコンピュータの専門家を表す言葉であるが、一般的な用語では「」と同じ意味でも使われている。