プログラミングをやってみたいけど「まず何を勉強すればいいかわからない」と思う人が多いのではないでしょうか。これは、そもそもプログラミングとは何かを知らないから陥ってしまう不安なのです。
本記事で紹介するプログラミングを始めるための準備をしっかり行い、まずプログラミングとは何か、楽しく続けるにはどうしたら良いかを知りましょう。
目次
今プログラミング学習が注目される理由
「IoTの最前線」「AIに話しかけてみよう」などITに関連するワードを、テレビやネット上のニュース、コマーシャルで見聞きすることが増えたのではないでしょうか。
ITに全く触れずに生活していくことが困難な世界では、ITスキルを持っているかどうかが今後の生活を左右するといっても過言ではありません。ではITスキルとは何でしょうか?
私は「プログラミングができること」だと思います。プログラマーはダサい、IT土方だと言われていましたが、プログラマーからスタートして大きく成功した経営者たちが大勢います。
・堀江貴文氏
・佐藤航陽氏(株式会社メタップス)
・山田進太郎氏(株式会社メルカリ)
また、Wantedly CEOの仲暁子氏は、以下のように述べています。
コーディングできるようになって世界がすごく広がった
自分でいちからものを作って、それを作り上げたその瞬間に「どうだ!」と世界のオーディエンスに叩きつけられるプログラミング能力って凄いし、エンジニアって超カッコイイ、そう思うようになりました。
プログラミングの重要性は、名高い経営者や学者だけが言っているわけではありません。近い未来の社会を考えれば、プログラミングがいかに重要かが分かります。
そもそもプログラミングとは?
プログラミングとは、「コンピューターへの指示書(プログラム)執筆」です。コンピューターとは、パソコンやスマホ、電子機器のことです。
コンピューターという言葉が付いてくるから小難しく感じるかもしれません。ですが、指示書を作成したことがある人は多いのではないでしょうか。例えば文化祭の実行委員会が作る準備資料はプログラミングと似ています。
目的を実現するために、何をどの順番で準備するかを決めることがプログラミングでやることです。
インターネット社会
総務省が発表した平成29年度情報通信白書の第2部「基本データと政策動向」によると、2016年の日本国内でのインターネット人口普及率は83.5%でした。100%になる日も近いでしょう。スマートフォンの普及がインターネット人口増加を後押ししました。
「デジタルディバイド」という、インターネット接続機器の所持不所持による情報格差が問題視されていた時代がありました。しかしインターネット接続が当たり前になった時代では、ITスキル格差が生まれます。今働いている世代は「ITスキルがなくても生きてこれた。だからこれからも大丈夫だろう」と思いがちです。
生まれた頃からスマホやインターネットに触れているデジタルネイティブ世代はどのような大人になるか、想像してみましょう。
プログラミングが義務教育になる
2020年から、小学校でのプログラミング教育が義務化されます。今の20、30代の人たちが50代ぐらいになった時の新入社員は、全員必ずプログラミングができる人たちです。
終身雇用はなくて当たり前になりつつあります。若くて自分にはできないことをできる人がたくさん社会に出てきます。負けてはいられないと思って、プログラミングに挑戦してみるのはどうでしょう?
プログラミング教育についてはこちらの記事もぜひ参照してください。
未経験でも大丈夫!
プログラミングは、ITを全く知らなくても大丈夫です。小学生でもできるので、年齢は関係ありません。プログラミング教育の義務化の目的は、子供達の論理的思考能力を養うことです。
つまり、プログラミングに必要なのは「論理的思考能力」です。論理的思考能は後天的な能力なので、鍛えることが可能です。
プログラミングに向き不向きはありません。今後勉強して行くなかで「プログラミング難しいな」と感じたら、論理的思考能力を鍛えてみましょう。
プログラミングの勉強に絶対必要な2ステップ
プログラミングの勉強が重要で、誰でもできるということをお伝えしました。しかし、何事においても未経験での挑戦には挫折が付き物です。
何のためにプログラミングを始めるのか、何をつくるのかを明確に決めて、プログラミング勉強へのモチベーションを高めましょう。
【ステップ1】プログラミング言語を選ぶ
プログラミング言語は、プログラムを記述する際に利用する形式のことです。
例えるなら手紙です。手紙の冒頭に、日本語では「拝啓」を書きますが、英語では「Dear ◯◯」と記述します。これと似たように、プログラミング言語ごとにプログラムを記述する際のルールがあります。
作りたいものから、使うプログラミング言語を選ぼう
プログラミングを勉強していく上で大事なのは、自分で手を動かして一つのモノを作ることです。また、目標のモノによって使用するプログラミング言語がおのずと決まってきます。以下に、プログラミング入門本や講座でよく出題される成果物例と、その成果物を作ることができるプログラミング言語をまとめますので、ぜひ参考にしてみてください。
成果物例 | プログラミング言語 | |
1 | パックマンゲーム | JavaScript、Rubyなど |
2 | 自己紹介WEBサイト | HTML、CSS、PHP、Pythonなど |
3 | iPhone向け目覚ましアプリ | Swift |
4 | センサーから湿度を取得する | C言語、C++、Python、Javaなど |
編集部オススメ言語
編集部オススメプログラミング言語は、RubyとPythonです。
もし作りたいモノの制作が複数のプログラミング言語で可能ならば、求人数や利用者数が多いものから選びましょう。使う人が多いほど情報が豊富なので、勉強用のコンテンツが揃っているというメリットがあります。
Rubyはサーバーに処理させるためのプログラムを作る場合によく使われます。学習難易度は比較的高いと言われていますが、日本発の言語なので日本語の入門書が豊富です。ブラウザゲームやAndroid/iOSゲームの開発によく用いられています。
Pythonは文法がシンプルで、誰が書いたプログラムでも読みやすいという性質があります。なので、プログラミング初心者にはうってつけの言語です。
筆者は様々なプログラミング言語に触れてきました。自分の好きなようにプログラムを書いていると、しばしば他者から「読みにくい」と指摘を受けることがあります。Pythonではそのようなことがないよう、言語の形式自体に工夫がなされています。
【ステップ2】プログラミングをする環境を整えよう
それでは、作るモノと使用するプログラミングを決めた後は開発環境を整えましょう。開発環境を整えることで、以下のようなメリットが得られ効率よく開発を行うことができます。
- 動作確認をしながらプログラムを書ける
- 間違った記述をした箇所(バグ)を簡単に発見できる
- 繰り返し書く文字(閉じ括弧、セミコロンなど)を補完してくれる
このようなメリットを得るために、開発環境として「テキストエディタ」と「IDE(統合開発環境)」を紹介します。
テキストエディタ
テキストエディタは、メモ帳アプリにプログラミングを行うための便利機能が複数備わったものと捉えてください。
編集部オススメのテキストエディタは、「Atom」と「Sublime Text」です。いずれも無料で利用することができます。
Atom
Atomはオープンソースのエディタで、誰でも自由にカスタマイズできることで人気です。世界中のAtomユーザーが便利機能(パッケージ)を開発し、無料で公開しています。その便利機能をダウンロード・インストールすることで自分好みのエディタに作り上げることができます。WEB系のプログラミングに適していると言われています。ただし、パッケージを大量にインストールすると動作が重くなってしまいます。
Sublime Text
Atomと同じく、自由にパッケージをダウンロードし、カスタマイズすることができます。Atomと異なる点としては、処理速度が圧倒的に速いということです。複数ファイルにまたがって文字の置換をするような場合に遅いとイヤだという方は、Sublime Textを選んだ方が良いでしょう。
IDE(統合開発環境)
IDEは、「Integrated Development Environment」の略です。
統合開発環境とは、ソフトウェアの開発において用いられるエディタ、コンパイラ、リンカ、デバッガ、その他の支援ツールなどを統合・統一化した開発環境のことである。
プログラムを記述して実行し、不具合の箇所を特定できるようなデバッガも備えている万能ソフトウェアです。先ほど紹介した、テキストエディタも含まれています。ですが、自由にカスタマイズはできないので、好みに合わせてテキストエディタとIDEのエディタは使い分けましょう。
IT企業の開発現場でよく利用されているIDEとその特徴を簡単にご紹介します。いずれも無料で利用できます。
IDE | サポート言語 | 特徴 |
Net Beans | Java、JavaScript、C、C++、PHP、HTML5 | Javaの開発元であるOracleが提供しているIDEです。そのため、Javaの変更や新機能にいち早く対応できます。 |
Ecripse | Java、PHP、Ruby、Pythonなど | サポート言語数が圧倒的に多いのが特徴です。日本でも利用者が多いため、日本語の情報が豊富です。 |
おすすめ勉強サイト
作るもの、使用する言語と開発環境を整えたら、プログラミングの基本的な勉強を始めましょう。最近では、基本的内容は無料で利用できるアプリやWEBサイトで充分勉強できます。電車移動等の隙間時間を有効活用しましょう。
動画サイト
無料でプログラミング授業の動画が見れるサイトを紹介します。海外のサイトは英語の動画のみです。英語の勉強も同時にできて一石二鳥です。日本語の動画サイトで基本的なことを学習したら、海外サイトで英語の専門用語を習得しましょう。
ドットインストール:3分動画でマスターするプログラミング学習サイト
様々なプログラミング言語の入門編動画を無料で視聴できます。各入門編は20~30個の3分動画に分けられているので、学習計画を立てやすいです。
Paizaラーニング
プログラミング言語の入門動画に加えて、エンジニアのキャリア解説動画もあります。動画を見た後、練習問題が用意されており、実際にプログラミングを行います。
coursera(コーセラ)
courseraは、ミシガン大学、カリフォルニア大学など世界最高峰の大学の講座を無料で受けられるサービスです。オンラインで外国人講師の授業の動画を見ることができます。
動画には文字起こし機能がついており、講師の喋った内容を聞き取れなくても文章で確認できます。
アプリ
最近、プログラミングの勉強ができるスマホアプリが登場しました。動画を見るのではなく、自分でプログラミングのコードを書き、実行するところまでアプリ上でできます。電車移動などの隙間時間での勉強に最適です。
Progate
まず解説資料を読みます。その後、プログラミングをスマホ上で行なっていきます。記入したプログラムは適宜アプリ上で実行できます。
現在リリースされているのはiOS版のみです。Android版は、2018年3月以降に公開予定とのこと。
SwiftBites
Swiftの学習に特化したアプリです。Swiftのコード(文章)の基本的な書き方を学ぶことができます。
SwiftBitesのアンドロイド版はこちらからダウンロード
Pocket Programming (240円)
Ruby編、Java編、Swift編の3つが用意されています(以下リンクはRuby編)。3択のクイズを1日10問×4週間解くことで知識の定着を図ることを目的としているアプリです。
Pocket Programmingはこちらからダウンロード
実践PCサイト
以下のPCサイトでは、アプリよりも難しいコースが用意されています。有料コンテンツですが、いずれも書籍よりは安価です。続けやすい価格で、利用できるプログラミング言語が豊富なので、複数の言語を学ぶのに適しています。特に、WEBサイト開発の授業が充実しています。
Progate
有料プランは、月額税込980円。無料コースよりも実践的なコースが揃っています。まずは穴埋め形式の練習問題、その後自由記述の課題にチャレンジします。私はもちろん有料会員です。
Paiza
有料プランは月額税込600円。プログラミングの実技だけでなく、プログラミングをやるための環境を作るコースもあります。
書籍
ここまできたら、本とPCを買って自分の目的のものを制作しましょう。もう挫折はしないはずです。初心者用の本ではなく技術書・専門書で興味のある分野を深めましょう。
習熟度別での技術的内容と分野が充実している本はO’Reillyシリーズです。分厚さに圧倒されるかもしれませんが、PCサイトやアプリのコースを本にしたら同じくらい分厚くなります。根気強く学びましょう。
プログラマと交流してみよう
独学だと挫折しそう、チームで作ってみたいと思っている人も多いかと思います。そこで、定期的に自分以外のプログラマーと交流してみることをオススメします。プログラマーと交流することで人脈が広がるだけでなく、新しい知識を得ることもできます。
「プログラミング初心者には難しい」と思われるかもしれませんが、プログラミング初心者向けの定期的に開催されているイベントや交流会は意外とたくさんあるのです。ここでは、ハッカソンというイベントと、プログラミングイベントを検索できるサイトを紹介します。
ハッカソン
ハッカソンとは、「ハック(hack=プログラミングを行う)」と「マラソン(marathon)」を掛け合わせた造語です。プログラマーがチームを作り、短期間(1日〜1週間)でお題に沿った物を制作し、その優劣を競います。アイデアを出して目標制作物を決めるところから始まり、プログラミングも行いますので、ものづくりの最初から最後までを経験できる貴重なイベントです。
ハッカソンを検索できるサイトは以下のようなものがあります。
TECHPLAY
ITに関する様々なイベントが掲載されています。初心者向けや無料イベントも多数ありますので、気軽に参加できます。
プログラミングを始めること自体は、非常に簡単です。継続しなければプログラミング技術は身に付きません。楽しみつつ長く勉強できるよう、環境を整えることも大事です。勉強アプリやサイト、イベントを利用して、ITのことをもっと深く知ってみてはいかがでしょうか。