未経験者が始めると困る、IT・PC関係の用語リスト

# 未経験者が始めると困る、IT・PC関係の用語リスト
　この記事では、プログラミングを始めたばかりの私が苦手意識を持つ、**IT用語**について書いていきます。

:::note alert
本当に基本的な単語もあるので、
[そこから？！]となるような方にはオススメしません...汗
:::

-----------------------------------------

　ようは、端的に言うと「**覚え書き**」です。
　忘れた時に見るメモ。

　もし間違った解釈や見づらいなどご指摘があれば、気軽にコメント欄にご意見いただけると助かります笑

:::note warn
自分用でもあるので、都度「追加・修正」していく予定。
:::
:::note warn
なるべく「分かりやすく」「簡単に」書きます。
:::

　この記事が誰かの役に立てば嬉しいです！
# 用語一覧
## 略語

<details><summary><strong>API</strong></summary>

　Application Programming Interface の略。
　インターフェース ・・・ 繋ぐ
　つまり「アプリ」と「プログラム」を繋ぐ。
　機能を共有できるようにするもの。
　外部とのやり取りを仲介し、連動させる。
　
　異なるソフトウェアやサービスを繋ぐ(共有)する。
　例えば、認証機能、チャット機能など

</details>

<details><summary><strong>OS</strong></summary>

　Operating System の略。
　「システムを動かす」みたいな意味合い。
　ユーザーとハードウェアを繋ぐ基本動作が定められている。
　例： Windows、Android、Linux、UNIX　など

　機能
　・タスク(並行して複数の処理を行う機能)管理
　・メモリ(作業場所)管理
　・ファイル管理
　・周辺機器管理
　・APIの提供

　「〇〇対応」のというような表記は、
　このOS(〇〇の部分)で使えますよ～…という意味。

</details>

<details><summary><strong>CLI</strong></summary>

　Command Line Interface の略。
　普段パソコンを操作しているやり方(マウス、ボタンを押すなどの感覚的なもの)とは逆に、指定された「コマンド」を使って、それらをパソコンに指示する操作方法。
　使用するにはパソコンによりツールは異なるので注意。

例： 「Git Bash」「ターミナル」など。

</details>

<details><summary><strong>GUI</strong></summary>

　 Graphical User Interface の略。
   CLIに対して、感覚的な操作性を持つ扱いやすいアプリケーション。
　 (マウスの操作、ボタンを押すなどで完結)

例： 「Finder」「エクスプローラー」など。

</details>

<details><summary><strong>MVC</strong></summary>

　アプリケーション設計で機能を整理するための考え方の一つ。実装する際、分けて作ると便利な部分。

　・Model・・・ データ処理。登録・取得・更新・削除。
　・View・・・ 表示、入力処理
　・Controller・・・ 入力内容に沿ってモデルとビューを制御。

</details>


## 知っておくべき用語
<details><summary><strong>ハードウェア</strong></summary>
例：　PC、スマートフォン など

　機械そのもの。物理的な機器の総称。
<dl>
  <dt>・・・外部ハードウェア</dt>
  <dd>　キーボード、マウスなど</dd>
  <dt>・・・内部ハードウェア</dt>
  <dd>　・CPU(演算制御装置)<br>
　・HDD(大容量記憶媒体)　など
　</dd>
</dl>

</details>
<details><summary><strong>ソフトウェア</strong></summary>

　ハードウェア本体を動かすために、命令を出すプログラムの集まり。
<dl>
  <dt>・・・基本ソフトウェア</dt>
  <dd>　PCを動かすために必要。OS</br>
　(Windows、MacOs、iOS、Androidなど)
　</dd>
  <dt>・・・応用ソフトウェア</dt>
  <dd>　機能を提供。アプリケーション<br>
　(ゲーム、ウィルスソフト、Word/Excel、Photoshopなど)</dd>
</dl>

　プログラミングソフトの「vscode」などは、
　プログラミングのメモ帳みたいに使えるツール。
　
</details>

<details><summary><strong>ディレクトリ</strong></summary>

　位置情報。フォルダと同意義でデータの格納先。
関連する用語は、
・カレントディレクトリ → 現在地
・ホームディレクトリ → 初期位置(チルダ「~」で表示される)
・ルートディレクトリ → 直線につないだ階層の先頭。

</details>

<details><summary><strong>パス</strong></summary>

　ファイルやディレクトリの場所を指す。階層構造になっている。
<dl>
  <dt>・・・絶対パス</dt>
  <dd>　パスをルートディレクトリから表記したもの</dd>
  <dt>・・・相対パス</dt>
  <dd>　現在位置から目的パスを表記したもの<br>
