Studio3104::BLOG.new

uninitialized constant Studio3104 (NameError)

本気でデジタルトランスフォーメーションを実現したいのであれば今すぐおまえらの組織の看板から "DX" の文字を排除しろ

近年、日本の大企業、特に非デジタルの領域でビジネスを成長させてきた業種・業態の企業において、例外なく DX に関連する取り組みを推進・進行している。そして、大きな取り組みの成功事例もよく目にするようになってきている。しかしながら大多数がその成功事例を有する先行者のフォロワーに過ぎないというのが実情であろう。筆者は2022年1月からある大手 JTC の開発組織で中間管理職をしているマネジメント2年生の所謂 DX課長 であり、渦の中で藻掻く者のうちのひとりである。たかが1年間、されど1年間ではあるが、1年間藻掻く中で思うこと感じること考えてることがあるので、このタイミングで文章としてダンプしていく。

そもそも DX とは何なのか

経済産業省が提唱する "DX" の定義は、NTT Communications の解釈ではこのように説明されている*1

経済産業省ではDXの意味として 「企業がビジネス環境の激しい変化に対応し、データとデジタル技術を活用して、顧客や社会のニーズを基に、製品やサービス、ビジネスモデルを変革するとともに、業務そのものや、組織、プロセス、企業文化・風土を変革し、競争上の優位性を確立すること」 と定義されています。 企業におけるデジタルツールの導入はDXとは言いません。データ・デジタル技術は、変革のための「手段」とされています。

正直さっぱりわからない。"手段" とするのであれば、具体的に何をすることなのかが明確である必要があるのではないだろうか。IT化やデジタル化と何か違うのだろうか。少し検索すればこれらを説明する文書は多く見つかるが、曖昧な境界と定義をまわりくどい文章で解説しているものばかりだ。結局疑問は解消しない。世の中の多くの人々の間で解釈と認識に大きなバラツキが生じていることは間違いないだろう。つまり "DX" はユビキタスとは程遠い、定義や解釈が曖昧な言葉なのである。

定義、解釈、認識が曖昧なまま『DX をやっていく』を継続したときに起こること

認知が歪み、頭手足がバラバラの方向に進もうとする

単一の事象に対する解釈が人によって複数パターン存在してしまう場合、同じものを指して話をしているはずなのにイマイチ噛み合わないということが容易に起こってしまう。『DX を推進していくにおいてプロダクト作成の全行程を内部で完結させるべきである』という認識の人と、『DX を推進していくにおいてソフトウェア開発は SIer に一任し、それらをグリップすることを徹底するべきである』という認識の人では折り合うことはない。"内部" というのはパートナーや SIer も含んでいると考える人もいるかもしれない。こうなると、同じ "DX" をやっているはずなのに、チームや部署によって本質的に方向性の異なる取り組みをしてしまうようになる。

ローカルスコープで独自の解釈を反映した新たな定義を作ろうとする

組織間で認識のズレが生じることによってコラボレーションにも弊害が生じてくる。そのギャップを解消するために、自分たちの解釈を反映した新たな定義をして既存のものを上書きしようとする動きが起こることがあるが、これは絶対的に悪手である。定義の上書きのスコープがチーム内や部署内に限定されるのであれば、ある程度のコストはかかったとしても擦り合わせること自体は比較的容易に行えるだろう。ただし次は他部署との連携で同じことが起こることが明白だ。多くの部署を巻き込んでカンパニーワイドで定義の上書きをすることは容易なことではないし、仮にそれがうまくいったとしても今度は社外の多くの一般的な認識とズレたままになるだけであって、まったくのナンセンスだ。

歪んだ認知を抱えたまま取り組みを推進していくと SIer, コンサルティングの餌場になる

彼ら彼女らは老獪・狡猾なテクニックを使ってそれらしいことを甘言してくる。非デジタルの領域でビジネスを成長させてきた業種・業態の企業でのビジネスにおけるデジタル戦略のほとんどが SIer やコンサルによって成立してきているので信頼と実績がある。バイアスがかかって「彼らの言う通りに進めてみよう」となることは容易なのだろう。しかしそうなってくると、内部に開発組織を設けたとしても開発そのもの実態は SIer が担うことになる。これまでと何が違うのだろうか。言われるがままに異常な人数が放り込まれてくる。高額な人件費。まさに餌場。

また、社内の事業部の担当者からは「システムを開発・導入して解決したい課題はたくさんあるが、予算がないので発注出来ない」というような話も聞く。確かにこれまでの慣例に倣って SIer が開発を担うとすると、目玉が飛び出るほどの金額が必要になる。そして極めて遅い。平気で数ヶ月数カ年スパンでのスケジューリングをしてくる。管轄チーム内に事業部の課題を解決するためのケイパビリティは十分に有しているが、アサインの都合上クイックに対応することが出来ていないのが立場上非常に歯がゆい。

そして開発組織のマネジメントをしているとこういうふざけた提案が定期的に飛んでくる。単価もめちゃくちゃに高額。

プロパー社員が疲弊し現場が崩壊する

SIerシステム開発の実態を担うということになると、DX をするために内部に設けた開発組織が責任を持つ立場を取らないとならない。そうなると、純粋なソフトウェアエンジニアとしてプロダクト開発をするために中途入社してきた社員がベンダーコントロールをやらされたりする。当然退職する。自分たちでプロダクトを開発していくことを目指して設けられた組織であるはずなのに、アサインのミスマッチで貴重な開発力をどんどん失っている。現在ではその傾向は大きく緩和しているものの、筆者が入社するタイミングで入れ替わりのように高い技術力を有する強力な数名が退職してしまっていた。

DX を成功に導くために必要な前提条件

強力なトップダウンによる体制から始める

"DX" の定義が曖昧であることによって発生する問題について述べてきたが、これは組織がトップダウンでの明確な方向指示を怠っているがゆえに起こっているという側面もある。"DX" が曖昧であったとしても、組織としての Mission, Vision, Value が明確に示されていれば起こすべきアクションも必然的に明確になるのだから、マネジメントを含めた現場の認知が歪むということも回避出来る。うまくいっていない組織では例外なくここが機能していないはずだ。言うが易しではあるが、会社組織全体に影響を及ぼす意思決定をしなければならないので責任者は大きなプレッシャーを伴う。相当な自信家か狂人でなければ務まらないのかもしれない。

例えばボトムアップで改革を行っていく胆力がある人間が複数部署にいてそれぞれが別の正義を持っている場合、結局は上位のマネジメントが取捨選択をしなければならないのだから、トップダウンでビシッと筋の通った MVV を提示することとそれらを遂行する体制を確立することはいずれにしても不可欠だといえる。

