私は今システムエンジニアとして働いています。
仕事でも日々学んでいますが、プライベートでも仕事で使う言語・技術だったり、「自分で製品開発して稼いで仕事なんて辞めてやる!」という突発的な思いで新しいモノを独学で学んだりします。
それらの経験から、本記事では未経験の方がプログラミングを学ぶ方法について持論を述べていきたいと思います。
目次
はじめに
本題に入る前にちょっとだけ本音を言わせてください。
プログラミングスクールとか紹介して、そこからアフィリエイト収益を得たかった!!!
えぇ、そうですよ。ブログやってるからには商品紹介したかったです。
しかし自分の経験を振り返ってみても、それら教材をおススメすることは出来ませんでした。
これからご紹介するのはタイトル(『獅子は我が子を千尋の谷に突き落とす』からモジりました)の通り、辛く険しい道のりです。
どうか覚悟してください。
結論:自力で何か作れ
回りくどいのは嫌いなので、ズバリ言ってしまいました。
そうです、プログラミングを学ぶには自力で何かを作る方が断然早く、仕事にも生かせます。
「そんなこと言ったって、何から手を付ければいいのか分かんねーよ」なんて声が聞こえてきそうですが、安心してください。
今から私が「自力で何か作れ」という根拠を詳しく説明していきます。
自力で何かを作るメリット
コストがかからない
「未経験からプログラミングを学ぶ」というのは、これからシステムエンジニア・プログラマーとして就職する学生を除けば、「副業を始める」のとほとんど同じ意味です。
副業の基本は低コスト、つまり金銭的にも時間的にも損失するリスクを最低限抑えたところから始めなければなりません。
極端な話、今の職を手離して全てを副業に傾けても、それで生活していける保証がないからです。
書籍程度であればそこまでリスクにはなりませんが、1冊で学べるコトと言えばプログラミングの基礎ぐらいです。
ぶっちゃけそれが2冊3冊と増えたとしても大きな変化はなく、コスパ悪いです。
ましてやプログラミングスクールに通ってしまったら、(ネガティブな思考ですが)システムエンジニアとして元を取れるようになるまでは働かなければなりません。
その点、自力で何か作ろうと思ったらパソコンとインターネットさえあれば十分です。
それぐらいなら既に自宅に完備されている方が多いのではないでしょうか。
学ぶ言語(JavaとかC#とか)によってはある程度のスペックが必要になりますが、現代ではそこまでスペックの高くないパソコンでもプログラミングの環境を整えられますので安心してください。
吸収が早い・財産になる
プログラミングスクールでプログラミングを習うケースと比較したいのですが、あまりイメージが湧かないと思うので学生時代を思い返してみてください。
普段の授業だけで、テストでいい点数を取れていたでしょうか?
そんな天才肌なら問題ありませんが、日ごろから少しずつ問題集を解いていったり、テスト前の期間で猛勉強したりした人がほとんどではないでしょうか。
もちろん、プログラミングスクールでは学校の授業と比べて(お金を払う分)能動的になるかもしれませんが、「教えられたこと」って意外と定着しないんですよね。
何事においても、自分の中に定着させる・落とし込むには主体的に行動しなければなりません。
その点、自力で何かを作ろうとしたときには学校の先生の様に頼れるモノが何一つありません。
だからこそ、触れる情報全てに集中し、結果として得た知識が確実に蓄積されていきます。
仕事に生かせる
システムエンジニアやプログラマーを「パソコン・プログラミングが出来るスゴい職業」なんて捉える方がいらっしゃいますが、実際には思っているほど特殊な職業ではありません。
私はそういった方々に対してよく「検索できれば誰でもできる」と言っています。
ただし、逆説的になりますが「検索できない人」には非常に難しい職業です。
システムエンジニア・プログラマーに求められる検索技術というのは「いかに速く正確な情報を見つけられるか」です。
「それって当たり前の事じゃないの?」
なんて声が聞こえてきそうですが、日常生活の中で検索する内容とプログラミングをする中で検索する内容というのは大きく異なります。
なぜならそこには専門用語であったり、業界独特の表現が関わってくるからです。
さらに言えばプログラミングを進める中で発生するエラーなどは(形式的ではありますが)英語であることが多いです。
直訳したとしてもその意味を理解して検索するまでに時間がかかる事も少なくありません。
システムエンジニア・プログラマーというのは日常的にそのような検索を行わなければいけない仕事であり、(どんな仕事でもそうですが)慣れが必要になってきます。
自力で何かを作ろうとしたら、嫌でもインターネット上を這いずり回って目的の情報を探し出すことになり、その過程で業界特有の表現にもぶち当たる事もあるでしょう。
その結果、システムエンジニア・プログラマーに求められる検索技術が飛躍的に向上します。
おまけに必要な情報が日本語では無い場合も多いため、英語力もちょっと鍛えられます。
また、プログラミングスクールや書籍などではマニュアル化されている内容を「なぜやるのか」まで解説してくれない場合があります。
学ぶ対象がプログラミングなので「その手前のコトは追々…」となってしまいがち。
しかしその部分こそ抑えておかないと仕事の場では支障をきたす場合さえあるのですから…。
自力で何かを作るデメリット
メリットばかりではなくデメリットについてもきちんと触れておきます。
このデメリットを補ってくれるのがプログラミングスクールであるという見方も出来るかと思いますので。
時間がかかる
メリットの所で「コストがかからない」と述べましたが、正確には「金銭的なコストがかからない」であり、時間的なコストはプログラミングスクールと比べてかなり膨れます。
特に一番最初のハードルが高く、ここにかなりの時間がかかるでしょう。
スクールでは教えられるような内容をイチイチ調べなければいけないのですから、当然です。
ただし、だからこそ定着するというのも忘れないでください。
「今すぐにある程度の知識を持ってシステムエンジニア・プログラマーに転職したい」
「システムエンジニア・プログラマーへの転職を有利にしたい」
という理由ならプログラミングスクールでもいいかもしれませんね。
新しい技術を学ぶのが大変
プログラミングの世界は日進月歩であり、次々と新しい言語であったり技術が登場します。
昔ながらの言語や技術などであればインターネット上に情報がたくさんあります。
しかし、新しい技術ともなると情報量は非常に少なくなります。
数年前に私はXamarinという技術を扱う案件にアサインされていました。
当時、日本語のサイトが少ないばかりか英語のサイトも少なく、丸一日検索で終わったことも…。
そういう状況ではトライ&エラー、つまり試していくしかありません。
しかしそれも経験者ならではの事であり、未経験者にとってこれは非常にハードルが高い。
その点、プログラミングスクールにはそうした新しい技術にも精通した講師がいます。
システムエンジニア・プログラマーとしての就職を目標とするのであれば、これから伸びてくるであろう技術を学ぶのが一番。
そうした新しい技術を学ぶという点ではプログラミングスクールが有利と言えるでしょう。
最後に
プログラミングの勉強方法に関して一通り持論を述べたところで、ちょっと別な視点のお話もしておこうかと思います。
それはプログラミングの何を学ぶか、つまりどんな言語や技術を学ぶのがいいのかというお話。
人気言語ランキングみたいなサイトもありますけど、個人的にはあまり信用していません。
肌感覚とは異なる結果が出ているからです。
「じゃあ、どういう風に選べばいいのか?」
注意点としては色々な求人媒体を見ることと、鵜呑みにはしない事です。
ベンチャーが多い媒体では新しい技術が求められていたりしますが、そうした求人は募集要項に「開発経験○年以上」と書いてあることも少なく無く、未経験で入れるようなところは昔ながらの言語がほとんどです。
未経験可の求人にも「Android(言語は主にJava)の案件!」なんて書いているところもありますが、実績があっただけで今は扱っていないとかもあるので…。
そうやって考えていくと、やはりHTML・Javascript・CSSに加えてJavaが一番無難かもしれません。
AIで注目されているPythonも魅力的ですが、プライベートでゼロからやってみた感じ「未経験者にはちょっとハードルが高いかな~」といったところです。
少し長くなってしまいましたが、これからプログラミングをゼロから学ぼうとされている方の参考にでもなれば幸いです。
以上です。
コメントを残す