以前に、「楽しくプログラミングを続けるために -プログラミング初心者が陥りがちな罠-」というタイトルで記事を書きました。
プログラミングの学習中に罠にはまってしまうと、プログラミング自体が苦痛となり、トラウマになりかねないので、罠のパターンを予め知っておいて対策することが大事であることを述べました。
そういう意味で、上記の記事の内容はどちらかというと”守り”に属するかと思います。
今回は、「プログラミング学習を加速する5つのキー -能動的な行動によるプログラミング学習の効率化-」というタイトルで、能動的な行動が中心の”攻め”に属する記事を書いていきたいと思います。
五感+感情で感じてみる
プログラミング学習を、視覚と左脳に頼りすぎるのはつまらないかと思います。
ロジックだけではなく、サウンドやアニメーション、UIなどのコードも書いてみましょう。
開発者にとっても、聴覚や触覚、好奇心や心地よさなどの刺激を受けることは大事なことです。
これらを感じることで、プログラミング学習をより多次元的に捉えることができるようになり、狭い思考領域を抜け出すきっかけとなります。
また、書いたコードの動作を他人に感じてもらうことで、開発者自身に様々な感情が沸き起こります。
プログラミングの世界はモノクロームになりがちですが、より豊かなカラフルな世界になるように意識していきましょう。
プロダクトをリリースする
プロダクトのリリースは、プログラミング学習の当面の目標として適しているかと思います。
理由は以下のようになります。
- 必要な要素から優先順位をつけて学習できる
- 収益化がインセンティブになる
- ユーザーからの反響が得られる
- 企画やデザイン、プロモーションなどコーディング以外の要素が学習できる
注意点としてこちらにも書きましたが、最初から大きすぎる目標を設定してしまうと挫折の原因になりかねないので、適切な規模の目標の設定を心がけましょう。
教養を身につける
これはプログラミング学習において一見遠回りに見えますが、個人的にとても大事なことと考えています。
プログラミングの技術自体はツールに過ぎません。この強力なツールにはどのような意味があって、どのように使うべきか、思索するためにはベースとなる教養が必要になります。
即ち、教養を伴わないと、目の前のタスクを受動的にこなすのみになってしまいます。
もちろん、技術自体が楽しければいい、という考え方もありですし、人生の中でそういう時期があってもいいかと思います。
しかしながら、深くて持続性の高いモチベーションを得るためには教養が不可欠です。
そういった意味で、直近に読んだ本のなかでお勧めなのはこの二冊です。ちなみに二冊ともプログラミングと直接的には関係ありません。
数百万年の人類の歴史の中で、プログラミングという行為はせいぜい数十年の歴史しか持ちません。それが、人類の歴史の中でどのような意味を持つのか、この本を読みながら考えてみるのも面白いかと思います。
人工知能の登場により、プログラマーはコンピュータの中に知性を作ることができるようになりつつあります。この本は、その知性の価値とそれが人類や宇宙の未来をどう変えていくのか、具体的なデータを基に見解が述べられています。
人に教えてみる
よく言われることですが、人に教えることは、自分にとっての最高の教育です。
具体的には、以下のようなメリットがあります。
- 人に伝える過程で、学習内容が頭の中で整理される
- 質問に答えることで、自分が正確に理解できているかのチェックができる
- 繰り返し同じ内容を教えることで、自身のコーディング速度が向上する
- 教えた人からの感謝がモチベーションになる
- 知識の欠落を無くすように、いい意味でのプレッシャーがかかる
一対一で教えてもいいですし、発表などを通して一対多で教えてもいいかもしれません。 学習した内容を自分の中だけで完結させるのはもったいので、人に教える機会があれば逃さないようにしましょう。
他の学習者と交流してみる
勉強会などに参加し、他のプログラミング学習者と交流してみましょう。学習内容をシェアするいい機会ですし、一人でプログラミングをしている時には得られない様々な刺激を受けることができます。
そのような場での出会いが新しい発想に繋がる場合も多いですし、具体的な仕事に繋がる場合も多いです。
個人的には、「てくてく勉強会」という勉強会を開催しています。
初心者、上級者を問わず、様々な分野のエンジニアが集まる勉強会です。最近は機械学習系のテーマを設けることが多いですが、技術系のことであれば何を勉強しても構いません。
習熟度や分野の垣根を超えて、様々なエンジニアからの刺激を受けてみましょう。
次回の開催は、2/18(土)17時からです。
最後に
プログラミングの作業自体はコンピュータと向き合った孤独な作業ですが、ちょっとした能動的な行動を起こすことで、プログラミングを起点とした世界が広がっていきます。
内面を磨き、なおかつ外部と積極的にコンタクトする、前回と同じく、今回の内容もプログラミングに限らず様々な分野に共通する上達の法則ですね。