組織を再構築・再構成し、認知を歪ませるワーディングを避ける

"DX" という言葉の曖昧性によって認知が歪むことで起こりうることについては上述してきた通りである。であるからして、『呼称は自他の意識に影響を与える*2』ということを考えると、組織の看板でもある部署名やチーム名からは "DX" という文字を直ちに外すべきなのである。"DX をやる人" というのが実際に具体的に何をする人なのかという自意識と他意識が人によって異なるからである。そして看板からだけではなく、標榜する MVV や組織の Principles からも排除するのが良い。定義の上書きは悪であるということも前述している通り。つまりは『本気でデジタルトランスフォーメーションを実現したいのであれば今すぐおまえらの組織の看板から "DX" の文字を排除しろ』ということなのである。世の中を見渡してみると、非デジタルの領域でビジネスを成長させてきた業種・業態の大企業における成功事例では、メディアへの露出時や利用したほうが通りが良さそうなケースを除いて "DX" というワーディングを極力避けている傾向があるように思えるがいかがだろうか。例えばトヨタ(Woven Planet)やファーストリテイリングなど。筆者はこれら2企業の中の人ではないし内情を一切知らない立場であるので推測の域を出ないのであるが。

戦略的に継続的なアウトプットをする

組織として筋の通った MVV が提示され、それが遂行されるようになれば、取り組みをミクロにもマクロにもアウトプットするようにしなければならない。どんな課題があって、どのようなアプローチで、どのように解決したのか、またはどのように失敗したのか。マーケティング戦略的には失敗したことを認めて公表することは難しいかもしれないが。アウトプットのベネフィットとして、情報は提供する者にこそ集まってくるという本質がある。多角的視点からのフィードバックを得るチャンスであるし、有益なインプットの総量も増加することが期待できる。内部別部署へのインプットのチャネルを増やすことにもなるので、それが成功事例なのであればリファレンスとしてより強固なものとなる。まだまだ多くの JTC が自社の内部的情報に対してクローズドな傾向が強いが、オープンマインドが必要。

SIer, コンサルティングとの決別

これについては多くを語ることを避けておく。

最後に

冒頭でも述べた通り、筆者は大手 JTC の開発組織で中間管理職をしている DX 課長である。前職でも部署の名前に "デジタルトランスフォーメーション" が含まれていたし変に縁があるが、前職時代からこの単語が大嫌いだし、現職でもなるべく使わないようにしている。このエントリーもゾワゾワしながら書いた。そのような人間の視点から実際に経験したことをベースに現時点で感じていることを思うがままにダンプした。賛否はあるだろう。意見をくれたら嬉しい。最後まで読んでいただいてありがとうございました。

ローソク足チャートに引くレジスタンスライン/サポートライン算出ロジック比較

仮想通貨自動取引実験シリーズ第三弾。前回までで Ticker を蓄積しつつそれを元にして OHLC データフレームを作ってローソク足チャートを描画するところまで出来たので、今回はそこにレジスタンスラインとサポートラインを引いてみた。例によってソースコードの解説はしない。

前回まで

TL; DR

Window Shifting でやっていくことになりそう。(ツイートに貼ってある Window Shifting のチャートはちょっとバグったロジックでプロットしてしまっている。修正済みのロジックでプロットしたチャートは下に。)

Motivation

ローソク足チャートが出来たらレジスタンスラインとサポートラインを引きたくなるのは自然な流れでしょう。レジスタンスラインとサポートラインによって得られる情報はたくさんある。ダブルトップ、ダブルボトム、三尊、逆三尊などからトレンド転換を予測出来るし、ラインをブレイクしたときにどれくらいまでを目指すのかを見極めて指値や逆指値を置く、レンジ相場の幅、などなど。チャート分析において基本のキかつ最も重要な要素のひとつであろう。

Condition

何を基準にラインを引くかは大きく3つのアプローチがある。と思う。

  • ヒゲ(高値と安値)を参考にする
  • 実体(始値終値)を参考にする
  • ヒゲも実体も両方見る

f:id:studio3104:20211109123936p:plain
https://info.monex.co.jp/technical-analysis/indicators/011.html

今回の実装では ヒゲ(高値と安値)を参考にする を前提として準備した。実体だけを見る場合だと足の中での値動きを無視することになるし、両方を見る場合は実際に引かれる線が増えたりなどしてノイズになるだろうと考えた。

Implementation

今回は3つのアルゴリズムを使ってそれぞれの実装を行い、同じ OHLC データでラインを生成してチャートにプロットして比較した。

  • Fractal Candlestick Pattern
  • k-means
  • Window Shifting

それぞれの結果は以下の15分足のチャートにプロットして例示する。

f:id:studio3104:20211109132931p:plain

Fractal

Fractal Candlestick Pattern では、時系列順に並んでいる OHLC データから5要素ずつピックアップして比較します。OHLC データ ohlc の中で要素 n を起点とする場合、ohlc[n - 2] < ohlc[n - 1] < ohlc[n] > ohlc[n + 1] > ohlc[n + 2] もしくは ohlc[n - 2] > ohlc[n - 1] > ohlc[n] < ohlc[n + 1] < ohlc[n + 2] が真であれば要素 n は Fractal であることになります。山を描く構造の場合は Bearish Fractal でレジスタンスラインの値の候補となり、逆に谷を描く構造であれば Bullish Fractal でサポートラインの値の候補となります。

f:id:studio3104:20211109121831p:plain
https://medium.datadriveninvestor.com/how-to-detect-support-resistance-levels-and-breakout-using-python-f8b5dac42f21

実装ではレジスタンスラインの値の候補はデータフレームの中から高値を参照し、サポートラインの値の候補は安値を参照して決定するようにしている。
プロット結果は以下の通り。

f:id:studio3104:20211109133215p:plain

なんか惜しい。7.37の辺りに明らかにもう一本ラインが引かれていてほしい。人力で引くなら確実にここにも引く。よく見てみると 3:30, 4:40, 14:30 あたりのデータが Fractal になっていないのである。一応 Fractal Candlestick Pattern の名誉のために言うと、足を変えればいい感じに出ることもある。以下は同じ期間の30分足。

f:id:studio3104:20211109134612p:plain

プロットしたデータを生成した実装はこちら: https://github.com/studio3104/RainMaker/blob/9e97216ea5db990b5b7273c6a205328f70f19caa/libraries/signals/support_resistance/fractal.py

k-means

k-means (k 平均法) は非階層型のクラスタリングアルゴリズムで、データをクラスタとして扱い、平均を取得して k 個に分類する。k は変数なので任意のパラメタとして与えることが出来る。
以下リンク先情報を参考にして実装に落とし込んだ:

