プログラミングは独学ができるか?

先日、国立大学の前期日程の合格発表がありました。

SNSで受験生(主に医学部再受験)の皆様をフォローさせて頂きまして、

陰ながら一緒に応援させて頂きました。笑

 

合格者の皆さんの中には予備校などには行かずに、

仕事をしながら自宅で勉強して合格した方や、

もちろん専業受験生の方もいらっしゃったようです。

 

ちなみに、予備校に行かずに自宅で勉強する方々を、

一般に「宅浪(自宅浪人生)と呼びます。

 

ところで、

「予備校に行かなくても合格できるの?」

と素朴な疑問が湧いたりしませんか?

そんなことができるのは、「もともと賢い人だけだ」と思っていませんか?

 

同じように、最近はプログラミング教室が流行っているようですが、

プログラムって独学ではできないものなんでしょうか?

高い授業料を支払って勉強しないと身につかないものなんでしょうか?

 

僕が思うに、大学受験と同じようにプログラミングも、

独学で十分にマスター可能だと思います。

今日はプログラミングを独学したい人のための記事です。

 

プログラミング独学の今と昔

まず最初に言っておきたいことは、

プログラムの「独学」は今の時代は難しいことではないということです。

 

独学をするには参考書や問題集などの書籍や、

それなりの教材が無いとちゃんと学べないのですが、

今は書籍が充実しているだけでなく、

インターネットにも学習の参考になる情報がたくさん転がっているからです。

 

昔はそういわけには行きませんでした。

とくにプログラミングとなると書籍も少なくて、

難解な本しかなかった時代もありましたし、

インターネットも古い情報しか出てこなかったり、

マニアック過ぎて理解できないものも多々ありました。

 

それを考えると、今は独学者には最高の環境ですね。

 

プログラミング独学の具体的な方法

プログラミングを独学で始めるために必要な素養は、

一般の勉強とほとんど同じです。

 

プログラミングに必要と思われる情報を自分で集めることができて、

なおかつ不明点を自分で調べて解決することができ、

実際にプログラムを組んでみることができる人は、

独学が可能だと思います。

 

具体的には、まずは簡単な入門書を買ってきて、

それを一冊マスターすることです。

その本の中で出てきた難しい単語や不明点は、

インターネットで検索して調べます

そして、本に書いてある通りにプログラムの実行環境を準備し、

サンプルプログラムを全部作ってみるだけです

 

こうして書くと簡単そうですが、

いくつか「つまづきポイント」があるので、

それを説明します。

 

プログラミング以前につまづくポイント

独学をするに当たって、物事を難しく考えちゃう人や、

完全主義の人は、きっと最初の段階でつまづくと思います。

そんな人の思考の流れはきっとこんな感じかもしれません。

 

どこから始めればいいんだろう?

何をすればいいんだろう?

ネットでプログラミング入門のWEBサイトを見つけたけど、

これを読めばプログラムができるのだろうか?

でも、この内容で十分なのだろうか?

入門書を買ったけど、これで十分だろか?

ちゃんとやりたいけど、ちゃんとした情報が無いな。

これじゃあ始められないよ・・・。

やっぱり独学は無理だ!

授業料高いけどセミナー(教室)に行こう・・・。

 

最初は何もわからないところから始めますから、

色々と不安なことが出てくるのは仕方のないことです。

とくに最初は、初歩的なことがわからないので、

そもそも何が必要な知識かわからないのは当然のことです。

なので、そこは気にし過ぎないことです。

 

最初から完璧な知識を身に付けようというのは無理な話ですから、

スカスカで偏った知識でもいいので、

まずは初歩の初歩をまずマスターすることです。

その段階で初めて見えてくるものがあるからです。

 

なので、まずはプログラムの入門書か、

入門サイトなどを一通りマスターしてみることです。

結局、初心者向けのセミナーに行っても、

入門書に書いてあるようなことから始めることになりますので、

まずはそこまでやってみることです。

そして入門書が終わった時に、次に何が必要かが見えてきます。

 

プログラムはスポーツと似ている

さて、実際にプログラムを始めると、

さらに「つまづきポイント」は増えてきます。

次から次へと疑問点が出てくると思います。

 

それでも今の時代が幸せだなあと思うのは、

わからないことはインターネットで検索すれば全部出てくることです。。。

ホント、昔は情報が全然ありませんでした。

 

こうして、わからないことは調べつつ入門書や入門サイトを読めば、

早い人なら1日かそこらで完了できてしまうと思います。

 

でも、そこに落とし穴があります。

それは、机上の学習だけでプログラムをわかったつもりになっちゃうことです。

 

プログラムって難しいものではありませんから、

確かに単に本を読むだけでもかなり理解できると思いますが、

それだけでは絶対にプログラミングはできるようにはならないです。

 

少なくとも入門書の中に書かれているサンプルプログラムを自分で書いて、

実行してみることが必要です。

初心者は、これをやらないと絶対にマスターできません。

 

以前にプログラミングは英語ですと書きましたが、

プログラミングという行為自体はスポーツに近いかもしれません。

というのもプログラミングは体で覚える要素が非常に多いからです。

 

