Friendly Programming Learning

優しいプログラミング学習



[Message from SILKY.LABO.]
私自身が、プログラミング学習で挫折をしてしまった経験があります。
そんな私でも理解出来る、とても優しいプログラミング用語集を作ってみよう!
と考えました。
プログラミング学習の最初の一歩や、ReStartになってくれると嬉しいです。

プログラミングに関連する用語をご紹介します。


基本的なプログラミング用語・初級編


基本的なIT用語
1.OS (オペレーティングシステム): パソコンやスマートフォンなどを使うために必要な基本的なソフトウェア。
2.ソフトウェア: コンピュータ上で動くプログラムのこと。
3.ハードウェア: パソコンやスマートフォンなどの機器や、それを構成するパーツの総称。
4.アルゴリズム: 問題を解決するための処理方法や計算方法。
5.メソッド: 特定の処理をひとまとめにしたもの。
6.オブジェクト指向: ソフトウェア開発の考え方の一つで、オブジェクトを中心にプログラムを構築する方法。
7.ソースコード: プログラムが書かれたテキストファイル。
8.インタプリタ型: ソースコードを一つずつ機械語に翻訳しながら実行する処理方式。
9.コンパイル型: ソースコードを一括で機械語に翻訳してから実行する処理方式。
10.コーディング: プログラムを書く作業。
11.フローチャート: プログラムの流れを図として表したもの。
12.モジュール: プログラムを構成する要素。

プログラムの処理に関する用語
1.変数: 任意の数字や文字列などを入れる「入れ物」。
2.関数: 特定の処理をひとまとめにしたもの。
3.乱数: ランダムな数字。
4.定数: 後から変更できない値。
5.配列 (リスト): 複数の値を一つの変数に格納するデータ構造。
6.条件分岐: 条件によって処理を分岐させること。
7.繰り返し: 同じ処理を繰り返すこと。
8.バグ: プログラムの誤りや不具合。
9.デバッグ: バグを見つけて修正する作業。
10.引数: 関数に渡す値。
11.戻り値: 関数から返される値。
12.バッファ: データを一時的に保存する領域。

いかがでしょうか?
それぞれの用語について、さらに詳しく知りたい方は、WEBで調べたり、書籍を読んで知識を深めてくださいね。
プログラミングの学習がスムーズに進むことを願っています。



プログラミング用語・中級編

-フレームワーク (Framework)
フレームワークは「全体の処理の流れがある程度決められている開発ツール」です。
Webアプリやスマホアプリを作る際、自分で1から作っていくと非常に時間がかかります。
それを解消してくれるのがフレームワークです。

主にWebフレームワークを中心にご紹介します。
WebフレームワークはHTTP通信の制御を担当します。
HTTPを通してWebサーバーに必要なデータをリクエストし、そのレスポンスを取得して返却することがコアとなっています。

一般的なWebフレームワークは以下の機能を持っています。
モデル (Model): POSTされたデータをデータベースへ保存する
ビュー (View): 取得したHTMLを画面に表示する
コントローラー (Controller): HTTPリクエストを受け取り、モデルやビューに命令を出す
この3つの枠組みを持ったWebフレームワークのことを「MVCフレームワーク」と言います。

代表的なPythonのWebフレームワークには、以下の2つがあります。
Flask: 最小限の機能でシンプルなWebアプリケーションを開発する場合に優れたWebフレームワークです。
Django: Web開発におけるあらゆる機能が備わっているフルスタックフレームワークです。

-モジュール (Module)
モジュールはプログラムの「部品」です。
特定の機能を持っていて、それを他のプログラムと組み合わせることができます。
プログラムを効率的に開発するために利用されます。
例えば、同じような計算ロジックを何度も書く必要がある場合、モジュールに含まれる関数やクラスを利用して簡単にコードを記述できます。

-ライブラリ (Library)
ライブラリは再利用可能なソフトウェアの部品です。
プログラムの一部であるモジュールを定型化して、他のプログラムが引用できる状態にしたものです。
ライブラリに含まれる関数やクラスを利用することで、同じ機能を複数のプログラムで共有できます。

フレームワーク・ライブラリ・モジュールの違い

-フレームワーク (Framework)
フレームワークは、プログラムの「全体の処理の流れがある程度決められている開発ツール」です。
特徴
1.制御の流れ: フレームワークはアプリケーションの制御の流れを決定します。つまり、どの部分をどのように実装するか、どのタイミングでどの処理を行うかなどがフレームワークによって規定されています。
2.骨組み: フレームワークはアプリケーションの基本的な骨組みを提供します。例えば、WebフレームワークはHTTP通信の制御を担当し、データベース接続やセッション管理などの共通機能を提供します。
3.拡張性: フレームワークは拡張性を持っており、カスタムのコードを追加してアプリケーションを拡張できます。
代表的なフレームワークには、Web開発のDjangoやFlask、JavaScriptのReactやAngular、JavaのSpringなどがあります。

-ライブラリ (Library)
ライブラリは、再利用可能なソフトウェアの部品で、特定の機能を持っています。
特徴
1.機能の提供: ライブラリは特定の機能を提供します。例えば、数学関数を計算するための数学ライブラリや、画像処理を行うための画像処理ライブラリなどがあります。
2.単一のタスク: ライブラリは単一のタスクに特化しています。プログラム内で必要な機能だけを選んで利用できます。
3.カスタマイズ性: ライブラリはカスタマイズ可能で、必要な部分だけを利用できます。
例えば、Pythonの`requests`ライブラリはHTTP通信を行うための機能を提供し、`numpy`ライブラリは数値計算を行うための機能を提供します。

-モジュール (Module)
モジュールはプログラムの「部品」です。
特定の機能を持っており、それを他のプログラムと組み合わせることができます。
プログラムを効率的に開発するために利用されます。
例えば、同じような計算ロジックを何度も書く必要がある場合、モジュールに含まれる関数やクラスを利用して簡単にコードを記述できます。

簡潔に言えば、フレームワークはアプリケーションの骨組みを提供し、ライブラリやモジュールは特定の機能を提供する部品として使われます。