プロット結果は以下。

f:id:studio3104:20211110213746p:plain

見てわかる通りで結果としてはイマイチ。実装はともかくアルゴリズムとしては単純で、ロジックとしてオプティマイズ出来そうな余地としては k をいくつに設定するか判定する部分になるが、いくつか値を変えてみたが結果的にはどれも微妙だった。違う期間のチャートを食わせてみたりもしたけどちょっと違う感じ。
レジスタンスラインとサポートラインを引く目的で使うのは自分としてはちょっとナシ。ただし他の用途ではもしかしたら何かしら使えるかもしれない?わからん。

プロットしたデータを生成した実装はこちら: https://github.com/studio3104/RainMaker/blob/9e97216ea5db990b5b7273c6a205328f70f19caa/libraries/signals/support_resistance/kmeans.py

Window Shifting

価格の数列上 n の先頭に期間 w のウィンドウを置き、その中で最大値(or 最小値) m を見つける。数列上でウィンドウをひとつ後ろ側にシフトし、以下繰り返す。繰り返しの中で値 mceil(w / 2) 回連続して同一だった場合はその値を l とし、ラインの候補とする。

f:id:studio3104:20211111001419p:plain
https://algo.monster/problems/sliding_window_maximum

参照する値として、レジスタンスラインの候補としては高値の最大値、サポートラインの候補として安値の最小値としている。
実際にプロットしたチャートは以下。

f:id:studio3104:20211111041115p:plain

これはほぼ完璧に見える。他の期間他の足で試してみても同様にいてほしいところにちゃんとラインがいた。今回の検証ではウィンドウサイズは固定で9を設定しているが、ここにはオプティマイズの余地がある可能性があるかもしれない。

プロットしたデータを生成した実装はこちら: https://github.com/studio3104/RainMaker/blob/9e97216ea5db990b5b7273c6a205328f70f19caa/libraries/signals/support_resistance/window_shifting.py

Conclusion

今回の検証では Window Shifting が最も良さそうであるという結果になった。サポートライン、レジスタンスラインを OHLC から求めるにおけるロジックは他にも様々アプローチがあるようだが、Window Shifting で大きな問題が生じない限りはこれをオプティマイズしながら利用していこうと考えている。

Extras

数列上でウィンドウをひとつずつ動かしながら最大値を求めていくという要件はひとめ簡単でシンプルに見えるが、実は効率よく稼働するように実装するのはまあまあ難しい。たとえば数列をイテレーションしながらそのループの中で数列からウィンドウ分をスライスするとなるとめちゃくちゃに効率が悪く、数列の長さに対してエクスポネンシャルに実行時間が伸びてしまう。バシッといい感じに投機を見極めるロジックを実装出来たとしても、実装が遅くて機を逃すなんてことがあれば本末転倒だ。

ところで「まあまあ難しい」と書いたが、実際どれくらい難しいかというと、LeetCode でいえば Hard のレベル。というかまさにまんまの問題があった。

leetcode.com

What's next?

次こそは移動平均線に着手する。まあこれはたぶんハイパーイージーだし特に苦労がなければエントリーにはしないかも。苦労したり発見があればまた書きます。移動平均線も SMA だけではなくて EMA とか、他にもバリエーションがあるので何かしら気付きはありそうな気はしている。(プロットしたチャートには SMA が載ってるが、これはチャート描画ライブラリの機能なので数値を自分で計算しているわけではないのです)

Ticker をザクザク取得してローソク足のための OHLC を作る

仮想通貨自動取引実験シリーズ第二弾。前回は10秒ごとに取得した Ticker で RSI を計算してシグナルを確認するロジックを実装して実験してみたが、今回は新しいロジックを試すではなくてローソク足のための OHLC を作るところまで。本エントリでは実装の解説はありませんがコードはここにいます。

前回まで

Motivation

前回のシミュレーションで10秒ごとに取得した Ticker で計算した RSI による逆張りだけのトレードではどうにも勝てないことがわかったので基本に立ち返って SMA を引いてみるところからやることにしていた。

というとこで、Ticker をもっと細かく取得して OHLC を作ってからローソク足を先に作る気持ちになった。ローソク足が好きすぎるのでローソク足だけで白米お茶碗10杯食える。

前提知識

OHLC

OHLC は Open(始値), High(高値), Low(安値), Close(終値) の頭文字を繋げた略語。特定のピリオドごとの値を持つデータフレームのこと。ローソク足はこの OHLC によって描画される。

www.fxbroadnet.com

Condition

  • WebSocket API で高頻度に Ticker を取得して保存する
  • 作成したい時間足ごとにデータを集計して OHLC を作る

これだけ。
某取引所の WebSocket API では購読した Ticker に変動があった場合に配信される。ただし配信頻度は取引所都合によって変動する。まあ全部の Ticker を拾う必要は一切ないし、24 時間動かしてた感じだと十分な量の配信があった。

Conclusion

短い足でのシグナルだと現物板取引では完全に手数料負けしそう。まあとりあえずここから色々やってみようとは思う。

What's Next?

あらゆる時間足の OHLC を作り続けることが出来るようになったので、あらゆるインジケータを当て込んで売買のシミュレーションをドンドコやっていく。 あとは今試してる取引所じゃないところでの売買のシミュレーションもしたいところ。手数料かからんとことか。

ところで

GMO コインの Public API ではローソク足のデータを取れるらしい。わざわざ Ticker から作らなくても。まあでも期間とか自由にやりたいしとりあえず今のままやる・・・

coin.z.com

RSI だけで BTC を自動取引

仮想通貨自動取引実験シリーズ第一弾。今回は RSI で逆張りシグナルによって買い注文を入れるというロジックを実装して実験してみた。本エントリでは実装の解説はありませんがコードはここにいます。

前提知識

RSI とは

RSI はチャート分析の中でもオシレーター系に分類される指標。売られすぎ買われすぎの状態を数値化することで逆張りや相場転換のシグナルとして用いられる。

f:id:studio3104:20211102141905p:plain
マネックス証券のサイトから引用

info.monex.co.jp

Condition

売買条件は概ね以下の通り

  • BTC 現物板取引でトレード
  • 10秒ごとに ticker を取得
  • RSI 30 を下回ったら買い注文
  • 未決済のポジションがあるときには新規買い注文しない
  • 損切りラインを n% に設定
  • (n * 1.5)% を超えたら利確売り注文
  • 売買手数料は 0.15% を想定

