![見出し画像](https://assets.st-note.com/production/uploads/images/18471376/rectangle_large_type_2_7ea20da4bb0dd94ef06ffd49ac4a4b21.png?width=1200)
LeetCodeでプログラミング配信をして良かったこと
皆さま、フィボナッチ数列を出力するプログラムは書けますか?
私は、書くのに100分かかりました。クソザコもいいところですね。そんな自覚はなかったのですが。
LeetCodeで配信をしたんです
先週一週間ほぼ毎日LeetCodeというプログラミングをオンラインで学べる素敵なサイトがありまして、その中でアルゴリズムを学ぶ例題を配信でやっていたのですよ。一日一問、難易度は一番簡単なEasyで。
私もプログラマーとしてそろそろ10年が経とうとしていますのでね、それなりのね、自信はあったわけですよ。いやー、問題簡単すぎて配信に向かない男だな、私はなんて思ってたんですよね。
見てくれよ、この無残な姿をよ・・・
軽く一時間を超えている回が普通にあるじゃないのよ。私が100分かけたフィボナッチ数列の問題がこれ。
はぁ・・・、プログラミング向いてないや。
LeetCodeをやって良かったこと
・Google先生に頼らなくても各種関数が出てくるようになった
今まではListをmapでまわして・・・あれ、そのあとどんな関数生えてたっけ?とGoogle検索をしていましたが、よく使う関数はすぐに出てくるようになりました。単純にコーディングスピードが速くなりました。
・問題に再帰処理がやたらと出てくるので、理解が深まった
何故かやたらと再帰処理を書かせる問題が多いので、いままでほとんど書いてこなかった再帰について理解が深まりました。プロダクションのコードの中で再帰が出てきても、ひるまなくなりました。
・計算量を意識するようになった
フィボナッチ数列のときに再帰の実装では実行時間を超過して正解にならなかったので、繰り返し処理に書き直して提出しました。この時には再帰となぜ計算量が違うのかもわかってない惨状だったのですが、これを境に計算量を意識してプログラミングするようになりました。普段は利用者があんまりいないWebアプリケーションをやってるので、富豪的に資源をつかってて、バッチで大量のデータをブン回すぐらいときしか意識する機会が少ないので、貴重な体験でした。
配信してよかったこと
・何をしようとしているのか説明する必要があるので、思考が整理できる
ペアプロやモブプロでも、そうなのですが自分が何をしようとしているのか口頭で説明することで思考が整理されて、アイディアがまとまるというメリットがあります。
・衆人環視なので程よい緊張感がある
ひとり静かにやっていると、途中でくじけてしまう場面でも、いま諦めたら罵詈雑言を浴びる可能性がある・・・!という謎のプレッシャーがあり最後まで諦めずに進めることができます。あまりにもなのはストレスなのでくじけてもいいのですが。
・コメントでアドバイスがもらえる
配信見に来てくれるだけでも神なのに、さらに上位存在のお方がコメントでアドバイスをくれて気付きを与えてくれます。ありがたい!
まとめ
LeetCodeでプログラミング配信はいいぞ!みんなやろう!
みんなプログラミング配信をしよう、プレッシャーをかけに僕が見に行くぞ!
twitterかなんかでメンションくれれば見に行きます。一緒にプログラミングをしてくれる友を募集しています。
https://twitter.com/takedasan593
オススメ回
折角なので配信の模様をご紹介したい。このフィボナッチ数列回がオススメである。主に再起に苦戦する姿と、それが正解ではないと気が付くところが我ながらアホで笑える。
9:20 求める数列がフィボナッチ数列であることに気が付き勝利宣言
15:22 フィボナッチ数列についてカンニング不正する男
21:40 パターン数を指摘される間違える男
44:15 再帰沼
1:05:21 一時間かけて作った再帰のアプローチは正解でないと気が付き絶望
1:42:17 繰り返し処理にて逆転勝利