TIS ENGINEER NOTE

ITエンジニアのためのキャリア向上ノウハウブログ

エンジニア入門

最も効率の良いプログラミング学習フロー

更新日:

こんにちは、フリーエンジニアのてぃすです。

エンジニアの需要が拡大し、売り手市場となったことから、プログラミングを学習し始めた人、学習してみたいという人がかなり増えてきています。

これからの時代プログラミングを学習することは、豊かな人生を目指す上で非常に強力なスキルとなってきます。

今回はプログラミング初心者の方々に向けて、最も効率的なプログラミングの学習方法を解説していきます。

はじめに

この学習フローでは、遊びのメカニズムを利用して進めていきます。

どういうことでしょうか。説明していきます。

遊ぶ感覚というのは最も学習効率を高める

テレビゲームをやったことのある人なら分かりやすいと思いますが、RPGをやっていて必殺技の発動条件とか敵モンスターの弱点って、結構複雑なものでもすんなり覚えることができましたよね?

それらの知識って特に覚えようとして覚えたわけではなく、楽しんで取り組んでいく中で自然と覚えていったものだったと思います。

自分の中から湧いてくる探究心・好奇心を伴った行動は、嫌々机に座って勉強するときとは比較にならないほどの学習効率を引き出すのです。

この遊びのパワーを学習に上手く取り入れれば、学習効率の向上だけではなく、高いモチベーションをもって取り組むことが可能です。

そのことを頭に置いた上で今回紹介する学習フローを実践していただければ幸いです。

無理に楽しめというわけではない

今回の記事において1つ勘違いしないでおいて欲しいのが『無理に楽しまなければならない』というわけではない、ということです。

あくまで遊びのプロセスによって得られる学習効率を上手く活用すべきというだけですので、楽しいと感じられないから自分にはプログラミングは向いていないと考える必要はありません。

もちろん楽しんでやるに越したことはありませんが、効率的に稼ぐツールとして、あるいは必要にかられてプログラミングを学習を始める人でも使えるテクニックであると捉えていただければと思います。

ではこれから最も効率のよい学習フローをご紹介していきます。

作りたいものを選ぶ

いきなり学習本や学習サイトを利用し始めるのは効率的な手段ではありません。

まずはプログラミングを使って作りたいものを選んでください。

ワクワクするような完成品を考える

自分が作成すると考えるとワクワクするような完成品であればそれがベストです。ちょっとしたゲームのようなものでもいいですし、日常生活でちょっと役に立つようなアプリ・ツールなどでも構いません。

もしそれらを考えるのが難しい場合、SNSなどの身近なWebサービスでもよいでしょう。普段自分が触れているものを自分の手で作ることができるというのは、少なからずワクワクするものではないでしょうか。

ちなみにワクワクするもの、というのはあくまでオプションです。あれば良い程度のものですので、もし見つけられなかったとしても問題ありません。

一番重要なのは完成品を決めるということです。

学ぶ言語・技術を選ぶ

ここで実際に学習するプログラミング言語などを選択します。もし既に学習する対象が決まっていればスキップして構いません。

条件としては1で選んだ完成品を実現できる技術であることが好ましいですが、初心者の方にはそのあたりを判断することはちょっと難しいかも知れません。

簡単にジャンル毎によく使われるプログラミング言語を紹介しておきます。

  • WEBサービス --- Ruby,Java,javascript,PHPなど
  • スマホアプリ --- Swift,Kotolin,Javaなど
  • 分析・人口知能 --- Python
  • 業務システム --- Java,C#など

正直このプログラミング言語を選ぶ段階でそこまで悩む必要はないです。

プログラミング言語は一つ覚えれば他の言語も驚くほどスムーズに学習できるようになります。つまり仮に後ほど使わなくなったとしても無駄になるということはありません。

それにどっちにしろプログラマーとして働いていくことになった場合、当然のように複数のプログラミング言語を習得することとなります。

つまり、ここで迷っている時間があれば、その分学習を進めた方が効率的です。

個人的なオススメはRubyです。下記記事にてオススメの理由を書いていますので、是非ご覧になって判断材料としていただければ。

プログラミング初心者にRubyを強くオススメする理由

こんにちは、フリーエンジニアのてぃすです。 プログラミングを始めようと思った時にまず立ちはだかるのが、 どのプログラミング言語を選択するか という問題です。 Googleで『プログラミング おすすめ』 ...

学習対象の概要をざっくりと把握する

