14 September 2014

途中から参加

入力したデータからコンピュータにグラフを作らせるシステムを作っている
作らせるグラフはコンピュータに選択させる
様々なパターンのグラフを作成させて
そこからコンピュータがいくつかの候補を選んで表示する

プロトタイプがFlask, NumPy, Javascript
制作のブログがあるので読んでほしい
「おすすめグラフ」の裏側

グループウェアについて

グループウェアとは、Group + Software
つまりグループを強化する為のソフトウェアである
ソフトウェアによって集団の能力を強化する目的で作られている

よくある考え方に、
コンピュータの知能が人間に追いつき反逆するような話がある

重要なのはコンピュータが人間の知能に追いつくのではなく
人間がコンピュータによってどれだけ強化できるのかということ
Human + Computer = Argumented Human

モニタリングについて

自分自身をモニタリングするのは難しい
自分自身が疲れている時には正しいモニタリングができない

  • 人が人をモニタリングする方法
    相手が人間である限り、人間関係の問題が発生してしまう

  • コンピュータが人をモニタリングする方法
    やる気が出ない時にコンピュータに相談したら
    やる気を出させてくれるシステムを作った
    やる気の出るアドバイス

コンピュータが人をモニタリングとは?

人間からコンピュータへ情報を送る方法
コンピュータから人間へ情報を送る方法

ページをめくる速度が正しいのか?
読む速度は正しいのか?
これらをコンピュータに判断させて
人間が速度をコントロールするタスクをなくすシステム

人間増強の4要素
  • 人工物(Artifacts)
    コンピュータ、ソフトウェア、etc…

  • 言語(Language)
    概念を表す専門用語、デザパタ

  • 方法論(Methodology)
    問題解決の為の手順、戦略

  • 教育(Training)
    上記3つを使うスキルを身につける

例えば・・・

  • 開発計画を的確にして効率化しよう(方法論)
  • 顧客のニーズをこうやって確認しよう(方法論)
Pythonで再発見

知らないものを発見する方法を知る
球を見ていると思っていても
実は一部しか見えていない
視点を変えてみると実は球でなかった

視点を変えてみると新しい発見がある

known <-> unknown
物事は知っている事と知らない事の2つだけではない

  • 明らかに知っている領域
  • 明らかに知らない領域
  • 知らない事を知らない領域がある

これが盲点であってこれに気づくことが重要
自分の知っている事と知らない事を明確にする
どこまで知っているかラインを明確にする事によって
明らかに知っている領域の少し外側を知ることができるはず

比較、歴史、経験から学ぶ

色々なエンジニアと対話してみてその学び方を学ぶ
エンジニアの学び方─効率的に知識を得て、成果に結び付け

この話は抽象的なので
具体的な例と結びつかないのでわからないはず

例えば・・・

複数言語を比較することで気づく

  • 言語によって真偽の値が違う
  • 他の言語ではどうなっているんだろう?
  • None zero method?

歴史を追うことで気づく

  • PythonってなんでNew-styleクラスとそうでないクラスの2つがあるの?
  • なんでそういう事になっているのか、歴史的な経緯から学ぶ

実際に経験してみて気づく

  • 1 / 2は0.5だと思ったけど0になった

具体例を抽象化したものに触れる事で気づく

  • なんとなく使っていたこの書き方ってMediatorパターンって名前だったんだ
  • 今まで使っていたこれは、こういう名前がついていたのか

経験の異なる他人と会話する事で気づく
わからない事は勉強不足なのではなく
ただその人のドメインの外側である事が多い
ドメインの違う人とコミュニケーションを取って
新しい事に気づいてみる