見出し画像

スタートラインに立つ~はじめてのぷろぐらみんぐ~

始めることって難しいですよね。初めてのことなら尚更。前に踏み出そうとした足も、掴もうと伸ばした手も、かなり重たいんですよね。でも、その少しでも動こうとした人は、それだけで偉いと思います。

この記事を書き始めている頃は、そろそろ4月になる頃です。
何かを始めるには、最適な時期?ですね。
私は、花粉が辛いです。

さて、前置きはそのぐらいにしてタイトル通り、「プログラミングを始めてみたいんだけどどうすれば良いんだ…」という方向けの記事を書きます。第一弾です。自己紹介とかは、下記の記事を参照ということで、本題に行きます。

プログラミングって実際のところ、どうなの?

正直言って、難しいと思います。
でも、身構えないでください。初めてのことって、どれも難しいものだと思ってます。そのハードルを少し下げる努力をしているのがこの記事になります。

プログラミングを始めるということ

じゃあ、何から始めれば良いの?というと、
1. どの言語を学ぶのかを選ぶ
2. その言語を始めるための環境設定
かな・・と思います。
ただ「○○が作りたい!」という具体的な考えをお持ちの方であれば、それを最優先に選ぶのが良いと思います。

ただ、これは一度プログラミングを始めたことがある人向きの説明ですね。

漠然と「何か新しいことを始めたいな・・」「プログラミングを始めたいな・・」と思っている人には、こんなことを言われても困ると思います。私だったら、困りますw
まずは、何か新しいことを始めたいな、と思った方へ。
私が思っている『プログラミングを始める』とは何かを書かせていただきます。

プログラミングを始める
 = 『学習をするということ・知識を得るということ』
 = 『新しいもの・価値があるものを作れるようになるということ』
 = 『少しだけ便利になるものを作れるようになるということ』
 =『選択肢が一つ増えるということ』

ざっくりと言いますが、『最も現実的ですぐに役立ちそうな勉強』ですねw
学生時代によく?ある、
「何でこれ勉強するんだろうねー。」「大人になって使わないのにねー。」
という会話もありますが、そういった心配がない勉強だと思ってます。(ただ、何も作らないのであれば無駄になるかもしれませんw)

開発言語を選ぶ

じゃあ、プログラミングを始めるとして、何をやりたいのか?

例えば、Webページを作りたいのであれば下記の言語を学ぶ選択肢があります。
・HTML、CSS
・php

