IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

AI活用時代にPythonで見る夢

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第16回 次の一手を探す (辻真吾) 2021年1月

はじめに

宝くじで6億円当たったら、みなさんはどうするでしょうか?私は、リーマン予想を証明するために残りの生涯を捧げたいと思っています。仕事をしなくても済むので、朝から晩までリーマン予想の証明に没頭できます。でも、残念ながらそれほど頭は良くないので、証明どころか問題の理解で挫折して、数学に没頭したフリをしたニートになってしまう可能性が高いですね。それはさておき、変化が激しいこの世の中では、よほどの資産家でもなければ人生安泰とはいかないでしょう。こんな時代をどう生きるべきなのか、迷っている方も多いかもしれません。本コラムは転職などの重大な人生の岐路を話題にするものではありませんので、今回は情報技術という視点に絞って、私自身の体験から変化する状況にどう対応するべきかを考えてみたいと思います。

柔軟性の重要さ

小学生の頃、父親にMSX2を買い与えてもらったことがきっかけで、プログラミングが好きになりました。ただ、中学高校時代はそれほどパソコンには触れていませんでしたので、本格的にプログラミングをはじめたのは大学に入ってからです。当時、大学のプログラミングの講義は教育用言語として名高いPascalを使ったものでした。私は勝手にC言語を勉強していたので、Pascalにまったく馴染めなかったことを覚えています。当時は若かったので「産業界で実際に使われているC言語の方が絶対に良いはず」と思い込み、講義を真面目に聞きませんでした。今考えると、調子に乗った若者でした。せっかく他の言語に触れられる機会だったのですから、もう少し柔軟になっても良かったでしょう。実際、その後コンピュータソフトウェア会社でアルバイトをはじめたとき、Delphiで作られたソフトのメンテナンスをやりました。DelphiはPascal言語を採用していたので、仕事が思うように進まなかったことを覚えています。幸いすぐにC言語を使ったプロジェクトに異動になり、当時はPascalから逃げられたと安心していましたが、柔軟性がなかったために使いにくい人材になっていたと言えるかもしれません。

過大評価と過小評価の危険性

1997年ごろだったように思いますが、C++言語を本格的に勉強し始めました。何がきっかけだったのかまったく記憶がありませんが、C言語と比較してその圧倒的な書きやすさに、すぐに虜になりました。卒業論文のために作るプログラムはもちろんC++で書きましたし、友人のプログラムまで作っていたような気がします。2000年の春からIT系のベンチャー企業で働きはじめました。Webアプリケーションを作るということで、Javaを採用することになりました。私はC++言語を何年か書いていたので、Javaなんてすぐにできるようになるだろうと思っていました。自分のスキルを過大評価して、C++とJavaの差異を過小評価していたと言えます。Webアプリケーションを作るという新しいスキルの習得も必要となる中で、Javaが思うように書けないと感じた時期が続きました。幸い当時の同僚には優秀な人が多く、彼らの知恵に助けられながらJavaができるようになり、気がつけば思うがままに使えるようになっていました。もしこのとき「C++が少しできるだけの自分」という状況を正確に把握できていれば、もう少し上達が早かったかもしれません。

思い切った乗り換え

ITベンチャーを退職し、大学の博士課程に入り直したのは2005年の後半でしたが、研究には相変わらずJavaを使っていました。Javaが大好きだったので、Javaさえあれば何もいらないとさえ思っていたのを覚えています。ただ、半年ほど経つと、研究のために作るプログラムと業務で作っていたWebアプリケーションとの違いに気が付きました。ちょっとしたデータをまとめたり、いくつかの外部プログラムを連続して動かすスクリプトのようなプログラムを書く場合、Javaでその都度クラスを作ることが徐々に面倒になってきたのです。Javaへの熱が冷めた瞬間でした。そこで一念発起し、プログラミング言語を乗り換えることにしました。PerlやRubyといった軽量言語が良いのではないか?と思いながら探していたときに出会ったのが、Pythonでした。もともと、CやJavaでプログラミングをしていたときからインデントを揃えることには気を遣っていたので、それが言語の特徴になっているというところからまず好きになりました。また文字列のjoinメソッドなど、痒いところに手が届き過ぎる便利な機能が満載で、あっという間に虜になったのを覚えています。その後は幸運も重なりました。2010年代はPythonとデータサイエンスの分野に注目が集まり、ライブラリがどんどん進化してくれました。2010年ごろ機械学習アルゴリズムのRandom Forestsを使いたいと思い、C++で実装したのを覚えていますが、あっというまにScikit-learnで使えるようになりました。データサイエンス関連だけではなく、Webアプリケーションフレームワークの進化も特筆すべきものがあります。もともと私がJavaでWebアプリを作っていたこともあり、時々DjangoでWebアプリを作ってみたりしますが、その便利さはまさに脱帽ものです。この年末年始はすこし時間がとれそうなので、データサイエンス分野以外でのPythonの進化も調査してみたいと思っています。

おわりに

話をまとめると、変化する情報技術に対応するには「柔軟性を持ち、過大評価や過小評価をせず、時には大胆に変化する」ということになりそうです。これは私個人の感想なので、他にもっと重要なことがありそうです。ぜひご意見などあればお寄せください。ちなみに、今回挙げたなかでは「柔軟性」が一番重要だと思っています。自分自身が使ってきた言語の変遷を見ても、柔軟に対応することでうまく状況変化に対応できてきたと思っています。こだわらないと上達しませんが、こだわりすぎると変化に乗り遅れるので難しいところです。また、柔軟性を保つためには、新しい技術を試してみることも重要だと思います。IT系の場合、ちょっと試してみるということが簡単できるのは良いところです。どんな技術があるのか、どれが自分に合っているのか、柔軟に試しながら次の一手を決めて行けると良いと思います。

 


 

筆者書籍紹介

いちばんやさしいパイソンの本
Python スタートブック
  ――Pythonの基本をしっかりマスター

まったくのゼロからでも大丈夫

辻真吾 著
B5変形判/352ページ
定価(本体2,500円+税)
ISBN 978-4-7741-9643-5
詳しくはこちら(出版社WEBサイト)
Pythonスタートブック増補改訂版

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes