プログラミング学習を始めようと考えている人は、おそらく最初に”プログラミングにおける習得時間”を想像すると思います。
結論から言えば、目的・目標設定によってプログラミングの習得時間はバラバラになるわけですが、ある程度の目安があると学習へのメリハリをつけることができるのも事実です。
ネット上で多くの成功事例となる記事を見受けますが、やはり学習する対象の違いから個人差があることが分かります。
そのため、習得時間はあくまでも結果としてそれだけの時間がかかっていたことになり、重要になるのは何を目的・目標設定に取り組んでいたのかということになります。
ここでは、習得時間を目的にすることなく本来の目的・目標設定する方法を詳しく解説していきたいと思います。
目次
どれほどの時間があればプログラミングを習得できるのか?
これは前述した通り、あなたの目的・目標設定によって大きく変化します。
おそらく多くの人が以下の目的とプログラミングを習得するための目標パターンで悩んでいると思うので、重点的にこちらを解説していきたいと思います。
目的:就職・転職を考えている
目標①:プログラミングスクールにて習得する
目標②:独学でプログラミングを習得する
目的:就職・転職を考えている
プログラミング学習を始める多くの人が稼ぐために利用するのがプログラミングでもあります。
筆者自身、プログラミングによって収入を獲得しているわけですが、やはり目的として自分自身の人生を豊かにするため、金銭面でも手に職をつける技術面でも就職や転職を目的に置いて取り組み始めると思います。
であるならば、真っ先に思いつく方法として、速度よく学習を進めたいのであればプログラミングスクールの選択は第一候補に上がるでしょう。
そして、プログラミングスクール活用の最大のメリットは、短期間での学習と就職・転職サポート付きであることです。
時代背景からしても、現在エンジニア不足の深刻化が叫ばれている中で、エンジニアを求める企業は数多く存在します。
また、即戦力になる人材であれば、間違いなく就職・転職は叶えられることでしょう。
目標①:プログラミングスクールにて習得する
プログラミング未経験者であれば当然実務をこなしたことがないからこそ、どれだけ習得時間をかけたところで、一定のレベルから上に超えるのは非常に困難になります。
そこで、プログラミングスクールとしてはエンジニア育成を行い、就職・転職の斡旋をサービスに組み込むことで、エンジニア希望者と企業とのマッチングを行い、両者の目的を達成させます。
プログラミングスクールでは、カリキュラムが企業の条件(就職・転職コースの話)に沿って作成されていることが多いため、3ヶ月前後の習得時間でエンジニアとなる目的が達成できるよう組まれています。
また、プログラミングスクールは就職・転職保証付きのサービスだけでなく、学習中での学習支援サポート対応なども存在するため、速度よく効率的に学習を継続することもできるようになっていることが多いです。
もしも金銭面に余裕がある人であれば、プログラミングスクールを一度検討してみるのもアリだと思います。
プログラミングスクールの実績や学習内容、就職・転職先となる企業説明など、多くの情報を取り込むことができるので、マッチングする目的に向かって一直線に取り組むことができるはずです。
特に実績に関して言えば、すでにそのプログラミングスクールを卒業した人で成功している人の体験談や年齢、未経験からの過程や現在の収入面なども、スクールを利用していく中で予測できてくると思います。
もちろん、最終的にエンジニアになれた人の実例は様々なパターンあるはずなので、自分はどのタイプになるか比較しながら、目標設定に反映させることができるので、とても有益な行動を選択できると思います。
そこから逆算して、自分自身のプログラミングにおける習得時間を割り出していけると思います。
なので、一概に〇〇時間は必要といった確定的なアドバイスは、逆に真実味が薄いと考えています。
個人差が間違いなくありますし、学習行動計画を立てたところで本当に時間配分をずらすことなく甘えることなく取り組めるかは、あなた自身です。
目標②:独学でプログラミングを習得する
正直な話、独学でプログラミングを習得することは、かなり困難です。
できないとまでは言い切れませんが、やはり厳しいものを感じます。
プログラミングを習得するためには、PC関連のあらゆる周辺知識も蓄えていく必要がありますし、言語自体の理解もプログラムがどのような命令で動作するか想像できるようにならなければなりません。
何より困難さを際立たせるのが、サポート無しという点です。
誰もが学生時代を経験していることから、わかって頂けると思いますが、筆者含めすべての人が学びを得る時は教わることから始まります。
教わることができる環境・質問ができる環境があるかないかでは、プログラミング学習も同様に、雲泥の差が出てきます。
そのため、独学での習得時間は単独で行うことになるため、どうしたって膨大な時間というコストを要することになると思います。
ただ、ネット上で多くの情報が転がっているため、選択したプログラミング言語によってはアプリ開発までこなせてしまう環境でもあります。
うまく利用することで就職・転職までたどり着くことができる人もいるはずです。
道のりは険しいですが、やってやれなくもないと思います。
SNSなどを利用して相談できるエンジニアを見つけてメンターになってもらうなど、学習環境を整備することも視野において置きましょう。
そして、こちらの学習方法も同様に〇〇時間の習得時間が必要と断言できるものではありません。
本人の時間配分と努力によって変化するものだと思います。
プログラミングの習得時間は意識しないこと
よくツイッターで、プロゲート2周目始めましたとツイートしていたり、復習で言語学習を繰り返したりする人を見かけます。
これだといつまでたってもプログラミング初心者から抜け出すことができません。
プログラミングを通して就職・転職できるほどの実力を身につけたり、何か成果物を生み出すことを考えるならば、間違いなくスキルを向上させなければなりません。
つまり、同じことの繰り返しばかりではスキルは一向にレベルアップしません。
もちろん、言語学習の内容が抜け落ちていないか心配だったり、復習が重要だと思う気持ちは分かります。
ですが、重要なのは目的に沿ったスキルを手に入れられているかどうかです。
基礎の繰り返しではありません。
学生時代でも経験があるかと思いますが、テストの範囲は授業の進捗状況から決まりますよね。
その中で、基礎・応用・発展と問題の難易度が割り振られて、テストで出題されます。
天才に限っては基礎を一度してしまえば応用と発展問題も解けてしまうような頭脳を持ち合わせているかもしれませんが、基本的にレベル別で行うべき問題集を解いていくことで、テストにて高得点を狙えるようになります。
プログラミング学習でも同様に、基礎ばかりしていてもアプリ開発までたどり着くことはありませんし、ましてや実務レベルは身につけられません。
そのため、自分自身が設定した目的に合わせて段階的にレベルを上げた学習内容に取り組まなければ、いつまでも初心者のままになってしまいます。
ここで大切なことは、目的・目標設定が定められているのであれば、逆算して何を学んでいくべきか目次を立てることです。
その目次に沿って、必要な学習内容が可視化されていきます。
そして、可視化された内容にどれだけ時間をかけたいかはあなた自身が定めることになります。
先ほどの学生時代を例にするのであれば、各学校への受験日は決まっています。
その受験日に向かってレベル別に学習を続けた結果、合格を手に入れるわけですが、いくら学習時間を〇〇時間と定めたところで、目的である学校の受験レベルに到達した知識を持っていなければ、いつまでも合格することはできません。
つまり、プログラミング置き換えるならば受験という目的同様に、習得時間は先に決めるのではなく、目的に合わせて目標と時間を定めていく必要があります。
そして、取り組んでいく中で計画と実行と確認と改善を繰り返していきます。
最初から思い通りに計画が進められればそれでよし、もっと早くできそうなら期間を早めるのもよし、厳しいようであれば時間を設けることが重要なのか目標を再設定する必要があるのか考えるのもよし、というようなPDCAサイクルを実施する必要があります。
プログラミングの習得時間を目的にしてはならない
改めて意識してほしいことは、習得時間ではなくスキル向上です。
学生であればテストやレポート、社会人であれば成果物の納期が定められている中で一生懸命取り組み、評価を頂きます。
どんな内容のものであっても、10人取り組めば10人の評価はバラバラなものとして返ってくるでしょう。
そこにどれだけの時間をかけたかもバラバラなはずです。
学習という取り組みに限って多くの人が、「学習時間が足りてないから。」という勘違いです。
もちろん、1時間の取り組みより3時間の取り組みの方が量的には良いかもしれませんが、質が悪ければ効率的な1時間には負けてしまいます。
明確な取り組みが大切になってきます。
習得時間は目安にできますが、目的にはなりません。
必要であれば増えるでしょうし、必要なければ減ることになります。
そのため、プログラミングに〇〇時間は最低でも取り組もう!といった行動はやめましょう。
この取り組みは、前回の取り組みより新しい内容が含まれているか、目的を達成するために必要な学習なのかを常に念頭において置きましょう。
プログラミング学習=『継続力』
何事も継続力は必要ではありますが、例外なくプログラミング学習でも取り組みを続けることが大切になります。
この継続力がないと、エンジニアになれたとしても辛い経験をしてしまうことになります。
なぜなら、IT業界の技術進歩はめまぐるしいため、常に継続した学習をしなければ置いていかれてしまうからです。
そのため、継続力を身につけることは必須条件です。
さらに、情報収集力と問題解決力を身につけていかなければ業務に太刀打ちすることができません。
単純作業なら一度プログラムを作成すれば、あとは自動的に業務を行うことができます。
しかし、価値創造型の思考系タスクとなれば、プログラミング業務の質は変化します。
こういった思考系タスク(サービスにおけるアプリ開発など)をこなすためには、常に情報収集力と問題解決力を養っていく必要があります。
当然、コピペばかりする人は誰も取り組んだことのない課題に出くわした時、間違いなく手が止まってしまいます。
そうならないためにも、情報収集力と問題解決力を養いながら、プログラミング学習を継続することが大切です。
ここまでくると、もはや習慣化された状態になってくるので、習得時間とか考える意味はなくなります。
新しい課題に取り組むことが前提のエンジニアにとって、もはや習得時間を目的にすることはなくなるので、これからプログラミング学習を始める人もこのようなマインドセットで取り組んでいきましょう。
まさに、目的達成のためにどう効率的に行動するか、時間をいかに有益に利用するか、これらを考えるようになれると思います。
未経験から3ヶ月でエンジニアになれるのか?
ここまでプログラミングの習得時間に関して、目的・目標設定によって変化すると解説してきました。
では、未経験から3ヶ月といった具体的な期間内にエンジニアになれるのかについて解説していきます。
ここでは、あえて具体的な期間を設けてお話していきます。
結論から言うと、間違いなくエンジニアになれると断言できます。
しかし、これはあくまで本人のやる気があることと短期間で学習する内容が把握できている場合です。
そうでない場合、情報収集や学習環境の整備から行う必要があります。
目的がエンジニアになること(就職・転職)であるならば、目的に沿ったステップとして各目標を明確化できているかが大切です。
そのため、すでに整備されているプログラミングスクールに通うことが効率的だと考えます。
独学でもエンジニアになることは可能なのか?
こちらも間違いなく可能だと断言することができます。
しかし、並大抵じゃない努力がないと挫折する可能性は高いです。
少額でも構わないので、クラウドソーシングの活用やココナラといったスキル売買サービスを利用して、稼いでみるとエンジニアへの道が開きやすくなると思います。
自分自身のスキルがお金になると分かれば、自信もつきますし、明確な目的・目標設定も再設定しやすくなります。
よくあるのが、「まだ自分のスキルでは稼げないから。。。」といって、自分を試さないことです。
そもそも独学で未経験からエンジニアになるのであれば、実績や最低でも必要な機能を実装したプログラムをポートフォリオで所持しておくなどを考えておかなければいけません。
それなしでどうやって企業にアピールできるのでしょうか。
未経験からエンジニアとして就職・転職をするならば、間違いなく未経験でも入社できる企業を選択することになります。
なぜなら実務経験がないわけですからね。
であるならば、その企業に就職・転職したいと考えている人は、みんな未経験で訪れる(実務経験がある人は収入が高い実務経験ありの企業を選択するため)わけなので、ライバルよりも秀でたステータスを保持しておけば競争率はグンと下がります。
即戦力になるのは難しくても、数週間から1ヶ月で戦力になる人材を求めるのは普通の考えです。
ならば、何か武器になるステータスを獲得しなければ通用しません。
これに関してはプログラミングスクールに通うパターンでも、独学で習得するパターンであっても、求められる人材の本質は変わりません。
エンジニアとして働き出したいのであれば、プログラミング学習をするのは前提で自分をどのようにアピールしていくかも考慮した学習カリキュラムを立てておくことが就職・転職の鍵になります。
まとめ
ここまで、プログラミングにおける習得時間や学習方法と期間について解説してきました。
その中でも就職・転職といった目的にフォーカスして解説してきましたが、プログラミングで生計を立てている人が近くにいれば相談しましょう。
間違いなく、何よりも現状を把握することができる情報だと思います。
また、周りにそのような人がいないならば、無料相談をサービス提供しているスクールなどの連絡してみるのも大事です。
無料体験もありますし、利用できるものは利用してしまいましょう。
これからますますエンジニアの価値はスキルセットに応じて高まっていくことになりますが、あなたの目的・目標設定によって大きく人材価値が変わるのは事実です。
少しでもあなたの人材価値を高めるとともに、就職・転職・収入アップを目指して、プログラミングに取り組んでいただければと思います。