プログラミングスクール テックアカデミー講師
太田 和樹さん
Web系アプリケーション開発のPM兼エンジニア(現役)。フロントエンド、モバイル、サーバーサイド、データ分析などに幅広い知見を持ち、経験を生かしてプログラミングスクール テックアカデミーの講師も務める。(※太田さんが講師をつとめるPythonコースはこちら )
まだ自分が触ったことのない開発言語や流行りの言語、はたまた急にプロジェクトで使うことになった言語。エンジニアであれば「新しい言語を習得したい・しなければならない」場面に置かれたことがあるだろう。
そこで、今回はエンジニア経験者向けに各言語の効果的な学習法やおすすめの書籍、ぶつかりやすい「壁」について、現役エンジニアが講師を務める日本最大級のオンラインプログラミングスクール・TechAcademy(テックアカデミー)講師である太田 和樹さんに解説してもらう。
今回のテーマは、初学者向け/機械学習向けという二つの顔を持つ「Python」の学習法だ。
プログラミングスクール テックアカデミー講師
太田 和樹さん
Web系アプリケーション開発のPM兼エンジニア(現役)。フロントエンド、モバイル、サーバーサイド、データ分析などに幅広い知見を持ち、経験を生かしてプログラミングスクール テックアカデミーの講師も務める。(※太田さんが講師をつとめるPythonコースはこちら )
30年以上の歴史を持つPythonには、二つの特徴があります。一つ目の特徴は、プログラミング初学者でも学びやすい言語であること。二つ目の特徴は、AIの根幹をなす「機械学習」のシステムを構築するのに適した言語であることです。
Pythonは言語としての構造が単純で、覚えることが比較的少なくて済みます。
分かりやすいように、JavaScriptの書き方と比較してみましょう。同じ処理でも、ずいぶん書き方が違うことがなんとなく分かっていただけるでしょうか。
そんなPythonを経験者が改めて学ぶメリットは、機械学習に生かせることです。特に最近では、「過去のデータをもとにAIで将来の売り上げ予測を立てたい」といった企業のニーズが高まっていますので、「DX」や「AI」といったトレンドの領域で活躍したいエンジニアにおすすめです。
なお、私は『知識ゼロからの機械学習入門』(技術評論社)という書籍も出版しています。先述の通りPythonは初学者向けの言語というイメージがあるからか、Pythonを解説した書籍は多くがプログラミング初心者向けで、機械学習の実装例まで踏み込んで扱っているものはそれほど多くありません。
テックアカデミーも監修しているこちらの本は、Pythonが実際にどう生かせるのか? ご指名というイメージを持ちやすい内容になっていますので、ご興味のある方はぜひお手にとっていただければと思います。
一方、Pythonにデメリットがあるとすれば、「Javaが使える人」のような“ご指名”案件が絶えない言語と比べて、Pythonエンジニアを狙い打つ案件はそこまで多くないことが挙げられます。
あくまでも「AIを取り入れての業務改善(DX)」というゴールがあり、その手段としてPythonがある(Python自体が主役ではない)。そんな位置付けの言語だと捉えるのが良いでしょう。
学習の目的がもし「転職」や「独立」なら、案件数の多いJavaやJavaScriptを学んだ方が手堅いかもしれません。
Pythonを学ぶために必要な準備はそこまで多くありません。具体的には、自分のパソコンにPythonをダウンロードし、使いやすいエディタ(VSCodeなど)を用意するだけでプログラミングを始められます。こうした環境構築の気軽さも、Pythonの魅力ですね。
いざPythonを書くにあたっても、プログラミング経験者であればそれほど高い壁を感じることもないでしょう。変数、配列、数値型/文字型といったプログラムの基本概念を一通り抑えるのに、おそらく1週間も掛からないのではないでしょうか。
ただしエンジニアの皆さんなら、プログラミングのゴールは「言語を覚えること」ではないと理解しているはず。そう、実際の開発に生かしてこそ「Pythonを習得した」と言えますよね。
というわけで、本当の意味でPythonを習得したいのであれば、簡単なものでよいのでアプリケーションなどを企画し、設計し、プログラムを書き、完成させるところまでを実践するのがよいでしょう。
おすすめはToDoリスト。もちろん他のアプリでも構いませんが、ポイントは1~2カ月で作り切れる規模の企画にしておくことです。
なぜなら、本業もある中でプログラミングの学習に取り組んでいるとどうしてもやる気が持続しづらいためです。デザインはこの際、二の次で良いので、しっかりと「動くもの」を作りきるようにしましょう。
ちなみに実務でも、「とりあえず動くものを作ってイメージを固めよう」というときには、Pythonで手早く作ることがあります。そんな手軽さも、Pythonの魅力の一つなのです。
Pythonはそこまで難易度が高くなく、環境構築も容易です。学習コストもそこまで高くありませんが、強いて「壁」になりそうなポイントを挙げるとすれば「書き方のバリエーションが広い」ことかもしれません。
例えば、「2~10までの間に含まれる偶数(2、4、6、8、10)をリストアップしたい」として、
・for文
・list関数
・range関数
・numpy配列
・リスト内包表記
……と、選択肢が五つもあります。
もちろん、それぞれにはふさわしい使いどころがあるのですが、肌感をつかむまでは混乱してしまうことも。こればかりは書きながら覚えていただくほかありませんので、そういうものだと割り切って学習を進めましょう。
最後に、プログラミングスクールの講師としてのアドバイスです。どの言語にも言えることですが、「間違い(エラー)」はネガティブなものではありません。
プログラミングスクールの講師として受講生と向き合っていると、エラーが出るたびに「どうして動かないんだろう?」とコードをすべて消してしまう人がいます。これでは、学習の機会をみすみす逃しているようなものです。
エラーこそ成長のチャンス。うまく動かないコードは「良い機会」とポジティブに捉え、自分で調べたり、試行錯誤をしたりしながらエラーが解消するまで粘り強く向き合いましょう。そんなふうに一歩ずつ着実に学習していくことこそが、結局のところ、もっとも速い成長方法なのです。
文/夏野かおる
NEW!
NEW!
タグ