開発とプログラミング

プログラミング勉強を効率化するアイデア

プログラミングを勉強するにあたって、どうせなら少しでも効率的に学びたいですよね。これは初心者であっても、ある程度勉強が進んでいる中級者以上の人でも共通の悩みです。

効率化するのに重要なのは、適切な勉強法を選ぶこと。そしてそれを続ける、継続力をつけることです。

この記事では現役のフリーランスとしてプログラミングで稼いでいる私が、これまでの成功体験・失敗体験を元に、効率的にプログラミング勉強を進めるポイントを解説しています。

 

まずはプログラミング勉強のステップをおさらい

プログラミング学習を進めるために、どんな手順で勉強したら効率よく勉強できるのでしょうか?

まずはプログラミングを学ぶステップ(流れ)について整理しておきましょう。ただし、ここで示しているステップは一例です。人によって適切な勉強のやり方は違うと思いますし、個人の向き不向きに合わせて調整していくのがベストです。

基本的なプログラミング勉強のステップは、環境の準備から始まり、タイピング練習必要な技術の調査言語の学習アウトプットというように流れていきます。プログラミングを学ぶ上で重要なのはこれらの学習を続けることです。

具体的に何をすればよいのか見ていきましょう。

 

環境の準備

環境の準備というのは、プログラミング学習に必要な環境を整えることです。

プログラミングを行うためには、パソコンとネット環境が必要になります。パソコンはデスクトップでもノート型でも構いませんし、最初から高価なものを手に入れる必要はありません。ただし、外出先でも学習したい場合には、ノート型を選ぶとよいでしょう。
常時使えるようなネット環境を整えておけば、分からないことをその都度ネットで検索したり、オンライン学習を利用することができます。特に調べ物はかなり頻繁にするはずなので、スマホでも何でもいいので、Google検索できる環境を用意しておくのが最も重要なことです。

プログラミング勉強で必要な環境

 

タイピング

見過ごされがちですが、プログラミング勉強においてタイピング能力はとても重要です。スマホの入力にばかり慣れていると、パソコンのタイピングがおぼつかないという事はよくありますが、プログラミングではそれは致命的です。まずは、ある程度の速度でタッチタイピングできることが必要になります。ここが最初の壁になる人は多いでしょう。

ですが安心してください。タイピングの練習ソフトやサイトなどを活用すれば、コツコツ練習することで誰でもタイピングの速度と正確性をアップさせることができます。最初はキーボードを見ながらで正確性重視でOKです。徐々に慣れていくと、勝手に速度は出てきます。
逆に言えば、時間を取って練習せず、いつまでもタイピングができないという人は、プログラマーには向いていないのかもしれません。

タイピング速度は、プログラミングをする時の作業効率にも関わってきます。また、書き込みを間違えるとプログラムが正しく動かなくなるため、正確性も求められます。苦手だなと思う人は、言語の勉強と並行して、タイピングの練習も行なっていくのをおすすめします。

 

必要な技術の調査

プログラマーは、様々なスキルが必要になる職種です。プログラミング言語はもちろんですが、その周辺技術の知識も必要になることは多いです。

例えば、ほとんどの仕事では他のエンジニアと共同して作業することになるでしょう。そうした現場ではほぼ必ずバージョン管理技術(Gitなど)が使われています。また、Web系の仕事では、プログラミング言語の他にも、HTMLなどのマークアップ言語や、データベース、ネットワークなどの知識も必要になるでしょう。

もちろん、いまは何を言っているのか分からなくてもOKです。ですが、どのような分野で働くかで求められるスキルが変わってくるということは覚えておきましょう。プログラミングの本や講座を買う前に、自分が働きたいと考えている分野ではどういう技術が必要になるのかを調べておき、学習すべきものを決めましょう。

 

言語の学習

必要な技術の調査ができたら、実際に言語の学習を進めていきます。

前のステップで「どうしても言語をひとつに決められない」「何を勉強したらいいか分からない」という人もいるでしょう。
そんなときは、RubyやPHP、Pythonなど、開発現場でよく使われている代表的な言語から学習を始めてみることをおすすめします。少なくとも、これらの言語を学んでおいて損はしません。

 