RSI は買い注文を入れる際のみに利用し、売り注文を入れる際は考慮していない。理由としては10秒スパンでのデータで RSI を計算したときにはかなりダマシが多く、手数料負けのラインで決済されることがほとんどであることがすぐにわかったため。まあもうこの時点で結果は見えてるね...
損切りラインの n は 0.1 から 3.0 まで 0.1 刻みにして30段階で設定し、同じ値動きに対してそれぞれシミュレーションした。

Conclusion

結果としてはすべての n でマイナスとなった。

f:id:studio3104:20211102143022p:plain
0.3% 設定でのグラフ

図は n を 0.3 に設定したシミュレーションの結果。赤点が買い注文、緑点が売り注文。
レンジ相場であればある程度の利益が期待できそうではある。ただし利確ラインの設定によってはラインに到達しない。利確ラインも何らかの指標によって決定するべきであろう。ただし前述した通りで RSI 70 とかで利確する場合はダマシにやられたり手数料負けする価格で決済されてしまうことが多い。まあダマシは買い注文のシグナルのときも同じことが言えるわけだが。
あとは RSI で売られすぎと判断されてからの上昇トレンドが起こる場合でも勝ち取引になりそうではあるが、これはまあ普通に当たり前。
あとはやっぱり逆張りオンリーの手法なので下降トレンドが起こったときにはどんどん損が積み重なる。図の右半分くらいのところ。RSI を軸に考える場合でもトレンドの分析結果を加えるべき。
やる前からだいたいこうなるだろうなとは予想していたけど実際にそうなったことを確認出来た実験結果となった。

RSI だけでは勝てないことは明言出来る。RSI は相場転換のシグナルとして参考程度に他のシグナルを主軸にした別のロジックを考えて実装してみようと思う。10秒ごとの ticker から計算した指標は RSI じゃなくてもダマシが多くなるはずなのだが、おれはスキャルピングがやりたいのだ。
あとは BTC はボラティリティが高いから今回のロジックでもそれなりの数の売買が実行されるかなと思ってたけど意外と少なかった。現物板取引だと買い注文を先にしないといけないというのがダルい。とか思ってたら bitFlter で仮想通貨FXの新規申し込みが再開されたというタイムリーがニュースが!嬉しい!

What's Next?

FX を前提としてロジック作る。
指標としてはいったん基本に立ち返って SMA で判別するロジックから作ってみることとする。そこからボリンジャーバンドMACD かなあ。

半年間で LeetCode の問題を300問解いてみて(※)

とは言ってみたものの実際にはちょうど1年前くらいからやってました。始めてからすぐ Premium 買ってたので。

ではなんで「半年間で」なのかというと、今年の前半は英語の勉強をがっつりやってたので英語と仕事以外のことは何もしてなかったから。
そして300問はまだいってないんだけど、英語漬けから空けた6月アタマから数えて半年経過の今月末には300問いくだろうという見込みがあるということでタイトルはこのようにした。

f:id:studio3104:20201216144305p:plain f:id:studio3104:20201216144159p:plain

1年間で LeetCode の問題を290問解いてみて

ということで改めて。@sugyan@fushiroyama *1 に影響されて始めたんだが、続ければ続くものですね。

自分は "コードの書けないインフラエンジニア" として IT エンジニアのキャリアが始まりました。Computer Science とかは履修してません。"コードの書けない" だったはずが "コーディングは自分の仕事じゃない" に気付かずうちに変わっていっていて、あるとき「あれ、これでいいんだっけ...?」ってなってちょっとずつレイヤーを上げて周囲に助けられながら学習して守備範囲を広げていったらそっちのほうが楽しくなっちゃったみたいな感じだった。
ただ楽しくやっている中でもジレンマみたいなものはあって、「アルゴリズムとかデータ構造とかそういうのまったくわかってないけどいいんかな。。まあ楽しいしとりあえずなんとかなってるしいいか。え、ホントにいいんか?」みたいな感じだった。ソートアルゴリズムの名前とか1個も言えない。名前だけ聞いたことあるけど内容がまったくわからないアルゴリズムとかたくさんある。深さ/幅優先探索とか。
そろそろやりどきかな、、となって始めたのが LeetCode だった。

たとえば Two Sum

LeetCode の問題番号1番にもなっているような定番の基礎問題。たぶん。わからんけど。
数値の配列の中から指定の数値が和になるような組み合わせを探すという問題。

愚直に全通りをチェックするとこうなる。 LeetCode 上のこの問題の制約では nums のサイズは最大でも103件なので最悪のケースでも106回ループすれば答えにたどり着ける。

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        for i in range(len(nums)):
            for j in range(len(nums)):
                if i == j:
                    continue
                if nums[i] + nums[j] == target:
                    return [i, j]

ちょっとだけ工夫してこうすると最大 500,500 回のループまで削減出来る。

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        for i in range(len(nums)):
            for j in range(i + 1, len(nums)):
                if nums[i] + nums[j] == target:
                    return [i, j]

とはいえ数列を2重にループするのは何か無駄っぽいというのはわかる。でもじゃあ効率的にやるにはどうしたらいいのかはスッとはわからない、in とか使ったらええんか?みたいなのが最初だった。気がする。あんま覚えてない。(list に対しての in も結局最悪のケースでは全要素をチェックするので2重ループと同じということもこのときにはちゃんと考えられていなかったかも知れない。恥ずかしい。)
ループ回数を最小限に抑えるにはこんな感じになる。HashMap (dict) にメモしながら数列をナメていって、和を成す相手が既出だったらそこで答えを返す。HashMap のキーに対しての探索は1回で済むのでループ内で非効率な再探索が行われることはなく、ループ回数は最悪でも103回で済む。スッとは出来なかったもののたぶんこれは自力でたどり着けたと思う。

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        memo = {}
        
        for i, n in enumerate(nums):
            t = target - n
            
            if t in memo:
                return [memo[t], i]
            
            memo[n] = i

とはいえこの問題の制約はかなりゆるいので全パターンをナメる Brute Force アプローチでも余裕で現実的な時間内に解答が得られてしまう。しかしながらそんなゆるい制約の問題ばかりなワケはなくて、問題をただ解いていくだけのスタイルだとすぐに限界が来てしまうことになる。

毎日問題に取り組みながら並行して読んだ本

ということで本を何冊が読んだ。読みながら写経したりとかもした。ビッグオーもまったくわかってなかったので本で学んだ。
メモったりページ戻ったりがやりやすいかなと思って本は全部物理で買った。

こんなもんか?他にもあったかも。アルゴリズム図鑑はめっちゃ良くて完全に絵本。実装例とか一切載ってないんだけど絵でキレイに図解されているのでめちゃくちゃわかりやすいし、いまだにふとしたときに見返したりすることもある。

290問やった結果