例えば、ゲームを作りたいのであれば。
・HTML、JavaScript
・Unity(C#)
とかですかね・・。(ゲーム業界は、正直全然わからないので、的外れなことを書いていたらごめんなさい。)

調べてみると、java や ruby、python、などなど…。
様々な言語、選択肢があります。正直、調べるだけでやめたくなります。
それではこの記事を書いた意味がない。

いきなりですが少しだけ、難しい話をさせてください。
開発言語には、かなりざっくり分けると三つの種類があります。
・「コンパイラ言語」
・「スクリプト言語」
・「マークアップ言語」
…ざっくり解説します。
※ 細かい単語の定義とかは、興味があれば調べてみてください。

「コンパイラ言語」
1. Aさん: 「よし、○○(言語) で書くぞー。」「書いたぞー。」
2. Aさん: 「Zさんは効率主義だからな。変換しないとやってくれないんだよね。」
3. Aさん: 「さぁ、Zさん。これ(=変換したやつ)を実行して。」
4. Zさん: 「はーい、実行ー。」

「スクリプト言語」
1. Aさん: 「よし、○○(言語) で書くぞー。」「書いたぞー。」
2. Aさん: 「Yさん、これ(=書いたやつ)の実行よろしく。」
3. Yさん: 「了解。確認します。」
4. Yさん: 「実行します。」

「マークアップ言語」
1. Aさん: 「よし、○○(言語) で書くぞー。」「書いたぞー。」
2. Aさん: 「Xさん、これ(=書いたやつ)よろしく。」
3. Xさん: 「承りました。解析します。」

というものですw
ZさんとYさんとXさんは、その言語を自分が書いた通りに実行してくれる人ですね。
わざわざ何が言いたかったのか、というと「コンパイラ言語」の分類では、自分で変換を行う必要がある。ということです。
(また、厳密に言うと、「マークアップ言語」はプログラミング言語じゃないんですよね・・。ややこしい。)
つまり、言語の種類によって実行するための手順が違うわけです。(この時点で離脱する人、多そうですね。もう少し我慢を…。)

さて、それぞれの言語には、メリットとデメリットがあります。気になる人がいれば調べてみてください。
学習の時に感じる一番の違いは、「事前にミスに気付くか。実行した時にミスに気付くか。」かな・・と思います。

「コンパイラ言語」は自分で変換(=コンパイル)ということをします。
つまり、その時点で自分が書いた言語のものが間違っていれば、エラーが発生します。変換失敗です。何が失敗しているかを実行する前に知ることができます。
反対に、「スクリプト言語」はほぼ全部お任せです。何か間違っていれば、実行時にエラーが発生します。実行失敗です。言い換えれば、実行しないとミスが分からないことが多いです。
「マークアップ言語」は構造通りに実行するだけですので、エラーという概念は…微妙なところですね。

ここまで書きましたが、正直そんなに気にすることではありませんw
「コンパイラ言語」も、今の時代、実行しようとした時にコンパイルも一連の動作としてやってくれるツールがあります。
「じゃあ、何でわざわざ700字ぐらい使って、そんなことを書いたの?」と思われるかもしれませんが、ざっくりで良いので頭の片隅にでも知っておくことで、それぞれが意味不明なものじゃないんだよ。ということをお伝えしたいのです。

さて、話を戻します。

この時点で開発言語を選べた人、どの分類に属するのかが分かった人は、その環境ごとの設定に進むと良いかと思います。何を学習したいのか、目的が定まったのであれば、それだけで出場する競技の種目を決めたようなもの。あとは、エントリーするだけ・練習をするだけ・スタートラインに立つだけです。

じゃあ、まだ何を選べば良いのか分からない…。という方もいると思います。おそらく、この時点で決まっている人は、自分で調べてガンガン進めていく素質があるかもしれません。ちなみに、私にはその素質はありません!
ですので、うんぬんかんぬん…(理由は自己紹介記事参照)。

本題に入ります。

初めてプログラミングをやる人。そして、「マークアップ言語」以外を始めたい人には、『型』がしっかり宣言できる言語をお勧めします。

って何…と思われるかもしれません。データ型というやつです。
詳細は別記事で書いていく予定ですので割愛しますが、個人的には java をお勧めします。
ちなみに、私が一番最初に学んだ言語はjavaでした。

正直、今の潮流を踏まえるとjava を薦めて良いのか…と思わなくもないですが、自分のプログラミング知識の土台は、java で培われたものです。似ている言語として、C# も選択肢として良いと思います。

ただ、やっぱり初めて学習する場合、何ができたのか?が分からないとつまらないと思います。初めて学習をする方が一番最初にやることは、 『Hello World』 です。それを、パパっと出力させるのが始まりです。
初めて自分からやろうと思った時に、そんなものが出力されたのを見たところで何?と思うかもしれません。先達の方々、申し訳ありません。私は、あんまり意味がないと思います・・。
私がそこそこ知識を持っているという理由もありますが、簡単に実行ができるという点を踏まえ、java をお薦めします。
別記事では、簡単に実行ができるファイルも提供しようと思っています。動かして見れる環境は、Webアプリケーションです。
(java でWebアプリケーションと言うと、 Spring..?と思った方。察しの良い人は、キ・・)

さて、ここまでで言語は選べましたでしょうか・・。
ここまでお疲れ様でした。
読まれた方の、少しでも進んでみたい道の手助けができていれば幸いです。

(気付いたらこの時点で3000字も書いているみたいです・・・)
本来であれば、「2. その言語を始めるための環境設定」を書いていたのですが、既に言語を決めていてどう始めれば良いのかが分からないという方もいらっしゃると思います。
また、ここまでで疲れた…という方もいらっしゃるはずです。真剣に考えていると、不思議と疲れるものです。

そういった方が一区切りつけるように、分かりやすいように、前後編の形式を取りたいと思います。

ここまで読んでいただき、ありがとうございました。
後編はもうしばらくお待ちください・・。

いただいたサポートは、今後の創作活動に役立てさせていただきます。