エンジニアのためのSoulHacks

SoulHack #2 GTDで仕事を自分の「テイスト」に染めてしまおう

2008年6月16日

この記事を読むのに必要な時間:およそ 4.5 分

事例 – 若手プログラマに対するアドバイス

ここで1つの例をあげて,⁠中間領域」というものの必然性を考えてみます。

主にJavaを使ってWebアプリを開発している会社のバリバリの若手プログラマのAさんから,⁠ステップアップのために何か別のプログラミング言語を勉強したいのだけど,何がいいでしょうか?」と相談を受けたとします。

私だったら,⁠そうだね。やっぱり今だったら,RubyかPythonのようなLL Languageを勉強してみるのがいいかな。それと,JavaVMで動くScalaというのも,最近流行りはじめているみたいだね。このへんから自分のテイストに合うものを選んで,ちょっとした身の回りの作業を実際に書いてみるのがいいと思う。それと,一人だとなかなか進まないから,勉強会に参加してみることを勧めるよ」というような回答になると思います。

言語の選択肢には異論があるかもしれません。また,プログラミング以外のことにも目を向けさせるべきだと言う人もいるでしょう。ここでは説明の為にあえて,プログラミング言語の選択という問題に単純化して考えてみます。

このようなアドバイスをする場合,以下のことはほぼ確実に言えるのではないかと思います。

  • 「この言語がいい」といった,確定的なコースを提示することはできない
  • 「テイスト」のような本人の主観を考慮した部分を含むアドバイスになる
  • どの言語を選ぶかといったことはあまり重要でなく,何でもいいからまずやってみることが重要
  • 知識,情報だけでなくネットワークを持つことも重要

つまり,⁠Javaの次」が何になるかを現時点で正確に予測することは難しいことですが,おおよその方向性は示すことは可能です。そして,その方向に一歩踏み出すことが重要です。今からRubyを勉強しておけば,仮に数年後にScalaが会社の標準として採用されたとしても,Javaしか知らない人よりずっと早くScalaを覚えることができるでしょう。

「テイスト」の重要性

そして,重要なことは「なんとなくしっくりくる/こない」という自分の主観的評価,感覚的評価,すなわち「テイスト」を大事にすることです。

Javaのような静的な型を持つ言語と比較したら,LL言語は相違点より共通点の方が大きいものです。では,何で複数の言語が乱立しているかと言えば,客観的に定義可能な「機能」でなく,もっと主観的な「テイスト」に違いがあり,プログラマは自分の「テイスト」に合うものに引き寄せられていくからではないかと思います。

「テイスト」が自分にしっくりくる言語は,覚えるの使いこなすのも楽です。それを一つ使いこんでおけば,もし仕事上の必要から他に移ることになっても,⁠テイスト」が合う言語で効率的に身につけた経験のかなりの部分を,新しい言語でも活用することができます。

逆に,ここで客観的な「正解」に固執して「情勢を見極めるまでは無駄な勉強はしたくない」と考えると,かえって後で苦労することになります。

プログラミング言語の普及は,進み出すと一気に進展する傾向があるので,⁠正解」が確定するまで待っていたら,頭を慣らす準備期間無しに,Javaとまったく違うパラダイムを強制的に頭の中に詰めこんで,即,それを仕事の中で使って成果を出さなければならないということになってしまいます。

少し前までは,IBMやマイクロソフト等の業界をリードする企業のロードマップを見ていれば,ある程度は将来の予測ができました。回り道をしたくない人には「正解」がありました。それは,次世代の技術が閉じた組織の中でコントロールされて開発されていたからです。

しかし,現在は,プログラミング言語に限らず多くの技術がオープンソースで開発されています。お互いに相手の情報が全部見えていて,影響を受けあいながらプロジェクトが進んでいます。そして,それを取り巻く外部の開発者やユーザも,関連するプロジェクトを横目で見ながら,良い機能を移植したり足りない所を検討したりしています。

たとえば,Ruby on RailsがWeb用フレームワークとして広まったとしても,それがRubyの優位を固定することにはならなくて,単に,その設計思想を取り入れた,(場合によっては後発だけにもっといい)フレームワークが,それぞれの言語で開発されることになります。

だから,Ruby on Railsを勉強しておけば,他の言語の後発のフレームワークも容易に使えるでしょう。逆に,Rubyの「テイスト」になじめない人にとっては,Scalaで開発されたLiftというフレームワークを勉強することが,かえってRails習得の近道になる可能性もあります。

お互いにつながっている選択肢がたくさんあって,なかなか「正解」が決まらないという状況の中では,⁠テイスト」を重視してとにかく進むことが重要です。

著者プロフィール

中島拓(なかじまたく)

株式会社ブレーン研究部にて,Windows用ソフトウエアルーター 「PROXY-2000シリーズ」を開発する。 オープンソースソフトウエアとしては,Ruby用HTMLテンプレートエンジン Amrita/Amrita2,個人用GTD支援ソフト「レビュアブルマインド」の開発に携わる。

アンカテのブロガーとして,2006年アルファブロガーに選出される。

URLhttp://d.hatena.ne.jp/essa/

ピックアップ

ヒューマンリソシアのGITサービスが目指す,時代にアジャストするエンジニアチームの作り方

アフターコロナにおけるエンジニアチームの作り方,グローバルな視点でのエンジニア獲得と開発とコミュニケーションの在り方について取り上げます。

LINE テクノロジー&エンジニアリング大全

「LINE DEVELOPER DAY 2020」より,注目すべきテクノロジー,エンジニアリングをピックアップし,詳説インタビューを実施しました。

プロダクト思考で開発が進む「みてね」の今とこれから~みてねの生みの親笠原健治氏,開発マネージャ酒井篤氏が考える,プロダクトとエンジニアリングの素敵な関係

「家族アルバム みてね」を支えるエンジニアリングについて,開発体制やプロダクトの開発・運用,これからのビジョンについて伺いました。

自分の証明と持続的な学びがこれからのDX人材の鍵を握る ~A-BANKが考えるDX人材バンクの在り方とは?

2020年11月にスタートしたA-BANKの人材バンク。評価・育成・紹介の一体型人材紹介から見える,これからの人材エコシステムに迫ります。

APIゲートウェイとサービスメッシュの違い

APIゲートウェイとサービスメッシュの,それぞれの概要とユースケースを紹介し,いずれを使用するかの判断の指針となるチートシートを提供しています。

バックナンバー

No12(2009.04)

今回のSoulHackで主に取りあげるのは,梅田望夫の「ウェブ時代をゆく」という本です。

No11(2009.03)

今回のSoulHackで取りあげるのは,阿部謹也の「世間学への招待」と他1冊の本です。

No10(2009.02)

今回のSoulHackで取りあげるのは,山本七平の「空気の研究」という本です。

No9(2009.01)

今回のSoulHackで取りあげるのは,アーノルド・ミンデルの「紛争の心理学」という本です。

No8(2008.12)

今回のSoulHackで取りあげるのは,河合隼雄氏の「カウンセリングを語る」という本です。

No7(2008.11)

特集:2008年度日本OSS貢献者賞受賞者インタビュー

No6(2008.10)

特集:エンジニアの実践的キャリアアップ思考法

No5(2008.09)

特集:事例でわかる,プロジェクトを失敗させない業務分析のコツ

No4(2008.08)

特集:ゼロからはじめるPSP

No3(2008.07)

特集:今こそ使える! プロトタイピング

No2(2008.06)

特集:「開発スタイル」開発法

No1(2008.05)

特集:エンジニアが身につけたい基本スキル 2008

-->