LeetCode は難易度が三段階(Easy, Medium, Hard)あるんだが、Medium までなら割とスッと解けるようになってる。Hard はだいたい自力じゃ無理。Hard はマジハード。あと相変わらずずっとビット演算が苦手。。

来年もたぶん続ける

結構なんでもそうなんだけど Intermediate くらいのレベルになると Advanced を目指す前に飽きてしまいがちなんだけどたぶん来年も続けるかな。たぶん。
普段はとある Slack で進捗とかを共有しながらやっててるんだがソロでやってたら絶対もうやめてる。そこに @sugyanもいるんだけど彼はおれが始めるずっと前からずっと続けてるし、英語漬けで離脱してた間もずっと続けてた・・・マジすごい。あとなんかみんなホントに当たり前のようになんでも知っててすごいんだよなあ。来年35歳で定年だけどまだまだやっていかなければいけない。

番外編

12月は Advent of Code も毎日やってる。やってる人、 Private leaderboard でお待ちしておりますよ!

ちなみにこれの Day1 の問題は前述の Two Sum と発展の Three Sum で解くような問題でした。

*1:[2020/12/17 追記]: @fushiroyama さんは競技プログラミングを勧めてくれていた。 LeetCode 推しということではない。

在宅勤務を快適に遂行するために書斎を設けた

もういつから出社していないかも忘れてしまった。2ヶ月くらい経ったんだろうか。

つい数日前まではリビングのソファのサイドデスク(?)にラップトップを置いて地べたに座って仕事をしていた。テレカンするときは子供たちはテレビの音を小さくするなどして静かにしていてくれたがそれ以外のときはほぼアニメがつきっぱなしなので集中力を大きく削がれる。息子は一生 Dr. STONE を見続けている。そして天真爛漫な妻はテレカンもお構い無しでドデカ生活音を発してくるので寝室に退避することもしばしば。このような状況下では自分だけではなく家族にとっても無視できないストレスがあったはずだ。

そして、地べた作業によるケツへのダメージ、ベッドでの無理な姿勢での作業による腰へのダメージ、家族のストレスが、だんだんと無視できなくなってきていた。

そんな在宅勤務の環境を良くするべく物置と化していた部屋を掃除してあらゆる物品を購入して書斎化した。というか本来は最初から書斎にしたかった部屋だった。そのために4LDKを郊外に購入したのだ。3年越しにようやく。

本エントリでは、実際に購入したモノの紹介と併せて、感想等を述べる。同じようなことを検討されている方にとって少しでも参考になれば嬉しい。

f:id:studio3104:20200429024340j:plain こちらが現在の様子です。この部屋は確か6畳に満たないくらいの広さだった気がする。中途半端。しかしもうちょっと片付けたい・・・

購入した物品

デスク

何はなくとも机と椅子は必須。ということでデスクはこちらを購入した。L字型。広い部屋ではないのでやや心配だったが、部屋の角に押し込めることでいい感じになったと思う。窓の高さとも合ってる。両面が窓に面しているので日中カーテンを開けているときはマンションの植樹に囲まれていていい感じ。
L字型で十分なスペースがあるのであらゆるものを置いておけるし、そうしたとしてもあまり散らかってる感がなくて良い。片付けられない人間なのでありがたい。

f:id:studio3104:20200429183657j:plainf:id:studio3104:20200429183558j:plain

コンセントも両側から2つずつ取れるようになっているのもポイントが高い。

f:id:studio3104:20200430020333j:plain モニター台も付属しているので自分は角に設置しているが、このデスクはコーナーが削れていてスペースがあるので壁にピッタリ寄せて設置する場合でもここにモニターアームをマウント出来そうなのでスペース効率がさらに良くなりそう。モニターアーム欲しい。

なおこの製品は自分で組み立てる必要があります。説明書では2人でやることを推奨しているが1人でもなんとかなる。逆さまの状態で組み立てをするので、ひっくり返すときは筋力の弱い人はやや大変かもしれない。自分は1人でやったけど1時間はかからなかった。

f:id:studio3104:20200430014637p:plain そしてこれは完全に偶然なのだが、まったく同じ製品を前職の元同僚が6年間愛用しているとのことだった。不満なく満足しているようだったので安心している。ネジの締め直しなども行ってないけど安定しているっぽい。メンテフリー。最高。

椅子

椅子はゲーミングチェアを購入した。簡易的なオフィスチェアだと長時間座っていたらつらい気がしたのと、バロンチェアとかアーロンチェアみたいな高級品を買うことをためらったために、最終的にはこの選択に落ち着いた。高級品をためらった理由は主に金銭面。仮に高額を支払う覚悟が出来たとしても試座はしたいじゃないですか?ゲーミングチェアにはまったく詳しくないんですが、この製品のブランドは価格を他と比較するに廉価ブランドっぽい?価格優先で選択しました。
そしてこいつも組み立て式。完成品がドーンっと運ばれてくるもんだと思ってたから届いたときは面食らった。しかもめちゃくちゃ重い。持ち上げて運ぶのが無理なレベル。例によって組み立ては2人以上で行うことを推奨されていたが1人でやった。余裕で1時間以上かかった。重いし。

機能面では、座面の高さ調整、アームレストの高さ調整、リクライニング、ロッキング(ゆりかご)、オットマンがある。
座面はがっつり高くしたい派なんだが、最も高くした状態で床から座面の最も高い部分までが50センチ程度なのでだいぶ物足りない。足がブランブランするくらい高くしたい。高さのかさ増しのためと、ケツがまだちょっと痛いので保護するために厚めのクッションを追加購入している。まだ届いてないけど。
そして意味がわからないのがロッキング機能。背もたれだけがグワングワンして欲しいのに、座面と背もたれは完全にロックされているので、ゆりかごしたいときは足で踏ん張って座面ごとグワングワンしないといけない。強度を最もゆるくしてもめちゃくちゃ力入れて踏ん張らないといけないのでめちゃくちゃ疲れる。完全に死に機能。無効化している。もしかして使い方が悪いのかな?ゲーミングチェアってそういうモンだよということでしたらすみません。

オットマンは結構良い。椅子の上でもあぐらをかきたいマンなので。

あとは床を守るためのマットを買ったけど組み立てのときに床はすでに傷だらけになっていたのであった。ちゃんと養生しような。

しかし思えばオフィスの椅子はめちゃくちゃに良いモノだったんだなと感じる。座面と背もたれがメッシュな感じのやつ。高さ調整もロッキングもめちゃくちゃに自分好み。アレはなんて名前の椅子なんだろうか。絶対高いやつだよなあ。欲しい。くれ。

モニタ

