MANABIYA day2 参加してきました

概要

2018/03/24 国内最大級のエンジニア向けの技術祭典を謳う、teratail主催のカンファレンス企画、MANABIYAの二日目に終日参加してきました。本記事はその概要や個人的な感想などのレポになります。

MANABIYAとは

公式サイトより転載

“MANABIYA” は、teratailがおくるITエンジニアの問題解決カンファレンスです

ITエンジニア特化型Q&Aフォーラムteratailでは、「質問」と「回答」という形で問題解決をサポートしてきました。次に私達が目指すのは、既存のQ&Aシステムでは解決できない問題に解を見出していくことです。「質問」まではいかないが ”気になっていること”、「回答」を知りたいがなかなか ”知る機会がなかったこと”。そういった ”疑問” を日本中から集め、カンファレンスを通じて解決策を見出し、”知恵” を生み出す。これが、”MANABIYA” を開催する想いです。

日本中の “疑問” をみんなの “知恵” に。

ざっくりとどんな企画が列挙すると

  • 著名なエンジニアなどの方々による講演、ディスカッション
  • 講演者に1:1で直接相談などができるコーナー
  • ハンズオン形式の各種技術体験
  • LT大会
  • XR(AR,VR,MRなど)の体験コーナーや、IoTの展示コーナー
  • 各種スポンサー企業による出展
  • 学校給食風の飲食店

などがありました。仕事の都合で二日間に渡るイベントの中で二日目のみの参加になりましたが、どのコーナーもなかなかに楽しむことができました。

雰囲気はInstagramを見ると伝わるかもしれません。

ちなみに受付を済ませると、イベント限定のトートバックと缶バッチ3個が貰えました。缶バッチはプログラミング言語やOSなどの技術ワードが書かれたものが多数が用意されており、3個まで自由に選んで貰えました。私は最近はもっぱらRailsとVuejsを書いてるので、Ruby/JavaScript/Node.jsを選びましたが、JSとNodeじゃちょっと被ってますね。

以降では、拝聴した講演の内容や感想などをまとめていますが、メモを取りきれなかった部分、記憶が怪しい部分が少なからずあります。明らかな誤りがあった場合はお手数ですがご報告頂けると幸いです。

プログラミング言語界隈で出てきがちなキーワード50連発

Rust.jp主催、清水智公様の講演です。Rustはこの後に少し触ってみたんですが、コンパイルの制約が厳しくて、コンパイルを通すまでが大変、でも通ってしまえばバグが生まれにくいといった印象でした。

50連発の50にはあんまり意味がなく、とにかく時間の許す限り話をしようという意味だそうです。講演中に登場した主なワードは以下の通り。

  • プログラミング言語
  • チューリング完全
  • インタプリタ
  • コンパイラ
  • JIT
  • AOT
  • プログラミングパラダイム
  • 手続き型
  • オブジェクト指向
  • 関数型
  • 論理型
  • 並列性、並行性
  • 手続き的、宣言的
  • 帰納法、演繹的
  • 型、型推論
  • ジェネリクス、総称型
  • アクセス権
  • エコシステム、再利用

多くはよく知るワードでしたが、それが何故必要になるのか、他のワードとどう関わってくるのかが図付きで関連付けられていて、楽しく拝聴することができました。

個人的には以下のお話が興味深かったです。(文面は要約です)

  • プログラミング言語の必須要素は「変数」「演算」「条件分岐」「繰り返し」で、FizzBuzzはそれら全てを抑えている。新しいプログラミング言語を学ぶ時は、その言語で最も自然にFizzBuzzを書いた時にどうなるかを見てみると良い。

  • 新しい言語を学ぶなら、「この言語を作った人は何を理想に、どうしたくて作ったのか」を意識しよう

エンジニアのための自分経営戦略

コーディングを支える技術の著者としても有名な西尾泰和様の講演です。

ちなみに本ブログでも、コーディングを支える技術のレビューを掲載しています。(レビューと言うほどでもない読書メモですが)

「コーディングを支える技術」レビュー | qs Developers

本講演のスライドはWebで公開されています。こちらに目を通すだけでも概ね講演の内容は把握できるのでおすすめです。

MANABIYA_エンジニアのための自分経営戦略.pdf

