テクノロジー
【プログラミング勉強法】効率よく成長する3つの方法

あなたは、プログラミングの勉強法で悩んでいませんか?私も、最初は何から手をつけたらいいのか分からず、困った経験がありました。

この記事を読むことで、次のことが理解できるでしょう。

・プログラミングとは何なのか
・プログラミングを学習すれば、どのようになるか
・プログラミングをどのように学習すれば良いか

最後まで読んでいただければ「プログラミングを勉強してみたい!」「こんな風に勉強すればいいのか!」と感じられると思います。

TECH::NOTE(テックノート)は、未経験から最先端のテクノロジー人材へTECH::CAMP(テックキャンプ)、10週間でエンジニア転職実現までサポートを行うTECH::EXPERT(テックエキスパート)、これらのサービスを運営する株式会社divのオウンドメディアです。

まず、プログラミング学習についての基礎的な考え方をご紹介したいと思います。プログラミング言語について、ある程度理解している方は、プログラミング学習における学習サイクルへ読み進めてください。

プログラミングを学ぶとは?

tumblr_nqx92jmv3i1tubinno1_1280

プログラミングも「言語」の一つなので、英語の学習と似ています。今まで英語の学習では、どのように学び、どのような目標を持って学習をされていたでしょうか?

単語を覚え、英文法を学び、リーディング・ライティング・リスニングなどの学習をされたでしょう。

プログラミング学習を英語学習に置き換えると、次のように解釈できます。

 ・単語の暗記  →  使われるメソッドの把握

 ・英文法  →  コードを書く際のルール

 ・リーディング  →  他の人のコードを読んで理解すること

 ・ライティング  →  自分でコードを書くこと

 ・リスニング  →  話を聞いて、実装面の計画を立てること。

 

このように考えてみると、プログラミングを学ぶためにはコードを書くだけでなく、色々な方面を学ぶ必要があることが分かります。総合的な力がついて初めて、プログラミング力がついたといえるでしょう。

英語学習と同じように、最初から全てできる方もいませんし、全て同時に学習する必要もありません。また、どの順序で学べばよいかという決まりもありません。

ご自身で興味を持って、自由に学ぶことができますが、どのように学べばよいかの羅針盤がないので迷われると思います。

「最終的にどのような方法でも、自分で考えてコードを書けるようになる」

これがプログラミングを学んだ先にある、一つのゴールだと思います。

 

プログラミングを学ぶメリット

fffcdbc7875388180a1d4a63f7b12fd4_s

出典:写真AC

・社会的に必要とされているスキルを身につけられる

義務教育での必修化が検討されいる通り、これからの社会にとって必須のスキルになってきており、学校教育や企業研修で積極的に取り入れられてきています。

プログラミングスキルがあることが有利なのではなく、そのスキルが前提の時代がそこまで来ています。急速なIT化の流れもあり、スキルのない方は社会から取り残されていくでしょう。

プログラミングを学んだ方が全員、エンジニアになるのではなく、プログラミング自体についてや出来ることを知っておく必要があるでしょう。

 

・PC1台でもの作りができ、世界中のどこでも仕事ができる

今の世の中では、ネットワークの力で一人でも世界中に影響を与えられる時代になってきました。サービスなどのものづくりができるということは、言い換えれば社会に対する価値の提供できるということとです。

このような特徴も、プログラミング学習の大きな魅力の一つだと思います。多くの仕事は、時間を対価に労働力を提供し、それに見合った給与というものが発生します。そのために決まった場所、決まった時間を過ごさなければなりませんでした。

しかし、プログラミングを習得し、フリーランスとして仕事を獲得できれば、日本と言わず世界の何処の場所でも仕事だってできるのです。

海辺の近くで潮風を感じながら仕事をしたり、山などで大自然を感じながら仕事をすることだってできます。そのような生活に一度は憧れたことはありませんか?

理想の生活をプログラミングを取得することで叶えられます。

 

・論理的な思考癖が身につく

プログラミングは、人間が作業していることをプログラムに代用してもらう側面があります。

プログラミングする際に、どのような作業内容なのか、どのような工程をなのかなど客観的に分析をする必要があります

その分析結果をプログラミングで表現することを通して、「客観的に物事を見る力」「問題解決能力」「論理力」など学習しながら培われていきます。

 

プログラミングにおける基礎の重要性

どんなことを学習するにしても、基礎は大切であり、もちろんプログラミングでもそうです。では、プログラミングにおける基礎とは何でしょうか?それは、構文や意味といった共通した考え方です。

1つのプログラミング言語を学ぶことで基礎を知ることができ、他の言語にも応用できます。

最初のプログラミング言語を取得するまではハードルが高いかも知れませんが、この始めの一歩を乗り越えると、他の言語も習得しやすくなります。

 

プログラミングを取得すると出来ること

