「続・アルゴリズムを学ぼう」の筆者対談~「若いエンジニアに不足している本質論」

ASCIIより出ている「続・アルゴリズムを学ぼう」の著者の1人である川中真耶さんに、本の内容からこれからのエンジニアのあり方などについてうかがいました。対談の相手はテクノブレーン株式会社のキャリアコンサルタントである碣石浩二。アルゴリズムの本についての内容から、これからのエンジニアのあり方にまで話が及びました。

碣石:
まずは、「続・アルゴリズムを学ぼう」の本の紹介をお願いします。

川中:
この本は「アルゴリズムを学ぼう」の続編で、前回は雑誌の連載記事をまとめたものですが、今回の内容は描き下ろしになります。プログラミングの基礎となるアルゴリズムについて、ストーリー仕立てで解りやすく解説した内容です。

碣石:
読者層はどのあたりを考えているのですか?

川中:
中級者に上がりたい初心者人ですね。アルゴリズムの入門書はあるんですが、そこから先に勉強したいと思うといきなり専門書しかなくて内容が理解できない。この本は、これからアルゴリズムを学びたいという人に向けていろいろなキーワードを出しています。この本を読んで、もっと深く掘り下げたいと思ったら専門書に進んでいっていただく、そんな橋渡し的な位置づけになっています。

碣石:
まずは、難しい部分もあるけど、ひと通りアルゴリズムについて分かった気になれるわけですね。

川中:
マンガというか、キャラクターを使って説明する内容なので、入門書なのかと誤解されますが、内容はけっして初心者向けではないですよ。この本を通じて、アルゴリズムやプログラミングの本質に対して、興味を持つきっかけになって欲しいと思っています。

碣石:
アルゴリズムという考えなしにエンジニアになっているケースのほうが多いかもしれませんからね。

algo_00

「続・アルゴリズムを学ぼう」。アルゴリズムをストーリー仕立てで楽しく学べる本。


■■若いエンジニアに不足している本質論

碣石:
ところで、最近の若いエンジニアが不足している点はどこだと思います?

川中:
ツールや環境が充実する中で、手軽な方法を選んでしまうエンジニアが増えていると思います。本質的なことを時間をかけてしっかり勉強すれば、どんなツールでも環境でもすぐに理解ができるんです。

碣石:
簡単な方に流れがちなんですよね。「このツールを使えばできるじゃん…」みたいな考え方になりがちで。

川中:
そもそも、使っているツールが「どうやって動いているんだろう?」という本質的な疑問を持って欲しいんですよね。それを理解した上で使って欲しいと思います。こんな考え方をするのは少数派なのかもしれませんが。

碣石:
最近の求人を見ると、開発環境が充実する中でも、その本質的な仕組みを理解しているエンジニアは求められていますよ。

川中:
最初のうちは便利なツールの使い方を覚えることも必要だとは思うんです。でも、そればっかりに頼ったままでエンジニアとして成長できるのかは疑問です。ツールをある程度使いこなせるようになったら、本質論的な部分に戻ってきて欲しいですね。

碣石:
この本の読者層もまさにそこですよね。例えば「Unity」を使いこなしている人が『あれ?この開発環境ってそもそもどうやって動いていんだっけ』って疑問に思って、アルゴリズムについて興味を持つみたいな。

川中:
まさにそれですね。この本でも正規表現について取り上げているのですが、正規表現を使うならば、その裏側で何が行われているのか、動きの仕組みを理解して欲しい。そのためには、数学的な知識が必要になるんですよね。

碣石:
技術の本質を見ろというのは、求人マーケットでも求められている考え方ですね。

川中:
本質的な理解をするために必要な知識は本当にたくさんあって…。この本でも、トラベリングセールスマン問題とかリバーシの実装などを通じて、アルゴリズムの世界を伝えようとしています。でも、実はまだ足りなくて。でも、アルゴリズムという大きな山を登るには、これだけの理解が必要だという道標を示したつもりです。

碣石:
その大きな山を登る上で、基本要素として必要なのは数学の知識なんですかね?

川中:
そうですね。数学の知識はどうしても必要です。

碣石:
そうなると、30歳超えて数学の基礎知識がないのはヤバいってことになっちゃいますが…。

川中:
数学的知識がなくてもプログラムは書けると思います。ただし、やはり本質的な理解に欠けてしまう。IT業界の中には情報系の学部で基礎を学んだことのない人も多い中、数学的理解を深めるには勉強するしかないんですよ。そこで理解しようと思った時に、この本を開けばその奥の深さが分かってもらえると。

碣石:
文系のエンジニアって多いですからね。そういった数学やアルゴリズムの初心者の方にとっても、読みやすい内容ですよね。

川中:
正規表現の話に戻すと、正規表現では実現しない書き方ってあるんです。あるいは、書いたけど動きが遅いとか…。その原因を理解するには、数学的な知識が必要なんですよね。書いたプログラムに何か不具合があった時に、本質的な理解があれば何が悪いのかがすぐに分かるはずんです。

algo_01

見た目はかわりいイラスト入りですが、内容はなかなかハードです。

■■これからのエンジニアとしてのあるべき像 ~ フルスタックエンジニア

川中:
僕がそもそも下から上まで自分でやっちゃうタイプなんですよね。だから同じようなエンジニアが増えて欲しいという願いもあります。それに、大企業にいれば人に任せられる部分もあるけど、もし、少人数になったら全部自分でやらなくちゃいけないですし。

碣石:
クラウドソーシングみたいな動きもあって、エンジニアが会社の屋号を背負わずにプロジェクト単位で動くような社会になる可能性は多いにありますよね。

川中:
僕もそう思います。その時に求められるのは少数精鋭なんですよ。だからこそ、上流から下流まで1人で何役もこなすフルスタックエンジニア(笑)が求められるんです。

碣石:
最近のエンジニアの方でもスタートアップ企業に入りたいという方がけっこういて、少人数の中で自分ですべてやってみたいと考える人が増えてきていますね。

川中:
僕の周りでも小規模の会社で実力を出している人は不満が少ないですよ。大きな会社で埋もれていると不平不満も多かったりして。

碣石:
川中さんの言うフルスタックエンジニアになるためのキャリアの積み方としては、まずは基礎を学ぶことが重要ってことですね。そこから、どんなツールでも環境にでも対応できるエンジニアになった上で、専門性を磨いていくというパスですかね。基礎の無いままに業務系の知識ばかりを積んでしまうと、それはそれで危うい可能性もあると。

川中:
そうですね。その「基礎」の部分を考える上で、この本を役立てて欲しいです。ちなみに、今回は「続」なので前回のも合わせて読んでいただくと、アルゴリズムで学ぶべき基礎的な分野をカバーできると思いますので。この本で興味が湧いたら、さらに専門的な分野の本を読んでみてください。


プロフィール

川中真耶
某検索会社勤務。これまでIT系研究所、独立系SIベンダなどに勤務した経験がある。何の仕事を始めても、最終的に木構造をいじる仕事を見つけては、それを好んでやっていることが多い。物事を身につけるためには、何事も反復練習するのが一番速いという信念を持っている。

碣石浩二
テクノブレーンにてエンジニア専門のスカウトエージェントとして勤務。その経験から多くのエンジニアとの人脈を持つ。単に求人の紹介ではなく、エンジニアの成長やスキルアップに関心が強く、
中長期な視点から今後のキャリア市場を捉える考えを持つ。

 


2013-08-29 | Posted in コラムComments Closed 

関連記事