エンジニアの勉強と技術力と育児

仕事力と技術力と不安に関する雑文 | YuheiNakasaka’s Diary を読んで、自分も勉強とは技術力とはなんぞやと考えてみたくなったのでポエムです。

詰まるところ人それぞれではあるものの、考えることは少なからず良い方向に向かう、そう願いたいものです。



勉強とは

世の中にある意見として、エンジニアは生涯勉強だとか、強々エンジニアになるための勉強だとか、色んなモノを見かけます。そういう勉強に対する意見ってたいていネガティブな印象の内容が多く、なんだか迷走しているなぁという感想を持つことが多いです。

良い子ちゃん視点では、学ぶこと、その全てには意義がある、と言いたいところですが、こと仕事においては無駄な学びもあるし、将来無駄になる学びもあります。また、自発的かどうかでその効果は天地の差があるので、他人に向かってこれくらいやるべきとか言うことの意味は薄く、突き詰めると自己責任の範囲の話になるわけです。

私見としては、自身が食えて、できれば家族も食わせられて、引退までそれを保てれば、仕事としては成功だと思っている部分があります。なのでエンジニアとしてのレベル感に悩んでいる人と話すと、自身の理想とするエンジニア像に向かって努力するか、そうでなければ今までのまま十分な収入を得られるなら、それはそれで別に良くて私生活に重点を置いてもいいんじゃないって感じのことを言います。

でもたいていは、前線でエンジニアを続けることを希望することが多く、そのわりに実力や勉強量が、気持ちやプライベート事情によって追いつかないって場合もあり、エンジニアとして突き抜けられた存在になれるかどうかの境界線は、思ったより厚いのかなと思うことがあります。

自分としては、ザ・勉強みたいな勉強ってほとんどしてなくて今に至るので、難しく考えすぎず、こうすりゃえぇんちゃうん。くらいの進め方について示せればいいな、という感じでコレを書いています。


技術力とは

エンジニアは常日頃から勉強して技術力を向上させるべし、のような表現をチラホラ見かけますが、私としてはこの表現は誤っているというか、あまり芯を食っていないという感想を持ちます。

『技術力』とは、何かを実現したり、判断したり、課題を解決するためのパワーです。実務として役に立って価値を生み出すための、知識・経験・行動をひっくるめて技術力であるという考え方です。

『勉強』は知識を蓄えますが、その時点ではまだ『技術力』とは言い難いです。目の前の課題を最低限解決するためにはもちろん『知識』は必要ですが、システムってのは知識だけで一発でベストなデキになるってことはまずなくて、より高い品質を目指し、より保守運用のしやすさを目指す、ところに仕事としての価値があります。

全く同じ仕事に取り組んでも、ほぼ知識や指示だけで完成させた成果と、技術力をつぎ込んで完成させた成果では、その品質には圧倒的な差が生じます。

また、勉強で得た知識で言われたことだけ作り上げる仕事って、ハッキリ言ってツマラナイですが、技術力をもって創意工夫して仕上げる仕事は楽しいです。楽しくて、終わりが近づくほどに残念な気持ちが強くなるくらいに楽しいです。

この辺の違いを理解しているか経験したことがあるかで、仕事の楽しみ方や勉強することの意義の捉え方が大きく異なる、と見ていて思うことがあります。

勉強と技術力をごちゃまぜに考えず、まず重要なのは仕事のための最低限の知識であり、技術力が足りないと感じたならば何を学ぶべきか何を経験すべきかを考え、高い品質の成果に必要な技術力を維持できれば、適切な勉強によってさらなる高みを目指す、ような流れが望ましいでしょう。

一足飛びに漠然とした勉強や技術力について悩むよりも、目の前の仕事・足元の実力について見つめ直して伸ばすことを考える方が、多くの場合に着実な進行となるのではないでしょうか。


実務由来の勉強

勉強の存在に不安を感じたり長続きしないのはズバリ、実務の役に立っていない・役に立つかわからない状態だからです。知識を蓄えること自体が趣味なら別ですが、ほとんどの人にはそんな趣味はないでしょう。

私も昔、研究開発だけをやるような時期がありましたが、それが最新の技術だろうと、どれだけ優れたシステムだろうと、実際に使われることがなければ言ってしまえばゴミでしかないわけです。せめて一瞬でも選択肢に入ったり、採用しないという判断ができれば意味はありますが、それにすらカスらなければ成果としてはゼロに等しいです。

