Contents
プログラミングが上達しない人が多い
プログラミングは昨今小学校の授業にも取り入れられ始めるなどしており、皆がスマホを持ってインターネットにアクセスしている今ではもはや専門スキルではなく、一般教養として求められ始めています。
そんな中で自分もプログラミングを始めてみようと考え、本屋でプログラミングの参考書などを購入するという人も多いと思いますが、その大半はプログラミング技術をちゃんと修得することができないまま挫折して終わってしまいます。なので、今日はそうならないにするための個人的なアドバイスを書いていきたいと思います。
プログラミングは基礎より応用!
最近は無料でプログラミングを勉強することのできるサイトも増えており、そういったものを使って勉強している人も多いと思いますが、ここにも罠があります。というのもああいうのは基本的に「基礎をマスターするまで次に進んではならない」式の教育法で、そういうものに付き合っていると、何も出来ないまま終わってしまいます。
なので、プログラミングは100%完璧に理解するのではなく、中途半端な理解でもいいのでとにかく動くものを作るというアウトプット目指して突き進んだほうがいいです。
プログラミングは「基礎」に時間を使うよりも早めに「応用」に入ってある程度モノを作って、作って実際に動かしたうえでエラーなど色々疑問が溜まってから「基礎を復習する」方式のほうが遥かに効率的で、基礎周辺でうろうろしてチュートリアルを何周もしたりするのは「逃避」というか「勉強のための勉強」なのでやめたほうがいいです。
これは自分自身の経験なのですが、僕は独学でプログラミングを勉強し、始めて動くものを作った時、今にして思えばアホみたいな話ですがクラスとか関数を一切使っていませんでした。つまりオブジェクト指向もクソもないダメコードを作っていたのです。
それからそれを指摘され、人のコードを見るなりしてようやくコードは部品のように種類ごとのクラス分けして1つ1つ関数にするということを知りました。例外処理を知ったのもプログラミングを始めてだいぶ後の話です。まあ何を知ってほしいのかというと、初心者向け参考書に書いてあることを100%理解しなくてもとりあえず動くものは作れるということです。
というのも「プログラミングというのは基本的にif・for文と真偽値・リストさえわかればたいていのものは作れるからです。」なので、まずはこの3つを理解するということを意識するとプログラミングが分かるようになると思います。ですが、逆に言うとこの3つを理解しないとプログラミングとは何なのかが理解できず挫折して終了ということも意味しています。
if文とfor文
上述したように、初心者が詰まる大きな関門にif文とfor文というのがあります。これらについては以下の記事で僕なりに超分かりやすく書いているので、読んでいただければ幸いです。
真偽値とリストは何に使うのか?
プログラミングの参考書の始め辺りに出てくるものに真偽値というのがあります。この真偽値の下りでは、たいてい == や < や > みたいな不等号と True と False がごちゃごちゃと書いてあります。この真偽値の意味や使いどころがいまいちよく分からないというのがプログラミング初心者が皆一度は考える悩みだと思います。
ではこの真偽値は何に使うのかというと、「真偽値は基本的にfor文で繰り返し処理をする中でif文で処理を条件分岐させる際に使うもの」です。プログラミングは基本的にfor文とif文でできているといっても過言ではないので、if文を記述するときに使う真偽値は超重要なのです。
具体的に真偽値True・Falseはif文のどこで使われているのかというと、最初のif文の条件で定義するときに使われています。というのもif文はどのプログラミング言語でも基本的に以下のように定義されています。
if 条件式:条件式がTrueだったときに行う処理
基本的にはif文は条件式がTrueを返した場合に発動するので、条件式はTrueまたはFalseで帰ってくるものにしなければいけないのです。if文を書いているのにエラーを吐かれて良くわからんとプログラミングを挫折してしまう人の大半はこの真偽値の存在を意識していないことが原因だと思われます。
なのでこういった理由でプログラミング初心者向けの参考書ではif文・for文の前に真偽値の章が絶対に設けられているのです。例えば1<10という条件式を実行すると真偽値はTRUEと返されますし、1>10という式を実行するとFalseと返されます。
参考書を有効活用する方法
プログラミング初心者向けの参考書はたくさんあります。もちろん本選びも大事だと思いますが、基本的にどの本も分かりやすさの強弱はあるにせよ、そこまで変なことは書いてありません。大切なのはプログラミングの参考書を読んで、へーそうなんだー!で終わるのではなく、実際に参考書に乗っているコードを自分で書いてみることです。
実際に自分でコードを書くことによって処理の意味がちゃんと分かり、自分でアレンジすることもできるようになりコードへの理解が深まります。デザインもプログラミングも『まずは書く!効率はやってから考えよう!』というのが一番大切です。
作りたいものを見つける
プログラミングにおいて一番大切なのはまず作りたいものを決めるというということです。これがないとプログラミングは絶対に上手くなりません。僕は自動取引Botを作りたいという一心でプログラミングを始めました。
自動取引Botを作りたいなーと思ったきっかけは単純でお金が儲かると思ったからです。実際にとても苦労しましたし、何度もハマりましたがようやく自分で自動取引Botを作ることができ、現在はBotがそこそこ稼いでくれていて、副収入になったりしています。
プログラミングをなんとなく勉強しているけど何が作りたいのかよくわからないという人はまずお金になるプログラムを作ってみるというのもアリかもしれませんね。もちろん人によって作りたいものは全然違っていて、ゲームを作りたい人もいていますしやWEBサイトを作ってみたいという人もいてますし、作りたいものがある方はそれを作れるように意識して頑張るとプログラミングは上達すると思います。
別に大層なものを作る必要は全然無いんですが、例えば簡単な「Twitter自動つぶやきBot」やツイッターアカウントを認証させて動くサービスみたいなものを、写経じゃなくて実際に自分で作ってみるだけでプログラミングの上達速度は全然違ってくると思います。
初心者にオススメのプログラミング言語は何?
さっき上でチラッと触れましたが、プログラミングで作りたいモノは人によって違います。ですが、プログラミング言語には言語ごとに得手不得手が基本的に存在します。例えばこのブログを管理しているワードプレスはPHPというプログラミング言語で書かれており、PHPはWEBサイトを作るときに便利な言語です。
まあWEBサイトもサーバー管理も昨今流行りのデータ分析やディープラーニングも頑張れば全部C言語でできるから、C言語を勉強すればいいという人もいるのですが、個人的にはC言語はプログラミング初心者にはかなりハードルが高いと思います。ぶっちゃけ現場で働いているエンジニアレベルでもC言語は苦手という人は結構多いですし、転職でもC言語が使えると重宝されたりします。
なのでC言語はプログラミング初心者にとってかなりハードルが高いので、個人的にはPython(パイソン)というプログラミング言語がオススメです。
上の記事でも書いていることですが、このpythonというプログラミング言語では何ができるのかというと、基本的には何でもできますゲームも作れますし、WEBサイトも作れますし、今流行りのディープラーニングを使ったAIを作る事も可能です。
pythonでゲーム作りやWEBサイトを製作するために方法などについては「初心者のためのPython活用術 」という参考書が広く浅く簡単に書いてくれているのでオススメです。
まあなんでこんなpythonをオススメするのかというと、とにかくpythonは書きやすい・読みやすいプログラミング言語だからです。まあ普通に使うとC言語などのコンパイル言語よりも処理速度が遅いというデメリットがあるのですが、Youtubeやインスタグラムはpythonで作られていますし、ライブラリを駆使すれば問題なく、機械学習・深層学習(ディープラーニング)がとても簡単に行えます。そういった意味でもPythonは初心者から上級者まで幅広く使えるプログラミング言語なのです。
pythonはディープラーニングに使えるプログラミング言語という事もあって近年需要が増えており、エンジニアの平均年収もJAVAやPHPなどよりも高く言語の構造も非常にシンプルです。なので、プログラミングしたいけどなにが作りたいか、なんのプログラミング言語をやるか決まっていないという人はとりあえず趣味でも実務での便利なpythonで良いと思います。
まとめ
以上が僕の知見です。まとめると下記のようになります。
・プログラミングはまずif文・for文・リスト・真偽値を理解する。
・理解できたら、作りたいモノが決めてそれを作れるように努力する。
・参考書は読むだけじゃなく書いてあるコードを実際に書かないと理解できない。
・プログラミング言語は特にこだわりがないならまずpythonやっとけ!
これを意識すれば、おそらく誰でも基本的なプログラミングができるようになると思います。プログラミングの上級者というのは「エラーを出さない人」というよりは「あらゆるエラーを経験した人」だと思うので、初学者の人にはエラーを出すのは恥ではなくむしろ実績解除であると考えていきましょう。
以上がプログラミングを勉強する上での要点になります。プログラミングをやりたくてとりあえず本屋で適当な参考書を買ったけどイマイチよくわからん・・・となっている方の参考になれば幸いです。
またプログラミングの勉強において大切なのは学習環境です。詰まった時に周りに質問できる環境がないとプログラミングは100%挫折します。
中~上級者になれば自分でネットでググって解決策を見つけることができるようになるのですが、初心者の場合何が問題なのかすら分からないので、ネットでググっても問題が解決されることはまずありません。なので、周りにプログラミングについて質問できる人がいないのであればプログラミングスクールに入るというのも手だと思います。
プログラミングスクールはちゃんと通うとなるとそこそこの値段がしますが、個人的に思う事としてはそれくらいの対価を払う覚悟がない限りプログラミングはモノになりません。ハッキリ言ってプログラミングは他の勉強よりも比較的に難しいです。無料サイトで勉強しただけでプロエンジニアになることはほぼ不可能です。
プログラミングスクールは就職先を斡旋してくれるところもありますし、プログラミング自体基礎を学べば後は自分で何とでもできる一生もののスキルなのでお金を払って勉強する価値は十二分にあると思います。
コメント