この4年間の英語学習の振り返り

本格的に英語学習を初めてかれこれ4年ほど経ちました。もちろん自分の英語力はまだまだ全然ではあるのですが、この4年間でどのような学習をしてきたか、何が効果的だったかを振り返ってまとめてみました。

オンライン英会話

4年ほどDMM英会話を続けています。並行して他のオンライン英会話サービスもいくつか試してみたのですが、なりきりロールプレイのようなレッスンが個人的にあわなかったりなどで結局ずっと続いているのはDMM英会話だけです。現在は会社の福利厚生でネイティブ講師も選べるプランで受講しています。

eikaiwa.dmm.com

DMM英会話のよいところは継続のしやすさだと思います。教材も豊富ですし、先生もフランクな方が多く、単純に話していて楽しいので気分転換にもなります。英語を話す抵抗をなくすという意味ではかなり役立ったと思います。一方でこれはオンライン英会話全般に言えることではありますが、オンライン英会話だけでは英語力はさほど向上しないと思います。もともと基礎がある方は別ですが、自分の場合はそれ以外の学習にもかなり時間を使っていました。

なお、DMM英会話の特典として、iKnowという単語アプリを無料で使えるというものがあります。このアプリはなかなかよくできていて、英単語を例文とあわせて音声付きで繰り返し学習できます。一時期通勤電車で毎日ひたすらこれをやっていました。

iknow.jp

ポッドキャスト

リスニングの教材としては主にポッドキャストを活用していました。最初はESL.comという第二言語として英語を学んでいる人向けのポッドキャストを聞いていたのですが、途中から有料化されてしまったのでCulipsに切り替えました(Culipsもポッドキャスト自体は無料ですが、課金するとテキストをダウンロードできます)。

www.culips.com

Tech系のポッドキャストもいいのですが、めっちゃ早口だったりしてかなり聞き取るのが難しいですし、一本の時間も長くて繰り返し聞くのが大変なので、自分の場合はCulipsのような難易度の低いものから始めるのがよかったです。ポッドキャストも主に電車通勤の時間を利用して聞いていました。

TOEIC

英語学習にも何かしら目に見える目標があった方がモチベーションになるだろうということでTOEICも何度か受けてみました。特にTOEIC用の対策はしませんでしたが、リーディングの教材として市販のTOEIC対策本の中でも長文読解のテキストだけは読んだりしていました。

なんだかんだ言われていますが、TOEICは英語力が付けばきちんと点数に反映される試験になっていると思うので、特に英語学習の初期段階では学習の進捗状況を測るために受けてみるのもよいのではないかと思います。

読書

以前から英語のブログや技術書、論文などは読んでいたのですが、リーディングの訓練としてそれ以外のものも読むようにしています。オンライン英会話の先生に教えてもらったのですが、いくつかの出版社からGraded Readerという英語初学者向けの書籍のシリーズが出ているのでまずはそういうものから読み始めました。

様々なトピックの中から自分の興味にあったものを選ぶことができますし、一冊の分量も少なく、使われている英語もレベルに応じた簡単なものになっています。分厚い書籍だと手をつけるのが億劫になってしまうので、まずはこういうものから始めるとよいのではないかと思います。

www.pearson.com

ibcpub.co.jp

www.penguinreaders.co.uk

最近は普通の小説なども少しづつ読んでいます。技術書と全然ボキャブラリが違うので子供向けのものでも読むのにとても時間がかかります。無理せず自分の興味がある本を読むのがいいですね。

NHKラジオビジネス英語

英語学習というよりは自宅での趣味の一環という感じでしたが、今年の4月から9月までの半年間、NHKのラジオビジネス英語を続けていました。毎月紙のテキストを購入しつつ、Webやスマートフォンのアプリで放送を聞いていました。

放送もさることながらテキストがよくできていて、メールを書く際の注意事項など実務でも役に立ちそうな内容が多かったです。また、長文の回などもあったりして、普通に読み物としても面白かったです。テキストはKindleでも購入できるのですが、書店に毎月テキストを買いに行くという行為が地味にモチベーションになっていたような気がします。

下半期は上半期の再放送をしているようですが、4月からまた新講座が始まるようであればチェックしてみたいと思います。NHKの語学コンテンツは非常に充実しているので他の講座を受講して見るのも面白そうです。放送はWebやアプリで聞けますし、テキストの入手性が高いのもよい点です。

やってみたけどあまり続かなかったもの

映画やTVドラマを英語で見るというのは正直難易度が高すぎて英語学習として考えると自分のレベルではかなり効率が悪い方法だなと感じました。英語学習というより趣味の延長として好きな映画を日本語字幕、慣れたら英語字幕を付けて見たりするのは良さそうかなと思います。繰り返し見れるお気に入りコンテンツがあることが前提ですね。

会話がある程度こなせるようになった段階でライティングの添削サービスもしばらく試してみて、これは結構良かったのですが、実用性の観点からは(主に時間的に)費用対効果が微妙かなという感じで続きませんでした。ただ、文法的な間違いだったり普段なかなか指摘されないような細かい部分を指摘してもらえたりするのできちんとした英語のライティングを訓練したいという場合には有用だと思います。