プログラミングというのはコンピューターとの対話です。

こういう命令をすると、こういうリアクションが返ってくるんだなと、

まるで人間を相手にするかのような双方向やりとりがプログラムなのです。

 

同じような命令でも書き方によっては、

命令通りに動いてくれない時もありますし、

同じ答えが返ってきてもプロセスに大きな違いが出たりします。

実は、その微妙な差を学ぶことが重要だったりするのですが、

これは「座学」というよりも「体得」という言葉の方がニュアンス的には近いです。

プログラミングをしているうちに感覚的にわかってくることが非常に多いのです。

 

なので、必ず初心者はプログラムを書いてください。

そして実行したら改善して、を繰り返して上達します。

 

プログラミング独学のメリット

プログラミングを独学することで得られるメリットは大きいです。

なぜなら、プログラムを組んでいると必ず「バグ」という壁にぶつかりますが、

これを自分一人で解決するという問題解決能力が身に付くからです。

 

バグというのはプログラムの不具合のことです。

例えば「2-1=?」というプログラムを組んだ時に、

本当なら「1」という答えが返ってくるはずですが、

なぜか「2」が返ってくるようなケースを、

「プログラムにバグがある」と言います。

 

しかし、初心者のうちはバグがどこにあるかを見つけられるようになるのに非常に時間がかかるのです。

 

僕も新人さんにプログラムを教えていた時は、

しばしば「バグがどこにあるかわからない」という質問を受けました。

 

結局、バグがわからないというのは経験不足が原因であることがほとんどでして、

プログラムを組んでバグをたくさん出してそれを解決(デバッグ)していると、

どこにバグがあるかはすぐにわかるようになってくるのです。

 

しかも、「どこにバグが出やすいか」ということもわかるようになります

その意味で、独学ですべて自分で解決してきた人は、

問題解決能力が自然と上がっているケースが多いと言えます。

(本を読んだだけの独学ではもちろん無理ですよ。苦笑)

 

プログラミング独学のデメリット

一方で、独学のデメリットもあります。

それは、完全な我流プログラムに走ってしまうことです。

 

もちろん、それが自分だけの趣味のプログラムであれば良いのですが、

仕事となるとそういうわけには行きません。

 

大きなプロジェクトでは大人数で1つのシステムのプログラムを分担して書いたりします

その時に、自分の書いた部分だけ他の人が理解できないようなプログラムだったら、

きっとプロジェクトを追い出されるでしょう。苦笑

 

プログラムは英語に似ていると書いたのは、

英語で相手に意志を伝えるには色んな言い方があるのと同じように、

コンピューターに命令するには色んな書き方があるからです。

 

システムが正しいアウトプットを出すのに、

プログラムの書き方(プロセス)には無限な組み合わせがあるのです。

 

あと、ネット上のプログラマーは個性の強い人が多く、

かなり特殊な言語や、ツールなどを使ってプログラミングをしている人もいるので、

最初にそういうレアケースを見本として真似してしまうと悲劇ですね。苦笑

 

初心者で独学する場合は、なるべくネットだけでなく、

本屋さんでオーソドックスな入門書を買うことをお勧めします。

 

※ あえて極端な話をすれば、たとえ仕事でも非常に小さなシステムで、

未来永劫自分しかメンテしないなら我流でもOKでしょう。

自分が自分の書いたプログラムをわからなくなった!

なんてことがなければね。苦笑

 

プログラミング教室・セミナーのメリット

というわけで、独学にはいろんなメリットがあるんですが、

でも世の中のプログラミング教室やセミナーも、

メリットがないわけではありません。

 

例えば、実務のことを知っている人が講師を担当しており、

かつ実際の事例をケーススタディとして講義を組み立ててくれる場合です。

 

逆に言えば、市販の書籍と同じような内容を、

目次の順番にこなしているだけのセミナーは、

あまり価値は無いです。

とくに独学で学習できる人にとっては無価値と言っても過言ではないでしょう。

 

なぜ、実務が重要かというと、

世の中の学問や仕事って何事も全部そうなんですが、

座学と実務とでは大きな差があるからです。

プログラミングもご多分に漏れず、実務と教科書とでは大きな差があります。

 

少し専門的になりますが、サーバーの構成やプログラムの実行環境の違い、

一般的に使用されるライブラリや管理ツールの種類など、

さらにはシステムトラブルの際に利用される方法論など、

実務をやっている人でないとわからないことはたくさんあります。

これらを独学で学ぶには技術検証なども含めると相当に時間がかります

 

やはり世の中の標準を知っておくことは必要です。

それをセミナーで教えてくれるのなら、とても有用でしょう。

ですので、セミナーが有用に感じるのは初心者というよりもむしろ、

ある程度プロフェッショナルになってからなのかなって思いますね。

 

もちろん、初心者の人でも「独学はモチベーションが上がらない」のであれば、

セミナーや教室は有用ですし、決して全否定するわけでありません。

あくまで独学したい人ならばの話ですのでセミナー関係者の皆さま、ご了承ください。。。

 

というわけで今日はプログラミングの独学について書いてみました。

参考になれば幸いです。

Twitterでフォローしよう