プログラミングを独学で学習するのが可能な環境について考えてみる

f:id:hrmch-ioii:20180419231916j:plain

独学でプログラミングを勉強するのは非効率とか不可能だとか噂を聞くけど、

いつまでも教えてもらってるばっかりじゃあできるようにもならないし、 教えてくれる人を超えることもできないので、独学で勉強できるようになることが、できる人への近道だと思っている @nabeemichi です。

プログラミングって独学でもぶっちゃけできるんですよ!僕だって足りないもの見つけて、自分で本買ったりなんだりしながらやってきましたから。

独学する上で最も重要なことって、何回も気軽にトライアンドエラーしまくれるって状況が必要なわけ。

実際に動かしてみて、やっぱりそうだった!って答え合わせできるし、わからないことはひとつづつ処理を追って、ここが間違ってたのか! って特定できる状況ができれば良くて、

一番だめなのが、何が起こってるのかさっぱり理解できない状況から脱出できないことなわけ。

でもその前に、初心者だったりするとそもそもわからない単語が多すぎて

??????

状態になる確率が高く挫折要因が多すぎるので、

やらなきゃいけないという環境になっている

ってのが必要になってくる。

これはどういう状況かというと、例えば、仕事でしないといけない状況。

新卒で入った会社での、僕の状況だ。


プログラミングなんてやったことないし、研修も特にない。

でも出荷の締め切りがあって、なんとか目的の機能を作らないといけない状況。

しかもフォローしてくれる人なんていないから、自力でどうにかしないといけないという追い込まれた状況という、今思うと精神的に追い込まれやすい状況。


他にも、学校のレポートで出さないといけないなどのタイムリミットがある状況なども、やらないといけない状況だ。

時間のリソースに期限があって、そこまでになんとかできるやつは独学でもなんとかなる可能性がある。

そもそも、作りたいものがあって絶対作ってやるっていう強い意志があればこんな制限は必要ないだろうが。

チュートリアルがある

これは基本中の基本。

やらないといけない状況でも、なんもないとなんもできない。最低限のチュートリアルはあったほうがいい。

これがないと、そもそものルールを把握しないでスポーツするようなもので、何していいいのかわからない。

メッセージの出し方などの最低限の操作法方を覚えれないと話にならない。

動くサンプルのソースコードがある

んでもって、これがけっこう重要。というかけっこうどころでなく重要。これさえあればなんとかなるって思う。

WEBサービス作りたいなら、実際に動いているWEBサービスのソースコードを自端末で動かせる状態にしてあるってことが重要


真似をする元ネタがあるだけで、イメージできるしプログラミングの仕方もわかる。

だから、動いているサンプルがあると、やらないければならないことがわかるわけ。

アプリは動かないと単なるゴミなわけで、動いているってことは、コンピュータが理解できるルールは守っているし、動かない適当な書き方をしているわけではないって保証もある。


さらに、動くサンプルのソースコードがあると、デバックできる。

これが一番でかい要因!

デバックっていうのは、処理の途中で動きを一旦止めて、今どんな状態?なのかを確認することができる。

これの何がいいかっていうと、デバックすると処理の順番がわかるから、どのようにソースコードを書けば、同じ処理が同じように動くのかをちょっとずつ追っていけるわけ。

わからなくなっても、自分でデバックして自習できる状況を築けるってのは独学する上では効果でかい。


僕の場合は、入社した会社に実際に動いていて、色んな人に利用されているアプリのソースコードがあったので、それを利用して学習した。

開発環境のセットアップが確実にできる状況が揃ってる。

プログラミングをする上で、最も難しい作業がこれ!たいていの初心者はここで挫折するんじゃないだろうか?

開発環境を自分のPCにセットアップしないとプログラミングすることができないし、実際に動かしてみることもできない。

動かしてみることができないと、自分が書いたソースコードがちゃんと目的のとおりに動いているのかも確認できない。

そう!これができないと妄想の世界でいていくことになる。

これじゃあ意味がない!


簡単にセットアップができればいいのだが、意外と難しいのがこれである。

僕も初めて開発環境セットアップした時は2日くらいかかった気がする。

はじめは出て来る単語もわからないし、何が起きてるのが想像もつかないのですげー大変な思いをした。

だから、手順のとおりにやっていったら、とりあえずセットアップ完了できるようなドキュメントなどが整理されている状況だといい。

結局、独学が可能な環境とは?

プログラミングしてみて、実行できて、真似をするネタを手元においておける環境なんじゃないのかと思う。

一処理ごとに自分で繰り返しトライアンドエラーをして

ロジカルにわかった!

って言える状況を整えることができるかが、独学できるようになるために必要。

もちろん、PC持ってません!とかは論外だがね。