30代以上で子供がいて家事もしてるエンジニアは今後どうやって勉強するべきか

f:id:suganoo:20180403125030j:plain
自分は去年2017/6月に娘が生まれた。
そして今年2018で37歳になる。

けっこう家事はやってる方だと思うんだけど
プライベートの時間がかなり減った。

男という生き物はどうしても家事を嫁さんにやらせがちと聞くので
結婚した時に家事はなるべく率先して家事をしようと思った。
別に嫌いでもないし、食べることや料理が好きだったし
家のことを自分でコントロールしているというのはなかなか楽しいものだ。

夫婦共同生活が始まり、家事をなるべくやるようになったが
プライベートの時間やお勉強時間がかなり減った。

そして子供が産まれてさらに時間が減った気がする。
産まれた直後は寝る時間も減ったが、今はなんとか夜は寝てくれている。


自分はITエンジニアとしてやってきたい。
だからこそお勉強はしたい。

じゃあ休みの日に本を読んだり、プログラミングの勉強をして
家事や育児のことををほうっておいて
ひとりでMacBookを開いてるのもすごく気が引ける。


結婚して、子供が産まれて自分の時間が減ったことは
嫌ではないし、しかたのないことだし、
むしろ独身だったころにはない楽しい充実した時間が増えてはいる。

だけどもだからといってお勉強のインプットが減ってしまうのは悩ましく
知識欲が満たされないというのもフラストレーションだし
今後の仕事も心配になるし、モチベーションがあがらなくなるのがもっと心配だ。


ここ数年で様々な新しい技術が出てきた。
データ分析、機械学習、AI、仮想化技術、仮想通貨......
新しい分野が出てきては優秀な若手がtechyなアピールをして
それを見るたびにすごい若手だ、と思うと同時に
うらやましく、そしてうすら寒い焦りの気持ちが湧いてくる。


20代のころはわからないことだらけで
時間は無いといいつつも振り返ると今以上に時間は取れていたので
週末はプログラミングコンテストやってみたり、資格の勉強したり、
StartUpWeekEndに参加したり、中古PCでLinuxサーバー構築してみたり、
ネットワーク/アルゴリズムを勉強してみたり、などなど興味のある限り
手をだして勉強して、勉強会にも行ってた気がする。


だけども、今はもうそんなことはできない。

そう思うと焦燥の念が出てくるがこれはもう落胆するのではなく、
自分のやり方を進化させるべき時なのだと考えることにした。


そこでいろいろ考えてみたこと試してることを書いてみる。
誰かの役に立てば幸い。

独学は難しい・・・プログラミングはマンツーマン or グループレッスンで学ぶ

【完全無料のプログラミング&就活塾】


強くなる分野を決める

なにがしたいのか?どんな分野に強くなりたいのか?
をすごく自問自答する。なるべく狭くね。
そんでその分野を勉強して磨きをかける。

興味をもった分野なんて絶対誰か第一人者がいる。
興味ある分野を調べると必ずすごい人がいて
あぁ自分は大したことないのだなと自己嫌悪するけど
得意な武器があれば、年齢とともに増えるがっかり感を減らすことができる(気がする)。

得意な武器を持っているほうが
環境が変わっても、どんな分野にいっても
通用するはず(だとも思ってる)。


インフラエンジニアとして強くなりたい。
いまのところ。

今のところ、Go言語、インフラ知識、数学かな。
あと趣味として語学。

なんかこれだけでもちょっと多いような気も。
まあいいや。
でもとりあえず、この3つの分野なら興味もあるし
深めていきたいと思っている。


やらないことを決める。

中途半端な知識とかしかなければ若手にまかせていいし
自分が強くなれそうもない分野に時間をかけても
そんなにメリットが多くない気がする。
やっぱり得意分野に注力したほうがいいでしょう。


自分ならRuby、javaはやらないと決めた。

この2つはプログラミングスクールとかいっぱいあるし
年齢、仕事の経験から今からやっても勝てそうにない。

Ruby は書けるが、やる機会がほんとに少なくなったので
すっぱりやめる。
Ruby on Rails とかできたら、需要高そうだし
いろんな会社で働けそうだし、自分でwebサービスとか
作れそうだなと思ったけど、うん、やめる。

