【未経験者向け】プログラムって独学で学べる？できるようになるの？

# まえがき
どうも、デブです。

ここ数十年でITというものが爆発的に広がり
2020年からプログラミングが必修化されることもあってか
プログラミングの注目度が上がってきています。

## そんな中、聞こえてくる<font color="red">未経験者、初心者たちの悲鳴</font>

- 「プログラムやってみたいんだけどプログラムって何から勉強すればいいの？」とか
- 「やってみたけど全然わからんとか」とか
- 「現役プログラマーに頼んで教えてもらったけど、奴ら何言ってるかわからん」とか

というわけで、俺もプログラマーの端くれ
プログラムを学びたいという人に少しでもマシな情報を提供できればなぁと思ったので
初心者や未経験者に向けた記事を書いていきたいと思います。
(だらだらと書き連ねたのであとで添削したい)

# プログラミングは独学で学べるのか？

学べるか学べないかでいったら学べるとは思うけど、正直現実的ではないよね！って思ってる。

例えば、俺は痩せたいと思ってはいるんですが
実際、毎年増量しているわけです。

痩せるためにはダイエットすればいい、運動したり食べ過ぎないようにしたり。
<font color="red">**そんなことはわかっている**</font>

わかっているのに痩せない。
それはなぜか？

一人では運動や食事制限を<font color="red">**継続**</font>できないから。

突発的に運動したりね、ちょっと食べるの我慢したりはできるんですよ
でもそれを継続できない。
だから痩せない。

意志の力で空腹に打ち勝つ事ができる精神力があれば痩せられると思う。
でも多くのデブは我慢できない、だからデブ。

やはり誰かが必要だと思うわけです。

- 空腹に襲われて正気を保てなくなったときに一発ぶん殴ってくれる人
- もしくは別なご褒美を与えてデブの意識を食い物から遠ざけてくれる人

そんな人が側についてくれないと、多くのデブや痩せれないと思うわけです。
結果にコミットできないんです。

## そんなあまちゃんは痩せてもどうせ太るんだよって言われる

そう、リバウンド。一度ついた肉は簡単にはなくならない。
ダイエットについては忌まわしきことこの上ない。

でもプログラミングに関して言えば、一度身につけば簡単にはなくならないのはいい事です。

これだけ痩せたいと思っていてもなかなか痩せられないように
プログラミングやってみたいと思っても、実際できるようになるまで一人で頑張るのは

現実的ではない、もしくは困難な道になるぞ
ということを言いたかったわけですが少しは伝わったでしょうか？

# プログラマーが冷たい

そんな甘いこと言ってる奴はこの世界で生き残るのは無理だろとか
突き放してくる人が割といる。

まず自分で調べてやれるだけやってみろ
まずはそこからだ

確かにそれは正しい、実際プログラマーの仕事では自分で調べて解決するのがデフォ。

だがしかし

おそらく多くのプログラマーは最初から自分で調べて解決できてたわけじゃない。
自分のことを棚にあげてドヤっているに違いない。

最初から自分で調べて解決してきた人もいるだろう。
その感覚を他人に押し付けるのはよくない、だって人間だもの。


その**自分で調べてなんとかする力**ってのは最初はなくてもいいと思うんだ。
まずプログラムができるようになってから、身につければいい。

デブだってまず痩せたい、痩せる前から自分で体重管理しろよとか
正論ぶつけられたってピェェェェェ！！ってなるだけ


# プログラミングができるようになる感覚的なもの

大学でプログラムの授業はあったものの、意味不明で挫折し
俺には合わないと決めつけ、ムカついたので大学をやめ夢を語るフリーターになりました。

そこから今はそこそこのプログラマーになっているわけですが
そのきっかけは

**「オラ、東京さ行くだぁ」**

なんとなく東京の会社に就職したら、その仕事がプログラマーだっただけという。
先輩についていろいろ教えてもらいながら理解していった口です。

最初は本当にちんぷんかんぷん。
あまりにわからず、なんでわかるように教えてくれないんだ！という怒りで
もうなんか世の中を呪っていました。

今思えばその先輩の教え方は、あくまでも自分で考えてみてスタイルで
そのおかげで今の自分があるとは思うので非常に良い先輩だったと思っている。
あと仕事で毎日やらざるを得ないっていう状況だったのもでかい。

いわゆる俺にとってのライザップです。

で、なんかプログラムわかってきたかもってなったのは
だいたい半年くらいたってからかなーと思います。

今までわけわからん！！ってなってたところが
あれ？これってこういう事か？みたいな

点々としていた知識が線で繋がって行くみたいな
そういう感覚が訪れる時期があるように思います。

# プログラマーにたいするイメージ

プログラムがわかるようになってきてからは
プログラマーのイメージも変わってきました。

最初は
プログラムできる＝パソコン使ってなんでもできる
って思ってましたけど

そのレベルに達するにはもっともっと勉強が必要で
そんなレベルのプログラマーなんてほぼいないって、というか合ったことない

- 魔法使い見習い
- 魔法使い
- 賢者
- 世界を揺るがす大魔導士

みたいな、魔法使いだからといってなんでもできるわけじゃないんだなーと
あとは

- 黒魔導士
- 白魔導士
- 召喚士

みたいにジャンルもあって、自分の得意なジャンル以外のことはあんまりできない。
万能な魔法使いになるには、やはりたゆまぬ努力が必要で
俺もかれこれ10年ほどプログラマーしてるけど全てを司ることができるレベルには到底及ばない。


# プログラマーは教えるのがド下手

プログラマーは基本的に人に教えるのが下手です。
特に初心者とか何もわかってない人に教えるのが極端に下手。

その原因は様々だとは思いますが

- **普段使っている用語が初心者には通じないので、どう説明していいかわからない**
- **初心者がなぜ理解できないのかがわからない**

というのが大部分を占める気がします。


たとえば**右**、**左**を知らない人に
**右**、**左**を伝えるのって難しいですよね。

右はお箸を持つ方でと伝えても、お箸を知らない文化の人には通じないし
こういう感覚的に理解しているものっていうのを、何も知らない人に伝えるのは難しいわけです。

プログラムは感覚というよりはがっちがちの理屈で動いているのですが
多くのプログラマーはその理屈を正しく理解している人は少ないと思います。
どちらかというと感覚で理解している人が多い気がします。



# まとめ
ずらずらと雑多にくだらない話を書いてしまいましたが

「プログラムって独学で学べる？できるようになるの？」について
無理ってことはないけれど、やはり誰かについて教えてもらわないとなかなか厳しいものだと思います。
算数だって小学校行かずに独学でやるのは難しいでしょう。

そして誰かに教えてもらうにしても、その誰かというのも結構重要です。
初心者に理解させることができるレベルの人に教えてもらう事が一番の近道です。

もしくは未経験OKという募集に応募して、とりあえずやらねばならぬという状況に身を置く事です。
継続は力なりという言葉もあるように、わからなくてもいいからとりあえずやるというのも１つの手だと思います。