エンジニアの頭の中

トレードbotエンジニアが書く技術と投資のブログ

【プログラミング未経験者向け】なぜPythonがプログラミング入門に適しているのか?

f:id:mitsu3204:20180827211329j:plain

目次

  • プログラミングの入門に適した言語はなにか?
  • Pythonがプログラミングの入門にオススメな理由
  • Pythonをさわってみる

プログラミングの入門に適した言語はなにか?

プログラミング言語はたくさん存在する

世の中にはたくさんのプログラミング言語があります。

C、C++JavaRubyJavaScriptPythonHaskellScalaなど書き出すとキリがありませんが、これからプログラミングを始めようとする人は、まずどの言語を学べばよいのか迷ってしまうと思います。

最初に学ぶ言語によって学習効率は異なる

プログラミング言語には、その性質の違いから初心者にとっての学びやすさに違いがあります。

難しい言語から手をつけてしまうと、なかなか習得が進まず途中でやる気を無くしてしまうかもしれません。そうならないためには、最初の学習のハードルは低いに越した事はありません。

順序よく学んでいくこと、きちんと理解していくこと、また、自分が学んだことについて、その成果を感じ取れることが、学習を継続するために重要になってくると考えています。

入門に適したプログラミング言語を選択することによって、最初の学習の難易度を下げ、より効率良く挫折しにい状態で学んでいくことができるのです

入門に適したプログラミング言語 Python

私がプログラミングを始めて学ぶ人にオススメする言語は、Pythonという言語です。

Pythonは、シンプルなコード、豊富なライブラリ、汎用性の高さなどが特徴のプログラミング言語で、最近では、ビッグデータの処理やAIの機械学習、Webシステムなど、様々な分野で使われています。

Pythonであれば、スムーズな学習ができ、なおかつ学んだスキルの活躍の場も広く用意されているでしょう。

次は、具体的なPythonの特徴となぜPythonがプログラミングの入門言語に適しているのかを説明していこうと思います。

Pythonがプログラミングの入門にオススメな理由

f:id:mitsu3204:20180903144143j:plain

Pythonは少ないコードで多くを実現できる

Pythonソースコードは、他のプログラミング言語よりもシンプルに書くことができます

Pythonソースコードのシンプルさは、プログラミングの最初の一歩のハードルを低くするもので、プログラミング入門者にとってPythonは易しいでしょう。

具体的にどのようにシンプルなのかというと、書かなくてはならないソースコードの量が少ないこと、書き方が限られていることなどが挙げられます。

ある機能を実現しようとした際に、少ないソースコードで書けるというのは、最初に覚えなくてはならないことが少なくて済みますし、ソースコードの書き間違いも起きにくいです。

また、同じ事を実現するために多様な書き方ができてしまう言語は柔軟ではあるものの、プログラミング初心者にとっては迷いや混乱にも繋がります。

とはいえ、Pythonは初心者専用のプログラミング言語というわけではありません

プログラミング上級者になってもPythonは使いますし、他のプログラミング言語と同様で奥が深いです。Pythonという言語が他のプログラミング言語と比べて人を選ばないというだけです。

Pythonは汎用性の高い言語

Pythonは、何か決まったものを作るための特化した言語ではなく、Web、ゲーム、データ解析、GUIアプリなど、なんでも作ることができる非常に汎用性の高い言語です。

特化した言語と違い、汎用性の高いプログラミング言語は、作るシステムの性質が異なっても、新たに別の言語を覚える必要がありません。学習済みの技術を使ってプログラミングをすることができるのです。

Pythonは電池入り

Pythonは「Battery Included(電池入り)」と言われています。

Pythonには、プログラミングするうえで必要となる便利なライブラリ(プログラムから利用する機能の集合のこと)や開発環境が、Pythonには最初から付属しているのです。

後からあれこれ付け足すことなく、最初からすぐに使える状態になっているので、「Battery Included」と言われています。

また、Pythonには非常に多くの優れたサードパーティのライブラリも存在します。

これらの充実したライブラリによって、Pythonプログラマはすぐにでも本格的なプログラミングを始めることができますし、プログラミングしていて欲しい機能がでてきた場合でも、汎用的な機能であればライブラリが既に存在していて、自分で開発せずにそれらのライブラリを活用すれば済むということが多いです。

Pythonは今最も人気のある言語

Pythonは年々プログラマの人気が上がっている言語で、「The 2018 Top Programming Languages - IEEE Spectrum Rankin」の人気のある言語ランキングで、2017年に続いてPythonが2年連続一位となりました。

人気のあるプログラミング言語を選択することは重要なことです。

