木を見て森を見て林を見て

LUCK値で生き延びる

ISUCON10予選に初参加してみた(予選敗退)

3行まとめ

  • 会社の研修でISUCONをやったが全然できず、kotaroooo0、kaneko656を誘って本番に再チャレンジ
  • 最終スコアは1700ぐらい、予選突破ならず
  • 練習してた部分はできたかな思いつつも、振り返ってみるともう少し改善できたなと思った

はじめに

始まりは会社の研修でISUCONをしたこと。会社の研修のISUCONではまったくパフォーマンスを出せずに悲しい気持ちなった。悔しいので本番で再チャレンジしたいなと思い、kotarooo0とkaneko656を誘って参加した。

利用言語はGo、1か月前ぐらいから一週間に1回集まって練習を行い、利用ツールや役割分担などを決めた。

参加にあたって利用したツール

ツール 用途
Slack pt-query-digest、kataribeの結果を流す用
Discord ボイスチャット、チャット用
Google meets 画面共有用

役割分担

役割
sshayshi(自分) DB、インフラ担当
kotaroooo0 アプリケーション改善担当
kaneko656 アプリケーション改善担当

ISUCON10参加中の脳内

俺だけsshできないんですが 12:20 - 14:00

レギュレーション読み、アプリケーションコード・configをgit管理、計測に使うツール導入などの初期セットアップ行った。

開始時、自分だけアプリケーションインスタンスssh接続できず困惑した。原因は自分のGitHubアカウントには鍵が2個登録されており、古いPC(すでに手元にない)で利用していた鍵が踏み台サーバに置かれていたようだった(現在使っている鍵ではsshできなかった)。幸いにも昔のPCのバックアップディスクから鍵を取得、無事インスタンスにログインできた。(ファインプレー1)

余談:開始時間が12:00から12:20になったとき、他のメンバーと競技用サービス名の予想をしていた。isuruitでは?等と話していたらisuumoだった。惜しい。

スコア:500

これ!進研ゼミでやったやつだ! 14:00 - 16:00

全員でkataribeを使ってボトルネック確認し、改善に取り組んだ。

/api/estate/nazotte、/api/estate/search、/api/estateあたりがmean、totalが大きくボトルネックになっているのがわかった。kotarooo0が検索系のapiをキャッシュ化できないかトライした。自分はpt-query-digestを使って遅いクエリを確認し、index貼りをトライした。kaneko656氏はnazotteAPIのN+1クエリが改善にトライした。

nazotteAPI、クエリ上で何をやっているのか自分にはまったくわからなかったが、kaneko656氏は見覚えがあったらしく(?)「これ進研ゼミで見たやつだ!」感を出しながらN+1を改善してしまう。(ファインプレー2)。その後goのプロファイリングツール(pprof)の導入も行ってくれた。

自分はexplainで確認しながらDBにindex貼っていく。スコアは少し伸びたものの、order by desc, ascとなっているクエリにインデックスが効かない。MySQL8.0から使える降順インデックス貼れば改善できそうと気付く。

余談:N+1が改善された後、みんなで動作確認のためにnazotteAPIをアプリケーション上で使ってみたところ、普通に使いやすくて実際のsuumoにも欲しいなと思った。追記:Web版にはないのでWeb版にほしいという話

スコア:500 → 750

MySQL8.0に裏切られる 16:00 - 17:00

降順インデックスを使うために、MySQL8.0の導入を試みた。「MySQL8.0導入時にアプリケーション動かなくなるとまずいのでは?」というkaneko656氏からの声により、別インスタンスにてMySQL8.0を導入してみる。無事アプリケーションが動かなくなる。原因は、my.cnfが5.7のときに使っていたものをそのまま利用していたことだった。query_cashe等がMySQL8.0ではconfに書けなくなっていたのでコメントアウトして無事8.0を動かすことに成功した。

しかし、MySQL8.0でベンチを走らせるとスコアが300~350程度になってしまい困惑した。「MySQL8.0のconfのチューニングができていないのかな…」と仮説を立ててみるも原因がわからない。このままだと降順インデックスを貼ったとしても5.7よりスコアが高くなるかかわからなかった。事前にhtopでリソース使用量を確認し、DBがCPUリソースをとりまくっていたのは知っていたので、確実にスコアが伸ばせるDBとアプリケーションの分離を行うことに決めた。

kaneko656氏、kotaroooo0氏はレギュレーションを読んでBotの存在に気付く。Nginxでbotを弾くことにトライしてくれた。

スコア:750

練習通りDBインスタンスを分けることに成功 17:00 - 18:00

インスタンス001(Nginx、App)、インスタンス002(MySQL5.7)という構成を作った。ここでスコアは900ぐらいになる。インスタンス003(MySQL8.0)は後々の改善用として用意した。

二台構成(001、002)でベンチを回すも、DBインスタンスでCPUが100%に張り付いており、DBがボトルネックになっているのを確認した。自分は投げられてくるクエリの負荷を下げることを目的に、kaneko氏達はそもそも投げるクエリの数を減らすことを目的に動く。

kaneko656氏、kotarooo0氏はNginxでbotを弾けるようにしてくれた。これのおかげでスコア少し増加した。

スコア:750 → 950

さよならMySQL8.0 19:00 - 20:00