やっと本格的に学習に取りかかるわけですが、ここではプログラミング言語についてがっつり勉強する必要はありません。

完全にプログラミング初心者の方であれば、

  • プログラミングがどういうものなのか
  • 条件分岐、繰り返し処理とはどう書けばよいか
  • 変数とは何か

くらいの概要がふんわり把握できた程度でとどめておくべきです。

それは何故か。ここで本格的に基礎学習を行うのは効率が悪いからです。

プログラミング初心者の方はよく教則本や入門書を、最初から最後まで読んで内容を理解しようと努めます。

でもその段階ってプログラミングにおいて何が重要かが分からないはずです。

そんな状態で本一冊を読破するのには時間がかかりますし、何より遊びとはかけ離れた行為です。下手したら「プログラミングってつまんねーな」となって諦めてしまう人すら現れます。

だからこの段階では思い切ってサラッと概要を把握する程度にとどめておくのがベストです。

遊びを例にすれば、テレビゲームを買ってきて、ゲームを始める前に取扱説明書を何日も読みこんでからゲームを始める人なんていませんよね。それと同じことです。

無料学習サイト

ちょっと前に比べるとプログラミングを勉強するための環境はかなり整っており、Progateドットインストールなど実際に手を動かしながらプログラミングを学べる質の高いサービスがいくつも存在しております。

しかしこれらのサービスも今回紹介する学習フローにおいては軽く流す程度で済ませておく方が吉です。

これまたゲームを例に出すとProgateやドットインストールにおける学習は、操作を覚える為のチュートリアルのようなものです。

チュートリアルをずっとやってても面白みは薄いですし、実践の中で得ることのできる知識に比べると定着度はどうしても弱くなります。

ただし教材として優秀であることは間違いありませんので、知識を詰め込むというよりもプログラミングの感覚を掴むために活用すると効果的でしょう。

4.実際に作りたいものを作る

さあいよいよ学習本番。これまでの下準備が効果を発揮する段階です。

言葉にすれば簡単です。1で決めた作りたいモノを2で決めたプログラミング言語で作るだけです。

最初のうちは分からないことばかり

基礎学習をサラッと終わらせたわけで、最初は何をすればいいかがさっぱり分からないはずです。

そこで初めて教則本などを利用していきます。分からないことを都度調べながら作業を進めていくわけです。本に見つからなければインターネットで検索してください。

これって効率悪くないか?と思ってしまうかもしれませんが、実際は全くの逆です。

答えを見つけて達成することの重要さ

分からない部分があったときに調べることによって、疑問に対する答えを見つけた時の達成感というものを得ることができます。

この達成感というのは学習において大切なものであり、記憶への定着を強力にアシストしてくれます。

本やサイトとにらめっこして覚えたことって、覚えたつもりになっているだけで、実際に使うべきタイミングに思い出せないことがほとんどです。

ここで最初に話した遊びのメカニズムを思い出していただければ分かりやすいと思います。

自分の力でクエスト(難題)をクリアして次のステージ(プログラミングの機能)に進んでいくことによって、貴方の創造的で好奇心旺盛な部分を活用することができるのです。

手段を選ばず貪欲に

この段階では手段を選ばず、分からないことの答えを見つけてください。

プログラミングに心得のある知人がいれば頼り、エンジニア向けの質問サイトteratailなど使って具体的な質問をしてみるのもよいでしょう。

自分の言葉で疑問を解消するための言葉を選ぶことも良いトレーニングになります。

ひたむきに作りたいモノの完成を目指しましょう。機能を追加したり、発生したエラーを解消する中でテキストを読むだけじゃ得られない学びを得ることができます。

5.学んだことをアウトプットする

自分が学ぼうとしていることを他人に教えると、記憶しやすくなるのと同時に理解を深めることができます。

教えるまで行かなくても、整理して伝えようとするだけでもかなりの効果があります。

友人に話したり、ブログを書く、Qiitaなどのプログラマー交流サイトに投稿するなどで構いません。

ゲームで言えば、難しいステージについて友人と語らうことに通じるものがあります。

また学習が完了したときにではなく学習の最中にアウトプットすることが大事です。同じ箇所で苦しんでいる人を救ってあげることができるかもしれませんし、アウトプットを通じて得ることのできた理解が以降のステップにおいて役に立つことがよくあるからです。

まとめ

これまで書いたことを一言でまとめると、

能動的に行動を起こすということが、最も効率のよい学習方法である。

ということです。入門書や学習サイトを使った学習ではどうしても受動的な学習となりがちです。

