PC
更新
【プログラミング入門者必見】基礎から学ぶための勉強方法について
※当記事はアフィリエイト広告を含みます。
プログラミングができるようになると、自分が理想とするスマホアプリや遊びたいゲーム、Webサイトが作れたりします。また、エクセルなどで使えるものを覚えれば、仕事の効率化にも役立ちます。
とはいえ、プログラミングの勉強を始めたいと思っても、正直何から手をつけたら良いのか、よく分かりませんよね。
わからないからこそ、やたらと難易度が高く感じられ、始める前から挫折しそうな感覚になってしまう方も多いでしょう。
ここでは、プログラミングとは何か、どんな言語があるかに始まり、学習に役立つアイテムを各種紹介。予備知識の必要な話ではありませんから、気軽に読み進めてみてください。
目次
そもそもプログラミングとは
プログラミングをかなりザックリ説明すると「こんなことができたらいいな」を叶える手段の一つです。人力でやると面倒臭いことをコンピューターにやってもらうときに用います。
しかし、どんなに優秀なコンピューターも、生まれたばかりの時は赤ちゃんと同じで、自分だけでは何をどうすれば良いのかがわかりません。それを教えてあげるのがプログラミングといえます。もう少し掘り下げましょう。
コンピューターへの指示
人間なら「ここをもうちょっとカッコよくして、ここはササッと計算して欲しいんだ」と伝えると、なんとなく分かりますよね。しかし、コンピューターにはお察し能力が無いため「どこを何色にすればいいですか?」「どんな計算ですか?」「ササッというのはどれくらいの速さですか?」というのが分からないと動いてくれません。
また、コンピューターは融通も利きません。人間なら、初めて取り組むことでも今までの経験から何とかなったり、人に助けを求めて解決できたりします。
しかし、コンピューターは初めて取り組むことは教えてもらわないとわからないし、余所のコンピューターに自ら助けを求めに行ったりもしません。懇切丁寧に「この仕事は、こうやって行うんですよ」と教えてあげる必要があります。
「プログラム」という言葉自体は演奏会などで配られるものと同じように「実行する順番」を示します。つまり、「プログラミングとは何か」を要約すれば「コンピュータに実行して欲しい動作の順番を指示すること」です。
プログラミング言語がある
コンピューターは基本的に「0」と「1」だけで情報を理解しています。人間から見ると1枚の綺麗な風景写真も、コンピューターからすると0と1の羅列に見えているといった状態です。この0と1だけで構成された情報を機械語と呼びます。
では「プログラミングは0と1でやるのか」というと、そういうわけにもいきません。0と1だけをミスなく打ちこみ続けるのは無理があるし、どこかが間違っていても、どこが間違っているのかチェックすらできないでしょう。あまりにも難易度が高すぎますよね。
そこで、人間に読み書きができて、コンピューターにも理解しやすい言葉が生まれます。それがプログラミング言語です。日本語や英語と同じように、プログラミング言語にも使う単語や文法に似たルールが決まっています。そのルールの中でコンピューターに指示を出してあげると「わかった、やるよ」と実行に移してくれるわけです。
初心者向けプログラミング言語
プログラミングはコンピューターに理解しやすい言葉で指示を出すことですが、コンピューターにもそれぞれ母国語のようなものがあります。英語のように様々な地域でも通用しやすい言語もあれば、一部の地域でしか通じない言語があるのと同じです。どこで使うかによって選ぶべき言語は異なります。
初心者向けの言語はどれか
まずはザッと初心者が学びやすい言語を見てみましょう。種類を把握する程度で構いません。
- 順位 プログラミング言語の名称
- Python
- JavaScrip
- Ruby
- Scala
- PHP
- Swif
- R
- C#
- Kotlin
- C
他にもまだまだありますが、とりあえずはこの10種類くらいの名称を知っておけば良いでしょう。それぞれの言語は活躍できる場が異なっています。
ただ、後半は得意分野が狭いものだったり、C言語という厄介者が入っているため、最初に学ぶなら上位のものがおすすめです。次の項目でPython、JavaScript、Rubyの3つを具体的に解説します。
Python
「Python(パイソン)」は近年最も人気が高まっている言語といえます。WebアプリやAIの開発、データ分析やシステム開発など汎用性の高さがあるわりに、文法が簡単でわかりやすいのが特徴です。プログラミングの文章量をコード量といいますが、これも少なめで済み、誰が書いても癖がなく引き継いだ人にも理解しやすくなっています。つまり、学習段階においても読みやすく書きやすいということです。
また、PythonはYoutubeやInstagramなどの開発にも使われており、仕事としても関われる分野の広いプログラミング言語です。趣味としてアプリ開発をするのはもちろん、学習を経てゆくゆくは仕事に活かしたいという方にも適しています。
JavaScript
「JavaScript(ジャバスクリプト)」はプログラミングを全く知らない人でも聞いたことがあるのではないでしょうか。それもそのはず、JavaScriptはインターネットを使う人には必ず関わりがあるプログラミング言語だからです。
90年代までのWebサイトはHTMLで書いたテキストだらけのものばかりでした。そこへJavaScriptを使うようになると、サイト上にバナー広告が出たり、会社の所在地をGoogleMapで表示できるようになりました。
Webサイト上でメールアドレスを登録するとき、入力が間違っていると教えてくれるのもJavaScriptです。今のWebサイトでJavaScript不使用のものを探す方が難しいでしょう。
JavaScriptは汎用性の高いプログラミング言語であり、Web関連だけでなく、アプリ開発やゲーム開発にも使われます。そして何よりおすすめしたいポイントは、学習段階での初期コストが不要であること。
GoogleChromeなどのブラウザと、パソコンに元々入っている「メモ帳」さえあればJavaScriptを動かすことができます。本格的にやるかどうかは手をつけてみてから、という人にぴったりです。
Ruby
「Ruby(ルビー)」は日本人が開発したプログラミング言語で、Web開発・アプリ開発に優れています。日本語でのサンプルコードが多く、初心者でも勉強しやすいのが嬉しいところです。
サンプルのコードが英語だらけで抵抗感を覚えてしまう人も多いですが、Rubyならこの問題がいくらか緩和されます。
他のプログラミング言語と比べると読みやすいコードが書けるのも特徴です。使う単語がかなり簡略化されており、直感的に書くことができます。これは覚えることが少なくて済むことにも繋がるため、初心者にはありがたいポイントです。
自分に合ったプログラミング言語診断
Python、JavaScript、Rubyについて見てきましたが、いずれもWeb系に強いプログラミング言語でした。使いどころが多いため人気なのも頷けますが、自分が作りたいものとは違う気がする…という方もいるでしょう。
あるいは、プログラミングに興味はあるけど、やりたいことは特に無い、という方もいるのではないでしょうか。
そんなときは「あなたに最適なプログラミング学習プラン診断」がおすすめ。無料で診断できて、必要な時間も1分ほどです。
ちなみに、質問1のプログラミング経験で「まったくない」を選択、質問2で学習動機を「なんとなく」、質問3の作れるようになりたいものを「特にない」で選択すると、学習を始めやすいホームページ作成に関わる言語を示してくれます。
https://www.sejuku.net/blog/diagnose/?cid=btn_2100_shindan
初心者向けのプログラミングを始めるために大事なこと
さて、プログラミング学習を始めるには必要なものが2つあります。それはパソコンと学習時間です。これさえあれば独学でもある程度のことができるようになりますよ。
学習するためのパソコンが必要
パソコン選びで気になるのはWindosかMacかという問題です。とはいえ、家にどちらかのパソコンがあれば、それで構いません。まずはやってみることが大切であって、初期投資で高額なパソコンをわざわざ買いに行く必要はありません。
パソコンをこれから購入する方、買換えを検討している方におすすめしたいのはMacです。iPhoneなどのiOS向けアプリを開発しやすいことはもちろん、環境の構築がしやすいことが理由です。
無料で使えるソフトやツールの種類はWindowsの方が多いかもしれませんが、長い目で見るとMacに慣れておいた方ができることの幅が広がります。
現段階では、そういうものだと覚えておいてパソコン選びの参考にしましょう。ただし、最終目標が「ゲーム制作に関わりたい」であれば、ゲーム会社の開発環境はWindowsが大半です。
学習時間をしっかり確保すること
何かしらのアプリを作り上げるには平均的に300時間の学習が必要だと言われています。何を目標とするかで必要な学習時間は全く異なるのですが、大切なのは自分が確保できる学習時間と目標を具体的に考えることです。
たとえば、土日の10時間ずつ勉強すれば、月に80~100時間、アプリ制作なら3カ月程度はかかることになります。3カ月も休みなくモチベーションを保つのは大変ですよね。
ある程度の達成感は欲しいものです。そこで「最初の30時間で簡単なゲームを作ろう」など、具体的かつ達成しやすい目標を段階的に定めてみましょう。
おすすめのプログラミング入門書
プログラミングを始める前に、まずはプログラムの基礎・本質を学んでおくのがおすすめです。この学習はパソコンを前にしている時だけでなく、好きな場所で好きなときに知識を与えてくれる書籍が適しています。
基礎が分かりやすい3冊を見てみましょう。
ちゃんと使える力を身につける Webとプログラミングのきほんのきほん
最初からプログラミング言語を限定して学ぶのも良いのですが、基本的な考え方を学んでおくに越したことはありません。この本は、さまざまなプログラミング言語に共通する基礎を教えてくれます。
言い換えれば、根幹の仕組みです。これが分かっていると、各種プログラミング言語を具体的に学ぶ際の理解度が上がります。
ただし、Web開発向けの書籍ではあるため、インターネットの話が多いです。例示もWeb開発に強いPHPやJavaScriptを挙げています。下記は目次の抜粋です。
- Webプログラムとは何か
- WebブラウザでWebページが表示される仕組み
- WebサーバからWebブラウザにコンテンツが届くまで
- Webプログラムがコンテンツを作る仕組み
- Webプログラムを動かしてみよう
- Webプログラミングをしてみよう
おうちで学べるプログラミングのきほん
より実践的な入門書を探しているならこちらがおすすめです。HTMLとJavaScriptを中心に、自宅のパソコンでWebページの作成を行う演習の項目が記載されています。
こちらもWebプログラミングの基本を学べる書籍ですが、先述の「ちゃんと使える力を身につける Webとプログラミングのきほんのきほん」よりはやや専門的な言葉が出てきます。
そのため、パソコンやインターネット自体に関わりが浅かった人には、わかりづらいところもあるかもしれません。とはいえ、基本は網羅されています。下記は目次の抜粋です。
- プログラミングの世界をのぞいてみよう
- コンピュータの仕組みと役割を理解しよう
- OSの仕組みと役割を理解しよう
- プログラミング言語の基礎知識
- プログラミング言語を学ぼう(JavaScript・C言語)
- オブジェクトって何だろう
- 代表的なプログラミング言語とその特徴
これからはじめるプログラミング基礎の基礎
こちらの書籍は本当に基礎の基礎から教えてくれます。例えるなら、小学校の算数で「1+1=2です」を「そう覚えるもの」ではなく「何故?」と納得できなかったような方向けです。
初心者向けの書籍でも、ある程度の知識があることが前提になっているものが多い中、この書籍は「コンピュータとは」から分かりやすく説明されています。
さらに面白いのは、プログラミング言語ではなく日本語でプログラムを書く演習の章があること。テーマを決め、あらすじを作り、シナリオを書くといったプログラミングの考え方から取り組めます。
まさに一から勉強するには最適です。たくさんの項目がありますが、その中から一部を紹介します。
- コンピュータのある暮らし
- プログラミングって何のこと?
- そもそもコンピュータとは
- コンピュータとプログラム
- 心の準備
- コンピュータ徹底解剖
- プログラム徹底解剖
- 日本語でプログラムを書こう
- プログラムの考え方を身に付けるには?
- プログラミングの基礎知識
- 次のステージへ
【入門編】初心者におすすめのプログラミング勉強法
プログラミングの勉強は、本を読むだけではありません。
初心者向けのプログラミングサイト、ゲーム、アプリを使うと、楽しく勉強することができます。ぜひ本を読む以外の勉強法も試してみてくださいね。
オンラインのプログラミング学習
最終的にやりたいことが見えてきて、学びたいプログラミング言語が絞れたら、オンライン学習を活用してみましょう。初心者向けのプログラミング学習サイトの中から、特定のソフトのダウンロードが不要で、ブラウザ上でプログラミングが実践できるものを3つ取り上げます。
paizaラーニング
このサイトでは、学習画面に「動画エリア」「補足テキストエリア」「コードエリア」「入出力エリア」の4つが表示されます。知識を得るだけなら動画エリアと補足テキストエリアの2つで十分ですが、学習に役立つポイントはコードエリアと入出力エリアです。
3分間の動画やテキストで学んだ後、「演習課題へ進む」のボタンを押すと問題が出題されます。その解答をコードエリアに記述・実行ができ、入出力エリアでは実行時の設定と出力値の表示ができます。
分かりやすく言うと、学んだことをその場で実践できて、正しく理解できているかも同時にわかる、というものです。
さらに、わからないところをエンジニアに質問まで出来る多機能ぶりです。なお、会員登録をすればC、C#、Pythonの入門は無料、その他の言語は有料ですが豊富に揃っています。
Progate
こちらはイラスト中心のスライドで学べるサイトです。プログラミング言語の種類ごとに講座があり、1単元1時間~2時間ほど。日本人らしい学習スタイルで、自分のペースを保ちながら進められます。
また、モチベーションを保ちやすい「レベル」機能もあるため、自分の学習度合がよくわかるのもポイントです。
コース内容は、各プログラミング言語の基本の考え方を学んだ上で、より実践的なことを教えてくれます。
また、スライドの横にはコード入力部分があり、その隣にプレビュー画面があるのも魅力。Webサイトなどのコードが実際に動作したときの状態がよくわかります。
スマホアプリでも同様の学習ができるため、移動時間や隙間時間を学習に活用することもできます。無料会員で勉強できる範囲も多いので、まずは登録してみましょう。
なお、月額980円の有料会員になると全レッスンの受講が可能、月額2,980円ではチャットでの学習サポートを受けられます。
Schoo
Schooは学べることの範囲がかなり広いです。プログラミング言語だけでなく、UnityなどのゲームエンジンやAndroid、iOSアプリ開発に関する講座まで揃っています。実際にプログラマーとして働いている方の体系的な講義もあるため、考え方を学べるのも嬉しいポイント。
最大の特徴は生放送であることです。月100本以上もの生放送による講義が開催され、参加者はその場で質問ができます。コミュニティも用意されているため、友達と勉強することでモチベーションを保つタイプの人におすすめです。
自分のペースで学べる録画映像は無料会員だと月1本限定ですが、見放題になる有料会員でも月980円という良心的な価格です。まずは無料会員として試してみましょう。
ゲームで楽しくプログラミングを学ぶ
「勉強ばかりでは飽きてしまい、長続きしない」という方にはゲーム形式で学べるサイトがおすすめです。学習と遊びの中間くらいの感覚で楽しみながらプログラミングを身に付けられます。人気のゲームを2つ見てみましょう。
CodinGame
ある程度プログラミングを学んだ後で楽しめるゲームです。ゲームビジュアルが美しく、勉強というよりは本当にゲームで遊んでいる感覚。
外国のサイトなので、全部英語というのが難易度高めに感じられますが、対応するプログラミング言語が25種と多いのがポイント。ザッと挙げるだけでもJavaScript、Go、C++、ObjectiveC、Haskell、PHP、Perl、Python、Scala、Rubyなどがあります。
各ゲームには「Diffeculty(難易度)」と「Community success rate(成功率)」が記載されているため、簡単なものから始めましょう。問題が提示され、解答画面でコードを書いてテストをします。これを繰り返して全てのテストを通過させるゲームです。
コードガールこれくしょん
「英語は無理!」という方にはこちらのゲームがおすすめ。オンラインプログラミング学習の項目で触れたpaizaが提供するサービスです。プログラミングを学び始めたばかりの人でも取り組める問題が多く、画面上でコードを書いている間は美少女が励ましてくれます。また、解けなかった問題があっても動画で復習ができるのはpaizaならではの魅力です。
日本のゲームでおなじみの「ガチャ」で美少女をコレクションでき、親密度を上げていくストーリーも用意されているため、恋愛ゲーム的な要素もあります。
初心者向けのスマホプログラミング入門アプリ
アプリなら荷物もかさばらず、隙間時間や移動時間で学習できます。対応するプログラミング言語が絞られているものがほとんどですが、自分が学びたいものと合致するアプリを探してみましょう。
SwiftBites
「Swift」というプログラミング言語専用の学習アプリです。全部英語ですが、対話型のレッスンで基本から学べます。チャレンジ問題があり、テストができるのもポイント。アプリ内課金がありますが、ダウンロードは無料で、「TheBasics」という最初の問題までは試せます。
codebelle
AppStoreの2016年「今年のベストApp 10選」に選出された優秀アプリ。こちらも「Swift」を学ぶためのアプリですが日本語でわかりやすいです。1レッスン3分ほどのチャット形式で学べて、会話入力部分にコードを書くことができます。基礎からスキルアップまで自分のペースで進めましょう。
自分に合ったプログラミングの基礎をしっかり学ぼう
プログラミングの学習は、基礎から応用まで一朝一夕では完了しないものです。「最終的にどんなことがやりたいか」を念頭に置きつつ、自分が飽きないように手を変え品を変えモチベーションを保つことが大切です。
続けている内にできることが増えてきて、楽しくなってきます。紹介した学習方法を試しながら、まずは基礎からしっかり学びましょう。
ビギナーズ 編集部 /
ビギナーズ編集部 ライター
趣味と出逢うメディアサイト「ビギナーズ」の編集部です。趣味を見つけたい方を応援します。