スポンサーリンク

コードが書ける!数式が書ける!AAが書ける!スタンプが貼れる!

無料の匿名掲示板型SNS「このはちゃんねる

新規会員募集中!

色んな道から登っていくプログラミング学習法

17, 2019-06-28

目次

こんなに沢山あるプログラミングの学習方法

こんにちは、narupoです。


プログラミングには色々な学習方法があるのをご存知ですか?

一口にプログラミングの学習と言ってもその方法は人によって違います。

この記事を読むことで自分に合った学習法を見つけることができるかもしれません。


プログラミングの学習法は、ざっと見渡すだけでこれぐらい方法があります。

  • 文法を暗記する学習法
  • 本を読む学習法
  • 写経で学ぶ学習法
  • 小さなプログラムを作る学習法
  • 大きなプログラムを作る学習法
  • アルゴリズムとデータ構造で学ぶ学習法
  • 競技プログラミングで学ぶ学習法

プログラミング初心者の方のために、色々なプログラミングの学習方法を書いていきたいと思います。


自分に合った学習法を見つける

女の子-英語-辞書-研究-2771936

プログラミングの学習方法で、これがベストという方法はありません。


というのも、プログラミングには色々な学習方法があるのですが、そのどれもが続ければある程度の効果を期待できるからです。


では、どの学習方法を選択すべきかという問題が出てくると思います。


これは簡単で、自分に合った学習方法を選択すればいいのです。


勉強方法が自分に合っていれば、おのずと学習が進んでいきます。
いっぽう、勉強方法が自分に合っていなければ、学習がはかどらないと言えます。


たとえば、自分に合ったクツをはいて歩くのと、自分に合っていないクツをはいて歩くのとでは、歩ける距離がぜんぜん違いますよね。
自分に合ってないクツはクツズレが出来たりもするし、結果は散々になりがちです。


これはプログラミングの学習にも言えます。


学習が早い・飲み込みが早い人と、そうでない人の違いは、自分に合っている学習法を選択しているかの違いと言えるでしょう。


え? 地の頭の良さの違いもあるって? ……。
たしかにあるかもしれませんが、この自分に合っているかというのはとても大事です。
逆に言えば、この選択によって地の頭の悪さもカバーできます。

なにせ私が言うのですから間違いありません。
私は学生時代、いわゆる勉強ができない劣等生でした。
しかし、プログラミングの学習においてはその人達を置いてきぼりにできました。


それはなぜか? 私が正しいプログラミングの学習法を選択していたからです。


初心者の方は学習方法の選択肢を知らない

しかし、プログラミング初心者の方はこの学習方法を知りません。
それは当然と言えます。


なぜならプログラミングの学習というのは普通の学習とはちょっと違うからです。


学校の勉強が出来ていたからと言って、かならず出来るようになるものとも言えません。

その証拠に、多くの大卒の社会人がプログラミングで挫折を経験しているのです。


大卒レベルの教養があるのに、プログラミングでは挫折した。
これも、その人達が数あるプログラミングの学習方法の中から、自分に合った学習法を選択できなかった結果と言えるでしょう。


具体的な学習方法

ではどんなプログラミングの学習法があるのか?
ここで具体的な例を見てみたいと思います。

文法を暗記する学習法

これはプログラミングの文法を丸暗記する学習方法です。

1から10まで文法を覚えて、さあプログラムを作ろうという感じですね。

いわゆる日本の英語学習的な方法と言えるでしょう。


しかしこれは、はっきり言っておすすめできません。


というのも、文法なんて最初はいい加減でも良いからです。
初心者の方にとって大事なのは、まずなによりもプログラムを動かすことです。

それに最近のプログラミングの環境は、コードの文法の間違いを指摘してくれます。
文法が間違っていたらその都度、修正すればいいのです。

そういった間違った文法の修正作業を繰り返していれば、自然と文法は身についてきます
ですから最初からすべての文法を丸暗記する必要などありません。

最初は文法を覚えることではなく、プログラムを動かすことを目標にするといいでしょう。


本を読む学習法

物語-歴史-夢-教えてください-794978

その名の通りただ本を読むだけの学習法です。


ネットや書店などで自分に合っている書籍を手に入れます。

あとは空いている時間にその本を何度も読むだけです。


一見すると、読むだけでプログラミングが出来るようになるの? という疑問が生まれますね。

本を読むということは、実際にプログラミングを行う前のストレッチと言えます。


