【プログラミング】暗記は必要?【不要だが多少知っとくと効率UP】

Programming

プログラミングを勉強している初心者の方:
・文法、構文が難しくて、なかなか覚えられない。どうやって覚えるんだろう?と、いうか、覚えないとだめ??
・現役でプログラミングの仕事している人って、手を動かすの早そう。文法全部アタマに入ってるのかなぁ?

今回は、こういった疑問に解説していきます。
これを書いた自分はこんな人です学卒後、現在も組み込みソフトウェアエンジニア(C言語)に従事。仕事では、C以外にも、C#、VBA、ツール特融言語(CAPLなど)を使用し、プライベートでは独学でWeb言語(HTML,CSS,jQuary,Ruby on rails)を学んでいる。

【プログラミング】暗記は必要?【不要だが多少知っとくと効率UP】

結論を先にいうと、プログラミングにおいて、暗記は不要です。これはどのサイトやブログを見ても同じことを言っています。ただ、じぶんの場合は、「完全に」暗記は不要だが、「少しだけ」必要かなと感じてます。理由は以下。

  • 超基礎的な構文から検索していては作業効率が落ちるから
  • 現場でのまわりの目が気になるから(え?それググるの・・・?)

繰り返しますが、完全に暗記は必要ありません。ただ、だからといって、超基本的な構文をイチから検索しまくっていたら、果たしてプログラミングの作業効率はあがるのでしょうか。あがりませんよね。

なので、多少は構文を暗記というか、アタマに入れておく必要があるのです。

超基礎的な構文すら検索してしまい、効率が落ちる例

流れとしてはこんな感じかと。

  1. こういう処理をしよう!
  2. 構文わからない・・・
  3. 検索
  4. コピペ

これを繰り返すことになりますが、さすがにもう少しなにも見ずにコード書いていきたいですよね。頻繁にすると効率が落ちますし。

コピペせず、タイピングして打ち込むことが大事

プログラミング初心者の頃は、わからない構文や処理をネットで調べた際、それをコピペしないようにしましょう。

なぜなら、コピペしてしまうと、いつまでたってもコピペする羽目になるから。少しでも検索しなくてもいいようにするために、多少はコードを暗記というか、アタマに入れておく必要があります。

そして、それをするには、

調べたコードをきちんとタイピングする

これしかないのかなと。例えば、

  • if文やswich文を書く時にカッコ(()や{}がいるのか否か)
  • ループ処理の構文

これくらいは、たとえ検索可能だとしても、超基礎的なので、さすがにアタマに入れておいておかないとキツイです。

よくある失敗:ノートにコードを書いてしまう日本型教育の影響かわかりませんが、コードをノートに書いて覚えようとしている人を見かけますが、そこまでしなくてもよいのかなと。プログラミングの勉強は、学校の教科のテスト勉強とは違うからです。

わからないコードがあった際は、ノートに書くというより、

  • どこかノウハウを記載するファイル(電子ファイル)を用意
  • そこにコピペ&じぶんなりのメモをタイピングで追記

で、よいでしょう。なので、いちいちプログラミング用のノートなんて作らなくてよいですよ。

じぶんが商業高校でCOBOLを勉強してたときは、まさに全部紙に書くようなやり方でした。なので、基本情報もCOBOLで獲りましたが、実際にコードを書いて実行した経験は、学校の実習で数えるほどしかない状態での合格でした。今となっては信じられないですね。いうまでもなく、プログラミングは、コードを実際に打ち込んで、とにかく動かしていくものなので。

例外として、客先で仕事する等で、ネット検索が難しい場合があるらしいです。まあその際は、ノートに書くのも致し方なしかと。

質問:日本語の言葉の意味を全部暗記してますか?プログラミングに完全な暗記が必要ない理由の例として、言葉について考えてみましょう。

これを見てる人はほぼみんな日本人と想定しますが、みなさん、日本語で定義されている言葉、全部知ってますか?

また、その意味もすべてわかりますか?

  • こんな言葉しらない(四字熟語とか)
  • この言葉にはこんな意味もあったんだ・・・

おそらくこんな感じですよね。おなじことはプログラミングにも言えます。なので完全な暗記は不要なのです。ググってよいのですので。

そもそも、プログラミングに必要な能力は暗記 < 思考力

そもそも論になってしまいますが、プログラミングで必要な能力は思考力だったりします。

なぜなら、プログラミングの文法や構文は、あくまでなにかやりたいことを実現するための手段にすぎないからです。
では、プログラミングで必要な思考はなにかというと、ざっくりいいますと、

  • 「論理的思考」で、「モノゴトを分類、分析する」こと
  • そして、その結果をもとに、じっさいにどうすればそれが実現できるか(システム化)を考えていくこと

こんな感じです。

とはいえ、詳細は割愛しますね。これだけで1記事かけるレベルになりますので。

と、いうことで、クドイですが、完全に暗記はやめましょう

ここまで書いたとおり、プログラミングに完全な暗記は必要ないです。大体、こんな状況ですし。

  • 検索すればわかるから
  • 実際の開発現場でも調べまくってるから
  • 言語は多数あり、日々進化しているため、いちいち覚えていられないので

でも、さきほど書いた通り、ある程度は知っておかないと効率が上がらないのは事実ですので、調べたことをタイピングしながら、ある程度の構文をアタマに入れたうえでプログラミングしていきましょう。
今回は以上です。

人気記事
プログラミングスクール多すぎ!どう選ぶの?【4つの指標で選ぼう】

人気記事
【テレワークで太った!】運動不足を解消しないと!【対策あり】