cf0714a6dec3f36d642f5f492c5e589a_s

出典:写真AC

選択するプログラミング言語によって、できる内容は変わりますが、今まで人が行っていたことをプログラムに任せることで、作業を効率化したり時間を確保できるようになります。

アイデアひとつで、自分の作りたいもの・何か誰かに使って貰いたいと思うものを、気軽に実現できるようになります。

おすすめのプログラミング言語

プログラミング言語はとても種類が多く、技術の進歩もあって、時代によって移り変わるものです。昨今において、ポピュラーな言語を幾つかご紹介します。

 

・Ruby

出典:オブジェクト指向スクリプト言語 Ruby

この言語はウェブアプリを作成するRuby on Railsというフレームワークを使用するために学ぶべき言語です。直感的にコード書くことができるため、学習コストが低く人気があります。

 

・Swift

FireShot Capture 190 - Swift - Apple(日本) - http___www.apple.com_jp_swift_

出典:Swift – Apple(日本)

日本人の多くが持っているiPhoneのアプリを作成するための言語です。これからも、国内のスマートフォンのシェアは多く変わることはないと考えられるので、これから需要がある言語の一つだと言えるでしょう。

 

・Java

最近、日本でも大きなシェアになりつつある、Androidスマートフォンのアプリを作成するための言語です。世界的にスマートフォンのシェアが大きいので、日本だけではなく世界的にみても需要がある言語の一つだと言えるでしょう。

 

プログラミングとは何か?を世界一わかりやすく解説

 

プログラミング学習における学習サイクル

1bdb80881614421d33ea9a269960bbce_m

出典:写真AC

初心者が陥りやすい落とし穴

初めてプログラミングを学ぶ際に気を付けた方がいいこととしては、完璧に理解をしようとしてから、コード書き始めることがあげられるでしょう。

最初から全部を理解することなんて厳しいですし、する必要もありません。完全に理解しないとプログラムが動かないなんてことはありません。

学習を進めていく中で徐々に理解を深めていき、疑問に思ったことがあれば復習を行えばよいのです。「プログラミングを始めたい!やりたい!」という意欲を保って学習を進めることが大切です。

 

「分からない、理解出来ていない」と感じたことを完全に放置してしまうことが、一番の学習の妨げとなるでしょう。

疑問はその場で調べ解決するのが一番ですが、その時に解決出来なくても、何かメモなどに残しておいて疑問を「忘れない」ということが大切です。またいつか同じ疑問に遭遇します。

その時の自分への宿題にしておきましょう。レベルアップした自分であれば、その疑問を解消してくれるはずです。

また、反対に全く考えずにコードを書いてしまうことも良くありません。何も考えずに参考書などを丸写しでコードを書いてしまうと、色々な学習のポイントに気づかず、一つのアプリを完成させてしまうことも出来ます。

このようなことを何回も繰り返していては、自分でアプリを作ることや開発を行うことなどのスキルが身につくのは、遠い未来の話となってしまうでしょう。

要は、バランスをとって学習を進めていくことが大切になります。

 

インプットとアウトプット

<インプット>

プログラムを真似る

まずは、どんどんコードを書いた方がいいと感じる方もいると思いますが、プログラムにはある程度の決まった型があります。

最初から全て覚える必要はないですが、サービスや仕様によっては、基本のベースはこのようにプログラムを作る、既存のものを活用することもあるので、応用力をつけるためにも真似することで、基本形を知っておくといいでしょう。

 

人に教えて貰う

人から教えてもらうことは、自分では気づかない点やアイデアに触れられるので、良い経験となります。時には新しいことを学ぶには、人に教えて貰う環境に飛び込む必要もあります。

自分で情報収集をするよりも、他人と情報交換することで効率的に知識だけでなく経験談を得られます。

 

<アウトプット>

まずはプログラムを書いてみる

プログラムを書くには、複雑なコードを書かないといけないと考えてしまう方も多いかもしれません。しかし、そんなことはありません。

Rubyという言語では、下記のように書くだけでも一つも立派なプログラムです。

puts “Hello World!”

「これだけ?」と思うかも知れませんが、短くても長くてもプログラムはプログラムです。結局は、このような1文のプログラムの積み重ねがアプリやプログラムなるだけなのです。

「プログラムってこんなにも親しみやすいものなんだ」と感じるところからスタートしてみましょう。

人からいくら教えてもらっても、いくら書籍を読んでも、サイトを参考にしても、プログラムを書いていない人がプログラムを書く能力は絶対に伸びません。

まずはどんなものでもいいので、プログラムを書くところから初めてみましょう!!!

 

他の人に話す

人に教えて貰うことも重要で効率が良いことなのですが、それ以上に人に話すこともとてもいい学習の方法の一つです。

なぜなら、「現時点での自分の理解度」を話すことで確認でき、客観的に知ることができるからです。話す中で上手く話せなかった部分や詳しく説明できなかった部分は、自分の理解が浅いといえるでしょう。