モニタはこれを買った。特にこだわりなし。4Kで最安のやつを買った。スピーカーも音が出ればなんでもいいので安いのを適当に。
言わずもがなではあるが、外部モニタのあるなしではやはり能率が大きく違いますね。

デスクヒーター

部屋が東向きなので日中ちょっと寒い。ということでコレを購入した。これはめちゃくちゃ良かった。安いのにちゃんと暖かい。真冬に有用かどうかは疑問ではあるが、春のちょっとした寒さの対策としては良い。

エアコン

エアコンは最後まで買うか否か迷った。この在宅勤務期間はいつまで続くかわからない。夏にはこれまで通り普通に出社して仕事する毎日に戻っているかもしれないし、そこまでの投資をする必要があるかどうか。ただ夏まで続くことになった場合にそもそもエアコンを購入することが出来る保証がないし、そのときには取り付け業者さんが来てくれないような状況になっていることも考えられる。という思慮を巡らせた結果、結局買うことにした。夏に出社するようになっていたとしたらそのときは日中は子どもたちが勉強部屋として使うなどすればいいし。

我が家のエアコンはこれで3台目。マンションを買って入居するときにリビングと寝室に導入していた。3台目のこだわりポイントとしては、妖怪リモコン隠しがいるのでリモコンの互換性があるであろう同一メーカーのモノにするということと、自動お掃除機能が搭載していること。
転居前の家では安いエアコンを毎年夏にはヘビーに使っていたが、シーズン前に清掃業者に掃除してもらわないと冷房パフォーマンスが激減するという煩わしさを経験していたため、メンテナンスでは極力ラクをしたかった。自動掃除機能は気休め程度説も聞くが、転居してからリビングで使用している自動清掃機能付きエアコン3年使っている間1回も掃除してないのにパフォーマンスは一切落ちていない。ついさきほど設置以来初めて(!)内部を確認してみたところダストボックスには大量のホコリが詰まっていた。ファンの部分は僅かに汚れていはいたものの、ゴミが詰まっていたりすることはなかった。リビングのエアコンの使用頻度としては、夏は毎日フル稼働、冬は毎朝床暖房が効いてくる前の数分間ほど。リビングダイニングなのでキッチンからは近いため寝室と比較すれば汚れがたまりやすいはず。様子から察するに一応ちゃんとシゴトはしてくれているっぽい。しかしやはり常に新品のような状態を保つわけでは当然ないので、清掃は必要なのでしょう。仮にそれを業者に依頼すると、自動清掃機能付きのエアコンの場合は1万円くらい割高になることがあるようですのでそこだけ注意。とはいえ毎年やってもらうよりは明らかに良い。はずです。

その他雑貨類

store.shopping.yahoo.co.jp

「自室だったらアイコス吸えるじゃん」と思って iQOS3 DUO を買った。iQOS は以前一番最初に出たやつを使っていたことがあったが、そのうちに紙巻きに戻っていた。紙巻きもセブンスターを長年愛煙していて、最近アメスピターコイズに変えている。いずれもヘビーな煙草なので「iQOS じゃ物足りないかも」と思っていたけど、久しぶりに吸ってみたらそんなこともなかった。ちょっとした作業の合間に移動しないで喫煙出来るのが最高。ただし臭い問題がある。吸ってしばらくは結構臭う。翌朝には非喫煙者でも感じないくらいには消えているものの、やや気になるところではある。
あとはデスクに接続するための電源延長とか。USB のやつは Amazon Echo Dot とかスピーカーとかデスクに常設しておく USB 給電のモノのために。

かかった費用まとめなど

  • デスク
    • L字型デスク: 14,300
    • デスクヒーター: 1,980
  • 椅子
    • ゲーミングチェア: 23,800
    • チェアマット: 2,900
    • クッション: 2,999
  • モニタ
    • 28インチ4Kモニタ: 34,800
    • スピーカー: 2,399
  • エアコン
    • 本体(取付費・保証料込): 72,151
    • 配管隠しの化粧カバー: 25,300

合計: 180,628
計算してみるとこれだけかかっている。結構使った。そして半分以上エアコン。エアコン高すぎ。そして化粧カバーがアホみたいに高い。室内11,000、室外5,500が基本で、コーナーひとつにつき2,200。まあでもカバーはしたかったんだ・・・

冒頭で述べたような環境から脱却するための投資額としてはこんなもんだろう。安くはないが決して高くはない。と信じたい。

満足度としては全体的には概ね高い。しかしどうしてもやはりオフィスのほうが快適ではある。会社のデスクは自動昇降デスクなので高さを80センチにして、椅子は座高を最大まで高くして足をブラつかせながらロッキングでふんぞり返って仕事するのが好きだった。それが出来ないのがつらい。スタンディングで仕事をすることはないので自動昇降デスクは要らないが、やはりあの椅子は欲しい。くれ。

以前から使っていて新設環境でも重宝しているモノ

この組み合わせは最強です。メガネケーブルの中継部分にコンセント穴が3つついてる。出張のときなんかも重宝しています。
USB 充電のやつは今は10ポートのやつとか USB-C が挿せるやつもあるみたい。

今後あったらいいなというモノ

一旦は機能面では必要十分となったが、より快適な環境を作ることを考えたときに欲しいモノを列挙してみる。

ケーブルまわりをすっきりさせる何か

6 ポート USB で充電環境はバッチリ快適なんだけどケーブルが散らかりがちなのでいい感じにスッキリさせられるモノを導入したい。探している。

ポインティングデバイス / キーボード

あらゆる作業を家で行うにおいてラップトップだけで遂行すること対してこれまではあまり抵抗もなく不便と感じることも少なかったのだが、腰を落ち着けられる場所が出来たらこのあたりも充実させてもいい気がしてきている。HHKB が欲しい。

iPad + Apple Pencil / ペンタブ / 液タブ

仕事でホワイトボーディングが必要とされることがあるのでそのためにこれらのうちのいずれかがあるといいなと思うことがある。iPad + Apple Pencil が最高っぽいんだけど高いんだよな・・・

モニタ(2枚目)

4K 28インチ1枚だけでも生産性はバク上がりなのだが、もう1枚導入出来れば常時表示しておきたいようなウィンドウを気軽にフルスクリーンに出来てなお良しという感じ。

モニターアーム

今はL字型デスクの角にモニタを設置しているのでどうしてもデッドスペースが出来てしまう。空間効率をもっと良くしたい。

WEB カメラ / 女優ライト / マイク

