こんにちは suganoo です。
最初に言っておきますが、読み直してみると世間で言われてることの30番煎じのことを書いてました。
勉強してます?
いきなりですが、あなたは1日にどれくらい勉強してますか?
20代だったら仕事をもっと覚えたい!と成長意欲満々なのでかなりやってるかもしれません。
ですが30代に入るとググっと勉強を続ける人が減るそうですね。
エビデンスがないので何とも言えませんが、らしいですよと言っておきます。
でも自分の周りを見渡してみても確かになと思うことは多々あります。
例えば電車に乗って通勤してると、スマホでゲームする人ほんと多いです。
業務を覚えて一通り仕事をすすめられるようになると、それほどガリガリ技術書を読み込む必要もありませんし、仕事中にやることが学びだからそれほど頑張らなくてもいい、また業務上の知識は覚えて仕事をこなせるからいいでしょ、という人もいるかもしれませんね。
アルゴリズム楽しい
まあ別に勉強をするしないは個人の自由ですし、したからと言ってそれほど強者になれるかといったらわかりません。
余計なことで冒頭が長くなったんですけど最近というかここ一か月、
競技プログラミングコンテストのためのアルゴリズムを学んでいるんですが、めちゃくちゃ面白いんですよ。
これが言いたかった!
きちんと言うと何年か前にも実は挑戦していて当時わからなかったものが、数年越しの学び直しでなぜか最近だと当時よりかは少し理解しやすくなってることに気づきました。
(もとのスペックが悪いのでわかってるのかと言われればそうでもないんだけど....)
アルゴリズムの定石を学んでるとあーこんな解き方があるのかー
すげーな面白いなと感動の連続なんです。
Webアプリ開発にハマれてなかった
それまで個人開発とかにあこがれてGo言語でWebサーバー作ったり、
Bootstrap4やVue.jsの本を買ってフロントエンドを学んでアプリでも作ろうとしてたりしたんですが、なんかちょっとこう違うなと感じてたんです。
なんというかこう、自分はこれにハマってないな...、と。
プログラミング自体は好きなんですが、Web制作とかの仕事をやってきたわけでもないし
そのせいかWebアプリをなんとか作ったところで喜びを感じられるまでに到達できなかったわけです。
もうちょっとやりこめばハマれるのかもしれませんが。
なんというかこう、これまでITエンジニアとしてはまり込めるものが欲しかったのですが、ぜんぜん打ち込める気持ちになってなくて、このままでいいのかなと考えていました。
それが体感的にこれだーと最近思えたわけです。
いつまでつづくかわからないんですが、ちょっと挑戦してみようと思ってます。
なんでハマれてたのか
思えばなんでハマったのかなーと分析してみますが
- 期間が限られたものである
- (限られてるがゆえに)達成感がある
- (限りなく遠いけど)業務にも役立つ(かもしれない)
のが理由かなと考えました。
なんか書いてみて思いましたが、ほんとどこかで聞いたことある条件ですよね...。
まあいいや。
競プロの場合は、解決するものがその問題の条件内であるとか、制限時間があるとか、xxxのアルゴリズムを使えばいいとか、ある程度制限があるのがいいなと感じました。
だからこそ、結果がAcceptedなのかダメなのかしかないのでわかりやすい。
コードもこれだけを理解すればいいんだと目標も立てやすくモチベーションもキープしやすい。
なにより数学のように基礎知識の積み重ねで解けるのがいいです。
その上アルゴリズムとかを学んでおけば業務や、OSS?とかでも理解が深まるときがあるかもしれません。
まったくの余談ですが、昔友人がCall of Dutyという戦争を舞台にした打ち合いのゲームにはまっていた人がいました。
その人が「社会人になって時間が無い、子供も産まれてさらに時間がないけど、たった15分、30分あればゲームの腕が磨けるから素晴らしいゲームだ!」っと言ってたのですが今になって意味がわかりました。
自分でWebアプリを作ってたときにつらかったのは、コーディングできるのは時間の限られた土日+深夜しかないのにほぼエラーを調査するだけでつぶれてしまったのはすごい徒労感を感じました。
いやバグ解消をするのはエンジニアの経験上重要なのはわかってるんですよ。。。
週末とか深夜とかやっと時間をこじ開けたのにバグ調査か...と。
せめて新しいことを学びたかった。。。
仕事で障害が起きたときはこぞって踏ん張って調べまくるんですが
個人開発でバグを調べるのはなんとさみしくつらいことなのかと思ってしまいました。
ましてや今だと子供も小さいので、自分だけコーディングする時間なんかありません。
短時間で理解が深まるものでないとだめです。
そう思うと個人開発やってる人は尊敬の眼差しで見てしまいます。
続けるコツ
これを踏まえて考えますと、何事もそれ自体が楽しめるものでないと長続きってしないんだと痛感します。
自分は数学が得意だったんですが、ただ基礎的な問題を解いて答えが合ってる快感、証明のロジックを考える工程そのものがとても面白かったんです。
なので必然成績も良かった。
よくTwitterでもYouTubeでもインフルエンサーっていますね。
ああいうのにあこがれる時ありますが、やってみようと思ったらほとんどの人がやらなくなります。
続けられないからです。
ただ単純に動画を取ることが楽しい、Twiiiterやってるだけで楽しい、ブログ書いてるだけで楽しい。
なんの成果が出なくてもその行為自体が楽しいからこそ、続けられてインフルエンサーになったのでしょう。
続けることは重要なのですが自分の適性にあったものを見つける必要があります。
どうやったら見つけられるのか?
僕は、深堀することと、将来性かなと思います。
アルゴリズムを学んでると、それを踏まえてちょっと難しくなったり別のやり方があったりします。
それを深堀してしっかり理解しよう、もうちょっと違いを理解しておこうとか考えるとだんだんと面白くなってきます。
またそれをやりながら将来のことを妄想するんですが、「これが解けてレートがあがるとスカウトが来るかも!」っと考えるとわくわくしてきてしまいます。
ただこれもより現実的に考えるのが大事です。
Webアプリを作ってた時に感じたのは、仮にWebアプリを作ったとしても転職でそれがアピールになるのか?、自分のインフラの経歴からみたらWeb系なんて逸脱したものだからアピールにならないじゃんと思いました。
それが自分の行きたい会社に行くためとか、個人開発でお小遣い稼ぎたいとか、自分で納得いくものだったら全然いいんですよ。
ただ自分は将来のアウトラインが描けなかったので続けられなかったのです。
あと重要なんですけど、他人の目標を自分のものにすり替えないことです。
「個人開発で月5万稼ぐ」「Railsを学んでWeb系企業に転職する」
SNSでよく聞きますよね。それを目にすると「おお、オレもオレも」っと思いますが、ほんとにそれ自分がやりたいことなの?っと自問した方がいいです。
やってみたところけっこうつらくて続けられなくなります。
しばらく自分の心に寝かせて忘れたころに思い出してみて、あらためて自分のやりたいことを考えて目標を考えた方がいいでしょう。
もちろんその上でやってるんなら全然いいんですよ。やってみなきゃわからないことも多いし。
自分がなぜそれに興味を保ち続けられているのか?を自問するの新たな自分を理解する上でいいですよ。
最後に
こんなことを書きながらやっぱり競プロやめてちゃっかりWebアプリ作ってるかもしれませんw
どっちにせよ続ける、勉強をしていく。
いつの時代、どんな分野でも続けることだけで重要なんだなと思った次第です。