プログラマとして生き残るための教養

こんにちは。プログラマの三浦です。

新しい年が明けて一週間…まだ「働く」モードになっていない方もいるかもしれません。

そんな方にはいきなりハードなテーマですが、プログラマに求められる教養は何でしょうか?

プログラマという言葉自体、昨今は非常に幅広い範囲を指し示していますし、趣味で扱える程度のプログラミングで良い場合もあります。一言で言い表すのは難しいですが、一般的と思われるものを考えたいと思います。

新年気持ちを新たに!ということで、夜型人間を改め、週末は早起きして近所の公園に行ってみました。なんだか気分がいい!

新年気持ちを新たに!ということで、夜型人間を改め、週末は早起きして近所の公園に行ってみました。なんだか気分がいい!

「内容はわからないが、とりあえず何かを組み合わせて、自分たちの目的を達成するという風潮が強くなった」「実際に取りかかると思ったようにいかない・イメージとは違った」など、非エンジニアのマネージャさんの話をよく聞くためです。後になってスケールができない・メンテナンスができない等のケースもあります。理由は様々ですが、主にその扱っている「もの」を深く理解していないことが原因だったりします。

プログラミングには、一般的に英語と数学が必要です。

「いや、そんなことはないですよ」ー職業としてプログラマもしくはエンジニアを選んでいて、そう思われる方がいるとしたら、数年で転職・解雇が待っていることでしょう。そうならない場合も、そういう会社は将来性に問題があるので、時期を見て転職をお勧めします。そこまで強く断言して言える理由があります。

Web需要の流れに乗って、いわゆるコーダーと言われるJavaScriptを書くエンジニアが爆発的に増えました。これは時代の要求で、それなりのスキルや理論的な思考が必要です。優秀なエンジニアさんと呼べる人も多くいます。優秀な彼らにインタビューすると、英語と数学を軽視している人はいません。それは現場では要求されていないにも関わらず、仕事を成し遂げる過程において、英語と数学が要求される場面を多く見ているからだと思います。決して上層部にはそんな報告を上げないとは思いますが。

もちろんやりすぎには注意です。フレームワーク・ライブラリの歴史的背景、時代考察などは必要になった場合に調査すれば良いでしょう。ただし、意味も分からず、入力と出力だけを意識して使用するのは非常に危険すぎます。完全なるBlackBoxとして扱って上手くいくのは、ある瞬間的な技術デモ要素の強いプロトタイピングであったり、客寄せパンダ的な一発花火ぐらいです。それを実際に使用できる、運用できるサービス、プロダクトにする場合には超えないといけない山が何度も現れるでしょう。

コンピュータグラフィックスでは、ブレゼンハム( https://ja.wikipedia.org/wiki/ブレゼンハムのアルゴリズム )に代表されるようなDigital Differential Analyzer (DDA) algorithmが基本中の基本で、有限な画素に対し、どのように点を打てば良いのか?デジタル特有のサンプリング定理、そこには微分・積分の知識が求められます。同様にdigital signal processorでもA/D変換、D/A変換など必ず通る道には、これらの知識を要求されます。三角関数もそうですね。

3Dプログラミングでは、それに加えて行列、確率・統計の知識が要求されます。姿勢の表現、カメラの管理、ライトの管理、それの応用でクオータニオンも要求されるでしょう。確率・統計の知識がなければ、いくら高速なCPUを使っても突き抜けた処理速度を得られることは困難でしょう。いかに人間を騙すように無駄な手を省く、重要な情報だけを取り扱うか?、そこで確率・統計のスキルが発揮されます。モンテカルロ法などは、もう最たるものでしょう。

こういった枯れた知識であれば、今では日本語で書かれたサイトが沢山あり、英語のサイトを開かずとも情報を得られることと思います。が、本当の意味でのカッティングエッジな知識や情報は、残念ながら英語が優先されて情報発信されます。日本語に翻訳されるラグも以前に比べて短くなったとはいえ、やはりそのラグが致命的なビジネスの機会損失に繋がります。

プログラマ界隈ではA.I.やフィンテックの話題が尽きません。ですが、表面的な話で終わっている人と、中身に関して議論できている人・必要な素養と支える教養を持ち合わせている人とでは雲泥の差を感じます。そこには、必ず数学と英語の能力が見え隠れします。

シンガポールでは旧正月(今年は1月末)がメイン。中華街の入り口に巨大鶏が鎮座しました。完全に目がイってます。

シンガポールでは旧正月(今年は1月末)がメイン。中華街の入り口に巨大鶏が鎮座。鶏様、完全に目がイってます。

とはいえ様々な意見があることも理解しているつもりです。今回は私なりの考え、あくまでも自分自身はこの様に考えている、ということでまとめたいと思います。今後、多くのプログラマ・エンジニアが世の中に溢れかえった時に、どこで差別化されるでしょうか?どこで差が付くのでしょうか?

生き残るプログラマ・エンジニアになりましょう。

Best Regards,

Nozomu Miura

miura

秋田県生まれ。ベルギー、東京を経て現在シンガポール在住。 様々な業務アプリケーションの開発に関わり、主に低レイヤーの開発を得意とする。 ベルギーへ渡り、照明最大手のR&Dのリードエンジニアとして、メディアサーバや照明制御の開発に6年間従事。 2006年のユーロビジョンソングコンテストやアーティストのステージを支えるエンジニアとしてベルギーを拠点に欧州で活躍。 日本ではライブストリーミングサイトdommuneや、坂本龍一の映像配信などをサポート。 その一方で、vjとしてクラブシーンとも関わり、積極的にvjソフトウェアを開発。 小さくてもニーズのあるツールを提供するのが生き甲斐。次のプロダクト作成のため、メンバーを探している半ばの人生。 エンジニアとしてのメンタルを保つために、アジア大陸最南端でギラギラ葛藤中。 動物とあんことレッドブルが好き。最近お酒に弱くなりました。

0 comments