MySQL8.0で降順インデックスを貼り、無事slow-queryの多くを改善できた。ベンチ実行時、メモリ使用量に余裕があったのでinnodb_buffer_pool_sizeをチューニングした。その結果、MySQL8.0のDBインスタンスを使った場合1200ぐらいのスコアが出るようになる。お、こちらでいけるか?と思ったりした。 一方、kotaroooo0氏「5.7のMySQLinnodb_buffer_pool_sizeチューニングしてないよな」と気付きチューニングしてくれる。チューニング後にベンチを回すと1500ぐらいのスコアを出す(ファインプレー3)。この時点で8.0を使うのを断念した。

スコア:950 → 1500

再起動試験(仮)20:00 - 21:00

残り時間1時間になったので、再起動試験のチェックしないと!と思い、全インスタンスを再起動する。その後ベンチを回して無事スコアが出て、「ヨシッ!」となっていた。

※これはsshayashiが再起動試験を勘違いしており、本来はベンチを回す前にアプリケーションが正常に動いている必要がある。

再起動試験(仮)を無事終えたところで残り30分、kotaroooo0氏、kaneko656氏がNginxの細かいチューニングを入れたりログを切ったりしてくれたおかげでスコア1700ぐらいになる。これでもういいだろうという感じで終了。

スコア:1500 → 1700

Discordで感想戦 21:00 - 21:30

isucon10終了後、Discordのgeneralチャンネルで色んな方々の感想を3人で通話しながら眺めていくと学びや共感がたくさんあって楽しかった。

共感パート

  • MySQL8.0入れるとスコア半分になって悲しかった
  • DBの負荷を追いかけていたが改善しきれなかった
  • nazotteのN+1を改善するの難しかった
  • 一位チームの7000点は一体何をしたんだ…

学びパート

  • MySQL8.0はquery cacheがないので5.7よりパフォーマンスが出ない(知らなかった)
  • MySQL8.0ではデフォルトでバイナリログの出力がOnになっていててパフォーマンスが下がる(知らなかった)
  • joinが行われていないのでそれぞれを別DBインスタンスに分ければよかった(思いつかなかった)
  • elastic searchで頑張ろうとした(思いつかなかった)
  • partial indexを使った(知らなかった)
  • 降順インデックスを使わなくても、idとpopularityを1つのカラムに纒めてインデックス使った(プロか?)
  • (popularity = -popularity)のカラムを使って昇順に合わせた(プロか?)

参加後の反省

反省ポイントは大きく2つある。

1つ目はMySQL8.0の利用に囚われ、MySQL5.7を利用していたインスタンスに改善できる場所を残してしまったことである。 pt-query-digestで出力したslow-queryの内、上の方しか見ていなかったのが原因だった。上の方にあった遅いクエリはdesc, ascの組み合わせで遅くなっていたものであり、それらが直せないのであれば、別のクエリを改善すればよかった。

2つ目はもう少しアプリケーションコードを読めばよかった、ということである。今回のISUCONはDBへの負荷をいかに分散・改善させるかが重要だったように思える。自分は「すでに投げられているクエリ」の改善に注目しすぎていた。他の参加者のブログなどを見ていると、そもそも投げる必要のないクエリがいくつかあったようだ。もう少しアプリケーションコードを読んでいれば、そういったクエリを削減できたかもしれない。

まとめ

反省すべき点はいくつかあるものの、今回は本質的な部分で悩めたのが良かった。というのも、研修でISUCONを行ったときはNginxの元のconfをコピーし忘れるなどのミスで、本質的な部分に取り組めなかった。今回は大枠としては計測と改善を繰り返し、どうすればアプリケーションがより早くなるかを考えることができた。とても楽しかった。運営さんに感謝。

おまけの記念画像

f:id:sshayashi0208:20200913193804p:plain
25位以内に入ってるときにスクショした

1年2ヶ月続けた英語の勉強法を振り返ってみた

3行まとめ

  • 1年2ヶ月でTOEICの点数は525 → 880になって,言いたいことも英語で言えるようになった
  • その間に留学は6ヶ月(語学1ヶ月,インターン5ヶ月)してた
  • 継続のための秘訣は生活習慣

(約3000文字,目安時間6分) 

概要

個人的に一区切り付いたと思っている英語の勉強方法についてまとめてみることにした.TOEICの点数は525から880になった.留学の力も組み合わせて,自分の言いたいことは喋って伝えられるようになった.継続の秘訣は生活週間だと思った.高専時代は省略して.大学院に入ってからの2017/04 - 2018/06 の勉強方法をまとめた. 

TOEICの点数の遷移

時系列順でTOEICの点数は以下(ip含む)