仕事柄テレカンが多いのでこのための設備を充実させるための投資もしたほうがいいかも知れないと思っている。現在の環境としてはモニタを経由したスピーカーから音を出してラップトップ内蔵マイクを通して話している。「内蔵マイクまじでやめてくれ」的な意見を最近はよく見かけるが、この環境でも今の所特に大きな問題は発生していないし、同僚からも特に問題ないと言ってもらえている。

ref.krisp.ai ちなみに音声の入出力は Krisp を通している。これのおかげでフィジカル弱くてもなんとかなってるところもあるのかな。

360度カメラの Insta360 X を持っているのでこいつを WEB カメラに出来ないかと思って試してみたけど普段よく使うテレカンツールでは使用できなかった。残念。

冷蔵庫

これはほぼ冗談。たぶん買うことはない。

ギター / ベース

部屋を片付けていたらアンプが出てきた。ギターかベースが欲しい。息抜きタイムに弾きたい。

副次的な恩恵

仕事部屋として仕事の能率を上げる意外にも恩恵がいくつか生じている。

英語学習

studio3104.hatenablog.com ここ2ヶ月くらい英語学習をしています。この学習に集中するための環境としても書斎は有用だった。これまではオンライン英会話をリビングでしていて、テレカンするときと同じように実施のたびに静かにしろプレッシャーを家族にかけていた。ただしカミさんはお構いなし。これでその類のストレスも双方から消えた。オンライン英会話以外の学習項目にもより集中出来るようになった。

ゲーム

FF7R を買ったのだが、リビングでは常に家族の誰かがテレビを使っているので奪い合いの状況。自分の FF7R、息子のアニメ、ゲーム。妻の映画。といったような三国緊張状態が常に。娘は自室で自分のスマホで遊んでるので中立。というような状況もあるし、家族全員が基本的にずっと家にいるので、リビングも快適にしたいと思うようになったのでリビング用のテレビを新調して旧リビングテレビは書斎に。これで FF7R やりたいときにやれる。最高。

これはリビングの新しいやつ。液晶テレビはだいぶ安くなってきていますねえ。

息子の学習場所

愚息の集中力の無さがヤバい。いつも勉強はリビングでしているのだが、リビングでは常に誰かが映画観てたり音楽聴いてたりするのでノイズが多いことも手伝っている。L字型デスクでスペースは十分にあるので、その日のタスクが終わるまで隣に置いて軟禁している。やや狭いけど。一方で娘は集中力がすごい。自室を与えているということもあるけど、その類の心配は皆無。

結び

労働環境面だけではなくあらゆる面で苦労されている方が多くいるのは見聞きしているし、一刻も早く事態が収束することを願わんばかりである。
幸いにして自分は一部屋を専有して仕事部屋にすることが適ったが、仕事以外のことも含めれば依然としてまだまだ細かい問題はたくさん抱えている。子どもたちの学校がいつ再開するのか、学習の遅れをどうサポートしてあげられるか、など、挙げていけばキリがない。飲食店を経営している両親も心配だし、祖母にひ孫に長い間会わせてあげられていないことも気がかりだ。早く以前の日常を取り戻したい。

一方で仕事に関してはこのようにも感じている。アフターコロナでも特別な理由がなくても WFH することが社会全体としての常識になってくれると郊外に住んでいる者としてはありがたい。多様な働き方が出来るようになれば、新しい選択肢も見えてくるかもしれない。

ということで倉庫書斎化プロジェクトのまとめをお届けしました。皆様の WFH オススメアイテムも是非教えて下さい。

プログリットに入会した

おれには夢があります。パーソナリティとして、やろうと思ったらすぐにやらなければ気がすまないし、欲しいと思ったらすぐ手に入れなければ気がすまないという特性がある。なのでその夢は今すぐにでも実現させたくてたまらない。そのために不可欠な要素の一つに英語能力があるが、現状では大きく不足している。

てことでプログリットに入会した。

なんでプログリット

www.youtube.com

この動画を観たことがある人はいませんかね?最近 YouTube で英語学習系動画を割とよく観るんですが、広告でめっちゃ出てくるんですよね。Common なのかターゲッティング広告なのかはわからんですが、とにかく頻出するし本田圭佑がめっちゃ煽ってくるのですごく印象に残ってました。巧み。

めっちゃ影響されてる。

で、なんでプログリットに入会したのかですが、上述の通り巧みな広告によってまんまと印象に残されてしまっていた中で、なんとなくぼんやりオンライン英会話を毎日(ほぼ毎日、、週数回、、、)続けててもまったく成長してないことに気付いて悩んでいました。じゃあちょっと調べてみようかなと思い、公式サイトを見てみたら無料カウンセリングとやらが受けられるとのことだったので、「とりあえずどんなもんか聞きに行ってみっか」となって申し込みました。で、実際にカウンセリングを受けてみたら良さそうだったので入会したという流れになります。まんまと広告戦略通りという感じっぽい。

実際にコースが始まるのは 2020/02/28 からですが、カウンセリング以降のことを記録しておこうと思う。

プログリットってそもそもなんぞ

f:id:studio3104:20200207170157p:plain www.progrit.co.jp

個人のレベルと目的に応じて個別にカスタマイズされたカリキュラムを提供されて、それを遂行するためのコーチングをしてくれるサービスです。応用言語学第二言語習得理論とやらに基づいたメソドロジーとのことです。タフな学習スケジュールをこなすための習慣を根付かせることも支援してくれるようです。詳細は公式サイトなどで。

カウンセリングの流れ

最近短期記憶の生存期間が著しく短い。すぐ忘れちゃう。なので曖昧で実際とは少し違ってる部分もあるかもしれないけど概ねあってると思う。1時間のカウンセリングのはずだったけど質問しまくったからなのかわからんけど結局2時間以上いた。以下当日の流れ。

流れの説明

まずは挨拶を交わし、無料カウンセリングの流れの説明を受けた。流れは以下に述べる通りで、時系列順に並べています。「一通り終了した後に気に入らなければ入会を無理に勧めることはしない」とのことだったので気軽に色々聞いたろと思っていた。

モチベーションと現況の確認

英語学習を何のためにしたいのか、現在何かしているのであればどんなことをしているのかというようなことを話しました。モチベーションに関しては冒頭で述べた夢を語った。今やってることは概ねこのエントリで述べたようなことを話した。

studio3104.hatenablog.com

テスト

単語力テスト

20個(25個だったかも?)の英単語が並んでいるリストを見せられ、それぞれを日本語訳してみるという内容。結果としては3個を訳すことが出来なかった。

リスニングテスト

1分間の英語を聞いた後にどんな内容の話だったのかを日本語で要約することを求められた。さっぱりわからんかった。辛うじて聞き取れた単語から内容を推測してしどろもどろになりながらぼんやりとした説明をした。「◯◯の△△って何でした?」「え、そんなん言ってました...?」「言ってましたよ〜」みたいな感じ。厳しみ。