まとめ

とはいえ英語学習で一番効果的だったのはやはり「仕事で使う」ということだと思います。強制的に英語を使わざるを得ませんし、学習の強力なモチベーションにもなります。ただ、現在勤務しているトレジャーデータでは業務上のコミュニケーションは英語が基本ですが、エンジニア含め日本人メンバーも多く在籍しているので日本人同士であれば日本語で会話ができますし、海外のメンバーも日本人と話し慣れていることもあり、比較的敷居が低いという面はあると思います。

また、「英語学習は人によって出発点が違いすぎるので、学習法について他の人の意見はあまり参考にならない」という気付きもありました。基礎はできているけど会話経験がなくて話せないという人と、そもそも文法やボキャブラからして覚束ない人では当然ながら必要な学習内容も学習方法もまったく異なります。まずは色々やってみて、自分のレベルに応じた学習内容・方法を見つけると学習を継続しやすいのではないかと思います。

自分の場合、通勤電車が貴重な英語学習の時間だったところ自宅勤務になって時間が取れなくなってしまった面はあるのですが、当時すでにアプリもだいぶやり込んでしまっていて他の学習方法を探していたりしていた頃だったので、自宅での趣味を兼ねて読書を増やすなど生活スタイルに合わせて学習方法も移行するよいタイミングだったかもしれません。現在の自宅勤務の状態で同じことができるかというとなかなか難しい気がするので最適な学習方法はその時々の生活スタイルに左右されるところも大きいかもしれません。

モノリスからマイクロサービスへ ―モノリスを進化させる実践移行ガイド

長らく電子積読になっていたのですがようやく消化しました。

モノリスからマイクロサービスへの移行パターンのカタログ集といった感じです。マイクロサービスへの分割でなくてもモノリスのモジュール化や既存のシステム分割、移行、拡張などの際などに役に立つ内容だと思います。書籍の中で紹介されていたGitHubのScientistというライブラリは知らなかったので参考になりました。

github.com

序盤は組織としてのマイクロサービスへの移行戦略、中盤からはサービスの分割、データベースの分割に使えるパターンのが紹介されています。とりわけデータベース部分はかなり歯切れが悪く、ここに書いてあるパターンは参考程度に各自の状況に応じて頑張れという感じです。まあトランザクションが絡む部分以外はマイクロサービスに関わらず一般的なデータ移行の難しさそのものなのでそれはそうかなという感じですが…。

マイクロサービスへの移行とはちょっと違いますが、以前GitHubのブログに書かれていた以下の記事はアプリケーション側のDBアクセスライブラリにLinterを入れることで論理的に分割されたテーブルへのアクセスが残っていないことを確認するという手法が紹介されていて、アプリケーションがきちんと決められたお作法にのっとって実装されている必要はありますが、データベースの分割時はこのような方法も有効そうだなと思いました。

github.blog

最後のマイクロサービスあるある問題ではトラブルシュートの難しさ、ローカルでの開発体験の悪さ、エンドツーエンドのテストの問題点、孤児サービスなど自分たちも普段実感している課題がたくさん挙げられていました。実際に直面してみると当然の課題ではあるのですが、これからマイクロサービスへの移行を検討しようという段階で将来こういう問題が起きるであろうということがわかっていると事前に備えるための助けになるのではないかと思います。

実際のところはマイクロサービス化しないと立ち行かない状態にまで成長したモノリスをこの本で書かれているようなパターンにきれいに当て嵌めて分割するというのはあまり現実的ではないと思いますが、これからマイクロサービス化を検討するといったフェーズではどういう戦略、戦術を取り得るかの出発点として基本的なパターンを押さえておくのに良さそうだなと思いました。

GitBucket 4.37.0をリリースしました

Scalaで実装されたオープンソースのGitサーバ、GitBucket 4.37.0をリリースしました。

https://github.com/takezoe/gitbucket/releases/tag/4.37.0

カスタムSSH URLのサポート

GitBucketの前段にSSHアクセス用のプロキシサーバを別途設置する構成に対応できるよう、管理画面からカスタムSSH URLを設定できるようになりました。

f:id:takezoe:20211211161057p:plain

署名付きコミット検証でEDDSAキーをサポート

Apache SSHDとbouncycastle-javaのバージョンアップにより署名付きコミットの検証でEDDSAをサポートするようになりました。

文字列長制限の緩和

以下の文字列長制限を緩和しました。

  • パスワード(20文字→40文字)
  • WebフックURL(200文字→400文字)

Web APIの改善

Web APIに関して以下の改善を行いました、特にGit Reference APIの改善はJenkins連携の改善に役立つはずです。

今回のバージョンではこの他にも様々な改善やバグフィックスを行っています。詳細についてはIssueの一覧をご覧ください。

自宅の作業用デスクを買い換えた

f:id:takezoe:20211204130940j:plain