プログラミングを覚えるには実際に書いて覚えていくのがいいですが、それに加えて本を読むことでその効果が高まると言えます。


何度も同じ本を読むことで自然と本に書かれているコードも覚えるようになっていきます。

そうなったら、本を見なくてもそのコードを書けるわけですから、本の知識が身に着いたと言えるでしょう。


写経で学ぶ学習法

写経(しゃきょう)とは、お手本のコードを書き写すことを言います。

プログラミング界隈では市民権を得ている一般的な言葉と言っていいでしょう。


もともとは仏教用語で、お坊さんが経典を書き写すことを指していた言葉です。
それがプログラミング界隈に輸入されて広く使われるようになりました。


実はこれは、プログラミング上級者の人もやっているプログラミング学習法です。
それほどポピュラーな学習法と言えます。

わたしもよくやります。


具体的な方法としては、まずお手本となるコードを見つけます。

次にそのコードを見ながら書き写していきます。

そしてその書いたコードを実際に動かします。


なんとこれだけです。


あとはこれを、繰り返すのも大事です。

私は写経するときは、何日か連続して同じコードを書き写します。

そうすることで身体がそのコードを覚えるのです。


頭ではなく身体というところが重要ですね。
どちらかというとこれは、筋トレに近い学習法と言えるでしょう。


筋トレに近いので、この学習法を知っていれば、例え勉強が出来なくてもプログラミングを覚えることは可能です。


初心者の方は、入門サイトや入門書籍に書いてあるコードを最初は書き写していけばいいでしょう。
大切なのは一回に書き写す量は多くなくてもいいので、同じコードを連日して写経することです。


これを1週間か2週間かぐらい続ければ、気が付いたら何も見なくてもコードが書けるようになっています。


小さなプログラムを作る学習法

ハリネズミ-動物-赤ちゃん-468228

これは小さなプログラムを作っていく学習法です。


小さなプログラムとはどういうプログラムを指すのでしょうか?

その代表と言ってもいいのがHello, World!(ハローワールド!)プログラムです。


Hello, World!プログラムとは、画面に「Hello, World!」とだけ表示する簡単なプログラムです。

プログラムの実行環境がちゃんと整っているかどうかの確認などでよく使われますね。
そういう意味ではちゃんと実用性のあるプログラムと言えます。


このHello, World!プログラムを改造すると色々な小さなプログラムを作れます。
たとえば以下のようなプログラムです。

  • Hello, World!を10回表示するプログラム
  • Hello, World!を逆順にして表示するプログラム
  • Hello, World!のHelloとWorldを入れ替えて表示するプログラム
  • 10回ループして偶数回だけHello, World!を表示するプログラム
  • 10回ループして奇数回だけHello, World!を表示するプログラム
  • Hello, World!をすべて大文字にして表示するプログラム
  • Hello, World!をすべて小文字にして表示するプログラム

などなど。
これらのプログラムの実用性は普通のHello, World!プログラムと変わりませんが、少し動作を変えるだけで色々な小さなプログラムを作れますね。


こういった小さなプログラムを沢山作ると、とても良い練習になるのです。

特に初心者の内は、こういった小さなプログラムをたくさん作ることを目標にするといいでしょう。

もちろん、自分でお題を考えてもかまいません。


こういった小さなプログラムを作る練習をしていると、自然と大きなプログラムも作れるようになっていきます。

それはなぜかというと、大きなプログラムとは小さなプログラムの集まりと言えるからです。


難しい言葉でこれは、ボトムアップ的なアプローチといえるでしょう。
ボトムアップとは、小さなところから大きなところへ広がっていくことを指します。
(ボトムアップの逆はトップダウンで、これは大きなところから小さなところへ狭まっていくことを指します)


小さなプログラムの作成は、作る時間もお手頃ですから、会社などで忙しい人にも向いています。
作り終わって時間が余っていたら、「もう一個作ってみるかな」ということも可能ですよね。


そういうった意味ではとてもお手頃な学習法と言えます。


大きなプログラムを作る学習法

ファンタジー-ビーチ-子供-3281842

いっぽうこれは、大きなプログラムを作っていく学習法です。

大きなプログラムとはどんなプログラムか?

それは、長期間にわたり作り続けられているプログラムを指します。


長期間ですから、期間で言うと2ヵ月とか3ヵ月、あるいはもっと1年とか2年とか、そういう開発期間のプログラムです。

なぜ開発期間の長いプログラムを作るといいのか?

