本記事では、プログラミング初学者の方がどのように勉強を進めていけばよいか、まだまだ未熟なエンジニアではありますが、IT業界でエンジニアとして働く私が解説していきます。実際に一緒に会社で働く人たちにも同様のアドバイスをしております。
記事を書いておる2021年現在は、プログラミング初学者の方たち向けに、さまざまなWeb・動画コンテンツや有料プログラミングスクールがありふれております。私の周りでも、プログラミングスクールに入学して勉強されてた方がたくさんいますが、結局スキルが身についていないように感じます。成果が出ていらっしゃる方もおり、全否定するわけではないですが、私個人的意見として、「プログラミングのスキルを身につけるあたって、多額のお金をかけた勉強方法は最適解ではない」と考えております。では、どのように勉強していけばいいのか?具体的な方法を交えながら、皆さんのプログラミングスキル向上に貢献できる記事を書ければと考えております。
その前に。。プログラミングスキルを身につけるとどんなメリットがあるのかも少しまとめてみます。
目次
IT人材の圧倒的不足と高まる年収レンジ(採用経験から)
採用担当としてエンジニアを採用している経験を交えながら、IT人材(特にエンジニア)の市場性について少しまとめてみます。
日本人の平均年収が400万程度と言われていますが、Findyの調べではエンジニアの平均年収は「614万円」と平均の1.5倍高いことが知られています。しかしながら、エンジニア採用をしている身からすると、自走力があり、アプリケーションが作れるエンジニア(=実務経験あり)を採用する場合、600万円では採用できない気がしております。700~800万円くらいは出さないと引っかかってこない気がします。
このように、ITエンジニアの給与テーブルは、IT人材の慢性的な不足から日々上がっている気がしており、現在ITエンジニアではない方も、スキルを身につければ高い給与テーブルで副業・フリーランスなどの選択肢もある生活を送ることができます。さまざまなプログラミングのスキルを身につけることで、生活の選択肢が増えるのは非常に意義があることかなと思います。
この世に存在する初学者向けプログラミングの勉強方法とは?
「そうだ、プログラミングを勉強しよう!」
これからプログラミングの勉強を始めたいと考えている方は、エンジニア不足の実情を知り早くスキルを身につけたい!と思いましたか?では、実際に勉強を初めていくとき、どんな勉強方法が選択肢としてあるか一旦整理しておきましょう。
- 動画系プログラミング教材
- プログラミングスクール
- 初学者向けセミナー
- 無料教材
- 書籍(=本を買って勉強)
ざっと上げてみるとこんな感じでしょうか。それぞれの勉強方法でどんな勉強方法があるのかもう少しまとめてみます。
動画系プログラミング教材
動画を使ってプログラミングを学ぶサービスは様々なものがあります。代表的なものを5 つくらい上げてみました。
Prpgateは初学者の方界隈で結構使われているような気がします。動画を見ながら、実際にプログラミングして結果を実行することができるため、動画教材の中でも少し人気があるかなと思っています。
Udemyは個人が配信している教材で、C to C(もちろんBもいますが)寄りのサービスになってます。なんといっても、教材のクオリティが高く私もちょこちょこお世話になっています。ニッチなコンテンツも結構あるのがUdemyのおすすめどころではないでしょうか。
このように、動画系教材だけでも、様々なサービスがあり、初学者の方はどれを学べばいいのかよくわからない状態になっていることでしょう。後半に具体的な方法をまとめているので、もう少しご辛抱を。
プログラミングスクール
続いて、プログラミングスクールです。ここ数年で一気に民主化された印象を受けます。代表的なプログラミングスクールを5つほどリストアップして見ました。
芸能人の方がプログラミングスクールに受講し、デモサイトを作ったりしている記事・動画をよく見かけます。費用としては、20万円~が相場のような気がしており、私の友人には50〜60万のコースを受けた人もいました。結構高いですよね。
冒頭に述べましたが、こんな高額なお金を払って(※20~60万が安いと感じる方は全然受講してください)プログラミングは学ぶものではないと私は考えていますが、各社盛り上がっているのでそこそこ需要はあることが推測されます。
初学者向けセミナー
初学者向けセミナーもあります。
セミナー形式で、プログラミングを学ぶことができるサービスになってます。スクールとセミナーの違いはグレーですが、世の中にはこんなサービスもあるんだな〜くらいに捉えていただければと思います。
無料教材
情報が溢れるこの世の中では、なんと無料で学ぶことができる教材もたくさんあります。特に有名なのは大学が出している教材です。
「プログラミング 無料 教材 」で検索すれば、様々な教材を見つけることができます。英語に抵抗がない方は、英語で探されると海外の大学の資料なども出てくるので、結構おすすめです。
書籍
本屋に行っていただければ、Amazonで検索していただけば様々な書籍があります。自分が勉強した言語が例えば、pythonなら「python 勉強 本 おすすめ」などと調べればたくさん書籍を見つけることができます。
プログラミング勉強法は無限にあってどうすればいいかわからないが、どうすればいい?
上述のように、「プログラミングの勉強方法」といっても、他種多様な方法があり初学者の方はどっからどう始めればいいのかわかりませんよね。動画系プログラミング教材、プログラミングスクール、初学者向けセミナー、無料教材、書籍などがありました。お金と時間が無限にある方は、どんな方法でも良いと思いますが、「お金や時間(=リソース)に限りがあり、なるべく最短でスキルを身につけたい人」向けに、私なりの最適勉強方法をお伝えいたします。
プログラミング勉強法!(リソースに限りがある人向け)
やることは非常にシンプルです。
①本(1,2冊)または動画系教材を1, 2教材買って、デモサービスをつくる
②自分の作りたいサービスをつくる
これだけでいいと思います。発生するコストはせいぜい1万以下です。プログラミングを始めるにあたり、PCがない方は買う必要が出てきますが、10万くらいあれば十分買えます。エンジニアになりたいなら、マイPCはマストアイテムなので買いましょう。windows, macはどっちでもいいと思いますが、スマホアプリ開発したいならMacを買ったほうが無難でしょう。Web系アプリ開発したいなら、windowsでも全然OKです。
Thickpad(Windowsなら)
信頼と安心のThinkpadです。
MAC M1チップ(Macなら)
Appleから売り出されたM1チップ搭載のMacは非常に評判がいいです。これを機に買ってみてもいいかもしれません。筆者は買ってしまいました。。。とってもおススメです
金をかけたプログラミング学習(勉強)はコスパ悪い
私はプログラミングスクールに通って50万払うことで、習得までの時間が圧倒的に短縮され、スクール卒業後に即戦力エンジニアになれるなら、50万円、100万円払ってスクールに通った方がいいと考えます。
しかしながら、これまでの私の経験的に「プログラミングスクールに通ってもスキルがちゃんと付いている人に出会ったことがない」からです。お金を払うことで時間の節約になっておらず、さらにスクールでの学習は受身型の学習が多いため(=タスクを与えるのはスクール側であり、生徒は与えられたタスクをこなす)、スキルとして全く定着していないことが多々あります。
結局、エンジニアは目の前の課題を解決する「問題解決能力」が高く求められと思いますが、そこら辺を鍛えることができるスキルは卒業生からみることができません。最近のプログラミングスクールは、課題を与えられ放置されることも多々ある(=問題解決能力の教育)ようですが、だったら自分で勉強すれば良くないか?と常々思っております。
非常に高額な費用を支払い(国公立大学の授業料1年分以上)、短期間でスキルをつけられると書いていますが、卒業生としてサービス作ったりプログラマーとして働いている人に出会ったことがありません。(N数が少ないこともありますが)コードのかけるエンジニアになれる確率が低いのは確かです。
スクール卒業生が世の中に溢れすぎてしまっており、履歴書の時点で門前払いされることも多々あると、実際の卒業生から話を聞いたりします。70万払って勉強して、プログラマーを目指して勉強したが、プログラミングスキルが身につかず、結局わけわからない会社に転職なんてやりきれないですよね。
プログラミング学習に金はいらない。必要なのは作りたいもののイメージ
50万とか高い買い物をして、人生を変えようと意気込むなら、海外旅行にでも行って新たな経験に投資した方がよっぽど有意義です。
初学者の方でよくあるな〜と思うのは、とりあえずエンジニアになりたい!という方です。私はエンジニアになりたいという夢?目標?は否定しませんが、なんか目的・目標がずれてはいないか?と思ってたりします。本来プログラミング言語は何かシステムを作るときに必要なツールにすぎません。エンジニアはそのツールの使い手であり、エンジニアが求められることは、そのツールを使って「何かシステムを作ること」であるはずです。
だからこそ、まず初めに作りたいシステム・サービスのイメージを決め、それを作りたいからエンジニアになる、プログラミングを勉強するという順番であるべきじゃないかと思ってます。お金と同じ手段と目的の話に通ずるものがあるかもしれません。
いづれにせよ、プログラミングスキルを最短で身につけるためには、作りたいもののイメージを持ち続けることがたいせではないかと思います。そして、その作りたいものを作りながら、並行して新たなスキルを身につけるというイメージです。
新しいプログラミングスキルを習得する上で大切なこと
私も一流エンジニアではないので、偉そうなことは言えないですが、いくつかプログラミング言語を習得してきた経験から、個人的な意見を少しまとめてみます。新しい言語を覚えるときに、今でも大切にしていることです。
①とりあえず手を動かす
②なにか作りたいものを設定する
③ブレイクスルーは必ず来る
④Googleに答えは載っている
①とりあえず手を動かす
プログラミングは、受け身になって講義を受ければ身につくものではありません。手を動かし、コードを書き、バグを解決していくことで身につきます。学生時代を思い出すと、授業をやっても問題演習の時間は必ずあり、問題を解いて、答え合わせをするという学習方法を進めていたと思います。先生の話では理解できないので、問題演習をしましたよね?これと同じで、基本的に問題演習=コードを書く、答え合わせ=試しに動作させる、に相応し「手を動かさない限りプログラミングは習熟できません」。本を読んでから~、もっと基礎を理解してから~、ではなくとりあえず手を動かし、コードを書きましょう。
②なにか作りたいものを設定する
プログラミング言語は「何かサービス、プロダクトをつくるために作るツール」です。プログラミングできるようになることがゴールになっている人がいますが、間違いです。よくある手段が目的になっている典型です。自分の作りたいサービスをつくるために、コードを書くわけで、プログラミングを学ぶときには、目的=自分が作りたいサービス、製品を設定しておくべきです。私は、口コミサイトをつくることを目標に設定しましたが、ゲームを作りたい、チャットアプリをつくりたいなどそれぞれ目標・目的を設定しましょう。その目標実現の想いが強いほど、プログラミング習熟速度が上がると思います。
③ブレイクスルーは必ず来る
人間は何も分からないとき、その壁の大きさがどのくらいかわからず、非常に大きく見えてしまう癖があります。そして、理解が進まず一向に壁の高さがわからないと、「自分には能力がない」と思い、自分のせいにし始めます。そしてquitします。しかし、これまでの人生を思い出してください、九九言えますよね?自転車乗れますよね?開始時点ではわけわからずできなかったことが、時間をかけていくと気づいたら習熟できています。どこかで脳内のニューロンが結びつき、断片的点情報がつながり、ブレイクスルーを起こします。
「必ずブレイクスルーはきます」。ブレイクスルーまでの速さには個人差がありますが、「必ず来ます」。大切なことなのでもう一度言いますが、「必ずブレイクスルーはきます」。それまで愚直に勉強を続けましょう。
④Googleに答えは載っている
困ったとき、バグが出たときにどうすればいいかわかりませんよね。しかし、世の中には非常に優れた検索ツールがあります。その名も「Google」。我々が悩むバグの多くは、「先人も悩み、さらに先人が答えを教えて解決されています」。その軌跡は、すべてGoogleに載っています。英語じゃないと答えが載っていないときも多いですが、とにもかくにも解決方法は「Googleに載っています」。エンジニアとして大切なスキルの一つに、自走力がありますが、結局は「Googleに載っている答えを見つける速さ」を示しているといっても過言ではありません。
まとめ
プログラミング初学者の方向けに、様々な勉強法を提示し、最終的に筆者流おすすめの勉強方法をまとめて見ました。
あらためていうと、
- 本(1,2冊)または動画系教材を1, 2教材買って、デモサービスをつくる
- 自分の作りたいサービスをつくる
ただこれだけです。大切なことは、自分が作りたいサービスのイメージを作り、本当に最低限のスキルがついたら、すぐに作り始めてしまって良いと思います。メルカリのクローンサイトを無限に作るなら、なるはやで自分の作りたいサービスを作ってください。
それがこそが、最適なプログラミング学習方法だと私は理解しています。
P.S.
とはいっても、もう少し丁寧に勉強方法をまとめてくれ、具体的に書いてくれ、というニーズはあるのではないかと考えており、そんな方々を少しでも支援できればと、プログラミング勉強用のスタートスキルセットをつくっていきたいと思っております。最初だけやる気が出るマンなので、最後まで続くかわかりませんがやってみます。※本ブログの行く末もわかりませんが
とにもかくにも、そんなプログラミングを勉強しようと目指されている方に朗報です!nakoblogでは、より低コストでより高速でプログラミングスキルを身につけられるコンテンツが生まれようとしています。IT人材が確実に不足していると言われる状況下で、ITエンジニアを目指す人へ、nakoblogを通じて少しでも力になれればいいなと思っています。
PCを買ったら準備完了です。あとは、本を1, 2冊買って勉強を開始しましょう。(どんな本を買うべきか知りたい方は、Ruby on Railsによるアプリ開発ロードマップをご覧ください。)
【初心者向け】Ruby on Rails アプリ開発ロードマップまとめ
初学者の方でもプログラミングが学べるような、コンテンツがつくれればいいなと思っています。配信を頻繁にできるように頑張ります。乞うご期待。
コメント