初心者向け「プログラミング言語」について
初投稿です!
間違っている部分あったらすみません(笑)
プログラミング言語といえば?
- HTML
- CSS
....とか?
残念、これらは "プログラミング言語" ではありません。
じゃあなんなのか。
HTML、CSS はマークアップ言語に該当する。
マークアップ言語とは、文章の論理的な構造や修飾情報に関する指定を文章とあわせてテキストファイルに記述するための言語のことである。
マークアップ言語 - スパイラル株式会社 より
つまりマークアップ言語が担っているのはあらかじめ決められているデータを表示すること(静的な処理)、コンピューターが計算してどうのこうの...するものではない!
静的なものに動きをつける言語がプログラミング言語みたいなイメージだと思います。
プログラミング言語の種類
プログラミング言語も様々な種類がある...
- Python
- Java
- JavaScript
- TypeScript
- Ruby
- C
- C++
- C#
- Go
...他にも数百種類、派生系を含めると 1000 種類超えるらしい!
どの言語も基本的にはプログラミング的な思考方法は同じなので、ひとつ言語を学べば他の言語も意外とすんなり理解できるそう。
(まぁさすがに 1000 種類なんて生涯かけても触れる機会なさそうだけどね...)
「Python は機械学習に向いている」「Go は処理が早い」などそれぞれ特徴があるため、目的に応じて使う言語を選んでいます。
まずどれから始めるべき?
諸説ある。人によって様々。
- 「何を実現したいか」
- 「プログラミング経験はあるか」
等々。
(個人的には Python を推してます!読みやすいコード・文法だから初心者に易しい!って誰かが言ってました。)
悩む...
前述したとおり、初心者でとりあえずプログラミングに触れてみたい!という場合は Python がおすすめします。
-
ウェブアプリケーションのバックエンド
※裏側で動作する処理を担うものに結構選ばれてる(体感) -
いろんなことができる
- 機械学習
- アプリケーション
- Django(フルスタック)
- FastAPI(バックエンド)
- Youtube から動画を落とすなどの日常的なツール
私も高校の体育祭(5 月末~ 6 月初旬)で罵声を浴びながら、競技で流す BGM のダウンローダーを実装した記憶が...()
大学進学と同時にプログラミングに初めて触れるような方についてですが、大学側から「この言語やります」的なお達しが出ていることも考えられるので、それを優先的にやったほうが後々楽かもしれません。
いや俺はアプリをつくりたい!成果が目に見える方がいい!って場合
一番手っ取り早いのはGoogle App Script(GAS)。GAS が身近にある高校生活だったので GAS 使ってました。
振り返ればもっといろんな方法あったなと思いますが(cloudflare でホストしたりいろいろ)。
(なにせ学校 Google アカウントが WorkSpace アカウントだったし...)
GAS は JavaScript の派生(?)言語。JavaScript(以下、js)の文法が基本。そこに、スプレッドシートと連携したり Google ドライブを操作したり...の各 API(※1)を簡単に叩けるようにしたもの。
通常、外部アプリケーション(自作のものとか)で Google サービスを利用する際は GCP でプロジェクトを立ち上げるなど手間がありますが、GAS なら 5 秒くらいコードを書くだけで終わります。マジです。
※1 API とは
API(Application Programming Interface)とは、異なるソフトウェアやアプリケーション間で機能を共有するための仕組みのことです。ソフトウェアやアプリケーション同士がつながることにより、認証情報の共有、検索サイトや EC サイトのデータ共有など機能が拡張できます。
一般的な Web API の仕組みとしては、データの送信(リクエスト)とデータの返送(レスポンス)のプロセスがあり、API は通信の窓口となります。まず Web のクライアントのプログラムが API にデータを送信し、Web サーバーがデータを受信します。そのあと Web サーバーはデータ内容を処理し、その結果をクライアントに返送します。リクエストとレスポンスの内容は API の設計段階で決められており、欲しい機能が公開されていれば簡単に利用可能です。
NTT 西日本 より
スプレッドシートの値を書き換えたり、Google カレンダーと連携させたり、配列(※2)を操作するときの考え方を理解できたり...いろいろできるので初心者にはおすすめだと思います。
※2 配列とは
複数のデータを順番に格納したもの。['data1', 'data2', 'data3', ....]のように角括弧で 1 セット。
一番外側の角括弧を除いた各括弧の組みの数が n 個のとき、それは n 次元配列といえる。
高校の後輩用に残した引き継ぎ書より
さらに GAS はウェブアプリも作れます(ドメインは自由に設定できませんが)。
GAS で簡単なウェブアプリを作成すれば、HTML や CSS などのマークアップ言語や js の基本的な部分は理解できるから結構初心者にはいいかも。お金も基本かからないし(無料枠の制限はあるよ)。
やはり js か?
Python?よくわかんないよ~
や、
マークアップ言語と並行して学習したいよ~
って方は、js がおすすめです。
js は HTML の要素に干渉して、値を読み取って処理したり、逆に要素に値を代入したりできるから、マークアップ言語を学ぶなら js も学ぶべきといっても過言じゃないと思います。
Web サイトの「送信」ボタン押したら送信処理を始めてボタンにぐるぐるしてる円が表示されるの見たことあると思いますが、それもほとんど js みたいにマークアップ言語と密接な言語が処理を行っています。
コードを書く環境の「作り方」
散々プログラミング言語について考えを書いてきましたが、肝心の
どうやったらプログラミングの環境を作れるの?
を書いていませんでした。忘れてた。
GAS を使う場合
- Google アカウントにログイン
- GAS のホーム画面 を開く
- 左側の「新しいプロジェクト」をクリックし、任意のプロジェクト名を入力
- エディタが表示されます
その他 ソフト(IDE)を使う場合
- 開発用エディタ(VScode など)を PC にダウンロード
- もろもろの初期設定をする(言語設定は日本語でも英語でも〇)
- 書きたいプログラミング言語の拡張機能などをインストール
→ 拡張機能が必要か否かは言語によって様々です。公式ドキュメントなどを参考にしてください。
ファイルの拡張子を各プログラミング言語のものに合わせることを忘れずに! - こちらの世界へようこそ
分からない部分については、調べれば詳しい記事がたくさん出てくると思います。あくまで私の記事は流れを理解するという感じで捉えてください!
まとめ
とりあえず伝えたいのは
-
HTML や CSS はプログラミング言語ではなくてマークアップ言語だよ~
-
初心者には js や Python おすすめだよ~
-
情報系の学部進むなら、履修する言語もチェックするといいよ~
的なことでした!
Author: uyuyu
Discussion