使われるかどうかわからない知識やモノを磨き続けるのって、辛くてモチベーションが続きづらいです。なんせ、給料もらっておいて成果ゼロですから、それがたとえ会社の方針による行動だとしても、穀潰し感が否めません。自発的な行動だとしても似たもので、承認欲求とまではいかなくとも、役に立ったり認められたりってのは人間に必要な要素であり、それに引っ掛ける形の勉強が望ましいということです。

それはつまり、今現在の実務に関係のある勉強になります。新しい任務や転職準備などは別ですが、技術力向上や不安を取り除くという意味ではそれだけで十分で、今扱っている技術にカスリもしない勉強は、楽しくないし非効率なので、よほど余裕がある時にしかやらなくていいと思います。


技術力の差

具体的には、エンジニアなら誰しもが何かしらのプログラミング言語やハードウェア・ミドルウェア・ソフトウェア等を扱っているはずなので、まずはそのドキュメントをキッチリ読み込むとか、アップデート情報を追って考察するとか、他者の事例を参考にするとか、あたりが基本になります。

これらは『勉強』ではありますが、『業務の調べ物』といったほうが近いでしょうか。このあたりを十分な量できる人とできない人の差が案外大きく、やれていない人からすれば、ナチュラルにやり切っている人は勉強の鬼マンに見えるかもしれません。

世間が思う勉強の鬼は、なんでもかんでも手を出して勉強して吸収しまくっているイメージが強そうですが、実際には自身に必要と思われる情報を、過不足なくキッチリ追い続けた結果がそれなだけで、特別に勉強に注力し続けているわけではなく、あってもたまに勉強らしい勉強の時間をとるかーくらいのものだと思います。

この結果差はおそらく、過不足の意識の差からくると思われます。ある実装を試みる時、機能として動けば完成である意識と、性能・費用・運用しやすさまで考慮して仕上げる意識では、必要な『調べ物』の量に差が出て当然です。

あらゆる設計や実装は、一撃ベストはほぼありえないという前提で考え取り組むべきですが、動いた時点で納得・満足する人と、普段から関連情報を多く仕入れ、そこから先の考察や細かな調整まで行う余地・可能性にまで考えを張り巡らせられるのか。このあたりが、曖昧で不可視な『技術力の差』と言えるのではないでしょうか。


基礎力

先程も触れた通り、技術力ってのは課題をできるだけ早く的確に解決する能力のこと、だとします。特定の知識だけでもドンピシャ嵌れば適用できるかもしれませんが、より低いレイヤーの造詣が深い方が、その上のレイヤーを解決する地盤となり役に立つことが多いです。

私の戦歴を例に出すと、20年前はHDMLをマスター(笑)しましたが今や死語なわけです。10年前にはデータセンターにプライベートクラウドをゼロから構築したり、Hadoop や OpenStack といった大きく難し目なシステムを構築しましたが、今現在そのシステムを使っているかというと”NO”で、大なり小なり数百以上の技術を置き去りにしてきました。

せっかく学習した古いシステムそのものはどんどん廃れてたり入れ替えているのに、なぜ私が食っていけているかというと、新たなシステムの自分にあった効率的な会得方法を理解していたり、OSやコンピューターリソース、仮想環境、クラスタ構成といった基本的なシステム知識をそれなりに理解していて、廃れた分は新たに効果的に取り入れ続けているからです。

効率的な学び方と、学ぶための基礎知識があれば、新しいシステムの会得にかかる時間も苦痛も少なくなり、技術的な時代の流れに負けづらく、追いやすい体質となります。そうなれるかどうかで、都度まっさらで大変な勉強と感じるか、経験と基礎知識に基づいた地続きの勉強と感じるか、というような『勉強』の捉え方の違いになるのでしょう。

ただ、いったん一定レベル以上に仕上げてしまえば、組織や社会の中で停滞することなく、よほど職種を変えない限りは、いつでもどこでも対応してやっていけるという自信となり、多くの不安解消を望めるため、それこそが腐らない技術と言えます。


無知の不安

とはいえ私にも一種の不安はあり、そのために過不足なく勉強する中で若干は過よりに進める傾向はあります。