完全リモートワーク突入してから早2年弱、10年以上前に購入した小さなデスクで作業していたのですが、狭すぎて作業がしづらいだけでなく窮屈な姿勢でのタイピングが肩凝りの原因にもなっていると思われたので、転居で部屋が広くなったこともあり大きなデスクに買い換えてみました。

購入したのはかなでもののラバーウッドテーブルの140cm x 70cmのサイズのもので、配線孔オプションも付けてみました。社でホームオフィス環境整備のための補助があり、全額ではありませんが一部はそれでカバーすることができました。Flexispotなどの電動スタンディングデスクも検討したのですが、最初面白がって上下する以外は使わなそうだなーと思ったのとw めちゃくちゃ重そうで組み立てや移動が大変そうだったのでやめておきました。

実際に数日使ってみたところ、奥行きがあるのでキーボードをタイプする際に肘をデスク上に置けるようになりかなり疲労が軽減されました。姿勢も良くなり長時間作業しても疲れにくくなりましたし、ノートにメモを取ったりなどPC以外の作業も格段にやりやすくなりました。一方で以前のデスクにはついていた引き出しがなくなってしまったので収納については若干困ったのですが、まあ整理をする良い機会かと思い、大掃除には少し早いですがいろいろと断捨離しました。

また、配線が床に這ってしまうと掃除がしづらいので、マグネット付きの電源タップを買ってきてデスクの脚にくっつけてみたのですが、MacBookのACアダプタが重すぎて磁力で支えきれず結局MacBookのACアダプタは以前と同じく壁面のコンセントに直接挿しています。ただ、ディスプレイの電源ケーブルやその他の電子機器についてはデスク脚の電源タップから電源を取れるようになったので以前と比べるとスッキリしたかなと思います。

広いデスクによる問題点としてはディスプレイの位置が遠くなったので若干小さな文字が見えにくくなってしまったということですw 今は5年くらい前に購入した以下の24インチの4Kモニターを使っているのですが、もう少し大きめのものでもいいかも。

買い換えるのであればUSB-C対応のものでMacBookとケーブル一本で接続できるものにしたいです。これとか。

いずれにしても2021年買ってよかったものダントツNo.1です。とても費用対効果の高い買い物でした。椅子も10年以上前に購入したバロンチェアが経年で崩壊してきてしまったので買い換えたいところですが、こちらはさらにお値段が張るのでサンタさんにお願いするしかない…。

Scalaでオレオレdocker-registryを実装してみた

だいぶ前からちょこちょこと作っていたんですが、ようやくイメージのpush、pullができるようになりました。

github.com

モノ自体はScalatraで作ったシンプルなWebアプリケーションで、以下のドキュメントに記載されているDockerのRegistry API V2を実装しています。

docs.docker.com

全てのAPIを実装しているわけではありませんし、色々と手を抜いている部分も多く、コード量は大したことありませんが、このドキュメントだけだとわからない点も多く、結局既存のdocker-registryのコードを調べて実装した部分もありました。docker-registryはAPIの構成自体は比較的シンプルなのですが、真面目に実装するとなると複数のバージョンのマニフェストをサポートしないといけなかったりと細かい部分が色々面倒そうです。

ちなみになんでわざわざこんなものを作っているのかというと、 現在GitBucketにはMavenリポジトリの機能を追加するプラグインが存在するのですが、同様にdocker-registryの機能を追加するプラグインを作りたいなと思っているためです(Scalatraで作っているのもそのため…)。

The Four: The Hidden DNA of Amazon, Apple, Facebook, and Google

2017年の出版で日本語訳も出ているので今更感ありますが、近隣の書店で売っていたので英語の読書ネタにちょうどいいかと思い読んでいました。途中で別の積読を崩したりしていたので、読み切るのになんだかんだ2ヶ月くらいかかってしまいました。

ベストセラーなだけあって面白く、最後まで飽きずに読み切ることができました。Big Techに対して批判的なスタンスで書かれており、印象に残ったのは以下のような点です。

  • AmazonAppleのビジネスに関する分析
  • Googleの分析ではGoogleの話そっちのけで自分がボードを務めていたNewYork Timesでの失敗談w
  • とにかくFacebookが嫌いらしい
  • 将来の予測という点では外してたりいまだに現実になっていない部分もあるけど、パンデミックなど予測不能なこともあるので仕方ない
  • 今後のキャリアアドバイスについては現実的で普通のことしか書かれていない
  • Big Techの社会・経済への悪影響についてかなり強く懸念を表明している

出版から4年経っているので半分答え合わせのような部分もあり、リアルタイムで読むのとはまた違った面白さがあったかなと思います。難点としてはペーパーバックで読んだのですが、字が小さすぎて読むのが辛かったですw

AWSコンテナ設計・構築[本格]入門

Amazonのレビューでもやけに評判がいいし、AWS & ECS弱者なので読んでみました。感想としては例によってAWS使うの大変だなーという感じ…。ハンズオン形式ですが、一通り目を通すだけでもECSと周辺サービスを組み合わせてどんなことができるか掴めるのではないかと思います。