　　　　表記例：　../xxx.tx<br>
　　　　※ ↑のように書く、とだけ理解しておくと後に分かります笑
  </dd>
</dl>

</details>

<details><summary><strong>Null</strong></summary>

 ヌル。何もないという意味で使用される。

</details>

## 有名なプログラミング言語
<details><summary><strong>C</strong></summary>

C言語と呼ばれる、汎用プログラミング言語。
後発のC++やJava、C#など、「C系」と呼ばれる言語の大元。

【利点】
　・ハードウェアの直接制御ができ、ソースコードの再利用や
　　メンテナンスに優れ、目的に応じたの変更や拡張が簡単。
　・自由度が高く、あらゆる分野で利用されている。
　・対応する範囲が広いため、参考資料も多い。
　・プログラム作成やデバッグの補助的なツールも豊富である。
【欠点】
　・古い言語のため、仕様は単純だが難しい。
　(習得しにくいので、後発の言語を学ぶ方がよい)
　・速度や自由さ、移植の手軽さはあるものの安全性は△

</details>

<details><summary><strong>JavaScript</strong></summary>
　
　動的なWebページ制作やWebアプリ開発によく使われる。
　HTMLやCSSなどの言語と組み合わせて使用できる。﻿
　動かすための「指示出し」の役割。﻿

　例： ・ドロップダウンメニュー
　　　 ・エラーメッセージ
　　　 ・アニメーション付与　など
 
</details>

<details><summary><strong>PHP</strong></summary>

　サーバーで動的なWebページ制作やWebアプリ開発によく使われる。
　CやJavaに近く、学習しやすい文法で構成されている。

　HTML埋め込み型の構文。
　<?php ?>内を解釈、実行する。出力のみであれば<?= ?>と略せる。

</details>

<details><summary><strong>Python</strong></summary>

　読みやすく、効率のいい簡単なコードに。という傾向が強い。
　本体の機能は至ってシンプルで、自身で提供されている
　ライブラリ(拡張機能)から必要なツールを選択し、使用することが出来る。

</details>


<details><summary><strong>Ruby</strong></summary>

　可読性を重視した、日本開発の言語。
　文法が簡潔で、カスタマイズ性も高い。

</details>


## 関連サービス

<details><summary><strong>AWS</strong></summary>

　Amazonが提供する、インターネットを利用していろんなサービスを必要な分だけ使用できるサービス環境。
　ネットを利用しているので、物理的に機器を用意する必要がなく、直ぐに開発環境を用意できる。

<dl>
  <dt><strong>合わせて知っておきたい単語</strong></dt>
  <dt>例：EC22</dt>
  <dd>仮想サーバーを作成できるサービス</dd>

  <dt>例：S3</dt>
  <dd>大量データ保存が可能になるサービス</dd>

  <dt>例：RDS</dt>
  <dd>データベースを利用できるサービス</dd>
</dl>
等々…

</details>
<details><summary><strong>Cloud9</strong></summary>

　開発のための環境をネットを利用して用意できるサービス。ブラウザで動かすので、PCさえあればベースになる開発環境が整うため、性能や機種を気にする必要もない。便利。

</details>
<details><summary><strong>VSCode</strong></summary>

　Visual Studio Code の略。
　Microsoft のテキストエディタ。
　文章やプログラム作成、編集のためのソフトウェア。
　拡張機能が多く、カスタマイズ性が高い。

</details>
<details><summary><strong>デベロッパーツール</strong></summary>

　Chrome が提供する機能の一つ。
　HTML・CSS文動かしながらWebサイトのコードを確認、編集できるため、
　分かりやすく機能も多い。使えるようになると便利。

</details>

<details><summary><strong>Git hub</strong></summary>

　GitHubはGit(変更履歴を管理できるシステム)をベースとしたクラウド型のWebサービス。
　ソースコードやリポジトリ（ファイルやフォルダの集まり）をWeb上に保存し、全体で共有が可能。
　開発を効率化するための機能が満載。
 　・プルリクエスト
 　・Issue
　など、カスタマイズ性も高く参考にできる記事も多いので、開発前に使い方を調べるのが吉！
 
</details>

# 引用元リンク
#### 参考サイト
*用語関連*
* [e-Words](https://e-words.jp/)

*関連サービスについて*
* [AWS (アマゾン ウェブ サービス) とは？【AWS公式】](https://aws.amazon.com/jp/what-is-aws/)
* [AWSとは？ 初心者にもわかりやすく解説](https://www.skyarch.net/column/whataws01/)