じつは、開発期間の長いプログラムにしか見えてこない問題や課題というのがあるのです。

設計の問題だったり、運用の課題だったり、リファクタリングだったり、とにかく長期間の開発では色々なことが起こります。

これを経験できるのはやはり、長期間の開発だけです。
小さなプログラムの開発だけでは経験できません。


おすすめとしては、何か一つ「これを作るぞ!」というプログラムを決めて、腰を据えてじっくりと開発していくといいでしょう。

そのかたわらで息抜きに小さなプログラムを作っても良いですし、飽きてきたらしばらく放置しても良いです。
放置してしばらくしたら、再び取り掛かってみてください。その頃にはまたやる気も復活していることでしょう。


大きなプログラムを作れるようになると、色んな可能性が広がります

作ったプログラムを販売できるかもしれませんし、GitHub等で公開すればで「いいね!」が貰えるかもしれません。


そう言った意味では夢のある学習法と言えるでしょう。


アルゴリズムとデータ構造で学ぶ学習法

マクロ-歯車-ギア-エンジン-1452987

これはアルゴリズムとデータ構造を学びながらプログラミングを学んでいく学習法です。

ある程度、コードが書けるようになっている人向けの学習法と言えるでしょう。


そもそもアルゴリズムとデータ構造とは何か?


アルゴリズムとは、プログラミングにおいては問題解決の手順を指します。
そしてデータ構造とは問題解決に適したデータ構造を指します。


たとえば、以下のような問題を考えてみましょう。

  • 膨大な文書の中から 'だっふんだ' という文字列を検索したい
  • 数値のリストを大きい順に並び変えたい
  • プリンターのタスクを管理したい

こういったときに、アルゴリズムとデータ構造が使えます。


アルゴリズムとデータ構造は、いわゆるプログラミングの基礎と言っても良い知識です。
この知識があると、高速で効率のいいプログラムを作れるようになります。


と言っても、最近の言語ではアルゴリズムとデータ構造はライブラリ(プログラミングの道具)の形で提供されていることが多いです。
ですので、高度なアルゴリズムをのぞけば学習しなくてもその恩恵にあずかることが出来ます。


しかし、アルゴリズムとデータ構造を学ぶとプログラミングの幅が広がります。
特に将来的に難しいプログラムも作ってみたいという人は学ぶべきでしょう。


たとえばプログラミング言語を将来的に作りたいと考えます。
するとプログラミング言語の開発ではデータ構造である「木構造」の知識が必須になります。


こういったように、高度なプログラムではアルゴリズムとデータ構造がよく使われます。


実際に学ぶ場合は、ネットか書店で入門用の書籍を手に入れて、それを読んだり写経したりして覚えていくことになるでしょう。


プログラミング初心者の方は、最初は簡単なデータ構造を学ぶといいです。
たとえば

  • スタック
  • キュー
  • リスト

などです。


競技プログラミングで学ぶ学習法

最後は競技プログラミングで学んでいく学習法です。

ある程度コードが書けるようになった人向けの学習法と言えるでしょう。


競技プログラミングとはいったいどんなものか。

競技プログラミングとは与えられた課題をいかに速く正確に解くかという競技です。


競技プログラミング用のWebサイトでは、複数のコンテスト参加者に向けて課題が出されます。
コンテスト参加者はその課題を解いて、他の参加者と速さと正確さを競うのです。

そしてコンテストの上位ランカーになることで名誉と評価を得ることになります。


課題を解くことでプログラミングのスキルも上がりますし、ランクが上がれば名誉も上がりモチベーションも高まります。


そう言った意味では

  • コンテストなどで人と競い合うのが好きな人
  • パズルなどの問題解決が好きな人

に向いている学習法と言えるでしょう。


特におすすめの学習法は?

僧侶の後ろ姿

ここまでいろいろな学習法を見てきました。


その中でも、筆者がおすすめしたい学習法があります。

それが写経です。


写経をやれる時間を作れれば、自然とプログラミングのスキルは上がっていくと考えていいでしょう。

写経は何日か連続して行う必要もあるので、少し忍耐も必要かもしれませんが、丸暗記よりはマシです ( v_v )ウン


みなさんも自分に合った効率の良い学習法を見つけて、プログラミングライフを充実させましょう。

投稿者名です。64字以内で入力してください。

必要な場合はEメールアドレスを入力してください(全体に公開されます)。

投稿する内容です。

スポンサーリンク

スポンサーリンク

スポンサーリンク

スポンサーリンク