初心者がプログラミング言語を勉強しようとした時は「まずはどの言語がいいか」とか「どうやって勉強すればいいか」とかが基本的な疑問になると思う。
しかしなぜか、言語のオススメの記事だったり、この本がいいですよ!とかいう記事は見つかるのだが、本当にどこから始めたらいいのかを書いている記事がないように感じるのだ。
だから、29歳にもなってプログラミングを独学で一から学び始めている僕が、本物の初心者用に、実際どうしたらいいかを書いていこうと思う。
まず、僕がどれぐらい初心者なのかを始めに書いておく。
自分は4年生大学を卒業し、インターネットのベンチャー(みたいなやつ、詳細は後述する)に就職し、簡単なホームページとかを作りつつ営業するということを4年間行い、挫折して現在肉体系のバイトに勤しむ29歳である。
「うわあ、ほらね。初心者って言ってもインターネットの会社で働いていたんじゃん。嘘つき!詐欺だ!僕は絶対に騙されないぞ!!」と思った方は、一旦落ち着いて聞いてほしい。説明するから。
そもそも僕は大学時代、パソコンは持ってはいたけど、授業で提出するようのテキスト(Word)だったり、簡単な発表用の文字だけのパワポ(PowerPoint)を使っていただけであって、その他は目下youtubeを見るためだけにパソコンを使っていたタイプの人間である。
そもそも引っ越すときに、次の新しい家でインターネットを開設する際「プロバイダはどこを使っていましたか?」的なことを聞かれて、頭を抱えて二日間寝込んでしまったような人間である。
そんなインターネットに関する知識ゼロの人間がそもそもなぜ就職でインターネットの会社を選んだかであるが、きちんと説明すると長くなるので、簡単にいうと「インターネットは未来だ!」と思っていたからである。
理由が完全におじいちゃんである。
なので右も左もわからずに飛び込んだ。本当に、右も左もわからなかった。
WindowsとMacの違いがわからなかったレベルである。(パソコンはパソコンでしょ?って言ってた。)
そんなこんなで飛び込んだwebの世界で、なんとか形だけHTMLを覚えて、ごまかしごまかし営業をしていた。
人間、誤魔化せばなんでもできるのである。
HTMLを覚えたと言ったが、実際にきちんと勉強をしたのは、ついこの間である。それまでは「この箇所をこんな風に変えるとこの文字が変わってくれる」というレベルでやっていた。webなんてそんなもんだ(何様だ)
そんなレベルであったのだが、一旦webの世界から離れ、webへの拒否反応が自分の中で出てこなくなった(浄化された)段階で、改めてwebというか、プログラミングができたら今後の人生絶対楽しいだろうな、という不純というか、小学生のような動機で勉強することを決めたのである。
大学の専攻は文系の学科で、パソコンのことは「情報a」みたいな授業で、エクセル(Excel)を少し触った程度。
本当にど素人の状況でwebの世界に入り、全く勉強することなく、なんの発展をすることもなく卒業した。簡単にいえば挫折した。
そんな自分であるから、初心者のためのプログラミング入門を書くにふさわしいと思う。(ふさわしいということにする)
ここで断っておきたいのだが、僕は今現在もバリバリのプログラミング初心者である。生粋の初心者、どこの舞台に立たされても大声で「自分、初心者です!」と言える自信があるほどの初心者である。
現在の自分のレベルがどのくらいかを、すでに多少知識のある人のために言うと「HTMLとCSS、UNIXのコマンドを少し覚えてきた程度」というレベルだ。
まさに今現在初心者としてプログラミングを勉強している。と言うか、スタートしたところである。
なぜそんな初心者がプログラミングを偉そうに語ろうと思ったかと言うと、別に語りたかったわけでもなんでもなく、僕も最初のスタートの時に、一体全体何から始めたらいいのか、さっぱりわからなかったため、そんな人たちにせめて「ここからスタートするといいんじゃないですか」と言いたかったからだ。
最初に話をした通り、プログラミング初心者、と言うか、パソコン初心者にとって、プログラミングとはまさに未知の世界であり、何から何まで何言ってるかわからない世界であると思うので、そこの本当に最初の最初「まずはこの靴を履いてドアから外に出よう!」みたいな話をしたいと思う。
なぜまだ初心者の段階で、こんな記事を書こうと思ったかと言うと、初心者の気持ちは初心者にしかわからないと思うからだ。
ある程度勉強が進んでいくと、自分が初心者だった頃の記憶なんてはるか彼方。そこまで言ってから初心者の人の話を聞いていると、なんでそんなとこにつまづいているの?みたいな感じになってしまうと思う。(他のジャンルでそんな経験がないかい?)
だからこそ、今なのだ。加えて、自分は根っからの文系出身で、趣味でブログも書いている人間なので、文章で伝えることが苦ではないというのも、自分の強みというか、自分が書くべきなのではないか、と思うに至った経緯の一つである。
前置きが長くなった。
まずこの記事は、本物の初心者を対象にしているため、ある程度すでに勉強している人にとっては、退屈なものになると予想される。
その場合は、読み飛ばして欲しい。決して、決して文句をコメントとして書き込んだりしないで欲しい。私はメンタルが弱いのだ。
さて、まず最初にプログラミングを学ぼうと思ったあなた。まずはパソコンを手に入れよう。
最初のパソコンはなんだっていい。実家に置いてある、父親がエロビデオを見るためだけに使っているやつでもいいし、自分の部屋にある自分がエロビデオを見るためだけに使っているやつでもいい。
とにかくパソコンを手に入れよう。パソコンがなければ、プログラミングはできない(今はスマホでもできるらしいけど、そんなハイテクな人々のことはここでは無視する)
そしてパソコンが用意できたら、次はインターネットに繋げよう。ここで「はぁ?」ってなった方はごめんなさい。そこまでは僕の方ではフォローできないので、ぜひ周りのパソコン詳しい人に聞いてみてください。メガネかけてるやつなら、だいたいわかるはずだ。
インターネットに繋がったら準備OK。安心して欲しい、もう勝ったようなもんだ。一旦ここでパソコンを閉じて乾杯してくれてもいい。あなたの未来は明るい。
と、ここまで書いてきて、この記事を読めている時点でインターネットには繋がっているのではないかという考えに至った。我ながら救いようのないバカである。
気を取り直して、本題に戻る。インターネットに繋がる環境が整ったなら、パソコンを起動させて、ついにプログラミングの勉強のスタートである。そう、その右上にある電源ボタンを押して。
プログラミングとは何か、とか。たくさんあるプログラミング言語の中から何を選べばいいか、とかいう話は、熟練した方々の素晴らしい記事がそこかしこに散らばっているのでここでは話さない、どうぞググってくれ給え。
まずは勉強の仕方である。これもいろんな記事でいろんな方法が紹介されている。スクールにいけ!とか。本を読んで勉強しろ!とか。
ここで僕がオススメするのは、Progateだ。
とりあえずググれば出てくるはずだ。まずはここから始めよう。初心者にはこれがちょうどいい。
プログラミング言語といえば、「Java」やら「C」やら「Python」やら「Ruby」やら「PHP」やら、色々と情報が出てくると思う。
ちょっと調べただけで死ぬほど出てくる。初心者にはPHPがオススメだ、とか。オブジェクト指向だ、とか。ガッキーは可愛い、とか。色々な声が聞こえてくるだろう。
しかし初心者が最初にやるべきは、間違いなく「HTML」だ。これはもう間違いない。ガッキーが可愛いのと同じぐらい、世界の真理なのである。
僕も初心者なのでよく知らないが(おい)「HTML」はいわゆる「プログラミング言語」ではないらしい。簡単にいうと、、、って言おうと思ったけど、自分もあんまり理解していないので簡単にいうことができない。
しかし大丈夫だ。ProgateにはHTMLのコースがある。これを最初からやっていけば、HTMLとはなんぞや、ということがわかると思う。少なくとも僕のように、文章で簡潔に説明はできないけどなんとなくは理解している、対面で話していいなら10分かければなんとなく説明はできる、というところまではいけるだろう。
それで充分なのである(たぶん)
ここで、突然だがプログラミング言語を勉強するにあたって、もっとも大切なことをあなたに伝授したい。伝授せずにはいられない。だって平成ももうすぐ終わりなんだから。
それは「完璧を求めるな」ということである。
僕のような文系人間にたまに見られる症状として「全てのことを1から順番に完璧に理解しないと次に進めない」というものがある。
この症状は厄介で、基本的には秋口から冬の終わりまで見られる症状であるが(ボケです)、それを言い出すと全く進めなくなってしまうので、ある程度ざっくりと全体像が見えてきたら次に進むべきだ。
進むにしたがって「あ、あの時のあれってこういう意味だったのか」っていうことによくぶち当たるようになるから、安心して欲しい。「だからあの人あの時あんなことを、、、」(コナンくん風)
じゃあどの程度ざっくり進めばいいかというと、Progateでとりあえず正解を打ち込めるようになった程度、である。もうProgateに全てを委ねればいい。大丈夫、君は一人じゃないよ。
とりあえず今日からProgateを始めればいい。有料版とか、無料版とかもあるけど、とりあえず無料でHTMLからやってみればいいと思う。(僕は本気出したかったので有料版でやり、もういいかなって時点で退会しました、月額制です)
勉強する順番としては、「HTML」→「CSS」である。とりあえずこういう感じである。今のところワードは気にしないでいい。とりあえずProgateにそういうコースがあるから、それが終わるまではそこまででいい。
そしてそのコースが終わったら、いよいよ言語を選んでプログラミングだ!!ってなると思うのだけれど、一旦落ち着いて欲しい。そこでつまづく可能性がでかいから、一旦落ち着いて欲しい。
CSSが終わった段階で、次にいきなり「Ruby」なり「PHP」なりに進む前に、一旦「コマンドライン」ってやつを勉強した方がいい。これはガチ。むしろこれだけを伝えたい。
簡単にいえば、HTMLとCSSは大前提でwebのことをざっくり理解するのに役立ち、そしてコマンドラインというのは、プログラミングを勉強するための「根本的なツール」である。
これがわかっていないと、意外とプログラミングにつまづくことになる。実際に僕はつまづいた。気持ちいいぐらいにつまづいた。モニュメントとして渋谷の真ん中に銅像を建てて欲しいぐらい綺麗につまづいた。
この根本的なツールがないと、プログラミングが最初からしっくりこないで「結局やっぱわけわかんねえや」で終わってしまう可能性がグンと上がる。グンと上がるのである。グンアゲである。
このことを意外とみんな教えてくれない。僕的には、今ようやっとコマンドラインの勉強を終えてみて思うだが、必須の知識だと思うのだけれどなあ(実際は違うのかもしれないけど、個人の感想ですので)
と言うことで、ありがたいことにProgateには「コマンドライン(Command Line)」のコースがあるので、それを勉強して欲しい。ほんとProgateさまさま、ありがとうProgate、今年の夏には暑中見舞いを送るからね。
これが最低限。プログラミングを勉強するための準備運動である。ここまでで挫折したよって人は、一旦上記の流れでやってみて欲しい。大事なのは「ある程度理解したらオッケーで次に進む」ことである。
さあ!コマンドラインの授業まで終わったらもう大丈夫!プログラミングという海に漕ぎ出そう!世はまさに大航海時代!!
と思ったかもしれないけど、一旦待って欲しい。その広げた帆を一旦畳んで欲しい。まだ地上にいて欲しい。
これはあくまで初心者のための記事なので、それを加味して聞いて欲しいのだが、ここからいきなりプログラミングに行くと、レベルが急にガン!って上がって萎えちゃう可能性が高い。萎え率が高い。萎え率が50%アップっていう調査結果が内閣府の去年の調べで出てる。
だから、漕ぎ出したい気持ちを一旦置いて、そのオールを一旦他の人に任せて欲しい(TOKIOにでもいい)
一旦復習しよ。ここまでの流れを一旦復習しとこ。
ここまでの学習(HTML,CSS,コマンドライン)が脳に染み込んでいるかいないかで、この後の道のりが全然違ったものになるから。
一旦染み込ませよう。脳にじわじわ染み込ませよう。ドクドクをイメージしよう。ターンごとにダメージが上がるやつ(Pokemon)
もちろん、もう全然大丈夫だぜ、ガンガン行きたいぜ、俺は若いぜ、って人はオッケー。でもあなたが本当に初心者で、Macって何ですがレベルから入ったのであれば、一旦復習した方が絶対にいい。
じゃあProgateの同じコースをもう一周するのか、と言われるとそれはキツイ。同じ道走るのはつまらない。復習するときは、同じような道でも違うコースの方がいい。脳のテンションが上がるから。
ということで、ここで「ドットインストール」の出番なわけです。
「ドットインストール」の詳細はここでは話さない。それこそwebサイト行けば見れるし、ドットインストールを使った効率のいい勉強法なんて記事はいくらでもネットに落ちてる。
とにかく簡単にいうとProgateと同じように、初心者でも簡単に勉強ができる動画サイトなんだけど、これを復習がてら、力試しに使って欲しい。
簡単にいうと、ドットインストールで「HTML」「CSS」「コマンドライン(Unixコマンド入門)」のコースを復習して欲しい。
「だる!またやらなきゃいけないんかい!漕がせろや、そろそろオール漕がせろや!」って思った人もいるだろうけど。
でも安心して欲しい。Progateである程度理解できていたら、あくまで復習であるドットインストールは、本当にサクサク進むから。
動画で説明してくれるから、もうそれこそ理解できてるなら流し見でもいい。それだけで全然違うから。
同じ内容を、違った授業の形で勉強できるのは本当に最高だし、なんならドットインストールも無料ってマジでグラシアスなんですけど。マジドットインストールグラシアス。
復習は大切だし、何よりサクサク進む勉強は楽しい。復習は本来楽しいもんだ。勉強は本来楽しいもんなんだから、まずはその感覚を脳に叩き込んだ方いい。
そんで、ドットインストールでコマンドラインまで復習したら、ついにあなたは準備が整ったと言える。
もう何も怖くない。「PHP」の海でも「Ruby」の川でも「Python」山でも。
あなたは越えていけるだろう。たぶん、知らんけど。だって自分もまだ漕ぎ始めたばかりだから(僕はPHPやってます)
とにかく、初心者用の勉強法で、私が言えることはここまでです。なんなら一緒に漕いで欲しい。一人は寂しい。助けて欲しい。Jesus help me.
この記事が、ゲロ吐くほど初心者の、もうプログラミングなんて勉強しないなんて言わないよ絶対なんて言っている初心者の、ちょっとでも役に立ってくれるのであれば、望外の喜びである。
一緒に勉強しましょ。
現場からは以上です。