転職するときに副業とかできないかなと思って
rails に手を出したことがあったけど
ぜんぜん伸びなかったしね。

javaはできる人を見てると玄人すぎて
勝てる感じがしないし、mavanとかEclipseとか
javaに付随する技術が多くて独学習得するには俺は無理。。。
javaでできたプロダクトは多くて心苦しいけど
うん、やめる。


あでも、仕事で使う必要になったら別だけど。

やたら手を広げないで、深めることを目標としたい。


あと夕方19時以降の勉強会は出ない
出られないのが現実だけども
単位時間あたりの効果は薄い。

その技術は何が問題として存在し何を解決するのか

新しい技術が出てきたとき、まあかじって
勉強してみようと手を出すことがある。

ほーん、まあこれxxxの業務で使えそうだなと思って
やってみたら、メンテナンスが煩雑になってしまい
枯れたこれまでのものを使っとけばよかったというのがよくある。

それで知見がたまるというのはいいのだけども
やっぱりなんの目的でそれを使うのかが
わからないと有効活用ができないでしょう。


CIツールみたいなpythonライブラリを前任者が使っていたことがあった。
データ加工をスクリプト上で書いて、それを定期実行できるというもの。
データ加工クラスをスクリプト上で同時並列とか定義できたり、
データ加工タスクの関係性をブラウザ上で見ることができる
とかの機能メリットがあったのだけど、
実際やってることが、1,2ステップしかなくて
結局jenkinsでよかったじゃんってことがあった。


他にもデータ処理を流行りのScala+Spark使って処理できそうじゃんと
やってみたら、時間間隔が長くてAmazon S3 + SQSでよくねえ?とか


何が問題で何を解決するためにやってるのかをつきつめるのが大事。
流行りだからってその勉強してない???


例えばDockerはそれまで何が課題で、どんなメリットがあるのか?とか
考えて使えるのがいいよね。

独学は難しい・・・プログラミングはマンツーマン or グループレッスンで学ぶ

【完全無料のプログラミング&就活塾】


原理的なところを重点的にやる

機械学習や人工知能の仕事をやってみたい。

ただ自分の経験だとHadoop使ったことあるとか
python, Goが使えるだけで
コアな部分は未経験だからアピール材料が乏しく行けそうにもない。

じゃあTensorflowとかAnaconda, jypiterを勉強しようかと
思っても時間もお金もない。

たぶんだけど、ああいうツールは現場で働いたり
したらそんな習得は大変ではなく
もっと大事なのは数学的なところじゃないのかと思ってる。


だからこそ数学(数学検定)をもくもくと通勤電車で読んでいる。

あまり時間が確保できない状況だからこそ
その技術のコアな部分を勉強するのがいいのではないか。

例えば、ビッグデータのカラム指向について
カラム指向のDBは中身がどうなってるのか?とか
GoogleのDremelの論文を読んでみるとか
時間がないなりに原理的なコア技術を読んでおくのが
あとあと効いてくると思っている。

なるべく本で勉強する。

レガシーな人間なので紙の本が好き。
ぱっとみどこまで読んだかわかるし
読了後に達成感がある。

電子書籍だと読みながら今どこまで読んでいるのか、
どこまでこの内容がつづくのかと疲れてくるし、
本ではないから読むこと自体すぐに忘れてkindle内積読が増えるのが難点。

お勉強には紙の本の方が効率的な気がする。

読もうとする本を吟味してから読み始める

やたらめったら興味のある本に手を出してたこともあるけど
やらないことを決めるように、吟味して本を選ぶ。
時間は有限だからね。

Code Completeの下巻をがんばって読もうかと思ったけど
時間と得られる知識を考えて、下巻はやめた。

読めなかったことに対して挫折感を感じるのもやめた。

あと読む前に本の「はじめに」と構成目次をよく読んでおくのはおすすめ。
読む前から、著者のほんんんとーーに言いたいことは何なのか?
を頭をこれまでの3倍くらい振り絞って想像してから読み始めると
吸収が全然違う。

この作業はおすすめ。


オンラインコースを利用して勉強する

