私は今Ruby on Railsでサイトを構築しています。
2020年のGWにベータ版をリリース予定です。
ですが、今までプログラミングがとても苦手で何度も挫折していきました。
今だからわかりますが、その理由は単純にプログラミングに慣れていなかったからだと思います。
プログラミングを挫折してしまう人は、プログラミングの勉強方法を知らないんです。
そういう状態で、プログラミングスクールへ行っても挫折してしまうかもしれません。
本来は文系でもプログラミングを習得することができますが、プログラミングを学ぶということがどういうことなのかわからない人は学習途中で挫折してしまう可能性があります。
ですので、こちらではプログラミングを学ぶための心構えと、下地、そして道筋を書いていきます。
目次
プログラミングを習得するための道筋
まず、先にプログラミングを習得するための道筋を書きます。
まず学習すべきは、HTMLとCSSですね。
こちらをまず勉強します。
すでにHTML、CSSなら分かるんだという人は、ここを飛ばしましょう。
そのあとはVBAやRPAを学んだほうがいいと思います。
いきなりPHPやRailsなどのサーバーサイドの言語にチャレンジするのではなく、まずVBAやRPAで構築をしてみるのがいいと思います。
VBAやRPAはプログラミングじゃないと思う人もいるかもしれませんが、ループや分岐、変数など使用するため、プログラミングに慣れるにはうってつけです。
私はRPAでプログラミングの基礎を学んで、ちんぷんかんぷんだったRailsを理解できるようになりました。
ですので、プログラミングを学びたいのであれば、まずはVBAなどの簡単なプログラムを学ぶのが良いと思います。
そのあとは、RailsやPHP、Python、Kotlinと発展していく形です。
プログラミングで最低限知っておくと良いこと
プログラミングという言葉をよく聞くと思いますが、プログラミングとはそもそもなんなのでしょうか。
プログラミングは、人間がボタンを押したら決められたように動く、指示だと言っていいでしょう。
例えば、Webサイトであれば、ある文字をクリックしたら、違うページに遷移すると思います。
これは裏で、誰かが書いたコードにしたがってプログラムが動いているからです。
コンビニのATMでお金を下ろすことができるのも、裏で誰かが書いたプログラムが動いているからです。
コンピュータは正しい指令を出してあげると、絶対にその通りに動きます。
どんな状況でも同じように動かすことができるのがプログラミングです。
条件分岐
でももし人間がパスワードを間違えたら、エラーを起こしてほしいなんてことがあります。
パスワードを間違えるということは、悪いことをしようとしている人が操作している可能性があるからです。
そういう場合には分岐が必要です。
if 「パスワードを間違えたら」 then エラーを表示。
もし〇〇だったら、〇〇してね。
これをあらかじめ機械に教えてあげるんです。
ループ
さらには、ループ処理というものがあります。
ループとは、「ある一定の決められた処理を、良いって言うまでやってね」と教えてあげるプログラムです。
例えば、100行のExcelデータがあって、それを全部システムに転記してほしい時にこのループを使用します。
処理しようとしている100行のデータは、人間が予め、規則的に並べてあげたものです。
あとの転記作業はプログラムにやらせれば、その間に好きなことができるんですね。
でも、100行分のプログラムを書くのはとても大変です。
ですので、1行目のやり方だけ教えてあげて、あとはループさせてあげるんです。
ここに先ほどの条件分岐を加えてあげたら、ちょっと変なデータがやってきても、エラーを出さずに続けてくれるように指示できます。
これがプログラミングです。
もしループと条件分岐をうまく組み合わせることができれば、あとはボタン1つで勝手に動いてくれるものを作ることができます。
プログラミングというのはそういう指示を書く仕事なんです。
変数
それに付け加えて重要なのが、変数です。
変数とはどんなものが来ても大丈夫なように、箱を用意してあげる作業です。
例えば、下記のようなデータを転記して家計簿を作りたいとします。
もしも変数を使用しなければ、3行分のプログラムを書かなければなりません。
しかし変数を使用すると、1行分のプログラムで済みます。
この場合、”日時”、”支払い金額”、”用途”という変数を作ってあげます。
(英語で変数を用意するところもあれば、日本語で用意するところもあります)
こうすることで、”日時”という箱に入ってきたものであれば、なんでも”日時”として処理することができるようになります。
このようにして1行分のプログラムを書いてあげれば何行でも処理してくれるように指示することができるんです。
プログラミングを学ぶにはこういう考え方を知っておく必要があります。
他には変数の型やdiv idなどのWebプログラミングの要素ですね。
これを知っていれば、書いたプログラムが1人でに動き出してくれます。
こういう一通りの考え方を知っていれば、あとはいくらでも応用がききます。
しかしこれらを知らずにいきなりプログラミングを勉強しようとしたら、何を言っているのかわからず、つまらくなってしまいやめてしまうんです。
また一度聞いただけでは、本当に理解していないケースがあります。
ですので、何度も読んで理解し、さらには実務で実際に使用して、体で理解することが必要です。
プログラミングを理解するのに5年くらいかかった
私は大学生の時にホームページを作ろうとHTMLの本を購入しました。
2009年頃ですね。
でもmetaが何なのかすらわからず、一向にサイトへ文字を表示することができませんでした。
その後、時を経て2017年頃に、HTMLをもう一度学びました。
その時に初めてドットインストールを知って、躍進しました。
ですが、PHPのサイト構築でサーバーサイドの仕組みがわからず、また挫折しました。
もちろん今も勉強中ですので、レベルは低いですが、私はもうプログラミングの階段を駆け上がる方法がわかりました。
プログラミング学習のツール
私のプログラミング学習を飛躍的に向上させたのはドットインストールとの出会いでした。
田口さんの話すスピードが非常に早かったので、驚きましたが、だんだん慣れていき、今では田口さん遅いよと思うレベルになりました。
その他にはProgateやオンラインスクールなど様々なサービスがあります。
その中から自分にあったものを選ぶのが良いでしょう。
さらにはteratailやMENTAというサービスもあります。
teratailやMENTAは、ある程度プログラミングの基礎がわかった人向けに用意されている質問サイトですね。
これらを利用して、わからない箇所を潰していくことができます。
ただteratailは場合によっては、マウントをかけられ終わってしまい、モチベーションを下げてしまうことがあります。
そうならないために、他ユーザーからマウントをかけられても無視するメンタルを身につける必要があります。
他人が何かいちゃもんをつけてきても無視して大丈夫です。
自分がやるべきことを淡々とこなしましょう。
またMENTAやココナラには必ずコミュニケーション能力に長けた素晴らしいエンジニアがいらっしゃるので、そういった方にメンターになって頂き、質問できる体制を整えると飛躍的に上達できます。
【プログラミング勉強の仕方】誰でもプログラミングが習得できる道順「まとめ」
今はプログラミングスクールがとてもたくさんあります。
ですので、お金を払えば、プログラミングを習得することは可能かもしれません。
しかしプログラミングに今まで触れたことがない人は、全然慣れないので、すぐに挫折してしまうと思います。
そういう時は挫折してしまってもいいと思います。
でもこれだけは覚えておかなければなりません。
マーク・ザッカーバーグだって、はじめはびっくりしたはずです。
「huh? I do not know it at all(あれ、全然わかんねえ!)」と。
でも、そこで放置しなかったから、FaceBookを完成させることができたんです。
挫折したいと思う気持ちは誰にでも平等にやってきます。
でももう一度TRYするんです。
その繰り返しで、世界を変える素晴らしいものを構築できる日がやってくるんです。
ぜひ、めげずに勉強を続けてください。