インターネット老人おぢさん

スクールに通う前に覚えておきたい用語集、というか手引

最終更新:2021年02月09日 05時27分83秒(初公開:2021年02月04日 10時37分27秒

スクールに通う前に覚えておきたい用語集、というか手引

スクール向けの専門用語、というわけではありません。残念ながら。
ただし、スクールに通わなくても使えるプログラミングの基本的な用語であることは間違いないです。
いきなり全部説明しても覚えるのが大変なので、レベル別に厳選します。

レベル0 パソコン未経験

OSの種類

OSとは、(O)オペレーティング(S)システムの略です。
オーエスと呼ぶのですが、サポートを受ける時に以下のどちらかを把握しておく必要があります。
ここを間違えるとサポートも間違った案内になってしまうので、しっかりと確認しましょう。

Windows(ウインドウズ)

こういう画面の人です。
Windowsのロゴがデスクトップ画面のどこかにあります。
初期設定では画面の左下です。

Mac/MacOS(マック/マックオーエス)

こういう画面の人です。
Appleのロゴがデスクトップ画面のどこかにあります。
初期設定では画面の左上です。

以下、自分に当てはまる方を見てください。
(Macの人は、「Macの人」部分まで読み飛ばしてOKです)

Windowsの人

Explorer(エクスプローラー)

ファイルを参照する時に使います。
いつも何気なく開いているのではないでしょうか?
ちなみに、Windowsキー+E のショートカットコマンドで新しいエクスプローラーを開くことができます。

同等の機能を持つものとして、Macでは「Finder」というものがあります。

Browser(ブラウザ)

インターネットをするアプリの事です。
(厳密に言うと違いますが、スクールに入る前はこの理解で良いです)
ブラウザの種類は色々ありますので、以下の画像で確認していきましょう。

Google Chrome(グーグルクローム)

Windowsを使っている人は標準で使う事が多いです。

Microsoft Edge(マイクロソフトエッジ)

Windowsを使っていると、やたらと「エッジいいから使って」と案内されるのがこのブラウザです。
後述のInternetExplorerよりはマシですが、あまり推奨はしません。
ちなみに本サイトはエッジでの動作確認はしていませんし、明示的に非推奨です。

Internet Explorer(インターネットエクスプローラー)

デザイナー泣かせの凶悪なブラウザです。
マイクロソフトも公式で非推奨にしていますが、日本企業は残念な事にインターネットエクスプローラーじゃないと動かないサイトが多いため(特に官公庁)止めたくても止められないというジレンマを抱えています。
Webシステム系を教えているプログラミングスクールでさえも非推奨にされていますので、なるべく使わないようにしましょう。

その他

ここで上げた以外にも様々なブラウザがありますが、マニアックな人でもない限り使わないでしょう。

参考までに、私はVivaldiとBraveいうブラウザをWindows・Mac・スマートフォン問わず全てで愛用しています。
これらのマニアックなブラウザは最初は使うのが難しいので、「そんなのあるんだ」ぐらいで大丈夫です。

Windowsの人は、「スクールに入ってから学ぶこと」まで読み飛ばしてOKです。

Macの人

Finder(ファインダー)

ファイルを参照する時に使います。
いつも何気なく開いているのではないでしょうか?
ちなみに、⌘(command)キー+optionキー+spaceキー のショートカットコマンドで新しいFinderを開くことができます。

同等の機能を持つものとして、Windowsでは「Explorer」というものがあります。

Browser(ブラウザ)

Safari(サファリ)

Macを使っている人は標準で使う事が多いです。

レベル1:スクールに入ってから学ぶこと

ここからは、WindowsもMacも共通です。

Editor(エディタ)

いわゆるメモ帳の事ですが、スクールではEclipseと呼ばれる総合開発環境を持ったエディターを使ったり、最近ではVSCodeと呼ばれる多機能エディターを使う事が多いです。
C言語を使う時は専らVisual Studioです。
この辺りはスクールによって異なりますし、元プログラマーの人はこだわりのエディターを持っている事もあります。

ファイル拡張子

Windowsだと初期設定ではエクスプローラーで表示できない.txt のように、ファイル名にドットなんとか〜、と続くものです。
この場合、txt(テクスト、ただし慣例的にテキスト)ファイルと呼ばれます。
同じように、.css.html がCSSファイル、htmlファイルなどと呼ばれます。
拡張子を指定する事で、作ったファイルがどういうものなのかひと目で判断する事ができます。

コマンドプロンプト(Windows)・ターミナル(Mac)

背景が黒画面で英語でなんか色々言われる画面です。
ハッカーのイメージ画面と言えば伝わりますかね?

スクールではなるべくこの黒い画面を表示しなくても開発できるように環境を整備していますが、場合によっては黒い画面で操作する事もあります。
プログラマーになったら毎日黒い画面を使う事もあるので、徐々に慣れていきましょう。

カリキュラム

スクールに入ったら、教材や資料ページの事をカリキュラムと呼びます。
大体の場合、カリキュラムの手順に沿って作業をする事になります。

職場ではカリキュラムのようなものは存在しないので、全てが手探りになります。
スクールでカリキュラムを使った演習問題を学び、開発課題でカリキュラムのない課題に取り組んで本職プログラマーと同じ仕事をしている想定で自由演習を行う事が多いです。

レベル2:ある程度できるようになった時

以降、スクールでしっかり学んでいく人や、過去にスクールに通っていたり再入門を考えている人向けです。
かなり難しいです。

アルゴリズム

プログラムの構成を考えることです。
厳密には「計算方法」という意味らしいですが、プログラミングの時にアルゴリズムと言うと、構成を考える事を意味します。

フローチャート

アルゴリズムを考える時によく使われる図形です。
プログラミングスクールではなぜか教えない事が多いですが、アルゴリズムを整理したい時に使うと、考えを整理しやすいです。
私も解説する時はフローチャートを使いますので、興味がある人はちょっと流し見しておいてください。
いずれ解説しましょう。

公式サイト(英語)

プログラミングで使う関数などを参照する時に見るサイトです。
慣れないうちは公式サイトを敬遠して、いつ書かれたか分からないブログや分かりやすい広告サイトの情報、またはカリキュラムを信用してしまいがちですが、これらの情報はウソあるいは間違っている可能性が高いので、プログラムで悩んだら公式サイトのドキュメントを見るようにしてください。
私個人の意見ですが、公式サイトを読まない人がプログラマーになるとチームの足を引っ張って迷惑を掛けます。そうならないように、スクールにいる内から公式サイト(英語)で確認するくせをつけましょう。

市場

いちば・しじょうと読めますが、ここで指している市場は「プログラマーとしての就職」を考えた時の市場です。
どういうプログラマーが求められるのかは時代によって大きく変わりますので、常に最新の動向を確かめなければなりません。

多いのは「JavaあるいはPHPとかRubyは勉強したけど、他の言語はわからないので出来ません」というパターン。
スクールで学ぶのはプログラミング言語ではなく、プログラムを書くために必要なアルゴリズム(考え方)です。

クライアントとサーバー

PHPを勉強し始めると「この処理はどっちがやってるんだっけ?」という話をすることがあります。この時に指定する「どっち」とは、「クライアント・サーバー」のどちらかを指しています。

クライアント

ブラウザ側で実行されるスクリプトを指します。
HTML/CSSやJavaScriptはブラウザが描画(レンダリングといいます)を実行していて、ブラウザでデザインがされています。
ユーザーはブラウザがいい感じにデザインしたページを見ている、という事になります。

サーバー

実行環境について

ローカルで開発している場合によく使われるXampp(Windows)やMAMP(Mac)側で実行されるスクリプトを指します。
サーバースクリプトとかサーバー言語とか言いますが、要はサーバーを介さないと動かないファイル群です。
なぜサーバーがないと動かないのか、という話はアーキテクチャから解説しないといけないので、本項目では省略しますがサーバーの仕組みを知る上で大事な事ですので、ひと目確認しておきましょう。

サーバーツールの補足

先述でOSを限定する書き方をしていますが、XamppはMacでも使われますし、MAMPをWindowsで使う事もできますよ。
もちろん、Linux系でも使えます。
どちらが良い、ということはないかなぁ、使い比べても違いがよくわかりませんでした。

ツールについて学ぶより、ApacheとかNginxのようなWebサービスやMySQLなどを理解した方がいいです。
分かる人はXamppやMAMPを使わなくてもサーバーを起動してDB連携できます。

サーバーで実行されるファイルはブラウザでは実行されておらず、Webサービスを実行するための仕組み(Apache:アパッチあるいはNginx:エンジンエックスやTomcat:トムキャットが代表的です)を実行することでブラウザから見れるようになります。

違いがよく分からない場合

良い見分け方ではありませんが、方法の一つとしてブラウザでファイルを直接開いた時に動けばクライアント・動かなければ(サーバーを起動してlocalhostで開くと動く場合)サーバーが処理しているんだな、という理解でもあながち間違ってはいないです。

レベル3:トラブルシューティング

プログラミング課題の実装とか実際の業務とかで使われます。

不具合

バグとかエラーなどをまとめて「システムの不具合」と呼ぶことがありますが、不具合の内訳にも種類があることを知っておく必要があります。
分かりにくいので、最初のうちは「システムトラブルの深刻度」ぐらいに捉えてもらえればいいです。

バグ・デバッグ

バグは英語で「虫」を意味しますが、プログラミングの世界ではプログラムの誤り、つまり動かない原因を指します。
デバッグはバグを取り除く、プログラムを直すことです。

フリーランスになりたい人は、契約書ではバグが「瑕疵」と書かれるという事を知っておくとトラブルを一つ防げます。
後述のエラーとごちゃまぜに覚えられることが多いです。

不具合の中で最も簡単に解決できます。

エラー

現場によって意味が変わる恐ろしい言葉 です 。
そのため人によって認識が違いすぎるため、よく論争が起こりますので「こういうものなんだな」と理解してください。

多くの場合「プログラミング的に正しいけど使い方に問題がある」場合を指しますが、エラーだけだと分かりにくいので「ヒューマンエラー」と明示的に人間のミスを想起させる使い方をする方が丁寧です。
スクールで勉強している時に起こるのはバグかエラーのどちらかが大半ですが、特にデータベースエラーかサーバーエラーが多い気がします。

実務では、文字を入れちゃダメな項目に文字を入れようとしたり、半角全角を弾くだけでもユーザーには「動かないからエラーだ」なんて言われます。
このような場合は、ユーザーにシステム使い方を教えてあげると解決できるので、時間が経つごとにエラーが減っていきます。
こういうケースが多いので「ヒューマンエラー」という言葉が市民権を得たのではないか、と私は推察しています。
ヒューマンエラーの対義語に「システムエラー」があり、私見ですが、障害も含めてシステムエラーという言葉が使われがちです。

障害

システムが動いていない状態を指す事が多いです。
動かなくなった理由を調べるのがシステムエンジニアや保守担当の仕事だと言われますが、実際はアプリを実装したプログラマーが担うことが多いです。
社内向けにリリースしたシステムの場合、障害が起こるのは大体ネットワーク関連が多い気がします。

私の体験談ですが、保守チームがいないもしくはオペレーターで構成されている場合、
別のシステムを作っている時に過去に対応したシステム案件でトラブルが起こるので、原因調査をしていたら時間がなくなってデスマーチ、というパターンに陥りがちです。

故障

システムが動いていない状態です。
ソフトウェア側から見ると、ハードディスクが壊れたりケーブルが切断されるなどシステムだけでは解決できない問題を指す事が多いです。
こうなると物理的に交換したりデータを移行したり環境を作り直さなければならないので大変です。一番起こしたくない、起きてはならない不具合と言えるでしょう。

ただし、システムを再起動した後にサーバーを起動し忘れて接続障害を起こしているだけなのに「サーバーが壊れた」と勘違いする事もあります。

ログ

ログとは、記録の事です。画面に表示されるタイプと、ファイルに蓄積されるタイプが印象的です。
不具合を解消する手段として「ログを見ろ」と言いますが、大体英語で出力される事が多いので苦手意識をもたれやすいです。
また、ログも

  • 開発中:デバッグログ
  • 運用中:システムログ・運用ログ
  • 不具合発生時:エラーログ
  • 特にサーバー側で発生するもの:サーバーログ
  • 特にネットワーク側で発生するもの:接続ログ
  • JavaScript:コンソールログ

と何かと名前をつけられます。
ここにない名前のログや会社あるいはチームカラーのある「○○ログ」が生み出される事も。

スクールで作るシステムはログを保存・運用される事を想定していない事が多いため業務システムとして評価されにくいです。
研究分野ではPythonなどを活用してログを加工してグラフを作ったりする事もあります。
保守ではログを消すと戦犯級の扱いまたは始末書を書く事になるので、くれぐれも取り扱いに注意しましょう。

レベル4:役職

大体は業界独特の表現ですので覚える必要はありませんが、求職を始めたり業務中に「あれ?」って思ったら見てください。

デベロッパー

開発チームを指して使われます。
SEやプログラマーはここです。

システムエンジニア

システムを設計する人、という位置付けですが実態はなんでも屋です。
開発をしない専門機関のエンジニアっぽい人(実際はエンジニアではない)をデータサイエンティストと呼んだりします。

プログラマー

システムを実装する人、という位置付けですが実態はSEです。

プロマネ・プロジェクトマネージャー(その他エラそうな人)

ユーザーの要望をまとめたりスケジュールを管理したりベンダーをまとめたりする人です。
プロジェクトの推進役という目的からプロジェクトリーダーと呼ばれたり、プロダクトオーナーと言われたりなんか色々です。
先述したログの項目並みに色々な名前がありますが、大体やってることは一緒だったりします。

SEとPMの宙ぶらりんな役割として、○○リーダーがいます。

保守

開発ではなく、システム障害が起こった時のSWATチーム(緊急部隊)みたいな存在です。
既存のシステムを騙し騙し使っている場合に置かれる事が多いです。

オペレーター・ヘルプデスク

各部署から「システムが動かなくなったんだけど!」と怒られるクレーム処理班を指すことが多いです。
独立した部門があれば、相当大きなシステムあるいはサービスです。
大体は後述のエンジニアが兼務しています。

エンジニア

システムエンジニアと同等ですが、こちらは障害対策を想定しています。
中身はデベロッパーである事が多いです。

品質評価(テスト)

運用を始める前にシステムの安全性や堅牢性を検証するチームです。
品質評価系の業務担当者は通常の場合、システムのスペシャリストで構成されますが、予算の都合など開発チームから抜粋して組織される事もあります。

QA(Quality Assurance)

システムは複雑化すればするほど元々期待されていた能力を発揮できなくなります。
そういったシステムの品質保証を目的とした専門家をQAとする事が多いです。
ソフトウェア業界ではQC(Quality Controls)は見たことがないですが、システムのサービスの品質は一番最初あるいはその前後が一番品質が良いからでしょうか?

ソフトウェアテストの妥当性はもちろんのこと、ネットワークやDBから、業種によってはハードウェアも見る事があり多方面のスキルを求められます。

オートメーション

テストを自動化する事を目的としたデベロッパー集団です。
テストへの知見と開発しているソフトウェアへの理解、また自動でテストができる内容の切り分けと判断ができる人を想定しています。

デザイナー

多くの場合、Webデザイナーを指しますが、業界専門のデザイナーもいます(ゲームデザイナーとか空間デザイナーなど)
視覚的な構造からレイアウトから、会社によっては素材作成までこなすスーパーマンポジションです。

ディレクター

Web業界ではPMのことをディレクターと呼びます。
こちらはWebコンテンツ全体を担当するため、Webプログラミング技術とライティング技術、Webサイトのトレンドやセンスなんかも必要です。
プログラマー上がりのディレクターだとブラウザの仕様まで把握している事もあり、ディレクターと言っても出来る幅には限度がありますので、人脈を持っていたり人に仕事を投げるのが上手い人が評価される傾向にあるような気がします。

Webプログラマー(コーダー)

デベロッパー界隈で言うところのプログラマー・フロントエンドエンジニアがここに当たります。
ゲーム業界だとサーバー通信にもめちゃくちゃ詳しい猛者のような人もいるので、一概に侮れません。
ただし、Webプログラマーになったからと言ってWebディレクターになれるか?というと(上記の通り、必要なスキルが違うので)微妙なところです。

その他ニッチなもの

IT業界は「仕事は自分で生み出すもの」という考え方があります。
自分で仕事を作って自分で解決して社会貢献をする、というものです。

世間に役立つツールやサービスを作ったり、既存業務をシステム化してミス撲滅・人件費削減をする等様々なアプローチが考えられます。
また、情報発信が積極的に行われ流行り廃れが激しいのも特徴です。
具体的にどんなものがある?というより会社独特のオリジナル肩書とかもありますので、名刺交換をする際にちょっと意識してみてください。

レベル5:専門分野

ここでは解説しませんが、いっぱいあるんだな程度に。
折角なので五十音で思いついたものを並べてみました。

  • あ行
    • Apache(アパッチ)
    • Issue(イシュー)
    • Ubuntu(ウブンツ)
    • Elixir(エリクサー)
    • OSS(オーエスエス)
  • か行
    • ガベージコレクション
    • que(キュー)
    • query(クエリー)
    • 結合テスト
    • コンパイル
  • さ行
    • Saas(サース)
    • 自然言語
    • Sudo(スードゥー)
    • SemanticSearch(セマンティック検索)
    • Socket(ソケット)
  • た行
    • 多言語
    • CheckSum(チェックサム)
    • ツリーダイアグラム
    • DNS(ディーエヌエス)
    • Tomcat(トムキャット)
  • な行
    • NAT(ナット)
    • 人月
    • Null(ヌル)
    • ネットワーク
    • Node(ノード)
  • は行
    • Hash(ハッシュ)
    • ヒープ領域
    • Protocol(プロトコル)
    • Headless(ヘッドレス)
    • Port(ポート)
  • ま行
    • Migration(マイグレーション)
    • Middleware(ミドルウェア)
    • 無限ループ
    • MediaQuery(メディアクエリ)
    • Module(モジュール)
  • や行
    • YAML(ヤムル)
    • ユニットテスト
    • 予約語
  • ら行
    • Runtime(ランタイム)
    • RebirthEngineering(リバースエンジニアリング)
    • Root(ルート)
    • rendering(レンダリング)
    • Load Balancer(ロードバランサー)
  • 割り込み処理

なるべく業界が偏らないように思いつく限りを書いてみました。
私が過去に使った事があるもの縛り(無限ループはホントすみませんでした)でマイナーなものからメジャーなものまで対応しました。

追記

こんなサイト があったんですね、知らなかった…。

© 2020-2021のむらやごろう(@elder_uncle)

当サイトの全てのコンテンツを転載・無断での引用もお断りしています。