プログラミング
プログラミング言語が異なれば、プログラミングのスタイル(プログラミングパラダイム)も異なる。どの言語を使うかの判断には、企業としてのポリシー、その用途への適合性、サードパーティのパッケージが使えるか、個人の好みなど様々な要素がある。理想的には、用途に最も適した言語を選ぶべきである。しかし、その言語を使えるプログラマが十分揃えられないとか、その言語の処理系に問題があるとか、実行時の効率が悪いといった問題から、最適な言語を選べないこともある。
アレン・ダウニー (Allen Downey) は、著書『計算機科学者のように考える方法』(How To Think Like A Computer Scientist) で次のように書いている。
言語が違えば、詳細も違って見えるが、どんな言語にも次のような基本的命令要素がある。
入力: キーボード、ファイル、その他の機器からデータを入手する。
出力: 画面にデータを表示したり、ファイルその他の機器にデータを送る。
演算: 加減算のような基本的算術操作を行う。
条件付き実行: 条件をチェックして、一連の処理を行うか否かを判断する。
繰り返し: ある処理を繰り返し実行する。通常、毎回何かが変化している。 — Allen B.Downey、How to Think Like a Computer Scientist§What is a program?
プログラムを書くことはアートなのか、クラフトなのか、工学なのかという議論がある。よいプログラミングには、それら3つの要素すべてが必要とされ、最終的に効率的で保守しやすいソフトウェアを生み出すことを目的とする(何が効率的で、何が保守しやすいかという判断も様々である)。「プログラムを書くことは設計をすること」という意見もある。
最古のプログラマブルな機械(プログラムによって動作の変化を制御できる機械)としては、1206年にアル=ジャザリが作った二足歩行ロボットがあると言われている。アル・ジャザリのロボットは、ボートに4体の演奏人形が乗ったもので、宮廷のパーティで池に浮かべて音楽を演奏したと言われている。プログラムはカムにあり、それによって小さなてこを押して、打楽器を演奏する。カムは実際には円筒にペグが突き刺された形であり、このペグの配置でプログラミングし、演奏パターンを変更した。
1801年に開発されたジャカード織機がプログラマブルな機械の起源とされることが多い。この機械は、穴を開けた一連の厚紙(パンチカードの原型)を使った。穴の配列が布を織る際のパターンに対応している。従って、カードを入れ替えることで全く異なる布を織ることができた。1830年ごろには、チャールズ・バベッジがパンチカードを使った解析機関を考案した。
このような先駆者の発明をさらに発展させたのがハーマン・ホレリスであり、1896年にタビュレイティング・マシン・カンパニー(Tabulating Machine Company、後のIBM) を設立した。彼はホレリス式パンチカード、タビュレーティングマシン、キーパンチ機などを発明した。これらの発明が情報処理産業の基礎となったのである。1906年には、タビュレーティングマシンにプラグボードを追加することで、組み替えれば様々な仕事ができるようになった。これがプログラミングへの第一歩である。1940年代には、プラグボードによるプログラマブルな機械が各種登場していた。
マイクロソフト認定プロフェッショナル(MCP)
情報処理技術者能力認定試験 - サーティファイが実施する検定試験。出題構成が国家資格である基本情報技術者試験と類似している。
C言語プログラミング能力認定試験 - サーティファイが実施する、C言語に関する検定試験。
プログラミング能力検定
プログラミングスクラッチ
プログラミングには、様々な種類があるが、中でも、小中学生が意欲的に取り組めるプログラミングスクラッチというものがある。これは、ブロック同士を繋げて、一つのプログラム、そして、世界に一つだけのプログラムを作ることができる。できることは無限大で、とても楽しく勉強ができる。