プログラミングを学びたい方は一定数いますが「難しい」というイメージがあるため教室に通ってプログラミングを勉強しようとする方もいるでしょう。
しかし、ボク自身プログラミングを学習してみて、
プログラミング教室は通う必要ないんじゃないか?
と思いましたので、どうしてそう思ったのか語っていきます。
・プログラミングの「中級」までは数学もセンスも必要ない
ボクは大雑把に、プログラムミングの文法を一通り理解したら「初級」その文法とライブラリを使ってちょっと便利なコードが書けたら「中級」プログラミング以外の知識(数学とか生物学とか統計学とか)を駆使してスゴそうなシステムを開発したら「上級」と定義しています。
一般的に「数学的な要素を理解していないとプログラミングも理解できないのでは」というイメージがありますが、プログラミングの中級くらいは数学もセンスも必要ありません。
最近はPythoなど読みやすい&ライブラリが充実している言語もあるので、そういった言語から手を出せば定番のC言語やJavaと比べてスルッと飲み込めます。
以前、Webコミックの更新情報を取得するというプログラムを紹介しましたが、アレも数学は一切使わず、サンプルコードとライブラリを軸にして作ったものです。
この例を見ても分かるとおり、教科書をマネしたり複数のプログラムを予め組み込んだ「ライブラリ」というツールを使えば「日常生活をちょっと快適にする中級レベル」ならすぐに到達することが出来ます。
あとはその型を繰り返し使って自分の血肉にするプロセスが大事なのです。コレはプログラミング教室でも同じだと思うので、だったら別に一人でやっても同じというのがボクの意見です。
・達成感が得られない場合プログラミングに向いてないかも
とはいえ、そんな体育会系なプロセスを続けられるか否かは「理解できて快感を覚える」とか「プログラムが動いて達成感がある」という気持ちが湧いてくるかどうかにかかっています。
プログラミングも例外ではありません。
プログラムがしっかり動いたことで達成感を得られたり、仕組みが理解できて知的好奇心が満たされたといった「なにかご褒美っぽいもの」が無いと続けるのは困難だと考えています。
もしこういった気持ちが湧かなかった場合、スッパリ勉強を止めたほうが良いかもしれません。
・教室で学ぶのは基本だけで卒業後はやっぱり独学
仮にプログラミング教室で基本が学べて、めでたく修了証書がもらえたとしましょう。
しかし、教室で学べるのは基本部分です。言うまでもなく社会ではもっと難しい知識とテクニックを求められます。
それを理解するのにまた教室に通うのでしょうか、独学ですよね。
結局のところ独学からは逃げられないのです。だったら自分で考えずに人に頼るクセがつく前に、独学で一定の知識を自分で身につけるべきだと思うのです。
いや、教室に通えば就職先を斡旋してくれる。それに今どき専門知識は入社してから教えてくれるって話だから、そこまで心配はしなくて良いんだ。
確かに入社した時は研修があるかもしれませんが、いつまでも手取り足取り教えてもらうことを前提に入社すると、現場が新しいシステムを軸に動くようになった時、その知識を持たなければクビか、IT土方として最底辺でこき使われることもあり得ます。
そうならないためにも、プログラミングを学ぶ時は「誰にも頼らない」くらいの姿勢でいた方が、後で差がつくと思います。
・理想は「基本は独学でマスター、専門分野は教室で学ぶ」
とはいえ、場合によっては教室に通うことは有益に繋がると思います。ボクが考える理想形は「基本は独学でマスターしつつ、上級分野は教室でアウトラインを教えてもらう」です。
機械学習やブロックチェーンなどの技術は、プログラミングに限らず数学や暗号学、生物学なども絡んでくるので、流石に一人で一から全部を勉強するのは時間がかかって効率が悪いです。
こういう場合は短期集中型の講習会などに参加して、その分野に必要な知識がどんなものか、どういった分野に応用されているのか、ということを紹介してもらえる機会に参加すればとても有益なものになると思います。
まとめ
以上、ボクがプログラミング教室に通う必要がないと思う理由をツラツラ語りました。
プログラミングの基本は難しくありません。日常生活を少し快適にする程度のシステムなら数学もセンスも必要ありませんし、スクリプトキディという言葉があるように、頭のいい人が予め作ってくれたライブラリを使えば、しっかりしたプログラムを書くことが出来ます。
もちろん練習期間は必要ですが、それは新しい事に挑戦するならどの分野にも言えることですし、それ以上のレベルに進むにも遅かれ早かれ独学が必要です。
ならいっそ最初から自分で勉強した方が、そのぶん自分に合う学習方法が早く見つかりますし、早い段階で自分に向いているか否かの判断もできて、色々と都合が良いと思います。