人気があるということは、それだけ世の中にそのプログラミング言語の需要があるということであり、修得者の多いプログラミング言語であれば、学ぶ際にも書籍やブログ記事、プログラミングスクールなども多く存在していて学びやすいものです。

Pythonの活用シーンが増えてきている

なぜ、Pythonの人気が高まっているのでしょうか?理由は、いくつかあると考えられています。

最近では、ビッグデータ処理、統計、機械学習、AIなどの分野が盛んですが、Pythonにはこれらの分野に適したライブラリが充実していることもあって、Pythonが利用されることが多くなってきています。

また、Pythonの言語自体の扱いやすさ、マシン自体の性能向上による実行時のパフォーマンスの向上なども理由となって(※)Pythonが選択されることが増えているようです。 ※Pythonのようなスクリプト言語は、コンパイル言語と比較すると実行時の速度は遅いので

また、以前からGoogle社でもPythonが積極的に使われているのは有名な話ですね。

Pythonエンジニアの年収は高い

プログラミングを習得して、プログラマ(=エンジニア)として仕事をして収入を得ようと考えているのであれば、得られる年収がどの程度のものなのかは、気になるところだと思います。

プログラマの年収はピンキリでで、当然ですが、個人の能力や会社や国などによって違います。。

ただ、言語別の年収ランキングを見ると、Pythonエンジニアはランキング上位に位置するようです。

プログラミング言語の違いによる年収への影響

ビズリーチが調査した「プログラミング言語別年収中央値を発表、求人検索エンジン「スタンバイ」調べ」」によると、プログラミング言語別の年収ランキングのベスト10のうち、上位3位は以下のような結果でした。

  1. Go:中央値600万円、最大1600万円
  2. Scala:中央値600万円、最大値1300万円
  3. Python:中央値575.1万円、最大値1499万円

中央値で、GoとScalaには及ばないものの、Pythonは3位と高いところに位置しています。

Pythonをさわってみる

f:id:mitsu3204:20180829203427j:plain

実際にPythonのコードを書いて動かしてみましょう。

Pythonをインストールする

Pythonには、大きく分けて2系と3系のバージョンがありますが、試す程度であればどちらを使っても構いません。

使っているパソコンがMacの場合、MacはOSがPythonを利用しているため、Pythonの2系が既にインストールされておりインストール作業は不要です。

Windowsの人はPythonのインストールを行いましょう。インストール手順はネット上のいろんな記事で紹介されていますが、こちらがわかりやすいと思います。(こちらは3系のインストール手順です)

本格的に学び始めるなら、利用が拡大していく新しいバージョンを使ったほうが良いと思います。Macで3系のインストールをしたいかたは、こちらの記事などみて試してみてください。

はじめてのプログラムを書いてみる

プログラミングの世界では、初めてその言語でプログラムを作成してみる際には、慣例としてまず最初に「Hello world」の文字列を表示してみることが多いです。

その「Hello world」を出力するためのコードを書いて見ましょう。

Pythonを起動する

通常プログラミングというと、ソースコードを書いてファイルに保存して、そのファイルを使ってプログラムを実行するという流れが一般的ですが、Pythonには、対話的にコードを実行できるインタラィテクブシェルというツールが備わっています。

これによって、簡単にPythonのコードを書いて実行することができるので試してみます。

インタラクティブシェルを起動するために、Macの場合は、「terminal(ターミナル)」というアプリ、Windowsの場合は、「コマンドプロンプト」というアプリを起動してください。

f:id:mitsu3204:20180829204520p:plain

terminal(またはコマンドプロンプト)を起動すると、ウインドウが立ち上がり、ユーザーの入力待ち状態となります。(以下はMacのTerminalの場合の例)

Last login: on Sep  3 14:19:24 on ttys001
mymachine:~ hakushim$

$の後ろから文字を入力できます。ここで入力できる文字はコマンドというもので、マシンに対して文字で命令を与えるものです。

ここに、キーボードでpythonと入力してEnterキーを押下します。(Pythonバージョン3系をインストールした場合は、python3と入力します)

$ python

すると、Pythonインタラクティブシェルが起動して以下のように表示されます。

$ python
Python 3.6.2 (default, Jul 30 2017, 16:04:21) 
[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.42)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
コードを書いて実行してみる

>>>の後ろに以下のようにprint("Hello world")というPythonソースコードを入力します。

>>> print("Hello world")

入力したらEnterキーを押下します。

そうすると、書いたソースコードが実行されて以下のようにHello worldの文字列が表示されます。

>>> print("Hello world")
Hello world
>>>

printというのは、Pythonに組み込まれている関数というもので、このprint関数に文字列を渡すと、その文字列をそのままターミナルへ表示してくれます。

Hello world」の部分を他の文字列に変えれば、その内容に応じて、実行時の表示内容も変化します。

