第3回社内勉強会を開催しました
の前に、第2回の記事を書くのを忘れてしまいました。
第2回はテーマなし(フリー)で行いました。自分はWebの通信方式(HTTPやAjax、WebSocket、WebRTCなど)の概要的な発表と、自分が過去に作ったサービスでWebSocketを使った事例を紹介しました。
KokubunjiStudy01 - Google スライド
それから後輩君が、自分が第1回に紹介したスクレイピングの技術を使ってサービスを作った話を発表してくれました。しかもこれが初めてのLTとのことで、こういう反応があると非常に嬉しいです。
そして第3回目を今日はテーマは「ゲーム開発に関する技術」でした。自分はiOS(Swift + Spritekit)でゲームを作るという発表をしました。
KokubunjiStudy02 - Google スライド
Xcodeの環境やObjective-CのサンプルをSwiftに変換することにかなり手間取り、プロトタイプにも満たないところまでしか作れませんでしたが、苦労した分、得るものも結構ありました。(ある程度の完成度まできたら、ブログにも書こうと思います)
さらに今回は初参加の方も2名来てくれました。普段会社では技術よりの話とかしない人でも、意外と興味を持っている人が多いようです。どこまで輪を広げようかは相変わらず手探り状態ですが、当面はこのくらいの規模がやりやすいかもしれません。
あとLTに関しては自分は特に下手クソなので、もっとLT力をつけて、LTって楽しい!ってことを自分が感じられて、みんなにも伝えられるようになりたいところです。
社内勉強会を主催しました
自分が今の会社でエンジニアとして幸せになるための手段の一つとして、技術に興味がある仲間を増やしたいという思いから勉強会を主催しました。勉強会を思い立ったきっかけは、KitchHikeのCEOでいつもお世話になっている@syokenzさんが、昔勤めていた会社で同じような動機から勉強会を作ったというエピソードを聞いて、自分もやってみようと思ったからです。
今回は初めてだったので今後の活動方針の話し合いと、残りの時間でLTの発表しました。自分のスライドはあんまり役に立つものではないですが貼っておきますw
http://slides.com/ryosukeigarashi/kokubunjistudy00#/
・The hottest device
・Scraping入門
やってみた感想としては、
・それ以外にも自分が知らない情報をたくさん得ることができる
・人前でプレゼンする練習になる(社内の人だけなのでやりやすい)
・発表のネタを考えるのが楽しくて勉強のモチベーションになる
などなど、かなりいいこと尽くしでした。単純に楽しかったし。
今後しばらくはこのまま続けて、いずれはもっと輪を広げてみたいなと思ってます。
性格をコントロールする
前回の記事に引き続き、モヤモヤ系エンジニアの自己分析w
前回の記事(愚直であれ - Persistence)では、とにかく愚直にやってみるということを書きましたが、そうと決めてもやはり勉強のスピードが出ないものです。
パターンとしては、①作りたいもの(目標)を考える、②それに向かって必要な知識を習得したりものづくりを始める、③作っていくうちに作りたいものがほんとうに必要なものかわからなくなってくる、④スピードダウン・停止、という流れです。愚直に突き進むことを徹底するなら③のステージになってもスピードを緩めない方がいいのですが、作りたい熱意・動機がそこまで高くないので③のステージで負けてしまうっていうパターンですね。愚直を突き通すには強い動機が必要であり目標を見失わないことが大切ってことが分かりました。
これはあくまで自分の例なので、この記事を読んでいるモヤモヤ系エンジニアの方すべてに当てはまるわけではないですが、このように自分の性格による行動パターンを認識して受け入れてあげることで自己嫌悪に陥らずストレスも少なくなるのではないでしょうか。
このことは、たまたま読んだ「つまみぐい勉強法」という本の中でも触れられていて、この本の中でも4つの性格ごとに適した勉強法が紹介されていました。(どれが一番いいとかは無しに)
IT業界を楽しく生き抜くための「つまみぐい勉強法」 (技評SE選書)
- 作者: 奥乃美,渋川よしき
- 出版社/メーカー: 技術評論社
- 発売日: 2010/05/07
- メディア: 単行本(ソフトカバー)
- 購入: 15人 クリック: 408回
- この商品を含むブログ (45件) を見る
本の中の言葉をそのまま使うと自分は「坂本龍馬タイプ」になったのですが、興味がすぐに移り変わるとか、すぐ飽きるとか、興味が無いことはできないとか、まさに自分の性格そのまんまが書かれていてちょっとビックリしましたが、そういうやり方でもいいんだという安心感を得られました。
このやり方だとスペシャリストにはなれませんが、ジェネラリストにはなれます。自分は「技術力を伸ばしたい」よりも「サービスを作りたい」という欲求のほうが強いというのは分かっているので、実は自分でも気づかぬうちに自分にあった最適な方法をしていたのかもしれません。
まとめ
- 愚直にやり続けるのは自分の性格に合わないので、自分が本当にやりたいテーマが見つかるまではいろんなことをつまみ食いし続ける(つまみ食いしながらも勉強は継続する事が大事)
- 途中で飽きたりしても自分の性格はそういうものと割り切り自己嫌悪しない。
おまけ
その優柔不断な性格を直した方がいいのでは?と思う人もいるかもしれません(自分もちょっと思ってるw)。でも自分の考えでは、性格はそう簡単に変えられるものではないし、いろいろな性格の人がいるからこそ多様性があっていいのだと思う。(ちょっと話は飛ぶけど、)一説によると、人類が他の生物よりも進化できたのは、他の生物は弱い種を淘汰しより優秀な種を残すことで生き延びる戦略をとってきたのに対して、人類は多様性を許容したからだと言われている。
それでも性格を変えたいという人には、このあいだ吉政忠志さんの転職に関する公演で教えてもらったマザーテレサの有名な言葉を紹介します。
思考に気をつけなさい、それはいつか言葉になるから。
言葉に気をつけなさい、それはいつか行動になるから。
行動に気をつけなさい、それはいつか習慣になるから。
習慣に気をつけなさい、それはいつか性格になるから。
性格に気をつけなさい、それはいつか運命になるから。
愚直であれ
技術エントリーではなく、気持ちの整理的なエントリーです。
技術力のなさを痛感
最近、転職活動をしていたり、技術力の高い人達と共同作業をさせてもらう機会があって、自分の技術力・知識量が本当に低いなということを痛感してます。特に転職活動については、自分が望むようなWeb系ベンチャー企業に対しては完全に力不足であることが分かりました。
自己分析
そんな凹むことが多いこの頃ですが、新しい気づきもあります。まず技術力については現状は現状として受け止めるしか無いとして、何が問題なのか自己分析をしてみましたところ、成長のスパイラルができていない事が分かりました。
成長のスパイラルは、以下の①〜④で回ると考えています。
①物事を始める ②壁にぶつかる ③壁を乗り越え達成感を得る ④次のステップへのモチベーションが湧く
しかし、自分の場合は②の部分で諦めてしまうことが多く成長のサイクルが回っていませんでした。②で止まった後どうなるかというと、以下のようなループになります。
①物事を始める ②壁にぶつかる ③モチベーションが下がる ④今やっていることより他の事のほうが面白そうに見える
②で止まってしまう人のパターンとして、簡単に言うと「根性なし」な性格なんですが、もっと深く行動心理について調べると、「心理的なストレスに弱い」ということらしいです。それに壁を登ることを楽しくできないようであれば、エンジニアには向いてないんじゃないかなとも思いましたが、それを決めるのはまだ早いです。
ストレスに弱いのは生まれ持った性格と育った環境によるものなので仕方ないですが、成功体験をたくさん積んで自分に自信が持てればある程度は変えられるのではないかと思います。そのためには、一度決めたことを愚直にやり続ける事が大事だと考えています。「継続は力なり」っていう言葉は知っているし重要性も理解していると思っていたけど、全然わかっていなかったことに気づけました。
それから技術的な自分のポジションもわかったことは多きな成果です。自分はやっとホイミとかギラとか覚えたくらいのレベルです。何故それがわかったかというと、相対的に自分よりがレベル高い人たちが自分の周りにたくさんいるから。だからそういうところに飛び込んでみるっていのもやって良かったと思います。
あと課題として見えてきたことは、アルゴリズム力(つまり論理的に思考を組み立てる能力)が無いということ。自分はサービス指向が強いのでWeb系のフレームワークとかライブラリばかりを使っていたけど、それって用意された道具を使っているだけで、プログラマとしての基礎体力はアルゴリズム力何じゃないかと思った。これがないとコピペはできるけど1から作ることができない人になります。
まとめ
- やると決めたことを脇目もふらず愚直にやりきる
- 困難に立ち向かうことを楽しむようにする
- アルゴリズムの勉強をする
すごいディーラーリストを作った
ドルパ(公式)のディーラーリストが見づらいって思うので、Railsの練習がてら「俺が考える最高のディーラーリスト」を作りました。
最高の〜〜〜と言いつつ完成度は50%です。100%を目指していましたがドルパが終わってしまいそうなので、やりたいことの半分ができたので公開に踏み切りました。残りの50%はUI部分なので使ってもらってフィードバックを得て次のドルパまでに100%にしようと思います。(なのでUIはほんとにやっつけです。すごい使いづらい。)
やりたかったこと
技術課題として主に2点がありました。
技術的なこと
Qiitaに投稿しました。
Ruby - Rails4+MongoDB+Herokuでサイトのサムネイル画像を保存・参照する方法 - Qiita
Qiitaにも書きましたが、無料でホスティングしたかったので画像をBinaryでDBに保存したのが今回チャレンジしたことの1つです。
HerokuのMongoHQは無料で500MBまで使えるので、1つ100KBで単純計算で5,000枚まで行ける計算です。計算だったんですがそんなに詰め込めないようでした^^;
Everyday Railsを写経する(その1)
最近とあるプロジェクトに参加させてもらって、そのお陰でテストコードを書く機会に恵まれたのは良いのだけど、なにせほとんど書いたことないものだから全然わからない。ということで「Everyday Rails… Aaron Sumner 著 et al. [Leanpub PDF/iPad/Kindle]」を使って勉強を始めました。
今日は「3.モデルスペック」の前半、DRYにするの前まで。モデルのvalidationとmethodのテストの書き方について勉強しました。ここでモデルのmatcherについて書くのはDRYじゃないので、リファレンスのURLだけにしておきます。
rspec/rspec-expectations · GitHub
methodのテストで便利なものにchangeというmatcherがあります。値が変更されたかどうかを検証するのと、メソッドチェインで.from(元の値)、.to(変更後の値)、.by(差分)も同時に検証できる。サンプルはリファレンスの「Composing Matchers」にあります。
Ginza.rb #10 に行ってきた!
銀座周辺のRubyistが集まる勉強会に行ってきました。
会場がすごい
会場はリクルートライフスタイルさんの会議室でした。大部屋に座れる階段みたいなのがあってリラックス出来る感じでした。他に畳部屋や南国部屋があって素敵すぎる会議室でした。お菓子とコーヒーもサービスして頂いてありがとうございました。
初参加の人が多い
今回のテーマは、RubyWarriorというRubyを学習するために作られたゲームで遊ぼうというものだったので、割と参加しやすく初参加の人が多かったようです。私も初参加の人でした。私の場合は、参加しやすいテーマだったっていうのと、タイトルの『Rubyの力で道を切り拓け!』ってところに刺さることろがあり思い切って参加してみました。
複数人でのライブコーディング
RubyWarriorはコードを書いてゲームを進めるシステムなので、複数人でひとつのコードを書くという作業が新鮮で面白かったです。人前でコード書くっていうのはホント頭が真っ白になります。ゲーム自体はかなり良く出来てるなという印象でした。beginnerモードでも意外と難しく、時間がなかったので最後までいけませんでしたが、最後までクリアしたいと思います。
KPT
毎回振り返りをやっているのは良い習慣だな~と思いました。K(Keep)、P(Problem)、T(Try)は覚えておこう。
Rails+Mongoってどうなの?
次の個人的なプロジェクトでRails+Mongoで作ろうかなと考えていて、でもRailsのActiveRecordつかったらMongoのスキーマレスの良さがなくなっちゃうんじゃないかなーって思っていたので質問してみました。立ち話で最後までお話できませんでしたが、やっぱりActiveRecordとMongoの思想はちょっと違うからあまりオススメできないって感じでした。自分はよくMongoとNode.jsを一緒に使っていて、スキーマレスならではの柔軟性やコードとの親和性が高いのがすごく好きなんですが...DBを取るかフレームワークを取るか難しいところです。
あと、試しところRails4.1に対応したMongoのドライバはまだなく、Rails4.0だとmongoidの4.0.0.beta1もしくはmongoid_rails4というgemが対応しているようです。まだインストールしかしてないですが。
懇親会
- いろいろな人と仕事についての話や、キャリアについてお話ができたのはいい刺激になりました。全員とはお話できませんでしたが、また機会があればお話したいです。
- Googleグラスとか360度カメラとかガジェットをさわらせてもらった。Googleグラスの空間にディスプレイがある感じかっこいい!ただ、メガネしないとボケることがわかったので度付きグラスも作ってください。360度カメラはほんとに死角なし!天井とか地面とかどうやってとってるんだろう。専用のアプリがなくてもぐるぐる見れるのはすごいですね。
最後に
運営の方々ありがとうございました!