講演内容については上記スライドの通りなので、拝聴して特に良かったこと、感じたことを列挙します。

  • 「『この本を全部読んで理解しよう』はダメ。『まずは15分読んでみよう、それでダメなら辞めよう』にする。そうすれば失敗したときの損失を最大15分に抑えることができる。」 この言葉は僕にとっての学ぶことのハードルを下げる特効薬になりました。あまり深く考えずに少しだけやってみて、そこでイケそうなら突き進む、ダメそうなら打ち切って切り替えていく。足踏みしない学習プロセスを得ることができました。

  • 「お金は使うと無くなり、使わないとなくならない。知識は真逆で、使わないとなくなるが使えば使うほどなくならない」 これは目から鱗な本当に上手い言い回しだと思いました。確かにその通りで、苦労して得た知識も使わなければどんどん減っていくけど、使い続ければ一生使える。肝に銘じます。

  • 「技術進歩による知識の海面上昇は早い。ググってすぐに辿り着ける情報は知識交換では役に立たない。海面の上の情報を学ぶことが専門性を高めるということで、ググって手に入らない情報を自分で動かして知ることが大事」 今まで頑張って学んだこと、出来るようになったことが、技術の進歩によって誰にでも手が届くものになる。この業界はずっとその繰り返しだと思うので、その中で常に「誰にもは出来ない事」を出来る人になる事を意識しないといけないと思いました。

プログラミング CrossSession

MANABIYAにおけるCrossSessionは、その分野の著名な方々が、そのテーマに関する質問などを元にディスカッションするというセッションです。

プログラミング CrossSessionでは、前項の「プログラミング言語界隈で出てきがちなキーワード50連発」の講演も行った、清水 智公様をセッションオーナーに、光成 滋生様、keen様、沼野 剛志様がスピーカーとなる講演でした。

本セッションは、セッションオーナーの清水様がスピーカー3名に質問をし、それぞれが回答するという流れでした。概ねメモは取ったのですが、どの発言をどなたがしたのかを抑えきれていなかったので、回答を列挙するという形で掲載させていただきます。(順もバラバラ)

  • Q 新しいプログラミング言語をどうやって勉強する?
    • とりあえず公式ドキュメント読んで、公式のチュートリアルやる。その後は大きめのプログラムを書いてみる。わかんなくなったら問題点をブログに書く。そのあと解決できたらブログを更新する
    • 本を読む。特にターゲットを明確に絞ったもの
    • 数学の問題(競技プログラミング?)を解く。他の言語では解けて、アルゴリズムは理解してる問題を新しい言語でもやってみる
  • Q 公式ドキュメントって膨大な情報があるけどどうやって見る?
    • ドキュメントは隅々までガッツリ読む。初めてその言語でコードを書く時はもう文法とか全て理解してるぐらいに。
    • スマホのホーム画面に閲覧用のアプリを置いて、コンビニの待ち時間とか些細な時間にも触れる習慣をつける
    • チュートリアルを読む
  • Q HaskellやRust、C++で全然パラダイムが違うけど、それぞれ学ぶとプログラミングスタイルが変わったり足を引っ張ったりはあるか?
    • 引っ張られることは多い。当たり前にできると思ったことが出来ないとか。
  • Q プログラミングのパラダイムが変わると設計が変わると思うけど、設計どうしてる?データから考えるか手順から考えるかとか
    • 暗号系のことをやってるので、早さが重要視される。そのためデータが先で、効率よくアクセスできるデータ構造を先行して考える
    • 言語による。静的型付け言語なら型を先に決める。そのデータから何ができるか考える。動的型付け言語ならREPLで関数をどんどん書いてみて、それを組み合わせるとか
    • アプリケーションを作る観点なら、APIみたいな外の機能から作る
  • Q 綺麗なコード(メンテナンスコストが低い)とパフォーマンスの高いコードどちらを優先する?
    • そこまでパフォーマンスが重要視されないコードであれば保守性の観点から綺麗に書くことを優先する
    • 将来的にCPUがさらに高速化するので、綺麗なコードを書いておけばいずれパフォーマンスはあがる
  • Q 綺麗なコードとパフォーマンスの速いコード、どちらを優先するかの境界線をどう捉えている?
    • パフォーマンスが微妙な場合、ベンチマークを取って、一定の数値以下なら保守性を犠牲にして高速化したりする
    • パフォーマンスについてはコンパイラに頑張ってほしい。綺麗なコードを書いても、コンパイラがそれを最適化してパフォーマンスをあげるような。
    • 仕事でやる分には綺麗優先。趣味だと高速化が目的になるのでパフォーマンスを最優先にする
  • Q バグが出にくいコードを書くコツは?
    • 確実に動く小さな部品を組み合わせること。ライブラリとか安定して動く、他の人が作ったものを利用すること。
    • Rustなどのように、型の制約をキツくすれば、コンパイルさえ通ればバグの少ないプログラムが出来上がる
  • Q プログラミングをこれからも続けたい?
    • 続けたい。趣味でやる分には、作りたいけど作れてないものがまだまだある。それが終わるまでは続ける。仕事は、コレ以外に向いてるものがないので仕方なくやる。
    • 続けたい。自分が作りたいものを自由に作れるから。
    • 続けたい。でもこれから機械学習がさらに成長して、コードの生成が自動的にできるようになってくると人間不要になっていくのかも。

IoT CrossSession

続けて今度はIoTをテーマにしたCrossSession。