ディクテーション

空欄を含む英文が書かれた紙を渡されて、その英文音声を聞きながら空欄を埋める。強めに発音される動詞や名詞はすべて拾うことが出来たものの、弱めに発音されがちな代名詞の目的語と前置詞は全部取りこぼした。it とか for とか。空欄の前後から推測して動詞の変形とか活用に含まれる前置詞を置くみたいなチート行為?をしたが、それ以外は全部こぼした。

リーディングテスト

英文が書かれたシートを渡されて1分間で可能な限り読み、それを日本語で要約する。前半部分から知らん単語がめちゃくちゃ出てきて何回も読み直したりしてたので全部を読み切ることが出来ず。結果は言わずもがな。RFC とかだったら普通に読めるんだけどな。コンテキストによって読解力のパフォーマンスが著しく変わる。これはリスニングにも言えるが。

スピーキングテスト

シンプルな質問に対する回答を英語で1分間で可能な限り話す。質問は「英語学習の動機について」だった。これはモチベーションのとこで日本語で説明したことを英語で説明するだけだったので超イージーに感じてベラベラ喋れた。最初は1分間って結構長いしそんな話すことねえよって思ってたけど終わってみれば一瞬で、言いたいことを全部言い切ることは出来なかった。

テスト結果分析とフィードバック

5つのテスト結果を分析した結果、とにかくリスニングが貧弱すぎるというフィードバックになった。リーディングのところでも述べたが、RFC とか仕事に関係することだったらもっと出来る自信はあるものの、裏を返せばそれ以外の話題にはまったくついていけないことになるので雑談とか絶対出来ないってことになる。実際オンライン英会話やっててもそれは感じていることだった。リスニングとリーディングでは、1分間に含まれる単語数、"Words per minute" でレベル感を測るらしく、自分が受けたリスニングただしスピーキングでは 150wpm だったらしい。これがビジネスレベルでは普通の速度だとのことで、この速度でわからないだとかなり厳しいとのことだった。「音声知覚」を経ての「意味理解」までがリスニングで、音声知覚に時間を取られすぎているということのようです。リーディングの wpm は忘れた。一方でスピーキングのほうは1分間に発話するセンテンス数、"Sentences per minute" でレベル感が測られる。これはまあまあ良くて、リアルビジネスサイトでは 12spm が求められるところ、8spm だった。あと発音が良いと褒めてもらえた。ただし語彙が乏しく、文法表現もワンパターンなのでそこを改善する必要がありそうだとのこと。フィードバックは総じて的確で、普段から自覚していた自分の弱点を客観的に評価されて明らかにされたのですごく納得感があった。

どこをどうやって伸ばしていくべきか

とにかく課題はリスニング。そのためにシャドーイングを徹底しましょうという提案。シャドーイングって話すためのトレーニングだと思いこんでて、発話はまあまあ出来るし別に要らないと思ってちゃんと調べたことがなかったけど、リスニングのトレーニングらしい。このシャドーイングをとにかくたくさんやる。最低1日90分。他のことも含めて、1日150分以上英語学習に充てるのが理想とのことだった。正直めっちゃキツい。キツいけど「短期間効率的に成果を出したい」を叶えるためにはそりゃこんくらいはやらんといかんよなとすぐに思い直したように思う。むしろ足りないまである。あとはそれらを遂行するためのプログリットのシステムを説明された。Google Spreadsheet による徹底した予実管理、週1回のカウンセリングとそのタイミングでの効果測定、LINE で毎日のシャドーイングを録音して送ってフィードバックを受ける。カウンセリングでは学習の進捗に応じてテコ入れなどが入ったり、LINE では好きなときに質疑応答が可能。と概ねこのような感じ。

入会

(これは知ってたことだが)プログリットでは英語そのものを教えるということはほとんどプログラム中に含んでいません。科学的に証明された第二外国語を効率的に学習するための方法遂行をサポートしてくれることに重きを置いている。とにかく闇雲にオンライン英会話やったり本読んだりをしていたけど成長を感じることが出来なかったので、フィードバックの途中ではもう入会する気持ちが固まっていたと思う。予実管理が得意ではないので、それを体得出来れば、冒頭で述べた夢を叶えるための英語以外の不可欠な要素を学習するためにも活かせるようになるであろうことも期待している。今の仕事にも活きるだろうか。

f:id:studio3104:20200207135917j:plain

諸々を考慮した結果ビジネス英会話3ヶ月コースに入会した。めっちゃ高い。高すぎる。ただコレが安かったらたぶんめっちゃサボる。サボりまくると思う。会社の福利厚生とかでいくらか出してもらえるみたいなのがあったりとかしてもたぶんサボる。この金額を全部自腹で払うってことはもうそれは ”覚悟” ですよ。サボらんでしょ。

一般教育訓練給付

www.mhlw.go.jp

この制度が適用可能(適用可能なのは3ヶ月コース)らしい。修了時に条件を満たしていれば10万円返ってくる。ありがてえ・・・受給資格があるかどうか自体にも条件があるようなので管轄のハロワに確認が必要とのことだけどおれはたぶん大丈夫そう。

紹介キャンペーン

もし誰か入会するってことになったら絶対おれに声かけてくれ。入会申込書におれの名前を書けば入会費が10,000円安くなるそうです。おれも10,000円分のアマギフをもらえる。ウィンウィン。やりましたね。

実際にコースが始まるまで

実際にコースが始まるまでには3週間ある。この間に何か出来ることはないだろうかと相談していたら、「コースが始まってからの優先度はあまり高くないですが今のうちに単語やっときましょう」となって単語帳をもらった。あとは瞬間英作文。瞬間英作文は以下とは違うものを提示されたが、以下のものはアプリも持ってるし Kindle 本も持ってたので、じゃあそれで〜ってなった。

apps.apple.com

まずはとりあえず単語にフォーカスしようかと思ってる。コース始まるまでに95%は覚えたい。出来るかな・・・

f:id:studio3104:20200207142024j:plain

2日間弱の進捗はこんな感じ。単語にフォーカスした学習とかマジでどんだけぶりなんだろう。

2020/05/29(コース終了日) の自分へ

もうすぐ10万円が返ってくるぞ!!!1やりましたね!!!!1英語が出来るようになって10万円ももらえて最高!!!!!!!!!11

結び

超絶高額課金をしたけどもしかしたらサボっちゃうかもしれない。こうやって公に宣言を行うことでもそのリスクを軽減したく、駄文を連ねました。実際にコースが始まったらまた進捗を書くかもしれない。