• やらない言い訳をなくすために(という言い訳)(Scala自習会11日目)

    2016-04-25 23:34


    買いました。MacBook。


    なんでMacBookかというと、薄くて軽いからです。会社帰りとかでカフェとかでおしゃれっぽくお勉強すればやる気になるかなということで。

    先週までは情報技術者試験の勉強をしていたので、今週から少しずつScalaを再開します。

    でもまだぺこぺこキーボード慣れない・。。。
  • 広告
  • 初心者だけど #ScalaMatsuri に参加したら楽しかった件

    2016-02-01 00:18
    以前、SkinnyFramework Meetup に参加したという話を書きました。

    それとちょうど同じぐらいのタイミングだったのですが、ScalaMatsuriと呼ばれるイベントが1月30,31日にあるらしい、去年も楽しかったらしいというのを見て、おそらく数ヶ月後にはもう少しScalaのことを分かっているだろうと、大枚はたいてポチッと申し込んでいたのです。

    てわけではるばるお台場へ行ってきました。

    実際、Skinnyのおかげもあって、何となくScalaでモノを書けるようになってきていたので、ちょうど良いタイミングだったかなと思います。


    忘れないうちに(といいながら既に忘れかけていますが)、参加したセッションごとに簡単に自分が思ったことを書いておきます。

    Refactoring in Scala (スライドがくぞ氏
    Type Alias, Tagged Type, Value Class, Phantom Type, Iso and Prism と、いろいろ間違ったときにコンパイラが教えてくれる方法。コレは便利。

    Scalac の深みへダイブ (スライドChris Birchall氏
    Scalaコンパイラは27個のステップがある。そのステップを紹介。
    この後のScala.jsの話とか、JVMバイトコードを読む話とかに繋がったので聞いて良かった。

    リアクティブ・マイクロサービス (スライド)Christopher Hunt
    リアクティブの中で何が一番大事かと言えば、耐障害性。システム落ちたらそれ以外何の意味も無い。ということでTypesafe社の製品 Conductorの紹介でした。Dev版は無料だけどプロダクションは有料。

    バッチを Akka Streams で再実装したら100倍速くなった話(スライド根来 和輝氏
    既存のバッチとかリファクタリングできるのうらやましい。

    sbt-awsプラグインを使って簡単デプロイ(スライド)かとじゅん氏
    正直言うと自分にはこのセッションはまだ早すぎた・・・。

    ScalaコードはJVMでどのように表現されているのか スライド阪田 浩一氏
    「cafe babe」もう忘れない。
    JVMのマシン語は開発当時から1つしか拡張されてないのはすごい

    レジリエンスが無ければ、他は無いも同じ (スライドJonas Bonér氏
    耐障害性は、何かあっても自動で正常に戻ること。
    動物に学ぶ、社会に学ぶ。
    Errorはユーザに返す。FailureはSupervisorに返す。

    The Zen of Akka (スライドKonrad Malawski氏
    これもちょっと自分には早すぎた感あるけどその通りだなと思ったのは覚えてる。

    実戦Scalaz-Stream: 既存のバッチシステムを置き換える (スライドMathias Sulser氏
    バッチの書き方。後で使いそう。

    2日目アンカンファレンスは覚えてるものだけ。

    Spark入門
    この後のSpark日本語テキストマイニング入門の導入に役立った
    ちょっと自分でも触れそうな気がしてきた。
    テキストのログをSplitしてカラムとりだしてreduceByKeyでカウントして並び替える。
    cacheコマンド大事。

    ScalaとSparkによる日本語テキストマイニング (スライド) Eduardo Gonzalez氏
    Kuromojiというのを使う。あとGoogleの作った300ベクトルに変換するWord2Vec
    https://github.com/wmeddie/spark-text
    でも日本語テキストが少ないと変な学習してしまう。

    IntelliJ IDEA で Scala をマスターする (スライド) Alexander Podkhalyuzin氏
    まずIntelliJ IDEAの使い方。プレゼンテーションモードてのがあって、押したキーボードショートカットを画面に出してくれる。
    また、邪魔防止モードがあって、コードを全画面表示してくれるんだけど、そこからマウスを使わずにキーボードショートカットだけで作業が完結する。
    alt-Enterでいろいろ直してくれる。alt-矢印で選択範囲、コマンドEで最近使ったファイル

    Scala.js コンパイル・パイプライン
    Tobias Schlatter氏
    Scalaからjavascriptを作れてしまうすぐれもの。
    死ぬほど遅くはない。早いときもある。遅くても一桁倍。
    Longは中でintを2つ使う等、結構大変なこともしている。
    コア部分を別だししてcdnから読ませるとかは、結局それぞれのコードで使われる部分が違うから意味ないし、最適化で呼び出ししないで中に取り込んでいる部分もあるから難しいとのこと。

    パネルディスカッション:社内でのScala教育について
    はてな、ドワンゴ、Wix(イスラエル)、ChatWorkの社内事例。
    うーん。何か考察を述べられるほど議論が深まらなかったというか、自分も理解できていないので。。。Better Java -> Functional -> Pure Functionaというステップなのではという意見に対して、そういう一直線ではなくて、両方理解しなければならない、Better java的な書き方と関数的な考え方どっちに重点を置くかはその会社の状態にもよる(って言ってた気がする)
    あと、Wix社では下記のオンラインコースをやらせてみたと。当初は社内で教えることもしていたけど教える人を出すのも大変だった。
    Stairway to Scala (http://www.escalatesoft.com/training)
    社内教育といったときに、何を教えるかってのは確かに気になる。というか、どうしても最終的にはノイマン型マシンの上で動かさないと行けなくて、スタック積み過ぎないようにとか、裏でWhileに書き換えるとか、何かしらの制約の上でプログラムしたり、うまくコンパイラが取り持っている事があって、最低限手続き型言語の動き、できればアセンブリレベルで何となくコンピュータが何しているのか分かっていないとどっかで詰まる気がする。で、はてなとかドワンゴ教科書は、コードの書き方は載ってるけど関数型言語への導入部分はぱっと見無かった気がして、社内にbetter java的な書き方をする人と関数型的書き方をする人がいたらどうやってコードレビューとかするんだろうか、むしろ書き方の違いでもめたりするんじゃないんだろうかと思ってしまった。(初心者の感想です)


    最後に、いくつか感想をば。

    運営の皆様大変お疲れ様でした。数百人規模のイベントを片手間でやることはすごく大変だったと思います。人手の足りなさもあったでしょうし。

    同時通訳の評判が良かった。自分は2日ともレシーバもらい忘れたので聞けなかったけど、ネイティブ英語をカタカナ英語にするだけでもかなり理解度が上がるのでそういうことだったのかなと思ったりした。細かい所だとツイート見ている限り説明しきれてない部分も合った感じ。最後のパネルディスカッションでも話がかみ合わないときもあった。英語話者のプレゼンでは細かい質問が日本人からでなかった。それでも途切れずに訳してらしたのでかなりレベルの高い方々だったんだと思う。毎回終わる度に通訳さんありがとうって言われていたのはすごく良いなと思った。
    今回が大きなプログラミング系カンファレンス初めてなので、他はどうなのか知らないけど、同時通訳の使い方(事前資料超大事とか、マイクに向かってしゃべるのを徹底させるとか)は、ノウハウとして広く共有して欲しいなと思った。

    アンカンファレンス、post-itとTwitterを併用したけど、うまくその間を取り持てていなかった感じ。一人1日目からモデレータ置いてTwitterから転記したり、1日目の夜にテキストでまとめてブログに載せて貰うとかできればよかったのかも。
    朝会では最前列でもpost-itの内容が読めなかったので、途中からgoogle docsに勝手にスケジュールまとめてた。初めてのオープンソースコミュニティへの貢献?その後で公式が内容をforkしてくれたので自分の野良スケジュールは閉じた。その後は定期的に更新してくれて助かった。本当は最初から準備しておいてくれればよかったなぁなんて。
    アンカンファレンスのスケジュール作成用のWebサービスとか作ったら便利そう
    (誰でもトピックを提案できる、だれでもそれに投票できる、管理者は類似トピックをまとめられる、朝会でD&Dでスケジュールを作れる、等)

    海外の方はもちろんゲストスピーカが多いのでかなりレベルが高いのだけど、国内の参加者は私みたいな初心者もちらほらいて、レベルのギャップがあった。私は刺激になったけど、海外の人達はどうだったのだろう。
    投票で決まったセッションに比べて、アンカンファレンスの方が初心者向けセッションが多くて助かったんだけど、もしかしてお金払った人とそれ以外の人で見たいセッションが違っていたのでは仮説。

    行動規範のビデオのクオリティがとても良かった。売れる。

    2日目の最後に、もう一回会場Aに集まって終わりの会ができれば場が締まってよかったかも。

    ニコ生は直接コメントとやりとりしてなんぼ。スクリーンもう1台用意してコメント表示とかできたら面白かったかも。ニコ生だけじゃなくてgitterとかtwitterのコメントもだせたら更に可。

    同時通訳音声をニコ生できなかったのは権利上の問題?直前に決まったから?

    英語スライドに日本語字幕はよかった。でも既存のスライドを使うひとは下の部分が隠れちゃって困ったみたい。

    日本人にも外国の方にもバイリンガル多くてすごいなぁと思った。

    知り合いほぼいないし、コミュ障なので懇親会とかあまり話せなかった。似たような人をもう一人Twitterで見かけた。
    もしそういう人が多ければ、話しかけて下さいブースとか作ってくれませんか。
    2日目のお昼はがんばって海外のスピーカの人にアタックしてみた。ちょっとだけ話せた。

    全体の参加者の女性率にくらべて、サンプル少ないけど企業ブースの女性率が高かった。D社の女子マネージャの話を思い出した。

    焼き肉弁当おいしかった。甘酒もおいしかった。

    総評

    楽しかった。また行きたい。その頃には周りと話が合うくらいスキルアップしていたい。
  • TOEICで満点を取ると言うこと - @toeic990 のたわごと -

    2016-01-17 17:3045


    TOEIC スコアなんて、所詮数字です。
    エラい人には、それが分からんのです。
    - 9ちゃん。(@toeic990)
    英語勉強法の記事とか、よく話題になっているので、満点取得者として一言言っておくかという気持ちになりました。

    メニュー

    1. 初めて満点を取ったときのこと
    2. ビギナーズラックから始まった勉強
    3. 「TOEIC出来る奴に限って英語話せない」説
    4. TOEIC990点の意味
    5. TOEIC990点を取ると出来ること・TOEIC990点を取っても出来ないこと
    6. TOEICの勉強の仕方
    7. TOEICの問題の解き方
    8. まとまらないけど、まとめ

    初めて満点を取ったときのこと

    英語は元々嫌いではなかったのと、海外で勉強していたこともあって、大学1年か2年で1回TOEICを受験して、その時点で900点は超えていました。
    初めてTOEICで990点を取ったのは、就活中のことでした。TOEICの点数も履歴書に貼っておいた方が良いでしょうと、ほとんど勉強もせずに、Institutional (団体受験)で受けたところ、数週間後に戻ってきたスコアが990点。
    よく知られている通り、TOEICのスコアは偏差値です。990点を取ったからといって、全問正解したかというとそうではなく、そのテストの難易度によって、1問から2問ほど不正解でも990点は取れます。私も、このときは1問ほど不正解だったと思います。
    institutionalは元々甘めになっているという噂もあったのですが、それでも満点を取れたのはうれしかったです。

    ビギナーズラックから始まった勉強

    最初はほぼビギナーズラックで取ってしまった満点ですが、一度取ってしまうと、王座を譲り渡すわけにはいかない気持ちになってしまいます。
    それに、就職したら、990点を持っている同期が他にも何人か(!)いて、英語ぐらいしか取り柄のない自分は鼻をへし折られる思いをしたわけです。
    世の中で「一番」を取れる経験なんて、(タイですが・・・)そんなに無いので、せめてTOEICぐらいは「一番」をキープしたいと思って、それから定期的(1年おきだったり2年おきだったり)にTOEIC受験を始めました。最初の数年は980点とか、惜しい点数が続きましたが、運もあるのでしょうか、直近2回は990点を取れています。
    就職してからあまり英語に触れる機会が無いので、何かモチベーションを保ちたいというのも続けている理由です。990点取れなくなったらいろんなアカウント名も変更しないといけないですし。

    「TOEIC出来る奴に限って英語話せない」説

    そもそも話すためのテストではないので・・・。
    というのはともかく、「TOEIC出来る奴にかぎって、英語話せないんだよね」って、よく言われますよね。でも、そもそも「TOEIC が出来る」というのは何点ぐらいをイメージしているのでしょうか。例えばこのサイトによれば、700点超で英検2級レベルだそうですが。
    かくいう私も、満点取っているからといって満足に話せる自信無いです。

    海外経験をして、(TOEIC対策せずに)800点と、海外経験なしに、相当勉強して800点、同じ点数でもどれだけ話せるかは大きく差が出るのは当たり前かと思います。

    また、TOEICは文法問題がそれなりにあるので、文法をすごく気にする人は点数を取れますが、しゃべるときに文法を気にしすぎて話せないことがあるかもしれないです。

    TOEIC990点の意味

    こちらのサイトに、TOEICの統計情報グラフがあります。
    TOEICのスコア算出の指標として、parcentile rankといって、自分の下に受験者全体の何パーセントが分布しているかを表す数値があります。990点を取る人は、大体99.5%、つまり受験者全体の0.5%に収まるような点数を取れば良いことになります。大体、日本の大学受験者の中で東大に進学する比率と同じぐらいらしいです。
    仮に(もちろん仮定ですが)日本人全体がTOEICを受験したとすれば、大体65万人が990点を保有することになります。
    意外と多いと思いませんか? 参考までに、2015年の日本の弁護士数は、約3万6千人、2014年の日本の大学教授は約7万人です。

    TOEIC990点を取ると出来ること・TOEIC990点を取っても出来ないこと


    ※個人の感想です。
    字幕無しで映画 ⇒ 完璧にはムリ。決めゼリフなのに分からない事もあるから字幕があったほうが楽しめる。
    CNNとかのニュース ⇒ 大体分かる。
    洋楽 ⇒ 全く聞き取れない。
    英語の新聞 ⇒ 自分の知ってる分野のニュースなら大体わかる。でも時々全く意味の分からない単語が出てきて詰まる。
    旅行者の案内 ⇒ 道の説明は詰まることあるけどそれ以外なら大丈夫。
    通訳 ⇒ TOEICというより別の訓練が必要だと思う。日本語のよくある言い回し「よろしくお願いします」とかをすぐに英語にするためのデータベースを頭に作る必要がある。
    電話 ⇒ ピザの注文ぐらいならなんとかなるはず。あとは慣れと訓練。
    電車、飛行機のアナウンス ⇒ さっぱり分からん。(相当の海外経験が必要)
    メール ⇒ むずかしい言い回しをしようとすると詰まる。
    仕事 ⇒ 英語の資料が来たらそのまま読むより自分で日本語に翻訳してから読む方が処理が早い。

    TOEICの勉強の仕方

    ※これは完全に自己流です。まねをしても満点を取れる保証はありません。
    TOEICでも何でも、私の勉強法は、「薄くていいから取りあえず参考書でも問題集でも1冊完璧にする。」です。
    昔から私は「覚える系」の教科が非常に苦手で、社会科なんて、テストで平均の半分も行かない事もありました。
    色々と悩んだあげく、何とか平均点を取れるようになったのは、学校指定の問題集を使わなくてもいいから、書店で一番薄い問題集を買ってきて、それを何度も解いて完璧に解くことでした。
    TOEICの勉強を進める中でも、何度も文法問題でつまずいて失点を繰り返しました。
    そんなときは、文法の参考書の問題を頭から終わりまで、全問正解を目指して繰り返して解きました。

    TOEICの問題の解き方

    900点を超えたあたりから、英語の実力とスコアは比例しなくなるように感じます。小手先ではありますが、テクニックを覚えましょう。英語力があれば初歩的な問題は苦も無く解けますが、それでも、「リスニングで耳に残っている言葉と語感の似ている選択肢は引っかけ」ということ一つ覚えているだけでもかなり気が楽になるし、聞いた瞬間にニヤリとできます。
    TOEICで満点を取るための参考書は巷にあふれています。テクニックを参考にするだけなので、何冊か買って読み比べてみるのが良いと思います。
    その上で、自己流スタイルを作っていきましょう。
    ちなみに私は、ありきたりですがこんな事を心がけています。
    • リスニングでは、問題文を聞く前に選択肢を「必ず読もうとはしない」(読めたら読む:絶対読もうと思うと想定外に詰まって読めなかったときに焦る)
    • リーディングでは、長文問題でも事前に問題文に目を通さない.。(先にストーリーを頭に入れた方が早い。問題文を先に読むと該当箇所ばかり気になって本筋を忘れる)
    • どうせほぼ1ヶ月おきに受験できるのだから、自信が無くて満点取れなさそうになってもすぐ気持ちを切り替えて次の問題へ行く。(1問なら間違えてもほぼ100%大丈夫)

    まとまらないけど、まとめ

    どうでしょう、何かの参考になったでしょうか、ならなかったでしょうね。
    言いたかったことは、
    • 990点て、思ったよりすごくないし、意外と周りに持ってる人いるよ
    • 990点を持っているからといって必ずしも英語ペラペラになれるわけじゃないよ
    • それでも一つの自信にはなるし、受験することに意味が無いわけじゃないと思うよ
    こちらからは以上です!