それは何故かというと、システムの品質ってのは、設計や設定が1つ違えば大なり小なり変化することが多く、何か1つを知らないだけで、知らぬうちにベストから逆方向に進んだ成果にしてしまう怖さがあるからです。

勉強不足からくる組織や社会での立ち位置といった不安からすると、非常に局所的な不安ではありますが、どんなシステムに対しても最低限ベター、できればベストを目指して成果としたいという姿勢があります。そのために少なくともドキュメントは網羅的に読みますし、必要があれば動作検証によって確信を得ようとします。

こういった品質に対するこだわり、粘り強さといった部分は、性格や時間の猶予によって変わるところではありますが、この執着が強いほど勉強が勉強でなく、不安の解消そのもの、平穏な成果を得る喜びとなり、それが積もって勉強に対する意識の厚い差となる、といったところでしょうか。


人生設計

人生設計という言葉は好きじゃないですが、あえて勉強や技術力向上にフォーカスして設計するならば、20代前半が1つの勝負どころになるでしょう。

早い段階で、仕事やシステムに対して高品質に仕上げる意識、それに必要な勉強・調べ物といった自然体の取り組み、という地盤を強固にしつつ、できれば中堅クラスの技量を蓄積しておきたいところです。

そしていつか来るかもしれない世帯の形成と維持、のような大きな変化の時には、無理に向上しようとせず蓄積した技術で食えれば十分です。慣れれば時間の確保の仕方も上手になり、学習するクセがついていればさほど苦労なく元通りになるでしょう。

ま、20代独身時点でそんなこと考えられるわけもないので、より良いモノを作ろうとし続ける姿勢があれば大丈夫ってことです。


優先順位

勉強も仕事も100%で突っ走っていたところを、育児のためにと急に50%くらいに落とすと不安になるかもしれません。でも落とし方によっては、仕事の成果は同じように出しつつ、勉強など他の部分を控えれば、業務評価への影響は少なく保てるはずです。

仕事も育児も無理ない範囲で、とよく言いますし、その通りだと思う一方で、あえて意思表示しておきたいことがあります。

育児は確定で大変だから、それまでと比べれば絶対に無理をすることになるので、無理をするなと言うのは無意味です。創意工夫と気合いを合わせて乗り切っていきましょう!

そして育児は最優先!次に仕事!趣味や交流はいったん捨て置け、です。表すとこんな感じでしょうか。

 育児 ≧ 仕事 > 家事 >>> 趣味・交流

命の保守が最優先なのは当たり前ですよと。それと同時にお金を稼ぐのも必須、家事は工夫と妥協でなんとでもなる、それ以外はいったん断ち切って然るべきです。優先度が高いものからキッチリ仕上げていき、徐々に低い方も元通りにしていきます。育児を乗り越えた後に再開する趣味とか、また格別で良いものです。

仕事がデキる人間が育児もデキるとは限らないけど、育児に対する姿勢と行動がちゃんとしている人間は、自然と仕事もデキるように成長すると思っているので、人として踏ん張るに値するポイントです。


健康維持

勉強・技術力向上・育児と全てに共通して、遂行しきるためにオススメするのは体力です。筋肉は(だいたい)全てを解決してくれます。

デスクワークと育児の両方に役立つのはなんといっても腹筋。腹筋は最強の腰痛対策であり、逆に腰を痛めれば全てが崩壊するレベルの重要事項です。高価な椅子や姿勢、マッサージや整体よりもまず腹筋。自身のことは精神力よりも腹筋で支えていきましょう。

そしてできれば有酸素運動も少々。育児期間でどうしても部屋で短い時間に1つというならば、プランクか腹筋ローラーだけでも生活に組み込めれば、体力と心のゆとりが生まれ、ほぼ勝ったも同然ですよいやマジで。



人生どこかで気合い入れて踏ん張る機会があるわけで、乗り越えるには楽しむ、楽しもうとする余裕を持って臨んでいきたいところです。

楽しむコツとしては、どんな事象に対しても、より高い品質、より効率的な取り組みを考えて実践していけば、その行動自体や成果に喜びを感じられるものです。

そういう姿勢で生きていれば、悩むよりまず行動が先にくるので、おおむねポジティブな人生を送れるようになりますよきっと:-)