この半年でやったこと, 継続していること

studio3104.hatenablog.com

を見て, leetcodeがキリがいいところだったので, 私も真似して書いてみる. そもそも私は 40年近く生きてきて何かを継続してできたということがほとんどない. あったとしても若かりし頃のゲーセン通いぐらいで勉強に関してはおそらく皆無である. 今年の何ヶ月か過ぎたあたりでふと自分のキャリアについて考えたとき, 何もできることなくてこのままでいいのかとなって, (遅すぎるけど)いい加減真面目に考えないとまずいとなった. そこで雑ではあるが自分の幅を広げるために根本的なプログラミングスキルと英語をなんとかしようと思い, いろいろ試している. 初めて危機感を持った影響なのか今のところは毎日少しずつではあるが継続できていることもある. それらについてまとめておこうと思う.

leetcode

leetcode.com

@sugyanさんが Twitterで継続しているというのを見て自分もやってみようと思って始めた.

f:id:syohex:20201216221800p:plain

現状は上記の通りで今日で 500問分解いた. 基本的には C++で解いている. 他の人に比べると easyが圧倒的に多いので質的にどうなのかというのがあるが.. アルゴリズム系はまるっきりダメだったのでとりあえず easyからひたすらやっていった. 初期の頃は mediumでもものすごい難しく感じてこれで mediumなのかと自分のレベルの低さに驚いた.

現状

  • mediumぐらいならなんとかなるかなってことは増えた. ただ mediumでもまだまだすんなりとはいかない問題は多い.
  • アルゴリズムを考えるときは計算量をなるべく意識できるようにはなった.
  • 苦手な分野(=勉強しなくてはいけない分野)が何なのか見えてきた.

取り組み方

  • できれば一日 1問は解く. dailyの課題は見て, なんとかなりそうなら解く. 全く無理そうなら諦める
  • 同じ問題を何度も解く
    • 1月前とかにやった問題を改めて解こうとするとすんなり解けないことが案外多かったりするので, しっかり理解していることを確認するために過去に解いた問題でも定期的にやっている.
    • それで過去の結果と比べてより早かったり, コードがスマートに書けていると成長を感じる. 同じところでハマったりすると改めてちゃんと確認する

leetcodeのいいところ

  • 問題がテストを書きやすい
    • 基本的には関数の引数と戻り値で考えられるのでテストしやすい. AtCoderだと入力・出力が標準入出力だからそもそも面倒くさい.
  • 世界中でやっている人がいるので参考にできるものが多い. コードしかり解説然り

leetcodeのあまり良くないと感じたところ

  • 問題のレベル判定が雑. easy, medium, hardが当てにならないこともある
  • 条件が雑, 問題分が不親切なものが少なからずある
  • SQLの問題がクイズみたいなのばっかりで実際の現場で書く SQLではないことがほとんど

iknow

iknow.jp

初めは英会話スクールを考えていたのだけど, コロナだし, そもそも私 TOEIC 300点ぐらいの論外レベルなのでまずは基礎だろうということで英単語から始めるということで iknowを始めてみました.

f:id:syohex:20201216223444p:plain

現状は上記のような感じで毎日 40-50分程度 200日ぐらい継続できている.

現状

  • 単語力は少し上がったような気はするが, まだまだわからない単語が多い.
  • 元が低すぎてあれだけど, 英語力が伸びたという感じはまだまだしないがすぐ伸びるものでもないので継続したいとは考える.

取り組み方

  • ひたすら単語 + 文章問題をやる

LingoChamp

www.lingochamp.com

先月ぐらいから始めており, 現在 45日間ぐらい継続している. iknowだけだと知識だけだし話す練習もした方がいいかと思って始めた. LingoChampでは何か喋ったあと自分の声を流されるのですが, 本当に自分の発音がダメダメなと気付かされる. 某米国在住の日本人の方のプレゼンなどを見たときに英語の発音がネイティブっぽくないなぁとか生意気にも思っていたことがあったけど, 自分の発音はもっと論外ということに気付かされた.

現状

  • 自分の発音のひどさを実感した
  • 単純な単語でも全然正しく発音できないものが多々あることに気付かされる
  • 大学のときなど発音がひどいとよく怒られていてそのとき何も理解できなかったけど, ここが変だったのかというのに 20年ぐらいして気付かされた.
  • 発音するとき意識をするようになった(本当は無意識で適切な発音がいいのだろうけど, その域にはまだまだ到達できない)

取り組み方

  • 毎日 20-30分課題をやる

その他

AtCoder

atcoder.jp

  • たまに解いている. A, Bと Cをたまにって感じ. leetcodeよりも難しい印象. leetcodeと違い, 数値の範囲を意識しないといけないことが多い.
  • 前述の通り標準入出力を使うのは若干手間だと感じている.

ELLLO

elllo.org

  • 学習サイトって感じではあまりないけど, リスニングのためにたまに聞いている
  • 日常会話と言われるとやや違う気もするけど, ありそうな会話ではあるので面白い. いざしゃべるとなるとこんな感じでスラスラ言えないといけないんだろうなぁと感じる

Advent of Code

adventofcode.com

  • これも sugyanさん経由で知って始めてみた.
  • 今のところ 1問だけ常識的な時間で解く方法がわからなくて解説を見た以外は自力で解けている. できれば完走したい.

最後に

ここまで自分が何かを継続できていることが信じられないが, 現状なんとかやれている. ただ正直なところ継続できている一番大きな理由はこの一年仕事が全くうまくいっておらず何の成果も上げられていない反動によるところが大きいと思う. 今後仕事がどうなるかはわからないけどこれらのことを継続していって自分の能力を上げることにつなげていればと思う.

年取ったからって遅いってことはないと思いますが, 若い内からやるに越したことないので若い人はなるべく早くやるといいと思います.