正直な事を言いますと、この時間はWeb系の講演を拝聴するつもりだったのですが、そちらが超満員だったので、同行した友人が拝聴していたこのセッションに向かいました。そのため、他のセッションと比べるとメモが全然取れなかったので、記憶を頼りに少しだけ内容を整理しています。

IoT CrossSessionでは、菅原 のびすけ様がセッションオーナーとなり、馬橋 雄祐様、部谷 修平様、新里 祐教様、菊地 仁様とディスカッションを行う形式でした。

セッションオーナーののびすけ様は、私の大学の先輩にあたり、在学中からITベンチャー企業の役員を務めるほどのスゴイ方で、一方的に知っていました。(主にQiitaで) そのアクティブ過ぎる活動、心から尊敬しております。

ちなみにディスカッションとは言いましたが、始まってすぐにお酒で乾杯が始まり、ゆる〜い雰囲気でまさにフリートークといった空気が印象的でした。セッションでは事前に集められた質問及びTwitter上の書き込みを見ながら、スピーカーの方々に話題を振るという流れでした。

ちなみにセッション中に、以下の私のツイートも拾って話題の一つにして頂けました。私含むWebエンジニアが会場の多くを占めていたようで、やはり気になる話題だったようです。(改めて見ると日本語が怪しいツイートだ)

上記質問の回答を要約すると、「適した言語は色々あるけど、最初は自分の好きな言語でやると良いよ」とのことでした。ありがとうございました。

他、記憶頼りですがセッション中の気になったお話は以下の通りです。

  • 国内で66歳のベテラン猟師のおじいさんが、IchigoJamで初めてプログラミング及びIoTを学んで、猟師にIoTを取り入れた事例がある。ある分野のプロフェッショナルとITを組み合わせる可能性が無限にある
  • やりたいことがあってIoTに手を付けるのが正しい。漠然と「IoTやりたい」という考え程度なら無理してやる必要はない
  • この先、ITのようにIoTも一般化する。その時ほぼ全てのIT企業はIoT企業のようになり、当たり前のようにIoTを扱う日が来る。なので今はWeb系のエンジニアたちも、このままプログラマを続けるのであれば高確率でIoTに携わることになる

オブジェクト指向言語と関数型言語

本日最も高い刺激を受けたセッションでした。資料は公開されているし、内容も資料のままなので、内容については割愛します。
オブジェクト指向言語と関数型言語 | κeenのHappy Hacκing Blog

40分という限られた時間の中で、このスライドの量をしっかりと解説するテンポの良い発表も印象に残りました。何よりこの辺の技術の話が本当に好きなんだと言う気持ちが伝染し、意欲を引き上げられたのが一番の成果だったりもします。

特にWebエンジニアは、実務じゃオブジェクト指向な言語しか使う機会が殆どありません。そんな人でも関数型のような他のプログラミングパラダイムを学ぶ必要はあるのか、学べばどんな利点があるのか、早口ながらスッと頭に入って引き込まれる発表でした。

会場は席があっという間に埋まって立ち見になりましたが、それでも足が疲れるとか感じることもなく、あっという間の40分でした。

LT大会(プログラミング/IoT)

最後のセッションは有志によるLT大会でした。ただ、募集人数に対して有志が思ったように集まらなかったのか、プログラミングテーマとIoTテーマで計12人募集していたはずが、3人だけで終わってしまうという残念な結果でした。

3名のLTはそれぞれ内容もスタイルも違っていて面白かったのですが、その人数が非常に物足りなかったです。もう少し早く知っていれば、vimとか勉強方法とかのテーマで私も応募していたので、次回があればアンテナ張っておこうと思います。

MANABIYA総評

最後に、講演内容とは関係なくMANABIYAのイベント全体についての感想をまとめます。

良い点

  • トートバッグと缶バッチ、水が受付時に貰えるのは本当に嬉しかった。特に缶バッチはどこに付けようかと今も迷ってます
  • 各講演のテーマがしっかり決まっているので、自分の興味にあわせて選べるのが良かったです。
  • 各講演とも40分(一部例外あり)という丁度よい、中だるみのない長さが自分的に合っていました。
  • 誰でもその場で”疑問”を書き込み、誰でも回答できる、「壁にテラテイル」は面白い試みでした。
  • 全体的に学校風に仕立てた雰囲気が良かった。学校給食風飲食店にて、揚げパンとタピオカミルクティーのセットが200円で買えるという学食もびっくり価格が良かったです。(夕方の割引時でしたが)

悪かった点

  • 機材トラブルが多く感じました。プロジェクタは本番に限って映らないものという法則もありますが、復旧までが長かったりして残念でした。
  • 屋上テントは席によってはスライドがまったく見えませんでした。上記機材トラブルも相まって、せっかくの講演なのに歯がゆい時間が多かったです。
  • 全体的に会場のキャパオーバーが目立ちました。講演のクオリティーから考えると、参加費を徴収したり、整理券を配布しても良かったかもしれません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です