プログラミング学習は最初が肝心です。多くの人は初心者レベルにもなれずに挫折していきます。
わたし自身、IT業界への転職を機にプログラミグ言語の勉強を始めました。今では、システムエンジニア5年目でそれなりに色々な知識があります。自分が初心者だった頃の勉強と今の自分の知識や考え方を交えて、これから「プログラミングを勉強したい」と考えている方に対して独学でプログラミンを勉強するための方法を紹介していきます。
できるだけ挫折しにくいように説明していきますので、頑張ってついてきてください!
目次
どのプログラミング言語を学ぶか?
英語や日本語、中国語など世界には様々な言語があるように、プログラミングの世界にも様々な言語が存在します。
200以上は存在していると言われていますが、利用頻度が高い有名な言語でいうと10個くらいに絞られます。
以下は有名なプログラミング言語です。
- Java
- JavaScript
- PHP
- Python
- C
- C#
- C++
- VB
- Ruby
- Perl
- Swift
- Objective-C
みなさんがプログラミングを勉強したいという背景には、その先の目的があるはずです。「IT業界へ転職したい」「Androidアプリを作りたい」「○○なWebサービスを作りたい」などなど。
プログラミング言語を選ぶ際は、その目的に合わせて選ぶといいでしょう!
やりたいことで選ぶ
まずはやりたことで選ぶ方法です。
Webアプリケーションであればどの言語を使ってもだいたい作れますが、AndroindやiOS、Windowsなど特定のアプリケーションを使用したサービスを作りたい場合は利用できるプログラミング言語が決まっています。
ですから、やりたいことが決まっている場合はその環境に合ったプログラミング言語を選ぶ必要があるのです。
以下は、有名なアプリケーションの例です。
サービス | プログラミング言語 |
---|---|
Androindアプリ | Java |
iPhoneアプリ | Swift or Objective-C |
Excelツール | VB |
Windowsアプリ | C# or C++ |
このように「Androidアプリを作りたい!」など明確な目標があるなら、その言語を選ぶといいでしょう。
初心者向きの簡単な言語を選ぶ
ド素人からいきなり難しい言語を選ぶと挫折しやすいです。ですから、最初に選ぶ言語はできるだけ簡単な言語の方が学習ハードルが低くすんなり入ることができます。
わたしはこれまで、
- Java
- PHP
- C++
- C#
- JavaScript
- VB
- Objective-C
といった言語を触ってきました。
この中で最も簡単で初心者向きだなと思ったのはPHPです。時点はJavaScript。これは後述しますが、フロントエンドの言語なのでテキストエディタさえあればすぐにでもコードを書き始めることができる環境整備がめっちゃ楽な言語だからですね。
逆にメモリを意識しないといけないC++とかは絶対に触らないほうがいいと思います笑 たぶんプログラミングが嫌になります。
簡単な言語を選ぶならPHPがおすすめです。
転職に有利になる言語で選ぶ
わたしのように転職を目的にプログラミングを勉強し始める人もいるかもしれません。
未経験者がIT業界へ転職するためにプログラミングの知識は特に関係ありませんが、勉強していた方が「あーこの人は自発的に勉強できるタイプなんだな」と面接官から評価される可能性が高いからですね。あと、ある程度のプログラミング知識があったほうが入社後の研修の勉強でもすんなり理解できるようになります。
で、どのプログラミング言語が転職に有利になるかというと、「Java」もしくは「PHP」です。理由は単純に募集案件が多いということ。
もともと求人が多かったJavaですが、Androidの登場でさらに需要を増しました。PHPはHTML(Webサイト)との相性が良く、Webサービスを扱う会社などで重宝されます。
イメージとしては、Javaの方がガッツリしたシステム開発で使われることが多く、大規模なシステム開発に関わりたい方はJavaを、小規模から中規模なシステム開発に携わりたい方はPHPを勉強するといいかと思います。
給料の高い言語で選ぶ
最後に給料の高いプログラミング言語です。
求人検索のエンジンが言語別のプログラマーの平均年収ランキングを発表しています。順位は以下のとおり。
順位 | プログラミング言語 | 年収 |
---|---|---|
1 | Python | 651万円 |
2 | Perl | 633万円 |
3 | Ruby | 606万円 |
4 | C | 597万円 |
5 | JavaScript | 555万円 |
6 | PHP | 538万円 |
7 | Scala | 530万円 |
8 | Java | 499万円 |
9 | Swift | 483万円 |
10 | Objective-C | 475万円 |
上位4つはわたしが触ったことのない言語が並びます。(だから給料が低いのか・・・。)
PythonやRubyは「機械学習」や「人工知能」の分野に強いんですね。この分野は最近のトレンドで今後もますます需要を増していくと思われるので、今のうちに勉強しておくのも悪くない選択です。
フロントエンドとバックエンドの違いを知る
プログラミング言語には、大きく2種類に分けると
- フロントエンド
- バックエンド
に分けられます。
直訳すると表側と裏側ですね。
フロントエンドは、HTML、CSS、JavaScript、といったWeb系の言語が並びます。自分のパソコン上だけで完結するので、テキストエディタさえあればコード書いてその場で実行できます。
一方で、バックエンドのプログラムは、サーバーと呼ばれる自分のパソコンとは別のパソコンで動作するプログラムです。つまり動作を確認しようと思ったら自分のパソコンともう一台パソコンが必要で合計2台のパソコンが必要になります。(ただ実際に2台購入する必要はなく、学習する際は自分のパソコンに仮想でもう一台の環境を用意します。)
フロントエンドはテキストエディタだけで実行できるお手軽な言語に対して、バックエンドは動作環境(仮想のパソコンの準備など)を用意してあげる必要があるため手間がかかります。
動作環境を用意できずに挫折する人も多く、最初の大きなハードルはバックエンドの環境を用意できるかです。もし「環境構築が分からない・・・」ってなったらJavaScriptでまずは練習しているのもいいかと思います。
フロントエンドとバックエンドのイメージは下図のような感じです。
プログラミングの勉強法 3パターン
冒頭でも言ったとおり、8種類くらいの言語を触ってきて最低でも入門レベルは理解できるようになっています。
はじめてのプログラミング言語を勉強する時の方法はある程度決まっていて、自分の中でも無駄がなく効率よく覚えられる方法だと思っているので、その方法を紹介していきます。
1冊の参考書(入門書)を読みつくせ!
プログラミングにしても何でもそうですが、わたしは新しい分野を1から勉強しようと思った時に、体系的に説明された本を1冊購入してひたすら読み込みます。
1冊を決めたらとにかくその1冊を信じて読み切ることが大切です。
本の選び方は、本屋へ行って入門書っぽい本を手に取りパラパラとめくって「分かりやすそうだな」と思えた本を選ぶといいでしょう。
わたしが一番最初に購入した本は「やさしいJava」という参考書です。
これを繰り返し何度も何度も読んで勉強しました。
自分が勉強するプログラミング言語を決めた方は本屋へ向かって入門書を1冊選び、それをとにかく実践しまくりましょう!
無料サイトを利用する
最近はプログラミング言語の無料学習サイトが増えてきました。素晴らしい時代になりましたね。参考書を買わなくてもある程度まで理解できるようになります。
数多くの学習サイトがありますが、わたしのおすすめはドットインストール。
1テーマを3分の動画で解説してくれているプログラミング学習サイトです。動画を見るだけで完全に受け身で学習できるので学習ハードルはめっちゃ低いです。
無料で会員登録で進捗管理できるようになるのでぜひ登録しておきましょう。わたしもはじめて使った時から利用しまくっていて、マイページ見たら30時間以上動画を見ていて驚きました笑
ただ、入門書などに比べると内容があっさりしすぎていると言いますか、「もうちょっと説明して欲しい」と思うようなところもあるので、ドットインストールで物足りないなと思ったら1冊本を買ってみるといいと思います。
個人的には、入門書を読んだあとに復習を兼ねて動画を流し見するのが最も効率的なやり方だと思ってます。
インターネットで検索
インターネットは情報の海です。様々な情報が無料で閲覧することができます。プログラミングの学習サイトを個人で作ってくれている人もいて、入門書買うのもったいないなと思う方は、インターネットで検索しながら学習するといいでしょう。
分からないところはインターネットで検索するとだいたい出てきます。プログラマーたるもの検索スキルはかなり大切です。検索しまくっていればそのうち慣れてくるので特に検索に関する勉強は必要ありませんが。
ただし、はじめての勉強となるとこれも微妙で、1冊の入門書を買ったほうが効率がよく勉強できるし検索するための無駄な時間も費やす必要がありません。
1冊の入門書の知識を入れた後に、気になるところを検索して情報を得るためにインターネットを利用するやり方が有効だと思います。
プログラミング勉強の流れ
プログラミングの勉強法を3パターン紹介しましたが、結論から言うと、入門書もドットインストールもネット検索も全て行うべきです。
わたしの流れとしては、一番初めに学んだJavaだけは入門書を書い、入門書を読み終えた後にドットインストールの動画で復習がてらに見てました。それでも分からないところはインターネットで検索して調べるといった流れですね。
ですからまずは本屋へ向かいましょう!プログラミング言語の入門書コーナーへ向かい、パラパラめくり自分に合いそうな(直感で分かりやすそう)な本を選ぶといいでしょう。
入門書は頭から順番に!
入門書は必ず頭から順番に読むようにしてください。初心者に向けて正しく理解していける書かれているのが入門書です。一字一句を逃さないように読んでください。
また、実践しながら行うことも重要です。プログラミングは机上で勉強しても身につきませんから、実際にキーボードを叩いて手を動かしながら学ぶようにしましょう。
ドットインストールは復習に!
入門書を読み終えてある程度理解できたころにはドットインストールの内容は楽勝になっているはずです。3分の動画を見るだけで気軽に復習できますから、空いた時間などに流し見するだけで基礎が定着していきます。
分からないところは検索で!
プログラミングの参考書ってほとんどが入門書です。応用の本ってほぼありません。入門を超えたらそれこそ本当の独学になります。
プログラマーには「インターネットの検索スキルが必要だ」と言ったのは、初心者を抜けたら本では教えてくれないからですね。ですから日頃から自分で検索する癖をつけておくことが大事です。
インターネット上には凄いプログラマーの人たちが様々な情報を記録していてくれています。知りたいことがあったらGoogleから検索して調べるとあらゆる情報が出てきます。
入門書を読んでいても、ドットインストールで動画を見ていても分からないところは出てくるでしょう。そういった時にインターネット上から目的の情報にたどりつけるかどうか試してみてください。
挫折の壁を超えろ!
ド素人がプログラミングを学ぶときに挫折しやすいポイントをまとめておきます。
心が折れそうになった時に、ここの章を見て「あーみんなも同じところで苦労してるんだな。自分だけじゃないんだな。」と考えて、もうひと踏ん張りして壁を乗り越えてください!
環境構築の壁
最初にして最大の壁である環境構築。フロントエンドのプログラミング言語(JavaScriptやHTML)であれば自分のパソコンにテキストエディタがあれば簡単に実行できますが、バックエンドのプログラミング言語(JavaやPHP…etc)は、動作を確認するための環境を作らなければなりません。
Javaの環境構築を例に具体的にどういうことをするかと言うと、仮想サーバー(Apache)を立てて、JDK(Java Dveloper Kit)をインストールして、ごにょごにょと色々な設定を行う必要があります。
今の時点では何を言ってるか分からないかもしれません。実際にプログラミンを書く前にこんな面倒くさい作業を行わなければならないということを覚えておいてください。そして、多くの人は環境構築に失敗して迷宮入りし、一行もコードを書くことなく諦めていきます。
ただ、安心してください。基本的に入門書には環境構築の方法から書いてくれています。(書かれていない入門書は選ばないようにしてください。)
プログラミングを始める人にとって、最初にして最大の壁が環境構築なのです。覚悟して勉強を始めましょう笑
論理の壁
プログラミングは論理的な考え方をしないと作っていけません。確率とか数学的な考え方が必要になったりします。
例えば、5個の数字の中からどの数字が一番大きいか求めるプログラムとか。頭の中では無意識に計算していることをコードとして書く必要があります。5個だったらまだ力づくでいけますが、これが100個、1000個になったら正しい計算式(考え方)で求めていかないと正解にたどり着けないでしょう。
こういったことを論理的にプログラミングに落としたものをアルゴリズムと言うのですが、アルゴリズムを考えることが苦手(苦痛)で挫折する人も多いです。
ただし、最近はアルゴリズムを考えなくてもプログラミングできるような環境が整っているので、苦手意識を持っていても実務で問題なかったりします。
楽しくないの壁
結局はここなんですね。プログラミングが楽しいか、楽しくないか。
例えば入門書の最初では、「Hello World!」と画面に表示させるプログラムを作ることが多いのですが、わたしははじめて「Hello World!」が表示できた時めちゃくちゃ嬉しくて興奮したことを覚えています。
プログラミングは楽しいと思えないと続けられません。英語の訳の分からないコードを見るだけで嫌悪感を抱く人もいますし、論理的に考えることが嫌で挫折する人もいます。
まぁ楽しくなくても入門レベルくらいはやってみるといいと思いますが(そこまで理解すると楽しくなる場合もあるので)、嫌で嫌で仕方ないならプログラミング自体に向いていなかったということですね。
グダグダ言ってないでコード書けよハゲ
誰が言ったのか分かりませんが、プログラマーの間では有名な言葉。
「グダグダ言ってないでコード書けよハゲ。」
口だけで行動しない人には、結構心に突き刺さる言葉ですね。「あれこれ言ってたって何も生まれないから、とにかく手を動かせ」ということです。
この記事をここまで読んだなら、もう始める以外に選択肢はありませんよ(ニヤニヤ)
勉強するプログラミング言語を選んだならすぐにでも勉強をスタートしましょう!