🪃

【初心者向け】プログラミング学習法大全

2022/09/28に公開

はじめに

今回の記事では、あくまで個人の一見解に過ぎないが主に初心者向けにプログラミング学習方法とプログラミング学習で重要なマインドセットを中心に徹底解説する。

  • 「なかなか進まない...」
  • 「どうやって勉強すればいいの?」
  • 「知識が定着できずわからないことだらけ...」

このように悩んでいる初心者が本記事の内容を参考に、プログラミング学習の質を上げていただければ非常に幸いである。

マインドセット

まずはプログラミングを好きになる

効率よく、そして楽しくプログラミング学習に取り掛かる第一歩はプログラミングそのものを好きになることである。しかし、どうしてもプログラミングを楽しめない場合は自分の好きなものと関連付けるのも1つの手段である。プログラミングでは、「いつも遊んでいるゲームや使っているアプリはどんな感じで動いているのか?」というように疑問を持つことで、好奇心がそそられるかもしれない。

実際に自分の興味関心からプログラミングや個人開発につなげた例をいくつか紹介する。

▼C言語や微分・積分の知識を応用して任天堂のゲーム『スーパーマリオ』のジャンプの謎を解明するQiita記事。

https://qiita.com/morian-bisco/items/4c659d9f940c7e3a2099

▼Pythonの機械学習で『スーパーマリオ』のステージをクリアすることについて解説されているQiita記事。

https://qiita.com/temmaru/items/1bb590709cf623a5f6d1

上述のように工夫して、プログラミング学習を好きになるようにしてみてはどうだろうか?

プログラミングを学ぶための目的を明確にする

初心者のプログラミング学習で次に大事なことは、学ぶ目的を明確にすることである。プログラミングはあくまで問題解決の一つに過ぎないことは十分に理解しておこう。

初心者は自分がプログラミング学習で実現したいこと、あるいはやりたいことをできるだけ具体的に言語化しよう。例えば、次のような形で言語化するといい。

  • 自分のいまやっている作業(例:Excelやファイル整理)を自動化したい
  • みんなに使ってもらえるアプリを開発したい
  • リモコンやスマホを動かすプログラムを作ってみたい

とにかく何でもいいので、自分がプログラミング言語で実現したいことを強くイメージしておくことが何よりも重要である。

全体像を把握する

初心者がプログラミング学習を始める時、自分が学びたい分野や言語の全体像を把握することをおすすめする。初心者がPythonやJavaScriptなどのプログラミング言語を一から学ぶ場合はチートシートを使い倒そう。

チートシートを使うことで、主に以下のようなメリットがある。

  • 作業効率・学習効率が上がる
  • 概要や全体像を掴みやすい

おすすめのチートシートはこちらのQiita記事で徹底解説されている。よければ確認してみてほしい。

https://qiita.com/KNR109/items/a6b3216552bee53b1724

思い出す練習をする

記憶を定着させるには、「覚える練習」よりも「思い出す練習」のほうが重要だ

プログラミング学習では、数多くの専門用語が出てくる。専門用語を十分に定着したいならば、繰り返し専門用語とその意味を確認しても意味がない。「SQLって何だ?...そうか、SQLはデータベースを設計・操作するための言語か!」というように、自分で思い出す練習をしよう。

具体的な勉強法

公式ドキュメントや技術書をわざと「雑に」読む

公式ドキュメントと技術書を使ってプログラミング学習をする初心者は少なくないと思う。

前述でも述べたが、プログラミング学習で大事なことは全体像を把握することである。公式ドキュメントと技術書を完璧に理解することは至難の業だ。「完璧に習得しなければならない」という思い込みを捨てて、多少雑でもいいから読むことが重要である。そうすることで、取り掛かりのハードルが大きく下がるので面倒臭さを大きく改善できるのだ。

私の場合、具体的には以下の様なことを実践している。

  • とりあえず最後まで流し読む
  • 難しい場所やつまらない内容は積極的に飛ばす
  • 興味のある部分や理解を深めておきたい部分だけを読む
  • つまらない、面白くない技術書はすぐに読むのをやめる

このような感じで、わざと公式ドキュメントや技術書を「雑に」読んでみよう。

YouTube・GitHubを活用する

YouTubeGitHubプログラミング学習を進める上では最高のツールである。主な理由は以下の通り。

【YouTube】

  • プログラミング関連で有益な動画が無料で閲覧できる
  • 音声やリアルタイムでのプログラムの動きなどがプラスされるので、テキストよりも圧倒的に理解しやすい

【GitHub】

  • 登録すれば誰でも無料で公開されているプロジェクトのソースコードを閲覧できる
  • 自分のお気に入りのリポジトリに「いいね」をつけることで、自分だけのオリジナルの備忘録を作れる
  • YouTube同様に、初心者のプログラミング学習や実務での開発を手助けするGitHubリポジトリが豊富である
  • トレンド検索で、最近注目が集まっている言語やフレームワーク、プロジェクトを確認できる
  • 数多くのリポジトリにあるソースコードを読むことで、他のプログラマーの考え方や良いコードの書き方を具体的に学べる

登録必須のYouTubeチャンネルや確認必須のGitHubリポジトリは後日の記事で紹介する。

積極的にアウトプットする

初心者は自分のブログでもQiitaでも、Zennでもなんでもいいので積極的に自分の学びや経験をアウトプットするべきである。積極的にアウトプットするべき理由は以下の通り。

  • 知識を定着させる上で最も効率的だから
  • 説明する能力や伝える力が上がるから
  • プログラマーとしての人となり(興味のある技術やプログラミングに対する価値観、説明する能力など)を知られるから

アウトプットするべき理由はこちらの記事で徹底解説されている。詳細はこちらの記事を確認してほしい。

https://zenn.dev/nameless_sn/articles/tech_article_mind

おわりに

今回の記事では、プログラミング初心者向けにプログラミング学習で重要なマインドセットや具体的な学習方法を徹底解説した。

【マインドセット】

  • まずはプログラミングを好きになる
  • プログラミングを学ぶための目的を明確にする
  • 全体像を把握する
  • 思い出す練習をする

【具体的な勉強法】

  • 公式ドキュメントや技術書をわざと「雑に」読む
  • YouTube・GitHubを活用する
  • 積極的にアウトプットする

あくまで個人の一見解に過ぎないが、本記事を通して読者のプログラミング学習の効率を上げたり、読者が「プログラミングは面白い」というように感じたりしていただければ幸いである。

参考サイト・文献

GitHubで編集を提案

Discussion