アウトプット

プログラミング言語の勉強をしつつ、アウトプットを行います。

アウトプットというのは、実際に開発をしてみることです。どれだけ知識があっても、実際に手を動かしてみなければ実践力が身につきません。実践力がなければ、プログラミングで稼いでいくことは不可能なので、アウトプットはとても重要です。

最初は教科書の例題を丸写し(写経)して動かしてみることです。実際に動かすまでにいろんな障害があるでしょう。それらの障害を乗り切ったときに初めて実践力が身につき、プログラマーとしてのスキルが上昇していきます。

ある程度、プログラミングについての理解を深めたら、自分で自由にプログラムを書いてみましょう。最初は小さくて簡単なプログラムでOKです。自分で企画して、実際に実装し、さまざまな問題を解説して動かしてみるうちに、プログラミングのスキルが上がっていくでしょう。

そして、この学習~アウトプットの流れを継続していけば、ほぼ確実にスキルは上がっていきます。大事なのは続けることです。プログラミングの能力は、天性の才能や数学の解答力・地頭のすごさではなく、継続力で決まると思っています(もちろん、前者の能力もあるにこしたことはないです)。少しずつ自分のできる範囲を広げていくのが大事になってきます。

 

失敗するプログラミング勉強の典型例

なかなかプログラミング学習が上手く進まないと悩む人は多くいます。そういう人は、失敗する勉強法を実践してしまっているケースが多いです。では、どういう勉強法を行うと失敗してしまうのでしょうか。代表的な3つの失敗例を紹介していきます。

 

テキストを丸暗記しようとしてしまう

テキストの丸暗記

テキスト(教科書)で勉強する時、全てを覚えようと隅から隅まで丸暗記する方もいるかもしれません。しかし、ただ暗記しただけでは、知識やスキルが身につきません。

ただ文章として覚えるだけでは内容まで理解できないため、いざ実践しようと思ってもなかなか上手くいかないでしょう。また、膨大なテキストを全て暗記するのはかなり大変ですし、無意味です。実際にプログラミングで稼いでいるプロでさえ、一部の超人的な人を除いて、言語の中身をすべて理解している人はいません。

大事なのは、基本的なことを理解して自分でプログラムを書けるようになること。そして「何が分からないのか」をちゃんと認識して、それを調べられるようになることです。

「暗記が苦手でプログラミング学習を挫折した」という人も多いですが、方向性が間違っています。もちろん、覚えておくべき知識はありますが、基本的にプログラミング学習は暗記の勉強ではありません。効率的に学習を進めるためには、ただ暗記することではなく、内容を理解することを意識した方がよいです。

 

文章を読むだけで実践していない

本を読むだけ

本を活用して学習することはもちろんOKですが、ただ読んで納得するだけでは不十分です。

まず、文章を読んで頭だけで覚えようとしても確実に忘れてしまいます。大切なのは、手も動かして実践しながら学んでいくことです。テキストにプログラムの組み方が書かれているのであれば、それを読んで終わりではなく、実際に自分でそのプログラムを組んでみましょう

頭だけではなく、体にも覚えこませることでより効率的に学習が進められるようになります。

そして、実際に動かす過程で、「こうすればもっと簡単にできるのでは?」とか「なんか上手くいかない」とか、さまざまな発見が出てくると思います。そうした発見でさらにスキルが加速度的に高まります。実際に手を動かさない理由がないですね。

 

短期間で覚えようとしてしまう

短期決着を目指す

最初から結果を求めすぎる

仕事に活かすために、プログラミング学習を進めている人も多いでしょう。そういう人に多いのが、短期間でマスターしようと焦ってしまうこと。

効率的にプログラミング学習を進めることは大切ですが、無理に急ぐ必要はありません。むしろ焦って無理に学習を進めようとすると、何も身につかないまま時間だけが過ぎてしまうケースは頻繁に目撃しています。焦ることは余計に効率が悪くなる原因となります。

プログラミング学習にも段階があるので、まずは基礎からしっかり学んでいくことが大切です。基礎が身についていないまま次の段階に進んでも、内容が理解できず途中で挫折してしまうでしょう。しっかり理解してから次に進むというように、着実に段階を踏みながら学習を進めていきましょう。

 

