Entry

開発スキルというか開発の素養というか

2009年04月12日

こちらの話から少し。

最近の経済の変化から、現在多くの開発者が短期的な仕事を探している。同時に、スキルを習得するために時間とエネルギーを投入するのであれば、そこから確実に最大の収入を生むことが重要だ。ここで紹介する10のスキルのリストは、あなたの履歴書を向こう5年間戦えるものにするために、今すぐ学ぶべきものだ。

あなたの履歴書を向こう5年間戦えるものにするために--今後必要な開発者スキル10選 - builder by ZDNet Japan

今新人君を教えているんだけれども,なんつか,開発で必要なスキルの中には,運用の「ノウハウ」と,ノウハウを構成する基礎になる「考え方」の2通りがあるんじゃないかと思っていたりします。で,おそらく,前者の「ノウハウ」は比較的簡単に身に付くものの,後者の「考え方」の方は,身に付けるのにかなり時間がかかるんだと思う。

んなもんで,個人的に新人君には,HTML の書き方や C# の文法みたいな瑣末な話を一生懸命勉強するよりは,基本的なコンピュータの動作の仕組みや考え方を理解してもらいたいと思っていたりします。けど,どうもそゆのは地味で好まれないみたい。つか,こゆ話はガッコウで身に付けてくるもんだと思ってるんですけど,違うんだろうか。

少し話が抽象的なので,具体例を挙げると,少し前に配列の最大値を求めるのにソートを使うトンデモの話を書いたことがありました。基礎的なスキルがある人は,こういうことはしない。こゆのは,C/C++ でも PHP でも Java でも同じことが言えるわけで,ある意味で基礎的なセンスとも言えるんだと思う。

また,先日,オブジェクトとオブジェクトの対応表を作る話で悩んでいる新人君の相談を受けたんですけれど,この解法もまたトンデモだった。興味のある方は少し考えてもらいたいんですけれど,以下のような要件がある場合,どういうデータ構造を作るのが適当でしょう。

  • やりたいことは,id が振られているオブジェクトの集合 A と B の対応表を作ること。
  • それぞれの集合にある id は連番で振られていて,A,B それぞれで id の重複はない。
  • 集合 A にある id=N のオブジェクトについて,対応するオブジェクトは,集合 B に複数ある。

  • 集合 B のオブジェクトに対応する集合 A のオブジェクトは一意に定まる。

  • 集合 A にある id=N のオブジェクトについて,対応する集合 B のオブジェクトの id は連続している(A(id=N) に対応するオブジェクトは B(id=M, id=M+1, ..., id=M+m) になる)。

某氏の解法は,次のようなもの。

  • A の要素を縦軸,B の要素を横軸にとった表を作る。
  • マトリックスの中で,対応関係がある交差位置に true をセット。そうでない場合は false。

一般的な解法では,まぁこれでいいと思うんですけれど,これだと必要になる記憶領域が際限なく増えてしまいます(それで相談を受けた)。A の要素が 100 あって,B の要素が 100 あるとき,10000 の記憶領域が必要になります。また,A の要素が1増えるごとに,必要な記憶領域が 100 増えることになってしまう。実際は,A,B ともに 10000 要素以上あるので,記憶領域がべらぼうに必要になってしまいます。

開発スキルというとき,基礎になる「考え方」ってのは,こういう話で適切な解法を見つけるセンスだと思っていたりします。例えば上の例の場合,対応関係に重複はないし,連番で対応関係が振られるんですから,すべての場合についてマトリックスを作る必要はありません。まず,対応関係がない要素については,レコードを作る必要はないし,また,対応関係がある場合も,最初に対応する id と最後に対応する id(最初に対応する id から数えた個数でもいい)だけを記録しておけば,記憶容量が節約されます。

こゆテクニックは,情報関係の話をする上で,ある意味基礎的な素養なわけで,覚えたものを吐き出すというよりは,ある問題について,その場で考えるときの考え方なんだと思ったりします。で,いくら C# や PHP の文法に詳しくても(それも必要だが),こういう素養がないと,設計的な仕事は任せられないわけで,いつまでたっても,すでにできてる設計書に基づいてコーディングすることしかさせてもらえなかったりする。ま,あたしにその素養が足りてるとも思ってないわけですけど。一方で,こゆ素養がある程度身に付いていれば,開発周りの周辺環境が多少変わっても右往左往しなくて済むことが多い気がしています。

新人君には,なるべく基礎的な素養を身に付けてもらいたいと思っているんですけれど,派手目なことに目が行きがちみたい。分からなくもないけど,将来大変になるぞ,と思ったりもします。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN