プログラミング基礎学習は1000時間もいらない




多くの人が、プログラミング学習に取り組む中で基礎学習に多大な時間を費やして挫折してしまいます。

 

本来、プログラミングで必要なのは成果物を作成することに対して、インプット作業でその手を止めてしまう人も少なくありません。

 

必要であれば、メンターやスクールという学習方法もありますが、そもそもインプット前提の考え方で学習をしてしまう人は黄色信号です。

 

今回の記事では、プログラミングの基礎学習に膨大な時間を費やすことなく、スムーズに次の学習ステップに移行できるよう、その思考法をまとめてみました。

 

三つの要点を抑えていただければ十分なので、一つずつ解説していきます。

 


汎用性の広いPythonを0から習得するためのフロー及び実際にPythonで開発を行い開発案件を獲得するまでの筋道について解説しているチュートリアル資料と

コーディングの参考となる実際にPythonを使って作ったツールのソースコードを無料で配布していますので、こちらも併せてご覧ください。

初心者・入門者でも30日間で学習できるおすすめPython学習方法

 

1. プログラミング学習の目安時間

まずはじめに、取り組む多くの方がプログラミングの基礎学習において、膨大な時間をかけてしまうことが挫折ポイントの一つになりがちです。

 

もちろん、基礎固め自体は重要という認識で構いませんが、プログラミングの本質は誰かの悩みや問題を解消するためにプログラムを組み上げ、提供することにあります。

 

そのため、インプット作業ばかりに目を向けるのではなく、アウトプットを前提とした学習を執り行わなければなりません。

 

なので、知識におけるインプット時間に1000時間などの膨大な時間をかけることはまずしなくて良いです。

 

筆者としては、基礎学習は最初の1週間で事足りるとすら感じています。

 

別記事にて基礎学習を1週間で終えるための思考法と次のステップへの移行方法などを記載した記事がありますので参照していただけると幸いです。

 

プログラミング基礎学習の1週間で向き不向きが分かる

2019.11.14

2. 今費やせる時間よりこれから費やせる時間を確保する

ここで重要となってくる考え方が、「今費やせる時間」よりも「これから費やせる時間」を確保することです。

 

システムエンジニア/プログラマーとして働いていると、多くのシステム問題やサービス問題、新規で利用されるプログラミング言語、はたまた新たに創出された概念やアプリケーションなどなど、絶え間なく次々と取り組むべき課題に出くわします。

 

そんな中で、今費やせる時間をプログラミングにおける基礎学習だけに注力させるのは速度性が遅延してしまうわけです。

 

ただでさえ多くの問題を抱えながら学習しなければならないのに、基礎学習を完璧に終わらせてから取り組むとなれば、取り組んでいるものすら利用しない学習内容であれば、なんのために学習してきたのかわからなくなるくらいです。

 

そのため、「これから費やせる時間」を確保して、確保した時間を基礎学習ではない学習内容に投じなければ追いつけるものも追いつきません。

 

いかにスピーディーな学習速度を求められているのか理解するためにも、基礎学習は概念の理解に止め、生きたコードを記述するための時間と実際に扱っている学習内容で出くわした技術に対して学習を進めることが大切になります。

 

つまり、基礎学習という一点に重要性を置くのではなく、これから多くの時間を要するであろう分野までいち早くたどり着き、今までの基礎からこれから取り組むことになるであろう分野の全体像を把握して、費やせる時間を膨大に注ぎ込むことです。

 

一見無謀なように思えますが、最初から全てを理解することの方がよっぽど難しいですし、筆者自身もその都度調べながらコーディングを行っています。

 

もっと言えば、基礎学習で覚えていた記述方法なんてほぼ覚えていません。

 

今まで作り上げてきた成果物のファイルを読み直したり、ネット上に転がっているコードをコピペしながらオリジナルへと変化させていきます。

 

あくまでこの記述をすると、こういった動作を行えるという理解と言語化ができれば事足ります。

 

あとは、とにかく実践的に記述することだけです。

 

そのためにも、これからあなたが多くの時間を割きたい分野まで爆速で到達しましょう。

3. アウトプットできる環境を作る

まずはアウトプット前提の意識を持つことから始めてみてください。

 

例えば、小学生の時”九九”を覚えたかと思いますが、掛け算の仕組みを覚えるよりも暗唱することで覚えた記憶はありませんか?

 

プログラミングも似通っているところがあり、動くコードを実際に動かして内容を把握することは多分にあります。

 

そのためにもアウトプットできる環境を作ることから始めてみましょう。

 

実際にアウトプットする環境はPC一台で解決しますが、何をアウトプットするかネタがないこともモチベーション低下の一つになります。

 

SNSでいいでしょうし、他のブログサイトでの記事でもいいでしょうし、思いつく限りの単語を利用して情報収集すれば、コード公開をしている記事や情報はたくさん転がっています。

 

それらを駆使してまずは動くもので興味があるものを手元に用意しましょう。

 

すると、「こういった動きがあればもっと良くなるのでは?」「この機能はどうやったら組み込めるだろう?」と考えるきっかけができます。

 

その時に考えて欲しいのは、その動きや機能というのはどんな言葉で表されるのだろうということです。

 

プログラミング業界では、それはもう数多くの専門用語が存在するわけですが、求められている言葉をしっかりと言語化できることによって始めてググって調べることができます。

 

これも実際の業務レベルでも求められる情報収集スキルの一つで、素早く言語化できるエンジニアやプログラマーの人は、これを駆使して業務こなしています。

 

その訓練の一環ということで、この力を養っていきましょう。

 

すると、自然とエラーが起きたときはこうやって調べてみる、機能に関してこう調べるといったググり方が身についてきます。

 

そして、情報収集した内容から自分の思い描いていた機能などが組み込めると思考しながらアウトプットできたことになるので、まずは真似ることができる簡素なプログラムから手当たり次第取り組んでみましょう。

 

こちらのブログサイトでも、pythonに関する簡単なスクリプトファイルのみで動作するプログラムを記事にしているので、取り組んでみてはいかがでしょうか?

4. まとめ

まとめると、、、

 

・基礎学習は概念への理解に努める

・「これから費やせる時間」を確保する

・アウトプットするためにネタを収集する

 

これらの内容を押さえて置くことで、圧倒的に時間を有効に利用しながら成長できるかと思います。

 

今後もプログラミング学習の初学者に向けて、正しい思考法をお伝えする記事を作成していきます。

 

必要であれば、コメントなどにどんな記事を求めているか書き込んでいただけると幸いです。

 

最後まで一読していただき、ありがとうございました!



ABOUTこの記事をかいた人

sugi

大学卒業後、IT企業に就職を果たす。システム開発・人工知能に触れながら大手企業と業務をこなす。2年半後脱サラし、現在フリーランス活動中。 2019年2月から起業する予定。 自社サービス及び製品を開発し、売り上げを立てている。