プログラミングの根底にある技術と基礎知識を習得しよう
「プログラミングの基礎知識が知りたい!」
ITの知識は幅広く覚えることがたくさんありますが、実は新しい技術なども含め、既存の技術のうえに成り立っているものがほとんどです。
この記事では、不変的でいろんな技術の根底にある基礎知識を紹介していきます。
この記事の基礎知識が身につけば、ほとんどの技術で理解が深まったり、応用的な使い方もできるようになるでしょう。
「そもそもプログラミングとは?」という方は、先に下記の記事を呼んでください。
プログラムが動く仕組み【ハードウェア】
まずはプログラムが動く流れを見てみましょう。
プログラミング言語で書かれたものを機械語に翻訳する
ストレージからプログラムを読み込む
読み込まれたプログラムがメモリに置かれる
メモリに置かれたプログラムをCPUが読み込んで処理する
上記の流れについてわかりやすく解説していきます。
機械語への翻訳=コンパイル
プログラミング言語で書かれたプログラムは、機械語に翻訳しないとコンピューターが読み込めません。
プログラミング言語を機械語に翻訳することをコンパイルと言います。
プログラムが動くときには、必ずどこかのタイミングでコンパイルされていることを覚えておきましょう。
プログラムが実行されるまでの流れ
コンパイルされたプログラムはストレージに置かれています。
ストレージとはHDDやSDDなど、ファイルを保存しておく場所のことです。
このストレージに置かれているコンパイル済みのプログラムというのは、Windowsであれば「〇〇.exe」、Macであれば「〇〇.app」のことになります。
プログラムを起動すると、その内容がメモリ上に展開されます。
メモリに展開されているプログラムをCPUが処理していく流れとなっています。
データ構造・アルゴリズム
データ構造とアルゴリズムを組み合わせることで効率の良いプログラムを書くことができます。
データ構造とは、ある決まりに沿った形になっているデータの集まりのこと。
アルゴリズムとは、特定の計算方法のこと。
つまり、データ構造とアルゴリズムを知っていれば、もっとも効率の良い処理をテンプレ的に作ることができるということです。
また、いろんなところで出てくるので、言葉だけ覚えておいても損はないです。
データ構造
配列
- スタック
- キュー
連想配列 - ハッシュテーブル
- ルックアップテーブル
- 線形リスト
- 木構造
- グラフ
アルゴリズム
探索アルゴリズム
- 線形探索
- 二分探索
ソートアルゴリズム - バブルソート
- クイックソート
- 選択ソート
- 挿入ソート
- マージソート
- ヒープソート
オブジェクト指向
プログラミングパラダイムの1つ。
パラダイムの意味を調べると「ものの見方、考え方」とされています。
つまり、プログラミングをするうえでの考え方という意味になります。
その考え方として一番広く使われているのが「オブジェクト指向」と言われるパラダイムなのです。
現在は、関数型プログラミングなどが台頭してきています。
まとめ
この記事で紹介した内容は、根底にある基礎知識なので、時代で移りかわることがないので、覚えて損はないです!
Discussion