プログラミングを勉強している人の中に知識だけを詰め込んでいる人を見かけます。
しかし、知識を詰め込むだけだとプログラミングはできるようになりません。
本記事ではプログラミングに似ている、数学と問題解決能力の特徴を比較してみることで、プログラミングを身につけるためには何が必要かを解説します。
数学と問題解決能力とプログラミングは似ている
数学と問題解決能力とプログラミングは結構似ています。
まずは3つの特徴をそれぞれ考えてみます。
数学
数学の問題を解くためには以下の様な事が必要です。
公式を覚える。
問題の解き方には複数の解法があるが、基本的には定石のようなものがある。
そして、問題を解くにあたり最終的な答えを明確に定め、定石を駆使したり、覚えた公式を組み合わせることで、問題を解くことができる。
安定して問題を解くには、様々な問題を解くことにより定石の組み合わせ方を知ったり、定石を使い慣れる必要があります。
問題解決能力
問題解決能力とは、問題を解決するための以下の力のことです。
- 問題の本質を分析し特定する
- 特定した問題を解決するためにどの様な方法が良いかを考える
- 考えた方法で問題を解決する
2つ目の解決策を考えるにあたって、数学の定石ように、様々なフレームワークなどを組み合わせる必要があります。つまり、公式を知っている必要があるのです。
また、3つ目の「考えた問題を解決する」ためには、フレームワークを組み合わせて使用したり、使い慣れている必要があります。
このように、数学と問題解決能力は非常に似通ったところがあります。
プログラミング
さて、プログラミングをする場合のプロセスを考えてみましょう。
まずは、使用する言語の基礎を学ぶ必要があります。if文などの文法や、よく使用するメソッドなどです。これは数学の公式や、問題解決のフレームワークのようなものです。
そして、if文やListなどの基礎的内容を組み合わせることで、WEBサイトの作成などをすることができるのです。
もちろん基礎的内容を組み合わせるには、コードを沢山書いたり、読んだりすることで組み合わせることができるようになります。
実際にコードを書かないと、プログラミングはできるようにならないものなのです。
プログラミングをしたいなら、基礎を学び、定石を会得し、使いこなせるようになることが大切だ
「数学」「問題解決」「プログラミング」のいずれにも共通することとして、以下の3つがあります。
- 基礎を学ぶ
- 定石を習得する
- 使いこなせるようになる
プログラミングをするのであれば、上記のようなマインドを持つ必要があります。
数学をほとんどやってこなかった新人を教育したことが何度かありますが、どの新人も基礎は資格勉強をすることで学んでくるのですが、コードを書かないので、いざプログラミングをする時が来ると全然コードを書くことができないのです。
プログラミングを習得したい場合は、知識を詰め込むのも大切ですが、それだけではよくありません。それでコードを書くことができるようになるのは天才だけです。
使いこなせるようになるには沢山コードを書かないといけません。
次に、なぜコードを書く人が少ないのか?とコードを書く良い方法について、解説します。
コードを書く人が少ない理由
プログラマーになりたい理由が関係しています。
プログラミングが大好きな人は、日常的にコードを書くのでプログラミングを習得することは容易です。しかしこの様な人はあまりいないと思います。
問題は仕事のためにプログラミングをやりたいという人です。このタイプの人達は基本的に仕事が関わらない時にはコードを書かない傾向にあります。やるとしても渋々勉強している様な感じなのであまり身につかないのです。
仕事のためだけにプログラミングをやっている人が多い→コードを書く人が少ない→プログラミングできない人が多いという流れが発生しているのです。
また、何を作ればいいかわからないからコードを書けない、というパターンもよく聞きます。
コードを書く良い方法
コードを書くにはどうすれば良いのでしょうか?
オススメは競技プログラミングです。
競技プログラミングは楽しく定石を学ぶ事ができ、様々な問題を解くことで、定石を使い込むことができます。
また、与えられた問題を解くので、自分で何を作ればいいかを考える必要がありません。
プログラミングに必要なことが詰まっているので、最強の勉強方法です。
プログラミングを習得したい人が周りにいる場合は、是非基礎を学んだ後に競技プログラミングをやってもらいましょう。かなり力がつくはずです。
まとめ
プログラミングを習得するにはコードをたくさん書く必要があります。
基礎を動画や参考書で学んだ後は、それを使いこなせるようになるためにコードをたくさん書かなければいけません。
コードをたくさん書くのにオススメなのが、競技プログラミングです。
問題をたくさん解くことでプログラミングの基礎を体に染み込ませましょう!
以下は競技プログラミングにハマった方向けの情報です。
競技プログラミングはある程度のレベルからは専門の知識が必要になってきます。競技プログラミングの知識を学ぶのにおすすめな3大参考書が存在します。
この中でも螺旋本は初心者向けなので、競技プログラミングにのめり込みだした人には螺旋本がおすすめです。
「蟻本」
「螺旋本」
「チーター本」