他言語を長年扱ってきたエンジニアがPythonに入門するときにどう勉強するか。

今までJavaJavascript系の言語で ずっと仕事をしてきたが、 Pythonの言語習得も必要かなと感じたので、 Pythonを勉強がてら、どう勉強するのがよいのか考えたので、 忘備録として残します。

www.python.org

今回の前提は以下の通り

  1. 他の言語は複数習得済
  2. Pythonはど素人

ざっと勉強法を調べると、

  1. pythonJapanで1から勉強
  2. ドットインストーPython入門を利用
  3. Python-izmサイトを利用

など見つかる。

ただ、すでにほかの言語は習得していて、 もっと別の やる気を刺激する勉強方法はないかと思い 調査した。

1. 自分の性格から見る、よいやり方

当たり前のことではありますが、 ある程度普遍的な勉強方法の共通性はあるものの、 自分の性格に合うやり方に沿って勉強するのが、 最も効率がいい。

自分の勉強に関して寄与する性格は、 ざっと以下のようなところ。

1. 習うよりも慣れろのほうが好き。

2. 必要に迫られるような状況のほうがやる気が出る。

3. 達成感が感じられる方がよい。

なので、以下のように考えた。

1. 習うよりも慣れろのほうが好き。

文法の勉強などすっ飛ばして、 最初から、CodeAcademyのような課題を出してくれるような 勉強サイトを利用する。

課題を解く上で必要になったら 検索を使って、文法など調べる。

また、ある程度慣れたら、 おすすめ書籍を購入して勉強する。

2. 必要に迫られるような状況のほうがやる気が出る。

最初のゴールは、仕事に絡める。

仕事で使うツールを Pythonを用いて開発することをゴールとする。

3. 達成感が感じられる方がよい。

CodeAcademyはPython対応なので、 そちらを利用させてもらう形でよいと思うが、 どうせなら違う方法を試したい。

最近だと、Gameをクリアすることで、 プログラミングスキルを向上できるサイトが あるとのことなので、それをやってみる。

2. Gameを通して、勉強できるサイトはあるが、どれにするか?

検索すると十数種類のサイトが見つかる。

medium.mybridge.co

この中で、グラフィックがきれいで、Pythonが使えるサイト、以下だった。 checkio.org codecombat.com www.codingame.com

それぞれのサイトについて、調べたところ 他の人の回答を見ることができるという機能 がCheckIOにあるということだった。

習うより慣れろで大事なことは、 自分が手を動かすことも大事だが、 それと同時に、よい回答を見ることも大事と思う。

なので、 今回の勉強には、CheckIOを使わせてもらうこととする。

3. 実際にCheckIOをやってみて

CheckIOは各島ごとに課題が設定されており、 その課題をプログラミングで解くことで、レベルが上がり、 次の島に行くことができるようになる。

最初の島は無料でできるということなので、 まずはやってみた。

やってみてのよい点はまとめると

  1. 問題は日本語の用意もあり、英語読めなくても安心
  2. 他の人の回答には、いろんなテーマに沿ったコード回答があり、勉強になる。
  3. 問題レベルが適切だった。

回答には、創造的(どちらかというとどれだけ短いコードで書けるか?)、 スピード、サードパティ利用などあり、 それぞれの回答が見れて勉強になります。

また最初の島の最終問題が、 迷路の経路探索問題だったので、 全くの初心者向けよりは、難度が高く、 私の目的にはちょうどいいレベルだったと思います。

習うより慣れろ派のとっかかりとしては、 楽しくできたのでよかったです。

4. まとめ

習うより慣れろの私にとって、 最初に取り掛かるのがCheckIOによるプログラミングは、 難度がちょうどよく、楽しめたのでよかったです。

次の島には約2$必要なので、 次の島ぐらいまで遊んだら、 ツール作成に移行しようかなと思います。

今日はここまで。