勉強方法を工夫する。
Udemyをやってみたが、電車の中でも動画が見れて
学べるのでなかなかよかった。

他にN予備校とかprogateをやってるけど
会社の昼休みでもちょこちょこできるから
すきま時間に学ぶことができるからいい。

もうちょっと時間が確保できるようになったら
couseraとかもやってみたいところ。


オンラインコースの勉強はおすすめ。

資格取得を利用する

資格は無駄なのか有利なのかよく議論がある。

でも自分は資格に挑戦することは
漏れや偏りなくその分野を知るためにはとても効率がいいツールだと思ってる。

人工知能や機械学習のために数学を学び直したく
かつ数学が面白くなってしまったので数学検定を目標としているが、
あの膨大な数学をコンパクトにレベル分けしてくれて
分野別に広く網羅的に学べるのはすごく効率がいい。


過去にネットワークスペシャリスト資格も勉強していたが
すごく網羅的にネットワークの知識が吸収できてとてもよかった。
(結局3回くらい落ちてあきらめた)


ただ30すぎて実用的でない資格にこだわるのはよくないとも思えるので
資格の効果や使い方をよく考えよう。

独学は難しい・・・プログラミングはマンツーマン or グループレッスンで学ぶ

【完全無料のプログラミング&就活塾】


休日の朝から勉強する

お勉強の時間を確保するために、仕事から帰ってから
睡眠時間を削ってお勉強するのは、やっぱりあんまり得策ではない。

30すぎるとほんと体力なくなってきて睡眠時間が大事になる。

なので夜は23:30過ぎたら本を開くことなく
さっさと寝ることにしてる。

で時間を確保するために、休日の朝の1時間でも30分を
読書にあてて勉強するとかなり効率がいいことに気付いた。

金曜の夜であっても24時前に寝るようにすれば
けっこう休日でも起きられる。

睡眠時間がしっかりとれていると
やっぱり語学の物覚えもよくなってることに気付く。

プラスアルファとしてそのまま洗濯機をかけて
朝食をしっかり作っておくと奥さんからほめらるかもしれない。
「そんなの当たり前じゃない」ってね。

長い通勤時間を逆手に取る

片道1時間かかってるけど、ほんとこの往復2時間は貴重な読書時間

よく職住接近とかいうけど自分は意志が弱いし
家族がいる中で家で勉強時間を確保するのはすごく難しいのではと思う。

まあ人それぞれなんだけど
通勤時間は有効活用したいよね。

あと通勤時間のスマホを使用厳禁にする。
これだけでかなり集中できる。

完全には無理でも週3日でもいい。
貴重な自分の時間はなるべく確保したい。



それにしても家の近くにサテライトオフィスができたりしたらいいなあ。

仕事の方向性を変える

エンジニアとして働いてると技術知識を偏重してしまい
できる人と言えば、すごい技術を持った人と考えてしまう。

それもそうなんだけど、技術は業務が良くなってくれないと意味がない。

なので今やってる業務知識をつける、どう使いやすくなってほしいか?
をもっと突き詰めて考えたほうがいいだろう。

社内で情報共有のためのWebサイトを作るために、rails がいいのかPHPがいいのかなんて
どうでもいいし、メールでもいいのかもしれない。
なんなら手書きの掲示板でもいいかもしれない。

要するに何を解決するのか?を考えていくと
もっとできるエンジニアになれる(はず)。

そうすれば知識ではない部分が鍛えられるし。



雑多に所感を書いてみたけど、どこか矛盾があるかもしれないし
明日には気が変わるかもしれない。

他にお勉強hackはどんなのあるだろうかね。


blog.suganoo.net


(こんな記事もあります)
「できる」コンサルタントと「できない」コンサルタント - S氏はたまにblogを更新してます
「できる人の仕事のしかた」を立ち読みしてみた - S氏はたまにblogを更新してます
困ってないけど妻子がいるエンジニアはほんとつらいっすよね - S氏はたまにblogを更新してます



プログラミング入門講座――基本と思考法と重要事項がきちんと学べる授業

プログラミング入門講座――基本と思考法と重要事項がきちんと学べる授業

  • 作者:米田 昌悟
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2016/09/28
  • メディア: 単行本
blog.suganoo.net