桐生あんずです

京都在住大学生のブログです。日常やプログラミングについて書いてます。

「苦しんで覚えるC言語」でC言語を入門してみた

桐生あんずです。今年のRubyKaigiに行った際に、発表の中でC言語の話がたくさん登場し「これ、C言語を勉強した方が良いことが多いのでは…」と思い立って「苦しんで覚えるC言語」という本を買って読んでいました。

苦しんで覚えるC言語

苦しんで覚えるC言語

 今までRubyしかまともに書いたことがなかったのですが(最近になってJavaには触ってみた)、C言語を触ってみて色々発見があったので書いていきます。

インタプリタ言語とコンパイル言語について

インタプリタ」と「コンパイル」という言葉は実際に聞いたことがあり、それらの意味をちょっと調べてみたこともありましたが、コンパイル言語(C言語)を触る自体は今回が初めてでした。

この本を読みながらC言語を実際に触っていくと、C言語は「コンパイラ」というC言語で書かれた文字列ファイルをマシン語に翻訳するソフトを使い、最終的に翻訳した機械語プログラムがリンカというソフトで結合(リンク)されることで、マシン語のデータが実行可能ファイルとなりアプリケーションとして実行できるという流れがあることを知りました。

このコンパイラの仕組みによってC言語のプログラムがより高速に動作するようにマシン語に翻訳されていくとのことです。*1

また、Rubyインタプリタの仕組みを利用しています。インタプリタコンパイラとは違って同時翻訳を行いすぐに実行することができます。インタプリタは速度が低速ではありますが、柔軟な構成が可能とのこと。(P46から参照)

(そして、RubyKaigiでは、コンパイル言語であることで高速なC言語よりもRubyが高速に動作するように実装を考えていた人々がいた)

実際にXcodeを使ってコンパイルしつつC言語のコードを動かしていましたがRubyとはかなり違ったやり方で新感覚でした。ターミナルを使ってgccコマンドを使ってコンパイルすることもしてみましたが、こんな手間があるのか…!ということに驚き。

・main関数は特別

Rubyを触っていると本当にカルチャーショックな話なんですが、C言語はmain関数が一番先に実行されるという決まりがあります。

#include <studio. h>

int main(void) 
{
  printf("Hello World");
  return 0;
}

こういう感じのやつです。このmain関数を軸にコードは展開されていくのですが、他の関数を呼び出す際には、プロトタイプ宣言*2しておく必要があったりなどこれらに関しても普段Rubyを書いている身からするとびっくりな出来事でした。

・静的型付けであること

これらに関しても、Rubyは動的型付け*3なので、型宣言をせずともコードを書くことができますが、C言語は静的型付け*4なので毎回変数や関数の戻り値や引数に型宣言をすることが求められます。ここもRubyではあまり出くわさないシチュエーションですね。

ここの部分の文章を書く際に動的型付けと静的型付けについて書かれた記事をいくつか見て回りましたが、どちらかが良いと断言できる話ではないと思うので私レベルの入門者がどう書くべきなのかめちゃくちゃ難しい…。
ただ、動的型付けだと書きやすいケースもあるし、静的型付けだと安心なコード設計がしやすい、と色々なメリットやデメリットの話を展開することができて本当に奥が深い話だなと思います。

RubyKaigiでも型付けの話はMatzのKey Noteで話題になっていましたね。ふと思い出して探していたらQiitaの記事でレポートされている方がいた。

静的型付け言語(typescript等)が巷では流行っているが、Rubyでの型付けについてどう思うか?という質問への回答が興味深かった。
matz曰く、静的型付けのメリット(流行っている理由)は理解しているつもり。ただし、Rubyでは型宣言できるようにする予定はないと答えた。
なぜならコンパイラがもっともっと頭がよくなって行ってコンパイル時に型を予測してくれる未来が見えるから。
もしかしたら、2040には静的型付け言語はダサい、古いと言われているかもしれない。
Rubykaigi2018 - Matz keynoteまとめ より引用

・ポインタ変数という存在

「ポインタ」という概念を知ったときもRubyでは知ることのなかった話だったので新鮮な感覚で読み進めていました。このポインタについて説明されている15章では、最初に変数とメモリの関係性についても述べています。

一言で言ってしまうと全ての変数はメモリに作られていて、番号をつけて区別しているとのことです。これも今まで意識したことのない話で、目から鱗でした。

もしかしたら基本情報技術者試験のテキストでも見たかもしれないけど、この本ではメモリの構造についての解説がわかりやすくなされていてよかったです。(メモリは巨大な1列ロッカーであり、オンとオフで管理されているという例え話がすごいわかりやすかった)

本題のポインタ変数ですが、ポインタ型*5で宣言された実際の変数です。この変数には、その元となった型の変数のアドレスを自由に代入できます。
変数のアドレスの値を記憶することができるもので、記憶しているアドレスのメモリを読んだり書き換えたりすることができます。
ここで一気にメモリやアドレスなどの概念を一気に意識することになるので、理解するまでに何回も読み返していました…。

使い方としては、「ショートカット」のようなものとのこと。
詳しく掘り下げて行くと、ポインタ変数に実際に存在する変数のアドレスを記憶しておけば、そのポインタ変数が使える場所であれば、元の変数が使えない場所であってもポインタ変数を通常変数モードに切り替えれば、元の変数と同じく使うことができるとのこと。

つまりは必要なデータを扱うための便利ショートカットツールというような扱いっぽい。
これらに関しては本当に知らなかったのでびびりました。調べて行くと、「リスト構造*6」なんてものがあったりと(よく探してみると基本情報技術者試験でもこれに関する問題出てますね)、もっと深めていくと良さそうな感じがあります。

まとめ

構造体についてやmalloc関数とfree関数についても掘り下げていきたいところなのですが、文字数が無限に増えていきそうなのでここで一旦止めておきます。最近作った技術ブログでゆるっと補足するかもしれない。

最終的に何を書きたかったかというと、C言語の実態を知ることで、Rubyだけでは知ることが難しかったプログラミング言語に関する基礎的な概念に触れることができたということです。また、Rubyの書きやすさを改めて思い知らされました。どこかのエントリで似たようなことを書いたかもしれないけど、他言語に触ってみることでRubyがいかに初心者が触りやすい言語であるかをちょっと知ることができました。

また、Rubyの学習に関しては「プロを目指す人のためのRuby入門~言語仕様からテスト駆動開発デバッグ技法まで~」がすごくお世話になりました。これを読むとRubyの基礎がじっくり学べます。Railsをやっている人向け。


ソフトウェア開発をしていく中では、C言語に実際に触れることはなかなか少ないと思うのですが、新しい言語を習得していく中でC言語を触った経験があると学習コストが低くなっていくのではと感じました。直接的に役立つことは少ないかもしれませんが、知って損はないのかもというのが今の感触です。今後何か役立つことがあってほしい。

C言語入門が終わったところで、次は家にある「新・明解C言語で学ぶアルゴリズムとデータ構造」を読むとアルゴリズムについて深く学べて良さそうだなという気持ちがしているので、他の読みたい本と並行しつつ読んでいこうと思います。