プログラミング勉強で効率性を高めるには

プログラミング学習を効率的に進めるためには、いくつか押さえておきたいポイントがあります。ここからは、効率的に学習を進めるコツについて詳しく解説していきます。

 

目的に合わせて学習内容を決める

同じプログラマーでも、ゲーム開発を行うプログラマーと、ホームページ制作を行うプログラマーでは、学ぶべき内容も変わってきます。そのため、目的に合わせて学習する内容を決めることが大切です。

ゲーム開発をしたいのに、ホームページ制作に必要な知識やスキルを優先的に学んでも遠回りになってしまいます。まずは自分がどういう仕事をしたいのか目的を明確にして、それに合った学習内容を決めましょう。

ホームページ制作をしたいのであればよく使われるRubyやJavaScript、アプリ開発をしたいのであればSwiftやKotlinなどを重点的に学ぶとよいでしょう。

 

インプットだけではなくアウトプットも大切

学習というと、まずはテキストなどを見て知識を身につける、インプットを重視する方が多くいます。もちろんそれも大切ですが、効率的に学習を進めるためには何よりアウトプットを重視することが大切です。

どんなに知識を身につけても、アウトプットする方法が分からなければ実践で活かすことができません。勉強した知識は必ず実践して、アウトプットもしておくようにしましょう。

 

頑張り過ぎないことが大切

適度に休む

少しでも早くプログラミングのスキルを身につけようと、無理な学習スケジュールを組んでしまう人もいます。

無理に頑張りすぎてしまうと体調を崩し、寝込んで長期間勉強できなくなってしまうかもしれません。それでは効率的に学習を進めることができません。

頑張りすぎず、適度にサボることも効率的に学習を進めるコツの1つです。毎日何時間も勉強して疲れが溜まってきたら、無理に勉強を続けずしっかり体を休ませてあげましょう。適度にサボって体をリフレッシュすれば、学習意欲も戻って、より集中して学習を進められるようになります。

 

メンタルを十分に気にしてあげること

そしてこれはプログラミングで挫折しないために、最も重要なことメンタルの調整です。

学習を進めていると、やる気が極端に落ち込んだり、不安が高まったりなど、メンタルが不安定になってしまうこともあるでしょう。全然学習が進まず不安になる、内容が理解できず「自分には向いていない」とマイナス思考になるなどは、たぶん全員経験します。

大切なのは精神的に疲れていると感じたら、一度学習から離れてみることです。無理に学習を進めると、余計にメンタルが不安定になり、悪循環から抜け出せなくなります。勉強のことは忘れて趣味に没頭してみる、外に出かけて体を動かしてみるなどして、メンタルの調整をしてみましょう。

何度もいいますが、プログラミング勉強で最も重要なことは、続けることです。
どんなに進捗が良くなくても、少しずつでも、ある程度リズムを刻んでいればほぼ確実に上達していきます。そのために、やる気などのメンタル面をうまくコントロールしてあげることも重要になるわけです。

プログラミング勉強を効率化する上では、精神的なマイナス部分を整えてあげることが最重要かもしれません。

 

プログラミング勉強の真の目的

プログラミング学習の目標は色々ありますが、中でも大きな目標になるのが知的体力をつけることです。

知的体力というのは、応用力やアイデアを生み出す力です。プログラマーは一からシステムの開発などを行うクリエイティブな仕事なので、発想力が求められます。ただ設計に沿ってシステムを組むだけではなく、どうしたらより扱いやすいシステムになるのか、クライアントの要望に応えるためには何が必要なのかまで考え、開発を行わなければなりません。

アプリやゲーム開発などを行う仕事でも、アイデアを生み出す力は必要になります。

テキスト通りに学習を進めるだけではなく、色々なシステムやアプリを自分で使ってみる、ウェブ上のサービスを利用してみるなどして、アイデアを蓄えておくのもよいでしょう。

知的体力を身につけることを目標に設定した上で、どのように学習を進めるべきかを考えてみてください。

 

-開発とプログラミング
-,