他の言語で書いたHello world

Pythonはシンプルで少ないコード量で多くのことを実現できると先に述べましたが、他のプログラミング言語とどれくらい異なるのか、上記のHello worldを表示するプログラムを例として、比較してみました。

Java言語、Go言語、Python言語の3つの言語でそれぞれHello worldを表示するためのコードは以下のようになります。

Java

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world");
    }
}

Go

package main

import (
    "fmt"
)

func main() {
    fmt.Print("Hello world")
}

Python

print("Hello world")

見ての通り、Pythonが最も少ないコードで簡単に書くことができます。たったの1行で「Hello world」を表示することができてしまうのです。

ただし、勘違いしないで頂きたいのは、この書き方の違いは決してPythonが優れていて他の言語が劣っているというわけではありません

コード量の違いは、それぞれの言語の性質の違いによるもので、他の言語でコードの量が多い理由(書いてあるコードの意味)は、プログラミングを学んでいけば、自然と知ることになると思います。

ここで言いたいのは、あくまでもプログラミングの初心者が最初に学ぶプログラミング言語という観点では、Pythonは覚えなければならないことが少ないので覚えやすいであるということです。

プログラミングを続けていればいつかは、最初に習得した言語以外にも習得しなくてはならない時や、興味が湧いてくる時がくると思います。

他の言語も学ぶことによって、言語の違いを知り、適切な使い分けができるようになり、プログラマとしての能力の底力が上がります。

どうやって学んだらよいのか?

Pythonでプログラミングの学習方法を始めるとしたら、その方法にはどのような選択肢があるのでしょうか?

世の中のプログラマ達の学習方法は様々です。専門学校や大学で学んだ人もいれば、独学で学んだ人もいますし、中には就職後に数ヶ月間の新人研修でプログラミングを学び、その後実際の開発現場へデビューしたという人もいました。

書籍やネットを活用すれば独学でも十分に習得可能です。

特に最近では、オンラインでプログラミング講座が充実しており、これらを利用してプログラミングを学ぶ人が増えているようです。

学習方法についていくつか紹介しておきます。

書籍

Pythonの入門者向けの書籍には、様々なものが出版されています。

Amazonなどで検索すると、Pythonを使った機械学習の入門書も多く出てきますが、いきなり専門分野に飛び込むのではなく、まずはPythonによるプログラミング自体を学ぶ必要があるため、Pythonそのものの入門書を読むと良いと思います。

読むならPythonの3系のバージョンに対応した書籍を選択すると良いでしょう。とはいっても、最近の書籍は、どれもPythonバージョン3系に対応しているはずです。

ちなみに、私はPythonを覚え始めたころは、「Pythonチュートリアル」や「 Python ポケットリファレンス」、「Head First Python 第2版 頭とからだで覚えるpythonの基本」あたりを読みました。

無料サイト

ネットには、Python初心者向けにインストールの方法や、プログラミングの初歩について書いてくれているサイトが複数あります。

お金がかからないのがメリットです。

PythonWebでは、変数、分岐、繰り返しなどプログラミングの基礎中の基礎の部分であれば十分学べるようです。

まずはこういったサイトを見て試してみて、本格的に学ぶ気になったら、書籍などを購入すれば良いと思います。

Udemy

f:id:mitsu3204:20180903182048p:plain

Udemy は、オンライン上で動画で学習するためのサイトです。動画を見ながらプログラミングや英語、数学など様々なものを学習することができます。

UdemyにはPythonを学習するための様々な講座があり、入門者向けにはPython3の入門オンライン講座 という講座がありますので、書籍より動画のほうが学習しやすいという人は、こういったものを利用してみるのも良いでしょう。

Codeacademy

f:id:mitsu3204:20180903182317p:plain

Codecademyは、オンライン上でプログラミングを学べるサービスで、教材に沿って進めていくのですが、Webブラウザ上でコードを書いていくのが特徴です。また、サイトは英語表記なので、英語が苦手なかたには敷居が高いと思われます。各コースの受講は有料となります。

CodeCamp

f:id:mitsu3204:20180903182833j:plain

プログラミングのオンラインスクールのCodeCamp は、現役のエンジニアにマンツーマンで指導してもらえるオンラインのプログラミングスクールです。

単なる動画ではなく、講師付きなので学習の質は高いですが、それなりにお値段も高いので、お金をかけられる人向けです。

まとめ

人によって、学習のために使える時間やお金は異なるので、最適な学習方法は人それぞれ異なってくると思います。

何にせよ、肝心なのは手段ではなくやってみることだと思います。

どんな手段でも良いのでまずは始めてみれば、最適な学習方法も見えてくるのかもしれません。