もしくは、今サークルの活動でゲーム開発に関わろうとしているので、C#Javaなどを改めて入門してみるのも楽しそうだなと感じています。
という感じに、今後も興味がある分野に関してどんどん掘り下げていきたいです。

*1:C言語にもインタプリタ式の環境はあるとのこと。

*2:あらかじめ先頭で関数の形を宣言しておくことで、ほかのすべての関数からその関数を使えるようにすること

*3:プログラミング言語で書かれたプログラムにおいて、変数や、サブルーチンの引数や返り値などの値について、その型を、コンパイル時などそのプログラムの実行よりも前にあらかじめ決めるということをせず、実行時の実際の値による、という型システムの性質のことであること。(( 動的型付け - Wikipedia より引用

*4:プログラミング言語で書かれたプログラムにおいて、変数や、サブルーチンの引数や返り値などの値について、その型が、コンパイル時など、そのプログラムの実行よりも前にあらかじめ決められている、という型システムの性質のことである。 静的型付け - Wikipediaより引用

*5:アドレスを記憶する変数の型

*6:ポインタ型(アドレス指定型)のデータをつないで、全体を操作できるようにしたデータ構造

父親に自分のインターネット活動を見られるようになった話

 桐生あんずです。

今週のはてなブログのお題が父の日に因んでなのか、「おとうさん」らしいです。

最近、父親とインターネットに関わることで書きたい話題があるので一筆したためてみようと思います。

今年の春休みにに実家に帰った時のことです。ふと父親のスマホを覗き込むと、Google履歴にとても見覚えのある文字列が見えました。

「桐生あんず」

私のハンドルネームやんけ!!!!!!!!!!!!!!!!

 

2018年3月、7年近くインターネットでの活動をこそこそと続けていた私でしたが、ついに父親にインターネットの発言を見られるようになる生活に突入してしまいました。

Twitterアカウントを鍵垢にするか一瞬悩みましたが、インターネット活動が既にプライベートのものから今後のエンジニア活動に関わってくるものになり始めていたのもあり、様々な人に見てもらうために続けていきたいと考えていたので、諦めて父親にも見てもらうことにしました。今までも一応誰に見られても困らないことをアウトプットしているつもりだったし。

ということで、22歳になってついにインターネットの発言を父親に見られる日々が始まりました。

ここからは父親にインターネットを見られていることが公認になってからの印象的だったエピソード集です。

オフ会の一番最初にするような会話を父親とすることになる

インターネットのオフ会で初対面する時って「あっ!◯◯さんのことは◯◯の記事で知ったんですよね〜!」のようなどこから存在を知ったかどうかみたいなトークを改めてすることがありますよね。

最初に聞いたのはまずそこからでした。

あなたはどこで「桐生あんず」を知ったんですか…?(実際の会話のノリは「えっどこで分かったの?笑」という軽いノリでした)

あまりその時の会話のことはもう覚えていないのですが、ばつの悪そうな顔をしながら「立命館大学ラーメン研究会って調べてたらブログが出てきた」という返答をされたことは覚えています。

この記事か!!!!!!!!!!!!!!!!

kiryuanzu.hatenablog.com

思わぬところから身バレに繋がる行為をしていました。ラーメン研究会の人たちとは飲み会や旅行に行くこともあって、その話を父親にちょくちょくしていたもんね…。でも、そこから気になってインターネットで自分の娘の所属するサークル名をググり出すのは今時の父親っぽくて好きです。

子供の身辺を心配して子供が所属している団体をサーチする活動、今時の心配性なお父さんお母さんはよくやってそう。最近どっかの大学の体育会系団体が大変なことになっていたし…

心配性というと、私が1月に就職活動の一環でいくつかのWeb企業へ会社訪問を行った際に明らかに社名がわかるような写真ツイートをしたところ、「ネット活動には気をつけろよ」という忠告をボソッとされたことを覚えています。

いや、違うんだ、分かるんだけど、この界隈だとそういう発信を行ってもいい空気があるんだ…。

きっとこの頃から「桐生あんず」を追い続けていて陰ながら心配をしていたということなので、ありがたい一方で「あんなツイートやこんなツイートもチェックしていたのか…」と震え上がりそうになります。

ツイートが少ないと心配LINEが飛んでくる

体調が悪かったり、多忙だとツイートがどうしても少なめになる時があるんですが、その時にいつも「大丈夫ですか?」というLINEが飛んできます。完全に数時間単位で見られている…。

f:id:kiryuanzu:20180621220738p:plain

LINEを返さないとTwitterが生存確認ツールになっているらしく、Twitterでも投稿がないと心配になるらしいです。ちゃんと生きているので大丈夫です。

何らかのアウトプットをするたびにレビューが飛んでくる

RubyKaigiの時のブログの感想をLINEで送ってきました。この記事投稿して10時間も経ってないはずなんですが…。

プログラミングの勉強会を行なっている時の感想ツイートもバッチリ補足しており、ここでもやはりLINEが飛んでくる。

f:id:kiryuanzu:20180621221853p:plain

こうやってネット活動に対するフィードバックをもらえるのは嬉しいんですけど、それが実の父親だと地味に恥ずかしくなってきます。いや、見てくれるのはとてもありがたいのですが。

 

まとめと父親との関係について思うこと

主にこんな感じです。このようなやりとりがほぼ毎日ある現状です。

人によっては「こんなの恐ろしい、耐えられない」みたいに実の親にネット活動を見られることに恐れを感じる人がいると思うのですが、ちょうどプログラミング活動を行うにあたって「誰に見られても良い」というスタンスでインターネット活動をした方が都合が良いということに気付いて切り替えていた段階だったので、私の場合は今までのネット活動を非公開か全て削除したくなるぐらいのような大きなダメージは受けませんでした。

でも、初めて会う人に「桐生あんずさんですよね!◯◯の記事とかで◯◯のWebサービスで知ってます」と言われるより、実の父親に「桐生あんず」という存在をチェックされて知られているのは結構不思議な気持ちになります…。

 

このような関係性に関して、今も抵抗がないのはもう一つ理由があると思います。

この記事を読んでもうお気づきの方はいらっしゃると思うのですが、うちの父親、「超がつくほどの過保護」なんですよね。

 

それに関しては、生まれるのが遅かった子供だった(結婚して8年目でやっと生まれた)り、一人娘だったり、昔から何かと忘れ物やケアレスミスをする人間なので見ていないと不安だったりと様々な条件が重なってこうなっていると思います。

小学2年生の頃に行ったディズニーランドでどこの場所でも絶対手を離してくれなかったことを今でもすごく覚えています。小学校高学年に上がるまでずっとそうだったんじゃないかな。

 

また、父親は公務員といった堅実な職についており、幼少期から「公務員になったら絶対人生が安定するから」と言い聞かされて、そのまま私は深く考えずに法学部に入って最初は公務員になることを考えていました。

ただ、プログラミングを知ってしまったことで大学4回生になってからWebエンジニアになりたいという気持ちを抱くようになり、Web企業の夏のインターンシップにこっそり応募して、書類選考が通ってこれから面接をしないといけないと話をした時、今までにない以上にめちゃくちゃ怒られました。

 

細かく話すと面倒なので簡単に要約すると「プログラマーなんて不安定な職業は絶対にやめろ」という話でした。

その時、父親のあまりにも保守的な振る舞いに絶望して本人の前で大泣きしながら反抗の言葉を何度か放った後、と実家の自室でもう一度泣きました。

なんでここまで悲しかったのだろうと今思うのですが、やっと見つけられた自分の一つのあり方を否定されて、興味のない他の職業の選択肢を強引に提示されるという行為をずっと信頼していた父親にされたことがすごくショックだったのだと思います。

私のことを思っての行為だったのかもしれませんが、私のことを信用してくれないように感じてしまい、感情を大きく動かされたのかもしれません。

 

その翌日、すぐに謝られました。(父親は、私に嫌われたくないので私に落ち度がある話であっても毎回すぐに向こうから謝ってきます。本人が読む記事でこんなこと書くものではないんですが。)

その後、私が初めて作ったWebサービスを見せたり、RubyKaigiのことを詳細は隠して話して子供の頃から好きだったサービスのエンジニアの人たちと仲良くなれたことを話すと、そこそこ嬉しそうな反応を返してくれるようになりました。(こういうことを口頭やLINEで話すからネット活動バレの原因になるんですよね)

 

またまたその後、今のバイト先にジョインすることが決まった1月の時には、「こういうアプリがあれば面白いと思うんだけど〜」といったアイデアをどんどん話してくれるようになったり、技術者としての心得(父親は高専卒なのでそこらへんの話も好きなようです)について会話を交わすようになったりと、私がWebエンジニアになることについて肯定的な態度を示すようになりました。

 

その結果、今は毎日のように私のインターネット活動を監視してレビューしてくるようになってしまいました。

こう考えると様々な流れがあって面白いなあと思うのですが、反対されるよりはマシかなあと思います。多少シュールな関わりに見えますが。

留年したり、急にプログラミングをやり出して東京や広島や仙台に行き出したり、今も何かとマイペースにやろうとしていたりと、不安ばかりの娘かもしれませんが今後ともよろしくお願いいたします。

 

 

今週のお題「おとうさん」

 

京大マイコンクラブに4月から入会しました&OB会でLTをしました

桐生あんずです。近況エントリです。

4月から京大マイコンクラブに入会しています。

www.kmc.gr.jp

 

どんなサークルかということですが、上記の公式サイトの入部案内ページによると

KMCはコンピュータを使って何かを創るサークルです。

具体的にはコンピュータを使ったゲーム制作、音楽制作、イラスト制作、 Webサービス開発、電子工作をはじめとする創作活動や、 競技プログラミング、情報分野の勉強会、 そしてサーバいじり等を行っています。 また、2010年からは部誌を毎年制作し、 上記の活動等を書籍という形で公開しています。

これらの活動を部員のそれぞれが思い思いに行いながら、 仲間と意見交換し、先輩から助言をもらい、互いに切磋琢磨して行く場がKMCです。

 

 といった物作りサークルです。「マイコン*1というネーミングからプログラミングサークルなのかな?と一瞬思ってしまいがちですがゲーム、イラスト、DTMなど「ものづくり」に関係することなら何でもやっているものづくりサークルです。なので物作りが好きないろんな人たちがいます。

1, 入った経緯

 大学5回生になってまで、なぜ新しいサークルに入ろうかと思ったかというと、私がプログラミングに触れるきっかけになった「1か月でWebサービスを作る勉強会」の主催者のid:hidesysさんがKMCのOBの方であり、京都のWeb界隈周りで知り合うことができたid:Pasta-Kさんやid:uiureoさんやid:sora_hさんも関わっているサークルで、そういったWebに強い人たちがワイワイしていて面白そうだなーと2017年の冬頃から思っていました。

そのような強い人たちがたくさんいそうで私のような初心者が関わっても大丈夫かな〜と思いつつ、4月に新歓があるという情報を聞き、「まだ一応大学生*2なんだしここはせっかくだから入ってみちゃおう」という半ば衝動的な気持ちで入部を本格的に考えることにしました。

ということで、Twitterの公式アカウントにDMを送り部室で行われていた新歓イベントに参加し、話を聞きつつ、周囲を見渡すとみんなパソコンをいじってゲームをしていたりコードを書いてて楽しそうだなあと思ったのでそのまま会費を払って入会しました。その後そのまま部室でコード書いてたか何か作業してた気がする。

あと、5回生だけど新入生扱いということでご飯を奢ってもらえました。良い話。

2, 入って良かったこと

KMCに入部してそろそろ2ヶ月が経ったという感じですが、その間の入って良かったことを紹介します。

2.1, ゲームを1日で作る企画に参加できた

5/6(日)にラピッドコーディング祭りという企画がありました。これは1日(実質発表時間の関係で4時間くらい)でゲームを作っちゃおうというイベントで、KMCの既存会員に方々にメンターをしてもらいながらコードを書くことができます。

今までゲームプログラミングをしたことがなくちゃんと作り終えるかどうか半ば不安な状態でこの企画に参加したのですが、id:tenさんやid:asRagiさんの手厚いアドバイスのおかげで、Processingで「アイドルの女の子が上下に移動して曲が30秒間流れていいねを稼ぐゲーム」を作ることができました。

www.nicovideo.jp

当たり判定の幅の計算で絶対値を利用するのが、しばらく数学自体から離れていた自分からするとすごい知見でした…。

そういった発見もありつつ、ゲームの流れに必要な変数や関数を定義していくことでゲームが作り上げられていくのが面白かったです。

Webサービスは目に見えてちゃんと動くものを作るのに多少時間がかかることもありますが、ゲームプログラミングの場合は、コードを書いてはデバッグを繰り返していく作業が多く、目に見えた変化がたくさんあって面白いなと思いました。

あと、発表後にお好み焼きを食べに行ったのですが、女子の新入生も混じった10人ほどの集まりで「大学最近どう?」といった世間話の会話は一切発生せず、食べ終わるまで「最初に触ったプログラミング言語」の話からそれらに関連する技術の話しか発生しない空間になっていたのがめちゃくちゃ良かったです。(言い方がアレになっていますが悪いことを言っているつもりではありません)

今はRubyKaigiの余波C言語の基本を勉強しているので、この流れでC#でゲームを作ってみることにも挑戦できたらと野望を企てています。(アイデアはあるけど、またまたオタサーの姫ネタなので万人受けするかは分からない)

2.2, Slackでのコミュニケーションが楽しい

KMCはコミュニケーションツールとしてPukiWikiとSlackを利用しています。

後者のSlackですが、何でも質問ができる「#beginners」チャンネルやメイン雑談の「#active」チャンネルを始めとして、「#◯◯(会員のID名)-memo」といった会員の分報チャンネルといったものまで存在します。もちろん競プロやゲーム作り、お絵かきについても好きに話せるチャンネルもあります。そのほかにも、たくさんのチャンネルが存在しておりとても賑やかです。KMCのSlackを覗くのが最近の良い暇つぶしになっています。

また、バイトや他の用事の関係でリアルの活動に参加できなくても、会員の方々がどのようなことをされているかをネットでチェックすることができるのでとてもありがたいです。

後、自分も「#kiryuanzu-memo」という分報チャンネルを作ってみました。Twitterで呟くほどではないけど言いたいことがある時に気楽に使えるので楽しいです。進捗報告などにも使ってます。 また、自分が作っているサービスについての助言やフィードバックをもらうこともできて、パブリックに出す前にも人から反応をもらうことでモチベーションを保って開発を進められるというメリットがありました。

2.3, 部室と新歓飲み会とOB会

リアルでのKMCとの関わりですが、バイトや授業の関係で平日の20時以降に部室に遊びに行ってコードを書いたりお酒を飲ませてもらったりボードゲームで遊ぶといったことをちょくちょくやっています。今月はまだ行けてないのでそろそろ遊びに行きたい。

部室に遊びに行くと、ゲームに集中している人もいれば、コードを書いている人、技術の話をしている人、お酒を飲んでいる人、ボードゲームをやろうという誘いを人々に持ちかける人、色んな人がたくさんいます。

その中で好きにコードを書いたり、何か別のことをしたくなったら他の人に構ってみたりすることができて居心地がとてもよくて好きです。

交流系のイベントだと、新歓飲み会とOB会にも参加させてもらいました。新歓飲み会では、SlackやTwitterでしかまだちゃんと関わっていなかった人と話すことができたり(オフ会っぽい)、2次会では京都Web界隈おなじみと噂のDEN-ENでタワービールを眺めることができました。

 

OB会では、恥ずかしながら先月開発したCrash ChatについてのLT発表をさせていただきました。

OB会の数週間前にSlackでLT発表者を募集しており、よくわからないままノリで手をあげたのですが、会場に入ったところ有名企業に勤めていらっしゃるエンジニアの方々や自分で会社を運営されている方が沢山いられる空間でめちゃくちゃびっくりしました。

その空間の中、「サークルクラッシュをご存知ですか?」というスライドを見せてウケが取れたので私は満足です。

(最近のKMCについての紹介LTが続く中、謎の制作物についてプレゼンをする発表をしてしまい他の発表者の方々に申し訳なかった気持ちもある)

 

www.slideshare.net

そんなことがありつつも、この発表のおかげでOBの方々に顔を覚えてもらい「面白かったよ」とのコメントを数人の方からいただくことができました。

また、来月も大阪Ruby会議01でLTをする予定(今からめちゃくちゃ緊張している)なので大人数の前でLTをする時の感覚を多少つかむことができて良かったです。

ちなみに、新歓飲みでもOB会でも飲み会終わりに鴨川に行きました。他のエンジニアコミュニティでもあるけど、なんだかんだで最終的にみんな「川」へと集まってしまう流れ、個人的にとても好きです。ちょっとしたエモさに溢れてる。

 

4,まとめ

今までIT系のコミュニティに関わる時は、勉強会やカンファレンスがメインだったので現役エンジニアさんなど少し年の離れた方々と関わる機会が多かったのですが、KMCに入ったことで同年代で物作りに興味のある人たちと関わる機会を作ることができたのが本当に良かったなと思います。

同年代といっても様々で、プログラミングだけに限定しても、これからプログラミングを始める新入生や既に高校生の頃からコードを書き続けている新入生、ゲーム制作をバンバンやってパブリックに公開している会員の人、競プロをやりまくっている人、電光掲示板を作る人、ISUCONやCTFに興味がある人、SlackBotを作っている人、インフラにとても強い人たち、Javascriptに強い人、PythonRubyをメインに書いている人、多種多様です。ぶっちゃけ全部紹介しきれません。

関わり始めてまだ2ヶ月ほどですが、会員の人それぞれがみんな何か興味があって面白いな〜と思います。もちろん物作り以外にも、ゲームやアニメ、Vtuberなどを追いまくっている人もいて、好きなことを追求してて良いなあと思います。

なので、思い切って入ってみて良かったです。夏休みも近いので今後も良い距離感で活動に関わっていけたらと思います。

そんな感じの近況でした。

*1:マイクロコンピュータの略称。いわゆる今のパソコンみたいな存在。私のお父さんの世代で使われていた言葉の模様

*2:なお、KMCは大学生じゃない人も入れるらしいです

Ruby歴1年の文系大学生がRubyKaigi2回目に行って感じたこと

桐生あんずです。タイトルがなんか長々しい感じになっててすみません。

1,はじめに

去年のRubyKaigiでの出来事に心打たれて、5/30(木)~6/2(土)に仙台で行われた今年のRubyKaigiにも参加してきました。

rubykaigi.org

また、今回は永和システムマネジメントさんの学生支援により交通費・宿泊費・参加費等を全額負担していただき参加することができました。本当にありがとうございました。

また、宿に関してもえもり(@emorima)さん主催の貸切ゲストハウスに泊まらせていただくことができ、女性Rubyistの方々と楽しく5日間を過ごすことができました。関わっていただいた方々本当にお世話になりました。去年も行われていたRailsGirlsJapanさんの支援で来られていた方々にもそこでお会いすることができ大変嬉しかったです。

今回の記事では、去年感じたことと比較しつつ個人的な話も含めて思ったことを書いていこうと思います。

 

2,「RubyKaigiはRubyistによるRubyistのための祭典である」

最初から何を言っているんだという話なのですが、登壇されている方全員が本当にRubyが「大好き」なんだなということが伝わってくるカンファレンスです。

去年は正直、Rubyに対する知識もあまりなく「なんだかめちゃくちゃ難しいことをしているんだな…」という気持ちで発表を唸りながら眺めていることがたくさんありました。今回も、難しい内容がたくさんあり、全員の方の発表内容を完全に理解したとは到底言えないのですが、毎回強く感じることがありました。

「ああ、この人たちは本気でRubyに関わるあらゆることに対してよりよく、面白くしようとしているんだ…」

RubyC言語拡張、iSeqへの追求、JITコンパイラの最適化手法、irbに関わる実装など、Rubyの内部のあらゆるものに探求し、よりよくしようとOSS開発や実装を行なっている人たちが何を考えてどんな取り組みを行なっているかを発表を通して生で見聞きすることができるのがRubyKaigiの最大の特徴だと思います。

MatzとRubyコミッターの方々によるトークタイムのイベントもあったのですが、ここでもRubyの機能の実装の裏側でどんなやりとりが繰り広げられているかを垣間見ることができる大変面白い時間でした。

去年は「なんか面白そうなことをしているんだなー!」とワクワクフワフワした気持ちで眺めていることが多かったのですが、「あっこの人たちはRubyに対して本気(マジ)になって向き合っているんだな…」と去年よりもRubyに対する知識が深められていたからこそスピーカーさん達の恐ろしさを知ってしまう場だったと思います。

 

3,技術学習に対するモチベーションが上がった

参加して感じたのは、Rubyのカンファレンスではあるけど「あっこれC言語のこともっと知るべきだな」ということでした。 

Rubyは本当に書きやすい言語で、初心者にもオススメの言語としてよく紹介されており、私も最近、JavaやGoに触れてみてそう紹介されている理由が分かってきました。最初にRubyを始めるのは良い選択だと個人的には思いますが、RubyのありがたさとRuby独自の特徴を根本から理解するためにはのはC言語等の他言語のメリットやデメリットを知ってからなのではと今回のカンファレンスを通して強く思いました。

会期中もRubyの処理のスピードに対してC言語の処理スピードと比較している発表が何個もありました。それらの発表を見ているうちに、Rubyの便利さや特徴をもっと知るためにもまずC言語と仲良くしたいな、という気持ちがじわじわと強まっていき、我慢できずに帰り道に立ち寄った本屋で「苦しんで覚えるC言語」を買いました。

 

苦しんで覚えるC言語

苦しんで覚えるC言語

 

 

今100ページ近くまで読んでいますが、簡単な概要のパートでも「えっこんなことも用意して書かなきゃいけないの…?Ruby簡単に書けすぎなのでは…!?」と驚きの連続にぶつかっています。(こういうこと適当に書いて怒られたら怖い)

 

4,同年代のRubyistと知り合うことができた

会期中は私と同い年のRubyistの子達とも会うことができました。

その中で知り合った女の子の2人は、高校の頃からRubyを知って高校卒業してすぐエンジニアになってRuby技術者認定試験Goldも持っているとのことで、大学4年でRubyを知った自分からするとカルチャーショックを受けました。

そういった比較的早く学習して実際に仕事をしている子と自分を比べて焦るのはあまりよろしくないとは思うのでそれでマイナスなことを考えるのはやめましたが、同い年でここまでやっている子がいるのだから、私もこれからも頑張らなきゃとつい思ってしまいました。

なので先ほどのC言語教本と一緒に「Ruby技術者認定試験合格教本」を買いました。Silverの問題をさらっと見た感じ、そこまで厳しい内容ではなさそうだったので、近いうちに試験を受けてみようかなと思います。(実は前ブログに書いた基本情報技術者試験も就活の忙しさに流されて受けられてないので両方ともちゃんと受けたい)

 

[改訂2版]Ruby技術者認定試験合格教本(Silver/Gold対応) Ruby公式資格教科書

[改訂2版]Ruby技術者認定試験合格教本(Silver/Gold対応) Ruby公式資格教科書

 

 また、同年代のRubyistとしてインパクトがある存在はやっぱりそらはーさんでした。同年代として比べて良いかすらも分からない存在のお方なんですが。(中学生からRubyのコミッターをやられている方です)

会期中に会うたびにネットワーク班の人たちと一緒になってワイワイ話したり、ESMのドリンクアップの時に酔っ払いのノリでツーショットで写真を撮りました。すごく楽しかったです。次はKMC(京大マイコンクラブ)のOB会で会えるとのことなので楽しみです。(ブログではまだ言ってませんでしたが最近京大マイコンクラブというコンピュータサークルに入りました。それに関する記事もまた書きます)

 

5,「物作り初心者」じゃなくて「物作りをする人」と言えるようになります

これは個人的な話(言ってしまえば「エモ」い話)なので、そういうのが苦手な人は読み飛ばしてもらって大丈夫です。

去年のRubyKaigiでは当時開発していた「布教箱」の初期段階を見せたところ、様々なフィードバックをもらうことができて、「独学で一人でここまで作ろうとしてて偉い」といった初心者ゆえの頑張りを褒めてもらう機会に恵まれ、今まで頑張ることができました。

最近2週間ほどかけて作った「Crash Chat」(オタサーの姫人工知能APIと会話することができるRailsで動かしているWebアプリケーションです。好意的な会話をしすぎるとブロックされる仕様のネタがあります。)

www.crash-chat.net

のベータ版に対しても会期中に直接好意的な反応をもらえて大変嬉しかったです。実際今の所約800回以上は遊んでもらえている模様でherokuのデータベースの無料枠を超えそうになっていてどうしようか悩んでる状況です。

そんは話は置いといて、プロダクトを完成させてパブリックに公開できることまでやるようになったけど、フロントエンドやデザイン周りのスキルもまだ乏しい状況で、「遊び」で作った感が強いプロダクトしか私はまだ作れていない状況だと思います。

今回のRubyKaigiでもエンジニアの方々に「発想が面白いからもっとフロントやデザインにこだわって作ったらもっと良いものが作れると思う」といったアドバイスをいただくことがありました。

その言葉を受けて、もう「作るのが偉い初心者」の段階は終わって、「高い品質のプロダクトを作ることを心がける技術者」の段階にそろそろいかなければならないんだと気付きました。

そうなっていくとCやRubyの学習意欲も高まってきたけど、フロントエンドやデザインの勉強も必要だという感じです。これに関しては個人開発以外にも今のバイト先でも頑張らなきゃいけない部分なのでまだまだやること盛りだくさんです。

でもまだ学生なのでほどほどに勉強する時間はあります。やっていきましょう。

 

6,終わりに

今回のRubyKaigiを通して思ったのは、すごい人たちと関われて話せるだけでもすごく嬉しいけれど、その人たちともっと深みのある技術の話やプロダクトの話ができるようになりたいということでした。

前回は「初心者なのにすごい人たちと話せてる、めっちゃ嬉しい」という手の届かない人たちと関わって気持ちが高ぶっている感覚で過ごしていたと思います。

でも、前回知り合った方々や今回初めて知り合った様々な技術者の方々と関わってみて「自分もこの人たちのように自分が好きな技術を追求できるエンジニアになりたい」と強く感じ、イベントに参加してすごい技術者の人と仲良くなるだけではなく、今後も良い影響を沢山もらって自分自身が技術のことをもっと追求する人になっていこうと強く思いました。

という感じに、今までは人に触ってもらえるコンセプトのサービスを作ることに焦点を当てて、コードを書いていたけれどプログラミング言語の内部構造や処理速度の話にもアンテナを張って勉強していきたいと思うようになったのが今回参加してみて一番大きな心境の変化だと思います。

その取り組みがプロダクトに直接繋がるかどうか分からないこともあると思いますが、品質の高いプロダクトを作ることにいずれ繋がっていく気がしています。

そんな感じで今後もプログラミングと楽しく付き合っていこうと思ったRubyKaigi2018でした。

 

あと、今年は風邪引いて川に行けなかったので来年は絶対川に行きたい!!!!!!!!!!!!!!!!!!!!

 

 

京都の中小企業でエンジニアのアルバイトとして働いて1ヶ月経って思ったこと

桐生あんずです。

2017年12月からインターンとして働いていた会社で晴れて2018年2月にアルバイトになりお金をもらって働くようになったのですが、思ったこと、勉強したことみたいなのを振り返ってみようと思って書いてみたエントリです。

 

どんな会社で働いているのか

まずどんな会社で働いているのか紹介タイムに入らせていただきます。

一言で説明するのがちょっと難しいのですが、私がエンジニアとしてアルバイトをしている「株式会社坂ノ途中」は有機農業などの環境にやさしい農業に取り組む新規就農者さんや若手農家さんを応援し、環境負荷の小さい農業を広めることを目指す会社です。主なサービスとして自社のウェブサイトでお野菜の定期便サービスを運営したり、農家さんと買い手さん(スーパーやレストランなど)のマッチングやコミュニケーションを支援するWebサービス「farmO(ファーモ)」を運用しています。他にも、東京や京都で小売店を展開していたりも。

(京都の東寺のすぐそばにお店があります!)

f:id:kiryuanzu:20180318201253j:plain

ITをメインにしている会社ではなく流通な会社ですが、少量多品目の生鮮品の流通の現場ではITで解決するべき問題もたくさんあると感じています。私が所属しているITチームでは自社のECサービスの運用とfarmOの開発・運用がメインになっていて、私は主にfarmOの方に関わって主にバックエンドの機能追加や修正を行なっています。Rails周りをガリガリやっています。

オフィスには出荷を担当する方や経理や人事、営業をしている方など色んな方々がいらっしゃるのですがITチームの方も他のチームの方々もみんな優しい方々でリラックスした状態で仕事ができています。

そして野菜をたくさん使ったまかないを毎日食べています。すごく美味しいです。

f:id:kiryuanzu:20180318201438j:plain
f:id:kiryuanzu:20180318201345j:plain



 

実際にエンジニアとして働いてみて学んだこと

私のブログやTwiiterを以前から知っている方は既にご存知だと思いますが、去年の今頃はRailsを初めて触って間もないという状態でした。それからプログラミンスクールに行ったり自分のWebサービスを開発してみて、エンジニアのアルバイトをやってみたいと思い探していたところ、京都のインターネット界隈の繋がりのおかげで紹介してもらうことができました。

でも、やはり即戦力のエンジニアとしてはまだまだということでインターンとして簡単な機能修正や機能追加を行いつつ勉強したり教えてもらったりして、ある程度できるようになったらアルバイト採用という流れで1月の間出社させていただきました。そして、2月になって面談をしたのちに無事アルバイトとして採用されることになりました。エンジニアとしてお金をもらえるのは初めてのことで、決まったときはすごく嬉しかったです。

という経緯を説明したところで、どんなことを学んだかバンバン書いていくぞ!

1,チーム開発の感覚が分かるようになる

今まで個人開発では適当にGitコマンドを打ってコミット、リモートにプッシュをしていたわけですがそうはいかないのがチーム開発です。タスクごとにブランチを切って、コードを書き、コミットしてリモートにプッシュしコードレビューをしてもらいます。その中で「この書き方だとちょっとわかりにくいかも」、「もっとスマートに書けるんじゃないかな〜」などとアドバイスをもらえてすごく勉強になります。また、困った時にはチームメンバーにアドバイスや調べ方を教えていただけてありがたいです。また、こちらからも「このgemを使ってみたら良いと思います」「この設計やってみたいです」など提案して議論させてもらえてすごく楽しいです。

最近だと、開発に関わっている人たちを集めて開発しているサービスの機能を一から全部触るウォークスルーを企画してみんなで「この画面はどうなんだろう」「こんな機能あったら良いと思う」など議論できてすごく面白かったです。

個人開発の時は基本的に全部自分で考えて、ユーザーの声を聞きつつ機能修正をしていく流れでコードを書いていくことが多いですが、チーム開発の場合は様々な方と協力して議論しあってサービスを作り上げていく面白さがあり、やりがいがあると思います。

ちなみに、緊張感と慎重さを持ってGitコマンドを打つスキルがチーム開発には一番必要かもしれない…。

 

2,いろんな機能に触れることができる

インターンの最初期にはSEO対策(metaタグのdiscriptionの中身やTwitterCards)を個別ページごとにより適切にセットしようというコードを書きました。その中でも、どのように書いたら簡潔に書けるか考えたり、テストコードを書いてみたり、ちゃんと本番環境で反映されるかどうかチェックする必要があるなど様々な流れがあり、勉強になった記憶が残っています。

それ以外にも、ユーザのアクションを検知してSlack通知をつける機能やステージング環境と本番環境のfaviconのイメージを変えたり、ActionMailerのメソッドを新しく書くなど、個人開発では手が回らなかった部分にたくさん触ることができています。

最近だとSTI設計を作ってみる試みもさせていただいて、色々勉強になりました。(話すと長くなってしまいそうなので別記事でいつか書きたい)

また、バイト先で書かせてもらったコードを参考にして、個人開発のサービスの方にも機能を追加してみようという試みもできていてすごく良い循環になっています。

 

3,コードを綺麗に書く努力をするようになる

今までしていなかったのかよとなるんですが、大学4年までコードをまともに書いたことがなかったのでインデントのスペースなんて気にしないままコードを書いていることがかなりありました…。

今までは「動けば良いや」という気持ちで書いていた部分がかなりあったのですが、バイト先でコードを書くようになって「この記述もっと行数減らせるんじゃないのかな」とか「インデントのスペースの間隔が変で気持ち悪い」といったような感覚を得られるようになりました。よかった。

 

4,テストコード、デバッグのやり方を覚えてきた

今まで、個人開発の時はエラーが出たらエラー文をそのままググる→なんか色々試行錯誤して直すみたいなことばっかりで、テストコードもデバッグRailsチュートリアル以外ではほぼやったことがなかったのですが、バイト先で機能追加や修正のタスクをやるたびに「じゃ、まずテストコード書いてみよう〜!」とメンター役の方から提案されるようになったことで、書くようになりました。最初はassert関連のメソッドやインテグレーションテストの書き方もよくわからず、メンターの方に聞いてばかりだったのですが、もともと書かれていたテストコードを眺めているうちに書く流れがわかってきて最近はサッと書けるようになってテストを回すようになってきました。

もし通らなかったときはbyebugを駆使してコンソールでパラメータにちゃんと値が入っているかチェックしたり、テストログをおいかけてどんなエラーが起きているか見る癖もじわじわとついてきました。

デバッグのやり方は最初分からないことばかりでしたが、慣れれば慣れるほど自分で手を動かせるようになれるので楽しいです。

 

5,技術書をちゃんと読むようになった

お仕事としてエンジニアをやらせてもらってすごく楽しいし勉強になる!…のですが、今までザ・文系の人間で大学では情報学を全く学んでいない人間です。他の情報系の大学生の人たちに比べたら本当にまだまだだと思います。

実際のところ、すいすいとコードを書いて機能設計できている自信は正直まだまだなくて、スキルはまだまだだと思います。それでもこうやって雇って仕事を任せていただけて本当にありがたい限りです。だからこそ、絶対に強くなりたいと思いコンピュータ科学の基礎的な技術書からRubyの教本やDB設計の教本をガンガン読むことを始めました。

一冊一冊説明すると長くなってしまうのでまとめますが、こんな感じの本たちを2ヶ月の間読みました。

f:id:kiryuanzu:20180318201517j:plain

入門 コンピュータ科学」や「プロを目指す人のためのRuby入門」を読んだことで、プログラムの書き方が多少見えてくるようになったり、DB設計やサーバーの基本書を読んでみてどんな風にWebサービスが回っているかのイメージがどんどんと肉付いて見えるようになって良かったです。

ハッカーと画家」や「ネットコミュニティの設計と力」も、ものづくりやWebサービス開発において大事なことがたくさん書かれていてすごく面白かったです。

今までネットの文献で知識を得ようとすることが多くて、今でも実際にコードを書く時はネットで調べるのは欠かせないのですが土台の知識があってちゃんとしたコードを書けることに繋がることがわかってきてもっと早く読むべきだったとなりました。アルゴリズムとデータ構造系の分野がまだまだ弱い気がするので積んでる本を早く読み終えたい。

 

まとめ

バイトになってまだ1ヶ月ちょっとですが、振り返って見ると学べたことがたくさんあってまだまだ学ぶことが沢山ありすぎるという感じです。仕事がうまくできなくて悔しいと思うこともよくありますが、やっぱり情報学やWebサービスの勉強はやってて楽しいし、コードが書けるとすごく嬉しいです。

なんでこんなに楽しいと思うんだろうという理由の一つとして、最近読んだ「ネットコミュニティの設計と力」を読んでふと気付いたですが、今までラーメン研究会や京都大学サークルクラッシュ同好会のような様々な大学サークルのコミュニティを渡り歩いた経験から、自然と「コミュニティ」を育てたり関わることが好きになってきていて、それと同じ感覚でWebサービスをといった一つの「コミュニティ」を生成し発展させることに楽しさを覚えているんじゃないかなあということです。

バイト先では主に「農家さん」といった私が普段観測しているインターネットのメインユーザー層からは少し外れておりどう展開していくかまだ考えているところですが、その中でユーザーに便利かつ楽しんでもらえる機能を考えて実装していくことで、独特なインターネットコミュニティが形成できたらすごく面白そうだしやってみたいのが今後の目標です。そんなイメージをしつつも技術書読んでコードをガンガン書いていくぞ〜。

そんな感じの近況でした。

 

宣伝タイム

株式会社坂ノ途中では、Webショップで野菜の定期便の販売を行っています!

多様なお野菜セットが販売されております。お米やお茶、コーヒーも購入できちゃいます。どの野菜も甘みと栄養が詰まっているものばかりで大変美味しいものばかりです。

気になる方、まずはお試しセットからいかがでしょうか!!!

面白法人カヤックの「ブレストカード」で遊びました

桐生あんずです。
今日はサクラ荘の1階のリビングをお借りして、面白法人カヤックさんで出されている「ブレストカード」というブレインストーミングを手助けするカードゲームで遊びました。
brainstorming.kayac.com


「ブレストカード」とはイラスト入りの100枚のカードと他人のアイデアへの「乗っかり力」を高めるための「乗っかりチップ」7個が入っていて、この道具を駆使してブレストゲームをしていきます。
流れとしては、
①参加者の中からまず最初に1人投資家を決める。投資家は「アイデアを出して欲しいお題」を考えて他の参加者たちに伝える。

②投資家以外の参加者は、山札のカードから1枚ずつ順番に引いて30秒以内にカードから発想したアイデアをプレゼンしていく。

③全員がプレゼンし終わったら「乗っかり」フェーズに以降。投資家の「せーの!」の掛け声で他の参加者たちが自分のアイデアカード以外のカードに良いと思ったアイデアのカードに乗っかりチップを乗せる。

④投資家以外の参加者は、乗っかりチップを乗せたアイデアについて30秒以内で「これが良いと思った」「これを◯◯したら◯◯したらさらに良いと思う」など、想像を膨らませてプレゼンを行う。

⑤全員のプレゼンが終わったら、再び良いと思ったアイデアのカードに乗っかりチップを乗せて、④の時と同じように更にアイデアに対する想像を膨らませて参加者がプレゼンを行う。(なお、同じカードに乗っかりチップを乗せた参加者はグループワークを行なってアイデアを出し合ってもよい)

⑥参加者のプレゼンを聴き終えた投資家は、一番良いと思ったアイデアのカードに「ナイスアイデア!」と指差して1ゲーム終了。そのアイデアを発想した参加者、アイデアについて乗っかった者には60億円(!?)が分配される。1ゲームが終了したら最初の投資家になった参加者の左隣の者が投資家になる。そして全員が投資家の役割をこなした時点で本ゲームが終了し、一番資金を持っていたものが優勝。

お判りいただけたでしょうか。60億円が分配されるのがちょっとシュールですね。
このゲームの特に面白いところは、
「30秒以内で思い浮かんだアイデアについて話さなければいけない」「『乗っかりフェーズ』では、自分のアイデアには乗っかることはできず、他人のアイデアを膨らませていく」です。
なので、短い時間内にフッと思いついたアイデアをプレゼンしていかなければならないし、自分のアイデアは最終的には他人の手によって膨らまされていきます。

最初は「アイデアってすぐ出てくるか心配だし、人のアイデアを膨らませるのって難しそう…」と思ってしまいそうですが、やってみると様々な発見があってめちゃくちゃ面白かったです。
また、④の第一乗っかりフェーズでは「良いと思ったアイデア」について、参加者個人個人がプレゼンを行い、⑤では同じカードに乗っかりチップを乗せた人たちで1分ほどグループディスカッションを行なったのちにじゃんけんで勝った一人がプレゼンを行うチームプレゼン形式にしました。

全体的な感想を書く前に、まずはお題ごとの感想や流れを簡単な書いていこうと思います。面白そうなアイデアがたくさん出ました。(ちょっと長いので読むのが面倒になった人は飛ばしてもらって大丈夫です)

①雨の日を楽しむ方法

「水で膨らむと大きくなるおもちゃを街中にばらまく」、「服の整理整頓」、「雨の中で星を一番早く見つけるゲーム」などのアイデアが出た。
最終的に、「雨の中で星を一番早く見つけるゲーム」のアイデアが膨らまされて、「雨の中で星を見つけるゲームを婚活パーティーでやる。ペアでゲームを行なって、一番先に見つけたペアにディズニーランドチケットが優勝商品としてもらえる」といったアイデアが選ばれた。
他のアイデアにも元のアイデアからゲーム性を付与して遊ぶ企画へと昇華されて面白かった。
採用された理由は「ペアを組んで仲良くなってもらうこと、そして勝ったら更に仲良くなれそうな景品が用意されていることなど過程が明確に示されていたから。」だった。

②やってみたら面白そうな野外フェスの企画

「コスプレパーティー」、「ホールの中を真空にする」「ベルトコンベアで演者を移動」などのアイデアが出された。
ベルトコンベアのアイデアからは、「円形や空中など様々に移動ができ、見える側によって多様な解釈を産むイベントができる」といったように膨らまされた。
コスプレパーティーのアイデアからも、「開催側が服を全て用意し、メイクも指導してくれる。一つのテーマを決めてみんなで同じ服装をすることでライブの一体感を生み出すことができる」とまで膨らまされ、コスプレパーティーのアイデアが選ばれた。

③作ってみたいWebサービス

個人的に一番やってみたかったお題で、様々なWebサービスが生まれてとてもよかった。せっかくなので全部紹介します。
・日記を投稿したら「悲しい」「嬉しい」などの感情を表す発言によって音楽が自動で生成されるWebサービス
・人に渡せなかったプレゼントをネットに公開してランダムで受け取る・受け取れるWebサービス
・自分のテキストの続きがランダムに挿入されていくWebサービス
・ゲーム実況についての実況や感想を投稿できるWebサービス(ゲーム実況実況)
・文章を投稿するとAIによって多面的な角度から批評されて自己分析を助けるWebサービス
・物を持ち運ばなくてもいいように目的地に物があるかどうかが見れるWebサービス
・コーディネートを考えてもらって採用した人にお金を渡せるWebサービス

ちょっと言葉だけでは説明しづらい内容のWebサービスもいくつかあるのですが、様々な観点から作りたいWebサービスのアイデアが出てきてすごくよかった。もちろんこのアイデア群も参加者によって膨らまされていきプレゼンされていったのが面白かった。精神医学的観点によって論じたプレゼンを行う人や、「日記が音楽に変わることで他者からの反応がなくとも個人でも楽しむことができる」といった理由で推す人など、様々なプレゼンが見られたのも面白かった。
最終的に選ばれたのは「文章を投稿するとAIによって多面的な角度から批評されて自己分析を助けるWebサービス」でした。
④作りたいサークル
ここでは、「サークル会員がそれぞれ地図を作って紹介し合うサークル」や「日の出を各所で見に行くサークル」「猫を愛でるサークル」、「当番制で料理を振る舞うサークル」などのアイデアが出た。サークルの企画にゲーム性を盛り込めたプレゼンをしたり、そのサークルに所属することでのメリットやコミュニケーションの楽しさについてプレゼンが出てきた。
最終的に「当番制で料理を振る舞うサークル」が採用された。

全体的な感想

最初はすごく難しいのではと思ったが、カードを元にアイデアを出す作業は意外と苦ではなかった。
また、30秒以内でプレゼンをするというルールを設けることで「頭の中に出てきたアイデアをどんなものだったとしても殺させない(言いとどまらせない)」、「30秒以内でわかりやすく共感してもらえるプレゼン能力の向上」などのメリットがあると感じた。
そう、アイデアがどんどん生まれることもこのゲームの大事なポイントなのですがプレゼン力や共感能力を鍛えるゲームにもなっているんです。これ。
また、「自分以外のアイデアに乗っかって膨らませていく」という段階もすごく良いなと思いました。実際、元のアイデアよりも元のアイデアが膨らまされて出来上がったものの方がすごく面白く仕上がります。なので、他人のアイデアであっても自分で作り上げたもののように感じちゃうのです。

ゲームをやっていて、自分が考えたアイデアが採用されて勝つことと、他人のアイデアを膨らませてプレゼンしたものが採用されて勝つことがどちらもあったのですが、不思議なことに後者の時の方がかなり嬉しかったです…。(もちろん前者の時も勝者なので嬉しいんだけど、達成感が違う気がする)
これはちょっとした発見で、たとえ自分が最初に生み出した作品ではなくても、その作品を更に膨らませて良いものにしていく作業もすごく楽しいんじゃないかと思いました。これは今後、ものづくりの仕事をしていくにおいて良い発見だったなーと思います。

また、ゲーム性もかなりあります。実際、人に選ばれそうなアイデアのカードに乗っかりチップを乗せたり(いわゆる美人投票…)、投資家が好きそうなアイデアのカードに乗っかるといった戦略を考えたり。
複数人が乗っかりチップを乗せてるアイデアを選ぶのをあえて避けて、孤軍奮闘で闘って採用されたら賞金をたくさん得る、といった戦法ももちろんできます。

また、「自分が出したアイデアが二番目にベット(乗っかりチップが置かれている)されているときは一番目のアイデアを選ぶ、自分の出したアイデアが一番選ばれていたら二番目に置くと勝つ確率が上がる」といった戦略論を展開する人が現れたりもして、アイデア力やプレゼン力を高める以外にも様々な楽しみ方があることがやっていて明らかになりました。

このように、アイデアを考えるのが好きな人、プレゼンをするのが好きな人、ボードゲームをするのが好きな人など、様々な人が楽しめるとても良いゲームだと思います。

お値段はちょっと張りますが(4,216円)、仲間内で割り勘しあえば普通に買える値段になりそうです。(もしくは部費で買っちゃおう!これもサークルクラッシュ同好会の会計で買ってもらえました…)
何度も遊べて楽しいカードゲームなのでちょっと高いと思っても触って損はないな〜と思います。仲間内、学校、サークル、会社など様々なコミュニティで遊べるはずです。

まだまだいろんな遊び方がありそうなので今後もやってみたいです。参加してくださった方々、ありがとうございました〜。

フライパンでガトーショコラを作ろう #独身男性手作りチョコバトル

桐生あんずです。巷では独身男性手作りチョコバトルなる催しがインターネットで行われているらしい。それも兼ねてチョコを作った時のことを記事を書こうと思います。

(私は独身男性ではないですが、このイベントは独身男性でなくてもチョコに関係なくとも参加できるらしいです。)

 今まで私はバレンタインデーに手作りチョコを生成するにしても、湯煎で溶かしたチョコを流して市販のタルトの型(ロフトとかでよく売ってるやつ)に流し込むぐらいしかしていなかったのですが、さすがに22歳女子大生がこのような状態を貫くのはやばいのではないかという危機感に襲われるようになり、今年は何か手の込んだことをしたいとずっと唸っていました。

だが、一人暮らしの下宿先にオーブンなどない。炊飯器や電子レンジで何か作ることもできそうだけど、あんまりうまくできるか不安だなあとなりどうすべきかとなっていた時に大学の先輩のid:chidorimemoさんのこの記事を読んで、

バレンタインデーの手作りチョコでガトーショコラを炭にした話 - とりめも

ガトーショコラがフライパンでも作れることを知りました。

フライパンで作ってみるの、なんか手料理感があるし焼き加減もコントロールできるし楽しそう。よし、フライパンでガトーショコラを作るぞ!!!

f:id:kiryuanzu:20180215020605j:plain

まずはチョコ100gとバター一切れを湯煎(45~55度くらい。沸騰するくらいまで沸かしてしまうとチョコの旨味がなくなっちゃうらしい。)に溶かす。

溶かしたら、卵一個、ホットケーキミックス600g、砂糖大さじ2杯、無糖ココアパウダー大さじ2杯を一緒にかきまぜて、フライパンにクッキングシートを敷き、弱火で10分ほど焼いてみました。

f:id:kiryuanzu:20180215020718j:plain


なんか、こんな感じに焼けました。ちょっとこのままだと見た目が微妙ですね…。

なので、クッキーの型を使ってハート形や星型を作ってみました。

f:id:kiryuanzu:20180215020742j:plain

ちょっと可愛くなった。

ただ、これ失敗しやすい上に型の外側の余った部分が非常にもったいないことになる。なので全部に適用するのは断念しました。(余った部分は調理者が作った翌日の朝ごはんとして美味しくいただきました。)

f:id:kiryuanzu:20180215020748j:plain

星型を作ろうして失敗した図。

 

結果的に、一口サイズくらいに包丁で切ってココアパウダーとかホワイトシュガー(名前間違ってそう)みたいなやつをかけたらそこそこいい感じになりました。

f:id:kiryuanzu:20180215020752j:plain

f:id:kiryuanzu:20180215020756j:plain

わーい。

 

そんな感じで初めてバレンタインデーにほんのちょっとだけ手の込んだお菓子を作ることができました。味見してみたらちゃんとガトーショコラの味になってました。よかったです。1回分作るだけでも30分満たないぐらいはずだったのでお手軽です。フライパンは良いぞ。

 

作ったガトーショコラは、アルバイト先とその日会った人にあげました。ありがとうございました。