何をやっているのかさえはっきりと分からない状態で、試す・探るなどの行動をとることによって、自然な探究心・好奇心が沸き出てきます。

それによって遊びの持つ学習効率を利用できるようになる、というわけです。

何度かテレビゲームの例えを持ち出しましたが整理すると以下のような形になります。

  • サービス作成 → ゲームそのもの
  • 教則本 → 取扱説明書
  • 無料学習サービス → チュートリアル
  • 公式ドキュメント、質問サイト → 攻略本

貴方がゲームで遊ぶとき、それぞれの道具をどのように扱うかを思い出して、プログラミング学習の手順に重ねてもらえると今回私が紹介した学習フローを把握しやすくなるのではないかと思います。

この記事を読んでくれた方々の充実したプログラミングライフを祈っております。

閲覧いただき、誠にありがとうございました。

よく読まれている記事

エンジニア独立

2019/4/15

【2019年版】現役フリーランスエンジニアがオススメするフリーランスエージェント4選

どうも、フリーランスエンジニアのてぃすです。 僕は正社員時代の月収は20万円を切るくらいだったのですが、独立したことで同じ労働時間で月100万円をキープできるようになりました。 現在はちょっと働く時間を減らして週3リモートで月70万円で働いていますが、このくらいのバランスもストレスが少なく、快適な日々を過ごすことができています。 そんな感じで独立から1年以上が経過し、わかったことがあります。 ITエンジニアは今の相場から考えれば、フリーランスになった方が圧倒的に得だなということです。 もちろん正社員ディス ...

続きを読む

エンジニア入門

2019/4/15

プログラミングの勉強はモチベーションだけでやると挫折する

こんにちは。フリーエンジニアのてぃすです。 最近は未経験からエンジニアを目指したり、エンジニアとしてのキャリアを向上させるために、プライベートでプログラミングを勉強をし始める人が増えてきています。 僕自身、プライベートの時間に未経験言語の勉強をしてキャリアアップした経験があるので、非常にいい傾向だと思っています。 しかしSNSやブログなどを眺めていると、 「この人モチベーションだけで勉強しているな」 という人を多く見かけます。 個人的な経験と人から聞いてきた話から、このようにモチベーションだけで勉強してい ...

続きを読む

エンジニア入門

2019/4/15

エンジニアは勉強し続けなければいけない職業なのか

こんにちは。フリーランスエンジニアのてぃすです。 最近は就職・転職する際にエンジニアを選択肢に含める人が増えてきています。 しかしエンジニアという職業を候補にあげるにあたって、 エンジニアは働きながら勉強し続けなければいけないのではないか? という疑問もよく見聞きします。 そこで今回はフリーランスエンジニアとして活動している僕の視点からこの疑問についての答えを説明していこうと思います。 結論 先に結論を述べると、 エンジニアは勉強し続けなければいけないのか? という疑問の答えはNOです。 決してエンジニア ...

続きを読む

エンジニア独立

2019/4/15

他のエンジニアと差をつけるための面談前の下準備

こんにちは、フリーエンジニアのてぃすです。 僕は正社員から派遣、フリーランスへと転身する際に、絶対に妥協したくないという意志の元、半年ほどの間に10件近くの面談を体験してきました。 今日はその時の体験を元に、エンジニアが面談を受ける前に下調べしておくべきコンテンツについて紹介していこうと思います。 なぜ下調べが必要か エンジニアって面談を軽視している人が多いんですよね。 ある程度の経歴があるエンジニアは、売り手市場であることも手伝い、まあまあ満足できる就業先を得られるのでそこまで面談対策をじっくりしている ...

続きを読む

エンジニア独立

2019/4/15

文系出身エンジニアが語る「弱いエンジニア」戦い方

こんにちは、フリーランスエンジニアのてぃすです。 僕は文系大学を卒業し、新卒で入ったITコンサル会社で入社半年後に軽くC#を扱う機会が訪れるまで、プログラミングやエンジニアリングに触れたことが一度もありませんでした。 パソコンも基本的に動画を見たりゲームをするための便利な箱くらいな印象。 一方、エンジニア業界には中学生時代から趣味でプログラミングをしてきたり、理系大学でバリバリ情報系を学んできたエンジニアがゴロゴロいるわけです。もう機械語で会話すればいいのにと思うレベルの猛者揃いです。 そうなると僕のよう ...

続きを読む

-エンジニア入門
-

Copyright© TIS ENGINEER NOTE , 2019 All Rights Reserved Powered by AFFINGER5.