また、聞き手がプログラミング経験者であれば、リアルタイムでのフィードバックを得られるのも大きなメリットです。

 

 自分で開発を行ってみる

最大のアウトプットは、自分でアプリを開発してみることです。

ただ学習している間には気づくことのなかった疑問やできない部分がたくさん見えてくると思います。それと同時に、できるようになったことも確認できるでしょう。

何を作ってみればいいか分からない場合は、身近なものから真似してみましょう。例えば、最初は自分で学んだ内容を使用することを目的にするための練習アプリでもいいですし、いつも使っているアプリを模倣してみるのもいいと思います。

一度作ってみたという経験はとても重要になってきます。

 

具体的なプログラミング勉強法

terminal

出典:写真AC

インプット、アウトプットの重要性を踏まえ、もう一歩踏み、具体的な勉強方法について紹介します。

 

書籍活用法

まず、おすすめしたいのは、情報を一元管理することです。

ウェブサイトや書籍で調べれば、大抵のことは解決できると思います。調べる際、最初から検索をしてしまうではなく、先ず何を見て調べるのかを決めておくことです。

振り返りしつつ確認できる1冊を作ることをお勧めします。その1冊に自分の学んだことを書いたり、リファレンス、目次のように見返すことが大切だと思います。

同じ内容のことを調べる・確認するにしても、毎回同じものを見るのか・異なるもので確認するのかでも学習度は違ってきます。

いつも同じものを見返していると、暗記をしようと思っていなくても、思い出すことや覚えることが自然とでききます。

これは書籍だけではなく、ウェブサイトについても同じことがいえるでしょう。「疑問は1度で覚え、検索をしない」というのが理想ですが、毎回できるとは限りません。

その場合は、そのサイトのブックマークを残しておき、毎度参照すれば良いかと思います。

 

ウェブサイト活用法

ウェブサイトを調べるだけのツールで終わらせず、アウトプットの場所として、活用する方法をご紹介します。

 

まとめサイトなどに投稿するメリットは、次のような点があります。

 ・自分のアウトプット場所にできる

 ・アウトプットを行うことで、自分の理解度を測ることができる

 ・他の人に見れられていることで、曖昧なことが書けない

 ・自分の投稿について、他の人からフィードバックを貰らえる

 ・備忘録になる

自分のために、そして自分と同じようなレベルで苦しんでいる人は世の中には沢山います。その人達のために、自分が理解したことを書くことで、お互いに助け合えるでしょう。

プログラミングに関する情報を共有するサイトにQiitaがあります。

ここには、プログラマーの方から初心者の方まで様々な方が投稿をしています。自分の投稿を行う際はもちろん、自分の分からないことを調べる際にも、重宝しますので是非活用してみて下さい。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-26-0-12-59

出典:Qiita

 

対話の活用法

誰かと話すこともとても有意義な勉強方の一つです。特徴としては、次の通りです。

・リアルタイムで修正を行うことが出来ること

・自分の理解が正しいのかのFBを貰うことが出来る

・自分の分からないことを汲み取ってくれる

・+αの知識を教えて貰える

暗記することが大切なのではなく、必要なときにアウトプットできればいいので、積極的に色々な人と話して欲しいと思います。

 

こちらの記事も是非参考にしてください。

初心者に捧ぐ!プログラミングを独学で勉強する最強入門バイブル

【社会人必見!】プログラミングの基礎を独学できるサービス10選

 

まとめ

ffd07fd7fb9e33595d4cab123a9f6890_m

出典:写真AC

いかがでしたでしょうか。

この中で続けられると感じたもの、自分に合った方法はこれ、というように自分の勉強法・学習スタイルを確立することが大切です。

確立できると、壁にぶつかったときに乗り越えられる、解決できる力もつきやすくなると思います。

また、新しいことを学んでいくときに、次のことが大切になります。

 ・自分が知らないこと、分からないことを自分で認める

 ・分からないことを解決する、もしくは自分の将来への宿題にし、忘れないようにしておく

 ・概念などに触れているうちに腑に落ちていくこともあるから、焦らない

乗り越えていく方法がどんな方法であれ、自分に合った方法を見つけることだと思います。今、学習を進められていて、思ったように学習を進められない方は、もしかしたら自分に合った方法で学習をされていないだけの可能性が十分にあります。

まずは、

puts "Hello,World!"

という文字で、プログラミングという新しい世界に挨拶をしてみませんか?

 

関連記事を読みたい方はこちら

サラリーマン必見!就職・転職に役立つプログラミング資格ベスト5

プログラミングはゲームで学べ!楽しくて学べる厳選17サイト

【初心者必読】コマンドプロンプトの使い方入門 & 基礎コマンド10選

 

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

  • カテゴリー