😸

初心者向け「プログラミング言語」について

2024/12/15に公開

初投稿です!
間違っている部分あったらすみません(笑)


プログラミング言語といえば?

  • 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のダウンローダーを実装した記憶が...()

大学進学と同時にプログラミングに初めて触れるような方についてですが、大学側から「この言語やります」的なお達しが出ていることも考えられるので、それを優先的にやったほうが後々楽かもしれません。
(某大学では「Ruby」と「C」をやるってXで見た)


いや俺はアプリをつくりたい!成果が目に見える方がいい!って場合

一番手っ取り早いのは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を使う場合
  1. Googleアカウントにログイン
  2. GASのホーム画面 を開く
  3. 左側の「新しいプロジェクト」をクリックし、任意のプロジェクト名を入力
  4. エディタが表示されます
その他 ソフト(IDE)を使う場合
  1. IDE(VScodeなど)をPCにダウンロード
  2. もろもろの初期設定をする(IDEの言語設定は日本語でも英語でも〇)
  3. 書きたいプログラミング言語の拡張機能などをIDEにインストール
    →拡張機能が必要か否かは言語によって様々です。公式ドキュメントなどを参考にしてください。
     ファイルの拡張子を各プログラミング言語のものに合わせることを忘れずに!
  4. こちらの世界へようこそ

分からない部分については、調べれば詳しい記事がたくさん出てくると思います。あくまで私の記事は流れを理解するという感じで捉えてください!


まとめ

とりあえず伝えたいのは

  1. HTMLやCSSはプログラミング言語ではなくてマークアップ言語だよ~

  2. 初心者にはjsやPythonおすすめだよ~

  3. 情報系の学部進むなら、履修する言語もチェックするといいよ~

的なことでした!

Auther: uyuyu

Discussion