IT業界でエンジニアと呼ばれることを15年ほどやっています。まさおです。
プログラミングはそれなりに経験がありますし、これからプログラミングを始める人や業務上他のプログラマーから相談を受けることも多々あります。
プログラミング初心者からされる質問がありますが、
- どの言語から学べばいいか
- どうやって学べばいいか
ほぼこの二つに集約されます。
今回はIT業界で15年やってきた私のプログラミング学習法について紹介します。
プログラミングは本から学ぶ(→難易度高:挫折したものが多い)
プログラミングをするとなると、私の世代では真っ先に本を見て学習する事が基本でした。実際に業務でプログラミングするときも調べ物は本で調べていました。
今ほどネットに情報があふれていなかった時代ですね。
重宝しました。
かなりボロボロになった本もたくさんありました。
しかしながら、本は挫折しやすいです。
私もいくつかの言語を本から習得しようとしましたが、挫折しました。
最たるものはC言語でしたが…ではなぜ挫折するのか?
理由は簡単です。
本に書かれているコードが動かないと、調べる術がないからです。
コードを動かす環境を作るのも結構大変ですからね。環境でエラーが起こること、かなり多いです。
ある程度経験を積んだ人ならエラーの内容で動かない理由がわかるかもしれませんが、プログラミング初級者だときついです。
私も新人時代は苦労しました。
今でも新しい技術を学ぶときは苦労してますが…ですので、スタートを本にするのはお勧めしません。
逆引きのテキストは使ってもいいとは思います。
プログラミングの学習サイトから学ぶ(→難易度中:挫折しないが、習得レベルに?)
最近はよい時代になりました。Progateやドットインストールなど無料でプログラミングを学べるサイトが増え、比較的簡単にプログラミングを学べるようになっています。
プログラミングを学べるのもいいんですが、私はすぐに実行できる環境が用意されているところが大きいです。
なんせ私は昔から思ってるんですが、「環境構築の難易度高くね?」です。
プログラミングの学習で挫折する前に環境の構築で挫折している人も多いんじゃないかしら…そう考えると、とっつきやすい事は非常にいい事ですよね。
※プログラマになろうと思ったら環境構築をエラーと格闘しながら行えるスキルは絶対に必須ですけどね。この部分は本来は避けては通れません。
但し、難易度低めです(挫折しないように作られているらしい)。
基本的な文法や書き方については、これらのサイトで学習できると思いますが、これらが実際の現場で通じるかどうかと言われると、まあ、通じませんよね。
とっかかりとしてはいいと思いますけどね。
プログラミングはスクールで学習する(→難易度低:スクールの質・内容などスクールを選ぶのが大変&お金が必要)
何かと話題のプログラミングスクールですが、私自身は選択肢としてアリではないかと思っています。理由はわからない事を聞ける人がいる事、カリキュラムがある事、半強制的に学ぶ事ができる事です。
なんせプログラミングは壁にぶち当たります。
とにかくもう自分で出来たつもりでも動かないものは動きません(大体自分のミスだけど)。
その部分を他人に聞いてヒントをもらえる環境はある意味チートですよね。また自分一人だとどういった順番で学習すればいいのかも考えなければならないですが、スクールに通うと決められた順に、半強制的に学ぶ事が可能な点は自己管理のできない人にとっては特に歓迎すべき点ではないでしょうか。
但し問題もあります。「何かと話題」になっているように、スクールの質、内容、あるいはサポートのレベルが金額に見合わないといった声も多く上がっています。
高いところでは100万円近くのお金が必要ですし、また特定のスクール卒業生を採用したくないといった声もネット上に上がっていたりしましたね。(個人的には別に仕事出来ればどうでもいいじゃん、そんなのと思ってますが…できなければ放りだすまで…)
スクール選びが難しいこと、数十万円のお金を払う事をクリアできれば、選択肢としてはありでしょう。
プログラミングは現場で習得する(難易度???:これが最強だが、まずは現場に潜り込む必要がある)
最後に反則技をご紹介します。
それは業務の現場に出てプログラミングを習得することです。
なんやかんやでこれが一番早い。なぜか。
「締め切り」「責任感」がダブルで設定されているからです。
締め切り効果という言葉を聞いたことがあるかもしれません。
締め切りを設定することにより、人間の集中力が倍増(?)するというやつです。
これが自動的に設定されます。また「仕事だからやらなくちゃ」という責任が相まって、最強のスピード(※但し本人比)で習得することが可能です。
但しこの方法の難点は「現場に入れない」可能性がある事、です。
私のような現役エンジニアであれば、ずっと現場にいますが、これからエンジニアを目指す人は現場に入るためにまず会社員となるか、未経験フリーランスとなるか、エンジニアを名乗れる環境に行く必要があります。(私はどこでもいいので会社員になることをおススメします。ブラックなら逃げる)そこが人によっては難易度が高いですね。
とは言え…
とは言え、プログラミング言語の習得は一朝一夕にいかない事がほとんどです。私も15年経った今でも日々学習中です。習得しても習得しても次々に新しい技術が生まれてくるからほんとにきりがない…
プログラミングをこれから始める人、ITエンジニアを目指す人たちも、ITエンジニアの人たちも、一緒にがんばりましょう。
ではまた。