プログラミングにも役立つ基本IT用語
インターネット
インターネットとは世界中のスマートフォンやパソコンをつなぐネットワークのことです。
1980年代にコンピューター同士をつなげるLAN(ローカルエリアネットワーク)というものが一般に普及し始めました。
それがさらに電話の専用回線等を用いた、WAN(ワイドエリアネットワーク)というものも登場し、場所の離れたコンピュータ、あるいはスーパーのレジと本店なども結べるようになりました。
このLANとLANを結んだものがインターネットとなります。
歴史的にはアメリカで軍事施設と軍事施設を結ぶネットワークが開発され、それをアメリカの大学が、大学同士を結ぶネットワークに発展させやがて一般に公開されたものです。
1995年に登場したWindows95により爆発的に普及し、2000年代に入って携帯電話とインターネットを結ぶ仕組みが始まり誰もが普通にスマートフォンでつながる世界が広がっています。
Web
World Wide Web(ワールドワイドウェブ)という呼び名が略されて、Web(ウェブ)と呼ばれるようになりました。
Webとはインターネット上にあるまざまな情報を結びつける仕組みです。
始まりはWebブラウザー(Webを覗く)という道具をつかって、インターネット上にある情報を、その最小単位であるWebページを離れた場所に表示させることから始まりました。
その基本は変わっていません。はじめは一枚の文書でしたが、その表示方法に様々ニーズや工夫が加わり、今のWebページへとつながってきました。
Webは表示させる技術でもあり取り決めでもあります。そのルールに従った技術が様々な情報を結びつけてくれます。
ソフトウェア
コンピューターはソフトウェアがなければただの箱、と昔からよく言われました。
コンピューターやスマートフォンを動かす仕組み、プログラム(アプリ)が動いてはじめて私たちの知りたい情報が表示されます。
そのプログラムをソフトウェアと呼びます。
ソフトウェアには大きく分けて2つの種類があり、パソコンやスマホを動かす基本ソフトウェア、OS(オペレーティングシステム)。
そのOSの上で動く応用ソフトウェアの2種類です。
またコンピューター以外の世界で、技術、ノウハウなどをソフトウェアと語ることもあります。
ハードウェア
ハードウェアは物理的に目に見える機器などの仕組みの総称です。パソコンの本体やキーボード、ディスプレイ、マウスもハードウェア。
電話、スマートフォン、ラジオ、テレビなどもハードウェアです。H/Wと書くこともあります。
ハードウェア(機器)の中にソフトウェア(動かす仕組み)が入っていて、2つ併せて私たちに魔法の箱となって便利さを提供してくれます。
ハードウェアとソフトウェアを並べて語り、世の中の仕組みを述べることもあります。
例えば電車、車両基地、改札機などをハードウェアと語り、時刻表、運行技術、運転士などをひっくるめソフトウェアと語り、その仕組みを表現することもあります。
クラウド
インターネットなどのネットワークを通じて提供されるサービスをクラウドサービスと称されます。
コンピューターの利用形態には単体で使うこともあれば、ネットワークを通じて特定のコンピューターとデータをやり取りし利用することもあります。
クラウドサービスが他と違うのは、特定のコンピューターを意識することなく、そのサービスを提供されていることです。
インターネットの上にあるサービスなのでクラウド(雲)の上のサービスと呼ぶようになったのかもしれません。
クラウド、という言葉で切ると、インターネット上にあるデータやサービスの総称を表す事になります。
UI/UX
UI=ユーザーインターフェースの略です。ユーザーが受ける、利用するインターフェース。使う人との接点です。
画面で商品を説明している文字もUIですし、”購入”をクリックするときのボタンも重要なUIになります。
UX=ユーザーエクスペリエンスの略です。エクスペリエンスとは体験、経験という意味を指し、UXとは商品(モノ)やサービスを通して得られる体験の事を指します。
UI/UXと書かれることもありますが、接点と体験です。
スマホでショッピングするときに例えると、画面を動かして商品を検索する接点、
商品を次々商品カゴに入れる接点、そして購入を決定するボタンを押す接点、それらの一連の行為から受ける体験がUXとなります。
一連のUIを重ねて、一つのUXが生まれる為、UIはUXの為の一つの要素と言えるかもしれません。
プログラミングの分野に関する用語
Webサイト
インターネットを通じて表示される画面、ページのことをWebページと呼びます。
見ている側からすると一枚の画面ページですがその後ろにはWebの仕組みを使ったWebページがあります。
普通、ひとつのページだけで終わることはなく、次から次と複数のページへ飛ぶことができます。
トップページからそれぞれの記事のページなど、それらのWebページをまとめて置いてある場所がウェブサイトです。
サイトという言葉は、地面の敷地、用地という意味になります。
Webアプリ
文書や図、写真を見るだけだったWebブラウザーの中に、複雑な機能を実現できるようになりました。
高機能なWebページ、WebサイトをWebアプリとも言います。
メール、地図、天気予報、乗り換え案内、ショッピング、銀行、などなど数えればきりがありません。
インターネットを通してWebサイト側で動くプログラムがデータ、画像などをブラウザー側に提供します。それを見たユーザーが画面にリクエストします。するとWebブラウザー側で動くプログラムがそのリクエストをWebサイト側に返します。
それらを交互に行うことにより、ユーザーにWebサービスが提供されます。
例えばかつては一方的に天気予報をみるだけだった天気予報のWebサイト。
今ではユーザーからのリクエストにより、特定の地域、時間別、日別など様々なリクエストが出来るようになりました。
Webアプリは今後もますます進化していくことでしょう。
ネイティブアプリ
パソコンやスマホなどの手元の機器で直接動かすアプリをネイティブアプリと呼びます。
電卓、時計、QRコードリーダーなどのいわゆるアクセサリーと呼ばれるソフトもあれば、
オフィス系と呼ばれるエクセルなどの表計算ソフトやワープロソフトもあります。
これらは機能そのものが、手元機器の中にあり大半はネットワークに依存することなく、
セキュリティーレベルも高く安心して使えるソフトウェアです。
はじめからインストールされているか、自分でインストールをして使い始めます。
Web開発
Web開発とはWebアプリを作る事も言いますが、Webの仕組みを利用したコンピューターシステムを作る事もWeb開発と言います。
画面をデザインしたり作ることも開発ですが、その裏で動く仕組みを作ることも開発です。
Webを使って銀行など金融機関と取引をする仕組みは、その画面の向こうに複雑なシステムが作られています。
こうゆうシステムでは裏側の仕組みに大きな比重がかかります。
一方、ニュースサイトをはじめ見せること、デザインを重点にした開発もあります。
ネットワークインフラ(基盤の技術)の発達により、Web開発の範囲も広がってきました。
プログラミング学習で役立つ用語
ソースコード
アプリ、ソフトウェアーを作る時にプログラム言語と呼ばれる文字列を組み立ててコンピューターを動かす命令にしていきます。
そのプログラム言語で書かれた文字列、テキストをソースコードと呼びます。
コンピューターを動かす命令、ソフトウェアのソースコードと言っても短いものから大きな長いものまでさまざまです。
一般の人は目にすることがありませんが、プログラムを学ぶ人であれば、できるだけ他の人が書いたソースコードを読めと言われます。
ソフトウェアはいずれ、他の人の改修を受けることがあるかもしれません。
そのためできるだけわかりやすく、読みやすいソースコードを書くのが後の人の為にもなります。
データベース
データとは文字列や数値を集まった状態のものを指します。
データベースはそのデータをさらに使いやすく整理するためにまとめた状態をコンピューター上で実現したものです。
データはたくさんあればあるほど分析する意味や価値が上がりますが、ただ並べただけでは何も見つけられないかもしれません。
データを検索、分析、加工するための仕組みとしてデータベースと言う大きな箱の中に入れデータは保管されています。
本屋さんで本を検索するシステムの先にあるのが本のデータベース。お役所にある住民票も今では巨大なデータベースに入っています。
コンパイル
コンピューターを動かすアプリは人間が読み、理解できるプログラム言語というもので書かれています。
プログラム言語でコンピューターを動かす命令をかいているのですが、コンピューターはそれをそのまま読むことはできません。
コンピューターにわかるように翻訳することをコンパイルする、と言います。
コンピューターがそのまま読めるコードを機械語(バイナリーコード)と言い、0と1だけで記述されています。これを直接編集して命令を組み立てるのは至難のワザです。
早く、正確に、センス良くコンピューターへの命令を書くためにプログラム言語はあり、書かれたソースコードをコンピュータへ受け渡すのがコンパイラーの役割です。
エラー
間違い、あやまり。
アプリを作っているときもエラーはおきますし、アプリを動かしている時もエラーは出ます。ネットワークのトラブルでエラーが起きてしまった、ということもあるでしょう。
動作時のエラーは、主に人が間違えた動作をしたとき、間違えた値、文字列を入力した時などに起きます。
コンピュータープログラムにエラーはつきものですが、それを起こさせないこと、回避する方法を考えることもまた、重要です。
プログラムの中でも、想定できないデータを受け取った時などエラーが起きることは考えられ、それを処理することをエラー処理と呼びます。
バグ
コンピュータープログラムの内に潜む、間違い、不具合のことです。
アプリを作る時は何度もテストを繰り返して動作を確認し、エラーを見つけてはそれを回避し開発していきます。
しかし開発者の意図とは離れたところで間違い(バグ=虫)が隠れ潜むこともあります。
バグには様々な原因があり、プログラム設計の段階で起きたもの、プログラムを動かす環境が変わりバグが起きることもあります。
よくスマホででてくる”ソフトウェアアップデート”は、後から見つかったバグ回避のための改修であることもあります。
どんな条件でもバグをゼロにできるか、というとそれを言い切れないところが悩ましいところです。
デバッグ
コンピュータープログラムを作成しているとき、テストをしながら作成するというのはよくあることです。
このテストをしている事をデバッグしている、と言います。
今の開発環境では、パソコン内、あるいは先につながったコンピュータやインターネット上でテストを繰り返す事ができます。
テストと言っても、この行の計算は正しいのか?この行からこの行まで正しく動くか?
といった単純なものからピンからキリまで様々なテストがありそうゆうデバッグを重ね、プログラムを完成させていきます。
プログラミングとデバッグは切っても切り離せないものです。
開発で利用するサービス・ツール用語
テキストエディタ
文字列のことをテキストと呼びますが、そのテキストを作成、編集、保存するアプリの総称をテキストエディターと呼びます。
いわゆるワープロソフト(Word、一太郎など)は高機能で、ポスターを作ったり、年賀状の裏表を印刷できたりしますが、そのぶん購入価格も高くなり、立ち上がりや動作が遅いとも言われます。
ソースコードやテキストだけを扱うのであれば軽くサクサク動き、操作もシンプルなテキストエディターが適しています。
有料のものもありますが、無料で使いやすいソフトもたくさん公開されています。
統合開発環境(IDE)
ソフトウェアはかつて机の上で紙に書きコンピュータセンターに渡り大型コンピューターに入力されていました。
パソコンの登場で直接、入力できるようになり、MacやWindowsの登場により表示画面を伴うプログラムが多く作られるようになりました。
画面の表示をソースコードだけで書き上げるのはとても大変です。
そこで画面の構成をマウス操作等で作れる仕組み、その裏側のソースコード、それらを合わせてテストする環境が一緒になったソフトウェアプラットフォームが作られ、それが統合開発環境と呼ばれています。
各OSメーカーやソフト会社から提供されるもの、さらには有志が集まって作り上げ、無償で公開されているのもあります。
ライブラリ
プログラムで使える部品を集めたかたまりのことをライブラリと呼びます。
車を作る時、同じメーカーであれば(あるいは他メーカーでも)共通の部品を使うことはよくあるでしょう。
それと同じように、プログラムを作るときの、便利な部品を寄せ集めたものがライブラリです。
開発グループで一緒に共通のライブラリを作っていくこともあれば、ハードウェアメーカーやソフト会社から提供されるライブラリもあります。
ライブラリはプログラム単体として動くことはできません。あくまでもプログラム部品の集まりです。
フレームワーク
一般的には問題解決、物事を改善するため、事象やデータの分析方法や取り組み方などを具体的手順、役割に当てはめていく”枠組み”の事を言います。
一から問題に向かったのでは大変だから、あらかじめ作った骨組み、手順に沿って、問題を解決しようとする考え方です。
ソフトウェア開発の世界では、開発をし易く、間違いを無くすために部品を共有化するということをしてきました。
それをさらに進めてプログラム構造自体を、再利用可能な骨組みをはじめから作っておいて、その骨組みの中に詳細なロジック、動きを埋め込んでいく方法が考えられました。
フレームワークは始め、使いこなす為に覚えることが多く時間がかかるという短所はあります。しかし、一度覚えると開発する工程がとても短くなるという利点があります。
Github
Github(ギットハブ)とはコンピュターソフトのソースコードを保存、管理開発するためのプラットホーム(土台となる仕組み)です。
インターネットを通じて、世界中のプログラム開発者が利用しています。
自分だけ、あるいは特定のメンバーで共有できるプライベートな機能と、オープンに誰でもソースコードを共有できるパブリックな機能があります。
パブリックなスペースでは開発者同士がWeb上でソースコードを通じたコミュニティとしても集まる側面もあります。
ただ民間企業や教育機関ではソースコードに著作権が発生することが多数あり、Githubの使用を制限、禁止するところもあります。
Git
文章でもプログラムでもテキストは、何度か改版、変更することがあるでしょう。
その変更の履歴を管理する仕組みの一つがGit(ギット)です。
Gitは、変更履歴を管理する仕組みですが、クラウド上でGitを使ってリモートで分散管理するサービスがGithubです。
変更した差分を表示したり、いくつか前のバージョンに戻したり、ということもできます。
元はソースコードを管理するために作られましたが、プログラムの仕様書やマニュアルなども管理できます。
プログラミングの仕事に関する用語
システムエンジニア(SE)
コンピューターで動かすコンピューターシステムと呼ばれるものを作る人がシステムエンジニアと呼ばれます。
コンピューターシステムとは、たくさんのプログラムを組み合わせた仕組み。
ソフトウェア開発の現場でシステムに対するお客様のご要望、基本要件をくみ上げ、それを設計をしていくのがSEの仕事の中核です。
さらにシステム開発を進めるために多くの人が携わるプロジェクトをまとめあげていくのも重要な仕事です。
一般的にはプログラマーとして何年か開発現場を経験した人が次に向かうステップです。
プログラマー
コンピューターで動くプログラミング言語を使って、ソフトウェアを作る人のことです。
一般的にはシステムエンジニアが設計したプログラムをその設計書、仕様書に則ってプログラムを作成していきます。
優秀な人であれば一人でプログラムを作り上げ、フリーで活躍している人も多くいます。
プログラマーとは職種を指す言葉でもありますがアマチュアで自分だけのプログラムを作り楽しむ人達もプログラマーと呼ばれます。
プログラマーは理系の人?と思われがちですが決してそうではなく文系の人も多いです。
SE、プログラマーはかつて、とてもキツイ仕事と思われていました。今では仕事環境もかなりよくなり、そうかと言って楽な仕事ではありませんが、柔軟な働き方ができる上やりがいのある仕事です。
まとめ
IT用語は今ではネット上にたくさんあふれ、どの用語も検索すればたくさん結果が表示されます。
しかし中には、とくにソフトウェアーやサービスの解説では古い情報がそのまま、というのもあります。
検索するには一つの結果に頼るのでなく、複数の結果から自分の判断で見ていくのがいいでしょう。
何度もなんども読み返していると、やがて合点が行く時がきます。
筆者がソフト業界に入った時、ネットはもちろん、パソコン雑誌すらありませんでした。
今でもある”無線と実験”という雑誌を買ってきて、まったくわからない単語たちを読むというよりひたすら眺めていました。
今理解できない言葉、単語もいずれわかる日がきます。検索するクセをつけ何度も読み返し、自分で考えてください。