5年くらい続けている英語学習について
5年前くらいから英語の学習をしており、どんなことをしているのかまとめてみました。 現状、特にすごく喋れるようになったとかでは全くないですが、無理なく少しずつやってる感じです。
英語の勉強を始めた経緯は、私が帝京大学に入学した当時、TOEICで750点以上取ると成績Sの8単位に変換できるという非常に美味しい制度があり、単位の取得に苦労していた私はなんとかこれを利用したいと思ったためでした(この制度は3、4年前から変更され、現在は認定単位8単位への変換となってしまいました)。
高校卒業以来、英語学習をしたことがなく、文法や単語をかなり忘れている状態で学習を始めたことを覚えています。今思えば、TOEICなり英検なり受けて英語力を測定してから学習を開始したほうが、学習後にどのくらい力が伸びたか測定できてよかった気もしますが、特にそのようなことをすることもなくヌルッと学習を始めました。
1年目、2年目は仕事と大学の両立に苦労しなかなか英語学習にまとまった時間を取ることができなかったので、基礎を固めることに注力しました。具体的には、隙間時間や大学の勉強後に文法の学習と発音の練習を始めました。 英語学習の方法論はありすぎるほど諸説あると思いますが、個人的には初期の段階での発音練習は効果的だと思います。音が正確に認識できるようになるとスピーキング力だけでなくリスニング力が上がります。また、Colloquial Reductions(going to → gonnaとかそういうの)については知ってないとどうにもならないので最初に覚えておいたほうが楽だと思います。 文法の学習にはForestを使い、発音の練習は人に聞いてもらったほうがいいと思ったのでBrightureというオンライン英会話サービスを使用しました。
また、すごく長くて全く読み通せてないですがAmerican Accent Traningという本もおすすめで、音声がWebで聴けるのがかなり嬉しい感じです。 おそらくBrightureの発音レッスンはAmerican Accent Traningを下敷きにしてると思うので、Brightureで発音の練習をしている人は復習にも良いです。
その後、学習を開始して3年目くらいで、もう少し単語覚えたほうがいいなと思い始めたのでDUO3.0で単語を覚えることにしました。特に単語帳にこだわりはなかったのですが、評判がよかったのとなるべく文章の中で単語覚えたほうが良いと思っていたのでDUOを選びました。 毎日2、3ページくらいをAnkiに登録するやり方で、1周するのに半年くらいかかりました。Ankiに公開されてるDUOのデッキを使うのは権利的にだいぶグレーな気がするので自分で登録しました。
そうこうしてるうちに4年目になり、そろそろ本腰入れて英語読むかと思ってまあまあの長文を読もうとしたんですが、全然読めないことに驚きました。今思えば英文を読む練習をしていなかったので英文が読めないのは当たり前なのですが、結構ショックでした。 そうした折に以下のブログ記事を見つけて、英文解釈というものを知り、記事の中で紹介されていた英文解釈教室をやってみることにしました。
結果的にこれがめちゃくちゃよかったです。1周するのに7ヶ月くらいかかりましたが、英文を読んでいて構造が理解できないことが圧倒的に減りました。ただ本当に内容が濃く難しくて、一番辛かった教材でもあります。
また、英文解釈教室を半分くらい読んだタイミングで初めてTOEICを受験し、815点を取ることができました。当初の目標を達成できてめちゃくちゃ嬉しかったのですが、800点取っても全く英語喋れなかったので、もっと”高める”ためにはこのままじゃいかんなとも思いました。この頃になると、TOEICの点を取ることよりも英語でコミュニケーションを取れるようになることに関心が向くようになっていました。
そこで、スピーキングを強化するために英会話を増やしたりし始めたのですが、一つの試みとして1ヶ月前から英文多読を始めました。なるべく自然な表現のインプットを増やして、スピーキング力の向上に繋げる目論みです。 読む本を選ぶときにはSSS英語学習法研究会のサイトを参考にしています。読みやすさのグレーディングと大体の語数を示してくれているので大変ありがたいです。
手始めにMagic Tree Houseという児童書をメルカリで全巻買って読んでます。24巻まで読んだので大体15〜16万語くらい積めました。全然知らない単語もガンガン出てきますが、そういう時はなるべく辞書をひかず雰囲気で読むようにしています。
また、自分は行ったことないですが東京都立図書館に英語多読棚があるらしいので、多読に興味あって近くに住んでる人にはおすすめです(港区の方じゃなくて多摩の方なので注意)。
仕事を再開するとまとまった読書時間が減ってしまうと思うので、今のうちにたくさん読んでおきたいです。 100万語読んだ後にどれくらい英語力が上がっているか楽しみです!
----- 追記 -----
30万語読んだあたりで英検準1級受けたところ、受かりましたー!
帝京大学通信をやっていく知見
私は2019年から6年間、帝京大学理工学部の情報科学科通信教育課程に通っていて、今年で7年目になります。 現在までに120単位集め、あと4単位で卒業できるところまで来ました。本当に長かった。。。
6年も通っていると、それなりに授業の履修やレポートの書き方などについて知見らしきものが溜まってきているので、簡単にですがまとめました。 こうしたほうが楽に単位取れるよ、的な身も蓋もない話がほとんどですがご容赦ください。 あと、自分は学部卒業後に修士へ進むことを考えていてなるべく高いGPAを取れるように工夫してきたので、そこら辺のこともちょっと書きました。
授業の履修について
とりあえず上限まで履修登録するのではなく、確実に単位取得できそうな単位数+α程度を履修登録するのがおすすめです。 一度履修登録をしてしまった科目は、(履修登録期間が終わってしまうと)取り消すことができず、仮に単位取得できないまま卒業してしまった場合2単位分まるまるGPAが下がってしまいます。 ある程度単位を取得すると分かってくるのですが、評価0の単位が2単位あるというのは想像以上に全体のGPAを下げます。具体的には、その授業で最高評価をとった場合と比較してGPAの分子が8下がります。 良いGPAを取ろうと考えている場合、一度履修した科目は卒業までに必ず取得する必要があるので注意してください。
また、履修登録する前に必ず「科目修得試験の日程・時間割」を確認するようにしてください。科目修得試験では、1期と3期、2期と4期がそれぞれグループになっていて、同じ時間割表を使って試験を行います。例えば、1期で落とした科目は3期で挽回するチャンスがありますし、同じ時間割に割り当てられている異なる科目でも、2単位なら同年中に取得できます。逆に言えば、同じ時間割に割り当てられている科目を3つ以上履修してしまうと、履修登録の段階で同年中に試験を受けられない科目が最低1つ生じることが確定し、単位取得計画が狂うので注意してください。
放送大学の単位互換について
積極的に利用するのが良いのではないかと思います。私は上限の10単位まで放送大学の単位互換で単位を取得しています。 総合科目から必修の英語1・2を除いて最低12単位取得することが求められますが(入学年度によって違うかも)、総合科目で良い成績を取るのはかなりカロリーが高いと個人的には感じています。 それに比べて、放送大学で単位を取得する難易度は全体の傾向としてかなり低く、また、認定単位扱いになるのでGPAの計算から除外されるため良い成績を取る必要もありません。さらに、放送大学の教養科目はかなり工夫されていてテキスト、動画共に面白いものが多いので、楽しさから言ってもおすすめです。
総合科目のレポートの書き方について
この本を読むのがおすすめです。 https://www.amazon.co.jp/dp/4334103804
いきなりテキストを渡されて、テキスト内で言及されている何かしらのテーマについて論ぜよと言われても、どう書けば良いかわからない方がほとんどではないでしょうか。 私は全く書き方がわからなかったので、最初の頃はテキストを複数回読み込んで内容を脳内メモリに乗せて、そこから何かしら自分の主張が滲み出てくるのは待つという書き方をしていました。 テキストが短い場合はそこそこ通用しますが、テキストが長くなってくると脳内メモリに文書が載り切りませんし、第一労力が高すぎました。 その後この本を読んで、まず核となる主張を立てて、それを補助するパッセージで主張を強化する、というレポートの書き方に変えたところ、かなり労力が減りました。 専門科目のレポートの書き方にも変化を与える一冊だと思うので、一度読んでみるのがおすすめです。
数学について
1年次で学ぶ線形代数、微分積分をはじめとして、微分方程式、グラフ理論、ラプラス変換・フーリエ解析など、情報系の専門科目を学ぶためには数学を避けることができません。 しかし、これらを独学するのはかなり大変だと思います。私は独学するのが難しかったので、オンラインの家庭教師サービスを使いました。 https://sugakubunka.com/
私は高校数学も覚束なかったので、まず高校数学の復習から初めて、その後、微分積分、線形代数と学習を進めていきました。 数学はとにかくフィードバックをもらうことが大切で、フィードバックをたくさんもらえるほど学習効率が上がると思います。また、情報理工学部で使う教科書はどうしても、数学を道具として扱う性質上、理論的な面はおざなりに説明されることが多いです。数学を道具として使う我々への、教科書を書かれた先生方からの配慮なのですが、自分はどうしても理論的にぼかされているように感じる説明に納得できず、自分でコントロールできないものを学ばされている感にやる気がなくなってしまうことが多かったです。 すうがくぶんかではそのような疑問に対して、数学を専門的に学ばれた先生方から当意即妙の答えが得られて学習を進めるのに大変助かりました。 お金はかかりますが、ここはお金で殴って解決するのがおすすめです。
どうしても独学せざるを得ない場合は、手を動かして学ぶシリーズがおすすめです。 https://www.shokabo.co.jp/series/206_mathwriting.html
独学して学ぶことを前提に書かれているので学びやすく、「行間を埋めるために」という別冊PDFが素晴らしいです。
スクーリングかオンラインか
どちらか選べる場合、スクーリングを選ぶ方が単位取得が楽なのでおすすめです。 スクーリングの場合、2日程度の出席と授業内で行われるテストによって単位が取れます。少なくとも私が履修したスクーリング科目は漏れなくそうでした。 スクーリングに出席可能な方は一度スクーリングを選んでみて、どの程度の負荷なのか確かめてみるのが良いかと思います。
資格取得による単位認定について
三級陸上特殊無線とCGエンジニア検定ベーシックは取得が容易なので、資格取得による単位認定を検討しても良いかもしれません。 英検・TOEICも必修単位を減らすことができるのでおすすめです。 ただ、最近入学されたほとんどの方は、単位互換すると認定単位扱いになるので要注意です。特に大学院進学を検討している場合、専門科目は授業を受けて取得し、良い成績を取っておく方が一般的にベターのようです。 入学年度によって大きく内容が変わる制度なので自分の入学年度の情報を学習便覧で確認してください。
ノートのとり方・先生への質問
iPad+Goodnotesでノートを取るのがおすすめです。 先生とのやりとりはメールもしくはLMS上のメッセージ機能を使って行うことになり、基本的に口頭のコミュニケーションは使えません。テキストのみだとどうしても意図が伝えづらいことがあるので、そのような場合はGoodnotesで図を書いてPDFを生成し、それを使って質問をするとお互いにコスト低くコミュニケーションできて良いと思います。
その他注意してほしいこと
紙のサイズに注意してください。レポートの提出や科目修得試験の受験の際に紙のサイズを間違えると、レポートの場合は再提出もしくは評価が下がる、科目修得試験の場合は他の受験者より狭いスペースで計算しなければならなくなるなどもろもろ不都合が生じます。印刷する前に、必ず紙のサイズが指定されたサイズであるか確認すると良いと思います。私はこれで2回ほど失敗してレポートの評価が下がったり、計算スペースが足りず未完成の回答用紙を提出することになり悔しい思いをしました。
思い出したことがあればまた追記します。間違ったこと書いてたらごめんなさい。 一人で勉強するの本当に本当に大変ですが、やっていきましょう!!
罹患しました
7/3に発症して、2日様子を見ても熱が下がらないどころか手足が痺れて動かなくなってきたのでこりゃまずいと病院へ行ったところ、陽性と診断された。
そこから1日の待機期間を経て、今は都の用意した療養施設に移った(西新宿にあるアパホテルが1棟丸々療養施設になってる)。
施設までの送りは、これも都の用意した専用タクシーに乗って行けるようになっている。
療養施設に滞在中の宿泊費、食費、タクシー代などは都が負担するらしい。納税していてよかった。
発症から5日経って、熱はほぼ平熱、手足の痺れや吐き気もなくなり、おおむね快方に向かっている。よかった。
また、昨日まで喉が痛すぎて固形物が喉を通らなかったけど、今朝ひさびさに固形物を食べることにも成功した。
ただ、味覚障害が起きてるみたいで、味とにおいがしなかった。いままではウィダー飲んでるだけだったから気づかなかったんだよな。
なぜか水は甘い。普通のいろはす飲んでるのにフレーバーが付いてるタイプのやつに感じる。
早く味と匂い戻って欲しいな〜、今はとにかく塩味のあるものを食べたい。
QA経験の少ないチームが良い探索的テストを行えるようになるための障害と、ナイトメアヘッドラインゲームの紹介
私が現在所属しているスクラムチームでは、チームとしてQAを行えるようになるべく、定期的に勉強会を行っています。 QAチームや、スクラムのQA担当者(のようなロールを担ってしまっている開発者)に品質保証を丸投げするのではなく、全員が品質保証に取り組み、自信を持ってリリースできるようになることを目標にしています。
今回は、QA経験の少ないチームで探索的テストを行う場合の障害と、それらを改善するためのナイトメアヘッドラインゲームというレクリエーションについて紹介したいと思います。
開発者が探索的テストを行うために障壁となること
探索的テストでは、探索したい項目をチャーターに書き出して、そのチャーターを指針としてテストを行なっていきます。
良いチャーターを作ることが、探索的テストを成功させるための要点だと考えており、これを専門のQAチームではないチームが行う上で、障壁となるポイントが2点あると考えています。
- チャーターの抽象度が揃わない
- 「作る」発想から抜け出すことができない
順番に説明します。
1. チャーターの抽象度が揃わない
開発チームに限った話ではありませんが、主に複数人でチャーターを作るときに起こりがちだと感じています。
そもそも、良い抽象度のチャーターを作ることは難しいです。 具体的すぎるチャーターを作ってしまうと、テストできる範囲を狭めてしまうことになり、自由に探索できる探索的テストの利点を損ねてしまいます。 逆に、抽象的すぎると、今度はテストの焦点が定まらず、探索が終わった時に、結局何がしたかったのか分からなくなってしまうこともしばしばあります。
抽象的すぎることや具体的すぎることの問題もさることながら、それ以前に、QAに慣れていない開発者が探索的テストを行う場合、開発者間でチャーターの抽象度が揃わないことがより大きな問題なのではないかと思っています。 少なくとも抽象度が揃っているならば、テストをたくさんすることで具体的すぎるチャーターの問題をカバーしやすかったり、あるいはテストの途中でチャーターが良い指針になっていないことに気づきやすいと思います。
しかし、抽象度が揃っていないチャーターだと、チャーターのダブりや指針としての良し悪しに気づきにくく、探索は終わったけど結局何をテストしたかったのかわからない、探索したかったものを全て探索できたかもわからない、意味のないテストになってしまいがちです。
2. 「作る」発想から抜け出すことができない
メインで開発を行っているチームが探索的テストを行うとき特有の問題だと考えています。 開発者やPOなど、普段「作る」ことを中心に考えている人たちは、なかなか「脆弱性を発見する」や「何がいけないのか」といった考え方に切り替えるのが難しいです。 また、特に開発者は、テスト対象となる機能を自身が設計、実装していることも多いため、コードベース中心の発想から抜けきれず、結果として他の機能と組み合わせた時に発生するバグや、非機能要件を見逃しがちだと思っています(スプリントレビューで、何故こんなことに気づかなかったのか、という初歩的な誤りを指摘されるのはこのケースの見逃しが結構多いと感じます)
ナイトメアヘッドラインゲーム
上記2点を改善するための取り組みとして、ナイトメアヘッドラインゲームがかなり良かったので紹介します。
ナイトメアヘッドラインゲームは、Explore it!という探索的テストの書籍で紹介されているレクリエーションで、チームで行います。(私が知らないだけで、ひょっとしたら初出は別の文献かもしれません)
自分の関わっているソフトウェアが起こしてしまった最悪のニュースの見出しを考え、そこから探索的テストのチャーターを作っていくというゲームです。 ゲームをしていく過程で、チャーターの抽象度に関する認識を揃え、「作る」発想から「脆弱性を発見する」という発想に切り替える練習ができるようになっています。
手順を説明します。
1. メンバー全員で最悪のニュース見出しを考える
例えばこんな感じです。 - 機密情報を含むA社宛のメールがB社に届いてしまった - 顧客管理画面から出力した社員情報が実は全て間違っていた
Explore it!ではニュースのヘッドラインを考えることになっていますが、toB向けサービスだと考えづらかったりもするので、必ずしもニュースぽく書く必要はないと思います。
2. 出揃ったニュース見出しの中から投票で、最も深堀りたい見出しを選ぶ
過去実際に起きてしまったことがある障害や、発生した場合影響の大きいものを選ぶと、その後のブレストが活性化しやすいと感じました。
また、私のチームは新しく加入したメンバーが多かったので、新メンバーが以前の案件で経験した障害なども取り入れながら進めました。
3. 2で選ばれた見出しが、現実になってしまった場合の原因を考える
機密情報を含むA社宛のメールがB社に届いてしまった -> 複数タブを操作していて、誤操作をしてしまった
顧客管理画面から出力した社員情報が実は全て間違っていた -> 出力したCSVのヘッダが消えており、内容が1行ずつずれていた
4. 3で出された原因を探索できるチャーターを考える
- 複数タブで操作し、メールを誤送信してしまう方法を探る
- CSVをダウンロードして、行をずらしてしまう方法を探る
まとめ
実際にやってみた感想として、初めから良い抽象度のチャーターを作ることはかなり難しいと感じました。 ですが、少なくともチャーターの抽象度を揃えことと「作る」思考からの切り替えにはすぐに役立つものだったと思います。
さらに、実際にチャーターを作るところまでやり切ることができると、次に探索的テストを行うときの心理的ハードルがだいぶ軽くなるようにも思います。
すでに探索的テストを行なっているチームや、これから品質保証活動をやっていこうというチームは、レクリエーションの一環としてやってみると面白いかもしれません。
また、余談ですが、経験豊富なメンバーがいるほどナイトメアヘッドラインが面白くなるので、そのようなチームにはぜひお勧めしたいです。
参考
オブジェクト指向設計実践ガイドを読みました
Rubyで書かれているオブジェクト指向入門書籍として有名な、オブジェクト指向設計実践ガイドを読みました。
学習のモチベーション
最近の仕事で、そこそこ大きめの機能(申込機能のようなもの)のリプレースを設計したのですが、自身のクラス設計能力不足を痛感したことがモチベーションとなり、一度腰を据えて入門書から勉強してみよう、と思ったことがきっかけです。
目的として
- 要件変更、機能追加に柔軟に対応できるクラス設計を行えるようになること
- 何らかの障害が発生した際に、MTTRが短く、保守性の高い設計を行えるようになること
の2つを意識していたのですが、結果としては、当初の目的に非常に合致した、良い学習になったように思います。
本書の概要
タイトルにもある通り、本書はオブジェクト指向の入門書です。
オブジェクト指向の入門書は巷にあふれているように思いますが、中でも本書を特徴づけている点は、自分が思うに次の3点かと思います。
- 単に設計原則の解説だけでなく、その設計原則はどこから来たのか、なぜ原則を守るべきなのかについて、具体的な文献を示して踏み込んだ解説がなされていること
- クラスよりもメッセージに基づく視点を持つことの推奨
- コードサンプルがRubyであること
中でも、特に感銘を受けたのは、本書の中で、適切なオブジェクト指向設計を実現するために、メッセージに基づく視点を持つことが推奨されていた点です。
大まかにまとめると、設計の重点を、「クラスと、クラスが誰と何を知るか」から、「まず必要なメッセージを決め、それをどこに送るか」に移すこと。それによって、「まずクラスを決め、その責任を見つけ出す」アプローチから、「メッセージを送るべき相手は誰かを考えることから、隠されたドメインオブジェクトに気づく」アプローチをとることが推奨されているといったところです。
私自身、責任外のクラスにメソッドを定義してしまったり、必要なドメインオブジェクトに気づけなかった時は、大抵既存のクラスに意識を置きすぎていたことが原因のように感じていました。
本書で推奨されている、「メッセージに基づく視点を持つこと」は、それに対する1つの解決法だと思うので、今後積極的に活用していきたいと思っています。
また、Rubyのコードサンプルは一部古い箇所もありますが(デフォルト引数、キーワード引数を使わない冗長な方法が解決手段として解説される点など)、本質を損ねるほどのものではなく、自分で読み替えたので特に気になりませんでした。
まとめ
今後、コードレビューや設計を行う際に、何度も読み返すことになるだろうと感じています。
本書で説明された方法論を参考にしつつ、継続的にリファクタリング、リアーキテクチャを行って、設計能力を向上させていきたいと思います。