2013/12: 280 (高専4年 

2014/02: 480 (高専4

2014/04: 555 (高専5

2014/06: 615 (高専5

2016/04: 495 (大学4

2017/02: 525  (M1 ここからの勉強法を書いた

2017/06: 660 (M1

2018/06: 880 (L455 R 425) (M1 2周目

 

使った参考書とそれぞれの使い方

基本的には,英語上達完全マップ のやり方に沿って行った.あと,自分は多くの参考書をやらず,一つの参考書を繰り返しやってた.

 

どんどん話すための瞬間英作文

f:id:sshayashi0208:20180826201741j:plain

 最初の1-2ヶ月ぐらいはずっとこれをやってた.全体を8週ぐらいした.わからない文法があればその都度調べた(中学レベルだがちょいちょいわからなかった).留学する前の準備期間でもあったので,話すトレーニングとしてこれをがんばってやっていた.

 

スラスラ話すための瞬間英作文

f:id:sshayashi0208:20180826201948j:plain

 上の「どんどん〜」の次はこれをやった.基本の例文が500個ぐらいと,応用が200ぐらいあるが,基本だけやった.だいたい6週ぐらいした.「どんどん〜」のほうは文法ごとに固まっているが,これはそうでないので良いトレーニングになった.大体2ヶ月ぐらいかかった.

 

みるみる音読パッケージ

f:id:sshayashi0208:20180826201945j:plain

 「スラスラ〜」の次はこれをやった.本にやり方が書いているが,1分ぐらいの例文を音読したり,シャドーイングしたり,リピーティングして読む.とにかく読む.大体3週ぐらいしかしていないが,各例文を30回ずつは読んだ.正直リピーティングは難易度が高すぎて,途中でやめた.3ヶ月後になってもう一回やったら大分できるようになってた.だいたい2,3ヶ月ぐらいかかった.

 

DUO3.0

f:id:sshayashi0208:20181001080143j:plain

 

 みんな大好きDUO3.0,10周以上した.英語上達完全マップに乗っていないやり方では,録音しながらシャドーイングする,録音を聞いて発音を確認する,といったやり方で発音を直すことにも取り組んでいた.

 発音の方法はweb上で検索して発音記号を読めるようにして,発音記号を教えてくれるyoutuberとかを参考にしながら練習した.完璧は目指さないようにした.

 

頻出英文法・語法問題1000

f:id:sshayashi0208:20180305072922j:plain

 英語上達完全マップに乗っ取りながら2周した.2週目は間違えた部分だけをやった.発展問題とかはやらなかった.高校の文法は勉強したことなかったので,正直めっちゃ難しかったし,3ヶ月ぐらいかかった.

 

TOEICの参考書達
  • 公式問題周5,6
  • 新形式バージョンの1,2
  • リアル模試
  • 究極の模試

 受験の1ヶ月ぐらい前からTOEIC用の勉強を始めた.「究極の模試」に書いてある勉強法のとおりにだいたいやった.受験1週間ぐらい前からは毎日リスニングかリーディングの模試を時間図ってやるようにした.

 

参考書とは別にやっていたこと 

VOA Learning English 2017/10 ~ 2018/5までやってた
VOApod - VOA Learning English

VOApod - VOA Learning English

  • Nam Nham
  • Education
  • Free

 アメリカのニュースを初学者向けに,語彙を制限してかつ英語をゆっくり喋ってくれるニュースサイト.自分は上のアプリを使って1.2倍か1.5倍にしてから,1回通して聞く,2回目は文章読みながら,3回目は精読して完全理解を目指すって感じで勉強してた.たまにリピーティングとかの練習にも使ってた.ここでわからない単語があれば,下のAnkiアプリに登録してた.

 

Ankiアプリ 2017/9 ~ 現在

Anki - powerful, intelligent flashcards

 人間の忘却曲線に沿って単語を再学習させてくれるフラッシュカードアプリ.Android, windos, mac, iOS全部に対応してて,同期ができる(iOSだけ3000円する).文法書とかweb上のドキュメントでわからない単語があったときかは,この単語に逐一登録していた.

 自分の頑張りが下のグラフみたいに可視化されるのが良い.自分は大体1000単語ぐらい登録して,大体覚えれたと思う.これからもどんどん追加していきたい(最近追加してないが)

f:id:sshayashi0208:20181001081136p:plain f:id:sshayashi0208:20181001081141p:plain

勉強時間

 2017/04 - 2018/07 ぐらいまで,毎日の分野別勉強時間をノートに書いて記録して,合計約700時間ぐらいだった.1週間に1,2回ぐらいはサボってたけど,毎日1~2時間ぐらい勉強してた.

 自分の時給が大体1500円ぐらいなので,105万円ぐらいのお金と引き換えに英語力を手に入れたことになる.

 英語は単体じゃあまり意味がないので,投資した分を回収できるように,英語以外も頑張りたい.

 

継続するために心がけたこと

 生活リズムを一定にすること,コレに尽きた.生活リズムが一定であればほとんど苦にならない状態で勉強を続けることができた.自分が日本にいたときは,朝7時に起きて,ご飯や掃除含め12時ぐらいまでを英語の時間にしていた.もちろん,体調を崩したり,飲み会のせいで勉強ができなくなったことはあったが,勉強が生活習慣の中に組み込まれると,勉強してないのが気持ち悪くなるので,継続できた.

 一番肝心な最初だが,「自分の生活で定期的にやっている何かを辞める」というのが良いと思う.やめた分時間ができるし,続けてきたことを辞めると,空いた時間に動かないともったいないと思えるので,続けられやすいと思う.ただ,自分は飲み会とか遊びとかを断り続けたので精神が苦しかった.もっといい方法があれば知りたい. 

まとめと余談

 この1年とちょっとで,継続して勉強を続けるやり方がわかったと思う.インターン中は1日8時間ぐらい働きながらやっていたので,就職してからでもできそうだと思った.

 「留学してたから英語できるようになったんでしょ?」って思う人もいると思うけど,会話に関してはそうかもしれない.ただ,リーディングや語彙力は留学だけでは殆ど伸びない.環境を変えるのがいいきっかけになるのは事実だが,語学留学は銀の弾丸ではない.一度語学留学に行ってみると,自分より長い期間語学学校に在籍してるにもかかわらず,喋れない人にたくさん出会うと思う.

 本当は8月ぐらいにこの記事を上げるつもりだったが,あげようと思った寸前に自分の完全上位互換のブログ記事が上がっていて,心が無になったので挙げるのをやめていた(下の記事).

blog.takanabe.tokyo

 ただ,自分ぐらいの点数の人のほうが需要多そうだし,やっぱ挙げてみることにした.そして次に英語を勉強するなら,この人のブログを参考にしてやってみようかなと思った.

 

 

8ヶ月行く予定だった海外インターンを5ヶ月でやめた話

3行まとめ

  • 色々考えてインターンをやめることにした
  • 別のインターンが見つかればそこに3ヶ月行き,見つからなければ日本で放浪する
  • 現在はインターン先が見つかっておらず放浪している

(3100文字,目安時間6分) 

 

やめた理由

これ以上技術的な向上が見込めないと思った

 自分はインターンに対して自分のできるこを増やすことを求めていたが,実際には技術的に難しくないことを愚直にやり続けることが多かった.ここにミスマッチを感じた.

 また,スタートアップなので100%の結果を出すよりも80%, 70%の完成度でいいので2倍の速度でやってくれという要望が強かった.この方針は今の自分には合わなかった.しかしがなら,この経験は偏屈なエンジニアにならずに,会社にコミットするエンジニアになる上で良い経験だったと思う.

 加えて,働く社員の中に,技術的関心が高く,色々意見を貰える環境に身を置きたいと思った.このインターン先だと,技術的に詰まったときに相談しても,とりあえずこれなら動くからと,場当たり的な解決策で勧めていくことがよくあった.これは自分の身にならないと感じていた.

 これらのミスマッチを事前に防ぐために,入社時点で自分に交渉できる英語力があればよかったと思った.

奨学金のプロジェクト的にも沿わなくなってきた

 会社の方針が変わり,最初に作った某奨学金のプロジェクト的にもあんまり沿わなくなってしまった.会社が変わったからやめる,ではなく色々と試してみたが自分の力ではすぐに変えられないと思った.何度かサービス自体に口出ししてみたものの,自分の英語力のせいか論理力のせいか,はたまたビジネス力(?)のせいかわからないが社長を納得させられなかった.

 まぁ結局は社長の会社なので,社長が自分の意見を必要ないと判断するのは全然間違いので仕方がないと思った.

英語のためだけにインターンを続けるのも非効率だと思った

 技術的にも某プロジェクト的にもマッチしないとなると,残りは英語力の向上だったが,英語のためだけに続けるのも,非効率だと思った.

 というのも,一日の業務のうちで社長と話すのは合計して1時間もない(8時間中).メイン業務はプログラミングだからである.英語学習だけを行うのであれば語学学校に通ったほうが効率が良いと思った.

 また,色々な場所で聞くと思うが,海外にいるからといって英語力が上がるわけではないということがある.毎日勉強してもそれほど上達しなかったからこそ胸をはって言える().しかし,「英語話者に対して物怖じせずに英語を話そうとする力」を得られたのは良かったと思っている. 

3月に入ってから蚊がやたら出始めて,毎晩寝不足になっていた.

いやーきついっす.

インターンを通して学んだこと 

(インドに関してはまた別記事でまとめる予定なのでそれ以外)

エンジニアとしての視点から

 エンジニアは会社に力を貸して,お金稼ぎを協力しているビジネスマンであることを理解した.スタートアップならスタートアップの,大企業なら大企業で求められることが違い,高い給料や評価が欲しければそれぞれにて発揮するべき力を調整する必要がある.

 自分は8,9月に大企業にインターンを行い,10~20人規模の中規模スタートアップでアルバイトを行っており,そして今回海外で3人程度のまだ収益の殆ど出ていないスタートアップで働いた.そして,それらの経験を通じてこの結論に至った.

 大企業の求めるものは,安定+技術力だった.すでにお金を生み出す枠組みが用意されているため,バグや不具合を出さないことに重きが置かれていた.また,膨大なユーザ数を捌くのも大企業ならではの問題であり,高い技術力が求められていた.

 収益の出てないスタートアップではその真逆だった.まずは自分たちが目指しているサービス,視点に需要があるのかどうかを確かめるために,とにかくリリースすることに重きが置かれていた.しっかり作り込んで,全く需要ありませんでしたでは意味が無いので,この手法は妥当だと思った..

 中規模スタートアップは,大企業と小規模スタートアップの間という感じだった.既に収益はあるため安定性は求められる.しかし,新しい需要やバグ,競合の存在から速さもある程度求められるという状況だった.

 結論として,エンジニアである前に会社に雇われている側である以上,会社の方針に従って働くのが自分の価値を最大化する方法だと学んだ.そして,将来は自分の求める方向と,会社が自分に求める方向ができるだけ一致している会社で働きたいと思った.

英語に関して

 たくさんの学びを得たがここでは2つ書く.1つは「手持ちの英語力で言いたいことを伝える力」である.なぜこれが重要かというと,いざ話す場面になればその場で語彙を増やすことができず,手持ちの語彙で戦う(話す)しかないからである.実際に合った例として,ルームメイトと話していたときに,自分は「compulsory education:義務教育」という言葉のcompulsoryという単語がわからなかった.しかしながら「 education that you must take ~」みたいな感じで手持ちの単語で置き換えて言うことで物事を伝えることができた.リスニングではこういったことができないが,これができるようになって伝えられることの幅が広がったと感じている.

 もう1つは「英語話者に対して物怖じせずに英語を話そうとする力」である.おそらく海外留学した人が最初に超える壁は,この力を得るかどうかだと思う.それができないとコミュニケーションが一方的にも伝わらない.語学学校の先生もまずは怖がらずに言おうとすることが一番大事と言っていた.

 余談だが,1年ほど前に大学にて,留学生と雑談する場所に行ったことがある.事前に話す練習はしていたのにもかかわらず,ほとんど何も話せず,聞き取れず,1時間固まって終了した.相手も自分の勉強に付き合うためにいるのではないので,多少の気遣いはあったものの,物怖じしてなにもできず,放置されて終わった.このときに必要だったのは,英語話者に物怖じしない”慣れ”だったのかもしれない. 

日本帰ってからなにしてたの

 引き続きインターンを探していた.面接は2度したが,祈られた.なんというか,次のインターン先はどこでもいいというわけではなく,落ちてもいいので選ぼうと思っている.

 というのも,次は技術的にも,やりたい事的にも合わない場所でもうインターンはしたくないと考えているからである.海外だからいいぜみたいな気持ちはもう卒業した.日本でできないことを求めて海外に出たのに,学べるものが英語しかないのは,あまり有意義ではないし,英語を学ぶだけなら語学学校に行ったほうが効率が良い.なので,最低でも英語(技術でもアプリの知識でも)を得られそうな場所でインターンしたいと思っている.

これからどうするの

2パターンある.

パターン1:どこかの海外インターンに受かる(応募ナウ)

 その企業に3ヶ月行く.

パターン2:全部落ちる(多分こっちになる)

 日本でお勉強したりバイトしたり,休学ライフをエンジョイする.某奨学金の関係上途中で変更(orやめる)のには妥当な理由が必要になるので,書類ワークする.

まとめ

 今月もバッドリザルトでした.英語力と技術力が足りずに,良いインターン先にに受け入れてもらえないので,しばらくはお勉強を続けながらチャレンジしてみようと思う.加えて,それは今月中では解決できそうにないなぁという気分なので,このまま日本滞在を予想している.あと日本に帰ってきたのでたくさんご飯に行きたい.

社長に誕生日祝ってもらう等(2月まとめ)

3行まとめ

  • 誕生日に社長に祝ってもらった
  • インドの歯医者に行ってみた
  • 英語の勉強が単語・音読から文法・リスニングにシフトした 

社長に誕生日をお祝いしてもらった

 誕生日に社長宅にて,奥さんと社長と3人でちょっとしたパーティーをしてもらった.UNOしたりケーキ食べるなどした.

 1つ驚いたことに,インドでは誕生日には休暇を取るのが普通らしい.朝ルームメイトに今日誕生日であることを伝えると,「じゃあ今日は会社休むの?」と聞かれた.いや休まんけども,とその時は思った.

 その後,オフィスに向かっている最中にも「実は今日誕生日なんですよね」と社長に言うと,「本当に?今日休んでもいいよ」と言われた.少し疑問に思ったので踏み込んで聞くと,誕生日に休暇を取るオプションがどの企業でも提供されており,一般的には休むものらしい.家族を大切にするインドらしい文化だなと感じた.

f:id:sshayashi0208:20180305073959j:image
f:id:sshayashi0208:20180305072038j:plain

 

インドで歯医者に行ってみた

 親知らずが痛かったのでインドで抜くことにした.保険効かないが1万円ですんだ.病院はJapanese help deskと呼ばれる日本人向けの対応がある病院でした.インドには5つしかなく,大きい病院である.

 抜くに当たって,まずは麻酔をした.ここまではよかった.その後,1分しない内に歯を抜く工程に入った.まだ麻酔効いてないのでは???という考えが頭をぐるぐるしているうちに抜かれた.普通に痛かった.許さん.合計5分で全ての治療が終わった.色々と早すぎでは?というのが率直な感想だった.

 余談として,歯医者の先生と会話した時,説明に専門用語が含まれているためか,まるで理解できなかった.「何言っとんか全然わからん」と正直に言うと図とか動画とか使って丁寧に説明してくれた.すまねぇ,サンクス. 

英語の勉強が単語・音読から文法・リスニングにシフトした

 長らく単語と音読パッケージと呼ばれることをやっていたが,大体終わったので文法とリスニングに移った.文法は大学受験用の以下のやつを使って勉強している. 

f:id:sshayashi0208:20180305072922j:plain

 中学文法は留学前にきちんと埋めていたつもりだったが,高校文法はやったことなかったのと(高専では中学文法を学んでいた),ネットの英語記事で単語はわかっても意味が正確に取れないことがたまににあったので,これを期にと思って始めた.

 感想としては普通に難しかった.今のとこ,400問ぐらい解いたが正答率が全体で50%ぐらいだった.ウケる.解説には「基本」と書いてはいるものの,普通にしらないことが多かった.こういった参考書は,一般的な筑波大生なら普通に解いてきているもんだと思うので,解けるようになりたい.そしてまた筑波大生へのリスペクトが増えてしまった.すげぇやみんな.

  リスニングはVOAのbeginer向けのやつをやり始めた.

learningenglish.voanews.com

 これはアメリカニュースを英語学者向けに語彙を制限し,音声+文章で提供してるものである.もともと,英語Youtuberを見て分からない単語を単語帳(Ankiと言うソフト)に入れるみたいことを留学以来続けていたが,単語の汎用性が低そうだったりすることが多くて困っていた.一方で,このVOAは難易度の高い単語には注釈で意味が書いている.これを参考に,注釈の付いている単語はとりあえずスルーして,文章中にある基本的だが分からない単語を単語帳に詰めるよにするようにした.web版が本家としてあり,有志が作ったアプリ版がある.自分は速度変えたり,ローカルに保存できるでアプリ版を使っている.

 

その他

AWSの電話サポートを使ってみた話

 AWSわからん過ぎてカスタマーサポートに連絡することがあった.チャット中に,電話番号を教えてくれと言われたので教えた.そしたら電話がかかってきたので,四苦八苦しながら助けてもらった.

 気づいたこととして,音声だけのコミュニケーションはめちゃくちゃ難しい.対面の2倍ぐらい難易度上がる.いや自分が英語できないだけなんだが,対面の会話にはたくさんの情報が含まれているんだなと改めて感じた.

 なお,初めて電話でやりとりした時は,自分が喋った後すぐに電話を切られてチャットで返事が帰ってきて,悲しくなった.

試しに他国のスタートアップに履歴書送った話

 いくつかの企業におくったけどなんの音沙汰もなかった.前よりは色々できることは増えているはずだけど,改めて自分の価値()がわかってよかった.面接ぐらいして欲しかった.まだ持ち玉はあるのでもう少し工夫しながら送ってみようと思う.

競技プログラミング始めたけどあんまり習慣化できなかった

 昔からアルゴリズムパワーが弱すぎて嫌だったので,少し時間を割いてそちら方面にを強化し始めた(英語の勉強に飽きてきたのもあったが).ただ,プログラミングの性質上,英語みたいに30分だけ勉強する,みたいなことがやりにくかった.結果,疲れた日は少しだけやってもどうせ分からないから...みたいな感じでやらない日が多くなってしまった.

まとめ

バッドリザルトが多い月だった. 歯も痛い月だった.ただ,勉強をサボった日は今まで一番少ない月だった.こう言う月もあるだろうと割り切っていこうと思う.残り2週間で一度日本に帰国するので,それまでにやれることはやっておきたいなと思った.

 

オフィス新しくなった等(1月まとめ)

3行まとめ

  • いろいろと新しくなってモチベ上がってきた
  • 社長の技術力,とてもすごいというわけではなさそう
  • 英語のミーティングにはついていけない

 

オフィス新しくなった

 社長にオフィスくれと言っていたのが叶って,オフィスが新しくなった.NASSCOMという会社がスタートアップ支援をしていて,そのメンバーであるインターン先の会社が借りれることになった.コーヒーサーバでいつでも紅茶とカプチーノが飲めるので毎日行きたい.社長と会話もできるし,社食も200円でたべれてまぁまぁ美味しい.加えて,オフィスまでは社長がタクシーしてくれることになったので、毎朝の通勤も楽になった.やったぜ

f:id:sshayashi0208:20180205004651j:image

f:id:sshayashi0208:20180205004727j:image

 

新しいインターン生がきた

 インドのB4の大学生がデザイナー&フロントエンジニアとしてきた.もちろん英語も話せるし,インドのMicrosoft社でデザイナーインターンしてたり,既に本の著者だったりしてマジかって気分になった(語彙力).

英語のミーティングについていけない

 社長とインターン生と社員さんを交えたミーティングについていけなくて困った.一対一のコミュニケーションは相手に合わせてもらうことで,最低限は取れるようになるが,多対多のコミュニケーションはそうはいかなかった.

 まぁ,多対多のコミュニケーションで一人の英語力に合わせていると,全体のパフォーマンスが下がりまくるので,悪いのは自分なんだが,なかなか辛かった.

 今までは社長と二人だったので,気軽に聞き返したり,わからない点を明確にできたたが,複数人のミーティングでは難しかった.もっとまだまだ精進しなければと思った

 

現金消滅した

 念のためにデビットカード1,クレジットカード2枚を用意していたのだが,現金を用意できなくなった.デビットカードは,使っているうちにどこかに置き忘れて消えた.すぐに止めたので被害はなかった.クレジットカード(楽天カード)は学生身分だと海外キャッシングできなかった.もう一枚のクレジットカード(エポスカード)は銀行口座の設定がなされてなかった.インド来る前に書類提出したはずだったんだが,記入漏れかなにかで処理が進んでいなかった.お問い合わせもこの案件には対応していないので,なにもできなくなった.

 基本的な支払いは楽天カードで済ませられるので良いが,たまに現金が必要になるので,社長にお金を1万円ほど借りた.申し訳ねぇ.

 

社長の技術力,そんなに高くなさそう

 あくまでも開発技術という面だけで話す.8段ネストされたコートだったり,例外エラー握り潰したり,コーディング規約がはちゃめちゃだったりするので,その都度勘弁してくれと伝えている.

 もちろん,開発面ではなく技術的にこれはどうやったらできるんだろうみたいな話し合いをしたときに,自分の考えつかなかった提案をしてくれることもある.しかし,流行りのツールだったりWeb開発という面では自分のできることのほうが多いのではと感じることが多かった.

 少しずつユーザも増えてお金を稼げ出している段階なのと,3月まではどのみち身動きとれないので,それまではできる限りのことをしようと考えている. 

その他

親知らずが痛い

たまに痛む.ただ,海外用の保険は歯科に対応していないので,不用意に歯医者にいけない.こればっかりはさっさと日本に帰りたい.

Djangoにコミットした

インターン先では技術的に難しいことをしているわけではないので,つまんないよねって話を日本の同期としていたら,Djangoにコミットしてみればええやんという流れになったのでやってみた.せっかくなので続けていきたい.

コミュ力が減った

普段は,英語で難しいことをいえないので,なるべく単純な思考で考えるようにしている.そのためか,たまに日本の人たちと会話すると単純な言葉しか出てこなかったり,そもそも言葉が出てこなかったりしてビックリした.この間研究室の人たちとスカイプしたが、いつものように言葉が出てこなかった.

インド人の2桁の掛け算,本当にできるらしい

聞いてみたら,社長ができるらしい.ただのトリックだと言っていた.しかし,英語が公用語の私立の学校通っている富裕層とかじゃないと習わないらしい.

英語の勉強は続けている

大体毎日やってる.しかし,気持ちが乗らない日はしていない.平均すると毎日1時間以上はやってることになってるが,もう少し増やしたいところ.

まとめ

いろいろと環境はよくなってきた.英語はまだ足引っ張っているものの,会社には貢献できるようになった.ただ,このままでいいのかという気持ちも正直ある(技術的な意味で).

インターン始まった(11月-12月まとめ)

気づいたら2カ月ぐらいたっていた.

3行まとめ

 

感染症にかかった

 インターン先に行ったすぐに感染症にかかった.インターンに行く前に,ローカルマーケットで安いものを食べまくったのが原因だったと思う.反省.何を食べてもお腹が痛いので終了.病院へ行く.薬をももらう.治る.病院は綺麗だった.

 

f:id:sshayashi0208:20180101045051j:plain



インターン始まった

 いよいよインターンが始まった.結論から言うとここまでの印象はあまり良くない.理由はカフェで一人で作業することが多かったから.週に1,2回社長と会って,進捗のお話とかサービスの話をしていた.社長の娘さんが生まれるとか,クライアントと話さないといけないからという忙しさが理由だった.チャットでやり取りはできるものの,これじゃ日本で作業してるのと変わらないじゃん勘弁してくれ,とういう感じなので,軽く鬱になっていた.

 このまま過ごすだけは嫌だったので一緒の場所で働きたいとリクエストした.その甲斐あってか,12月からは,毎日社長宅に行って1日の半分ぐらいは社長宅で作業できるようになった.そして,1月からは新しいワーカー,社長,自分の3人でオフィスを借りて働くことになった. 

 技術的には貢献し,技術の議論やサービスのディスカッションなどをやりたいと思い参加したインターンだったので,思い通りにならない部分に不満が溜まった.もちろん,言って改善できる部分はたくさんあるのでガンガンリクエストしていこうと思う.ただ,あまり未来が見えない部分もあるので,新たなインターン先を探す準備をしつつ,様子を見ていこうと思う.

 

待遇

  • 宿とご飯は出る

 

やったこと(主にサーバーサイドのみ)

  • 外部サービスと連携してWeb push実装とか
  • ログ収集部分とか
  • aws使ってインフラ周りの整備とか

 技術的には難しいことはしてない.今までやったことあるようなことや,時間かければできるだろうなってことをやっていた.ただ,英語はまったく働くレベルに達していないなと感じている.何を言いたいかはわかるが,何をいっているかを完璧にはわからない.相手の言ったことを復唱しろと言われたらできない.まだ単語の拾い読み状態である.

 

 

その他気づいた点

 英語力が低いからといって,あんまり無下に扱われることはなかった.技術的な側面から,「ここはまずいんじゃないの?」とか,「これ実装する方法いくつかあるけどどうする?」みたいな提案をすることがある.そうすると,割と熱心に話を聞いてくれることが多かったからだ(「こういうこと?」と例を出しつつ認識をすり合わせるようなことが多かった).これが日常会話ならなぁなぁで流されることがたまにある.自分の発音が聞き取りにくいのと簡単なことしか言えないからだと思う.プラベートを含めて仲良くなるのは難しそうだと感じてるものの、仕事に関してはあまり英語力の低さは気にしすぎる必要はないのかもしれない.もちろん「思ってたより大丈夫なだけ」なのと「ただのインターン」なのであまり期待されてないのかもしれないが.

  

日本のみんなと話したくなった

 流石に3ヶ月間日本の友達と合っていないとホームシックなものになってきた.急にLineとか飛んでくるかもしれないが適当に返して欲しい.長い間合わないと,普段身近にいた友達の大切さがわかる.

 加えて,こちらにいる日本人友達とあまりそりが合わなくて悲しい気持ちになっていたのも理由である.もちろん,たくさんの良い面や楽しさを感じることができた.しかし,今まで培ってきた価値観の違いがじわじわも現れ、一緒にいると疲れることのほうが多かった.自分の合わせるコミュ力の無さにも嫌気がさして虚無感まっしぐらと言う感じだった.

 

 まとめ

2ヶ月近くポエムを書かなかったのは,何も大きな進捗と言う進捗を出せなかったからと人間関係がしんどくて虚無になっていたから.技術的にも英語力的にも大きな飛躍はない.このままじゃ何者にもなれそうにないので,どうにか行動を起こして行きたいマン.

 

1ヶ月ぐらいの語学学校が終了した

10月も終了したので,まとめる.

3行まとめ

  • 1週間死んでいた
  • インド人の村に行って遊んできた
  • オプショナルの授業でインドの文化も学んだ

16日-21日の間死んでいた

 インドに来てついに体調を崩した.喉がずっと痛かった.空気が悪いのと環境の変化に体がついていけてなかったのだろうか.

 とりあえずインドの病院に行った.めっちゃ綺麗だった(残念ながら写真はない).そして日本人スタッフもいた.日本語話せるインド人もいた.お医者さんに診察してもらうときは通訳を通しながら会話した.薬の錠剤がでかくて笑った.

 結局あまりひどいものではなくちょっとした風邪だったのでよかった.3日ぐらいで熱は引いたものの喉がずっと痛くて学校に行けなかった.

  この病気を通して思ったことが一つある.なんか「コンフォートゾーンから抜け出せ!」的な発言をしている人をたまに見る(特に海外思考強い人なイメージ).別に否定も肯定もしないが,少なくとも,生命のコンフォートゾーンからは抜け出すべきではないなと思った.結局は酷くない風邪だったが,初海外でやたら喉が痛くて正直やばい病気にかかったのかと思って気が気じゃなかった.隣の部屋の人はデング熱にかかって入院していたのもあり,英語やその他お勉強にまったく集中できない日々が続いていた.

村に訪問した 

 せっかくインドに来たののもあり,同じ学校のインド人の友達の村に遊びに行くなどした.グルガオンは想像していたインドと違ったけど,村は想像していたインドだった.牛たくさん,車もほとんどなかった.

f:id:sshayashi0208:20171109002343j:plain

 インドの文化で,客人は家族と同じようにもてなすべき,というものがあり,たくさん料理を食べた.普通に美味しかったのでよかった.ちなみに一番美味しかったのはローカルマーケットの60円ぐらいのハンバーガー.日本に持って帰りたいレベルで美味しかった.

f:id:sshayashi0208:20171109002413j:plain

 インドの友達は,普段片付け等は全然せず,遊んでばっかいるのだが,実家ではとにかく自分たちのために色々もてなしてくれて文化を感じてしまった.

授業でインドの文化を学んだ

 英語の学校では,授業の一つに選択授業的なものがあり,日本とインドの違いを議論してみよう的なものがあったので選択してみた.そこでなかなかに面白いことを学んだ.

インドの教育について

 インドのエンジニアがプログラミングめちゃくちゃできるとか,巷では言われているが,どうやらインドでは高校から専門的な授業を学ぶらしい.日本でいう理系,文系選択的な感覚で経営・医学・工学などの専門科目を選ぶらしい.そして大学も1年生の時から専門科目を中心にに学んで,学部を変えようものなら1年生からやり直しになるらしい.

 そりゃプログラミングできるわなと思ってしまった.そう言えば自分も高校から専門的なこと学ぶ学校に通っていた気がしたけどそこでは黙っていた()

 日本はロボットを作る教育,インドは辞書を作る教育とか言われているらしく興味深かった.あと富裕層が通う小学校はテキストからなにから全部英語らしい.外国語としてヒンディー語を学んでいるとか.

 

働き方のカルチャーの話をした

 日本・ドイツでは「Monochronic」というカルチャーが根強く,インド人・欧米人には「Polychronic」と呼ばれるカルチャーが強いのを学んだ.

 Monochronicは,「時間厳守」「予定を入念に組む」「一つの時間では一つの事に集中する」「ビジネスが第一」などの文化のことらしい.

 反対にPolychronicとは,「時間に柔軟性を持たせる」「柔軟な予定を組む」「一つの時間にいろんなことを話す(マルチタスク)」「個人の関係の後にビジネス」といった文化らしい.

 なので,1つのミーティングにて,会議に関係ないことをバンバン質問したり話したりするインド人は日本人と働きにくいとか言われているっぽい. 

 印象的だったのが,インドの方ではとにかく並列的にものをこなすということ.仕事中でも電話がかかってきたら電話をしながら仕事をする.確かに仕事中でも平気で電話に出るインド人が多いが,その人に話しかけても一応返事してくれるので,柔軟な頭してるなぁと思っていた.

 あと,ビジネスの話をするときも最初の15分ぐらいは個人的な話をするらしい(個人の関係が第一なので).今になって思い出したが,自分がインターン先の社長にあったとき,やたらどんな生活しているかとか,生活には慣れたかとか,普段どんなことしているのかとか聞かれていた.自分はさっさとインターンの話したかったのでその話をしてしまった.ちょっと申し訳ないことしてしまったなと思った.

その他のこと

リクルートインターンの成果が公開されました

 リクルートインターンの成果がブログになったらしいので,リンクを貼っておくマン.モデル部分は自分がメインに開発して割と苦しんだので,その辺書いててくれてて嬉しいぜ.

engineer.recruit-lifestyle.co.jp

ホテルに付いている温泉に行った

 日本企業の在中員が止まるホテルが月に一回外部にも公開されるとのことで,行って来た.ホテルの中身は,めっちゃ綺麗ななホテルだったので,ここに住みたいとか思った.

f:id:sshayashi0208:20171109002444j:plain

インスタグラム始めた

 日本の友達からの飯テロがひどくて死にそうになった.インドの画像を少しずつあげて行って,帰った時の思い出にでもしようかなと思っている.スマホ壊れても大丈夫なように.

まとめ

 一週間ぐらい体調を崩したこともあったが,今はなんとか持ち直した.土日を使って村に遊びに行ったり,温泉に行ってリラックスしたりもした.留学当初はインドの文化について学ぶつもりはあまりなかったが,以外と面白いなぁとか思った.日本人がいくらかいる語学学校はもうすぐ離れる.今後の9ヶ月はほぼ1人で生活することになるので死なないようにしたい.

今後の予定

 来週13日からとうとうインターンが始まるマン.英語は,まだまだ完全に話せるには程遠いが,インドに来た時よりは改善されたはず.インド人社長1人と俺しかいないけど,なんとか生き抜いてやるぜ.