Webエンジニアとして個人的に大事だと思ってる、ノウハウ・心構えについて【後編】|Offers Tech Blog
はじめに
こんにちは!Offers を運営している株式会社 overflow の
バックエンドエンジニアの takkun7171 です。
前回に引き続き、個人的に大事だと思ってる、
ノウハウ・心構えを書いていこうと思います。
前回の記事
前回はハードスキル中心だったのですが、
今回はソフトスキル中心でまとめてみました。
かなり主観が混じってるので、賛否両論あると思いますが、
エンジニアのいち意見として緩く見てもらうと幸いです。
【エンジニアの勉強について】
若い人から学ぶ姿勢を持つ
当たり前ですけど長く働いていると、
同じ業界で働く人が自分より若い人だらけということになります。
当然ながら、若くて優秀な人から学ぶ、謙虚な姿勢を持つのは必要になってきます。
その時代のモダンな作り方、技術にキャッチアップできれば、
それまでの歴史や経緯について深く知らなくても、仕事出来てしまいます。
ぶっちゃけ若くて地頭良くて、モチベ高い人は超強いです。
(これは非エンジニアの人は知らない、ベテランエンジニアにとっての
不都合な真実かもしれない)
若くて地頭良くて、モチベ高い人を敬い、学びましょう w
技術やプログラミング言語、エディターに対して愛や憎しみを持たない
技術やプログラミング言語、エディターは目的ではなく手段、道具だということを忘れない。
好き嫌い、好奇心はエンジニアにとって必要ですが、愛や憎しみレベルになると
乗り換えが必要なのに、乗り換えできなかったり、
他の言語やエディターの良さを受け入れづらくなったり弊害が出てきます。
宗教戦争は不毛ですし、愛や憎しみレベルの想いを持つのも不毛だと思います。
技術の勉強は愛ではなく、好奇心と手段としての必要性でドライブしたいところです。
最新すぎる技術には近寄らない。最新から2,3番目に新しい技術にアンテナを張る
最新すぎる技術を取り入れるのは人柱になってしまいますし、ググっても情報が出てこなくて、苦労します。
最新から 2,3 番目くらいの新しい技術でちゃんとした実績があって、ググった時に情報がたくさん出てくるものにアンテナを張り、どんどん取り入れていくのは良いと思います。(そんなん常識かもしれませんが)
そしてアンテナを張る際は、必ずしも自分が頑張る必要はなく、アンテナ感度の良い人が周囲に沢山いる状況を作るのがいいと思います。
でも結局勉強は所詮勉強でしかない。実務経験を積まないと熟練度と理解は上がらない
格ゲーや Apex に例えると
勉強はプラクティスモードや射撃練習場、 CPU 戦で、そのキャラの基本的なコンボとか立ち回りを覚えてるようなものであり、
結局のところ、
ランクマでの対人戦という実務経験を積まないと、熟練度上がらないし、そのキャラへの理解も深まらず強くはならないと思います。
仕事も同じで、ほどほど勉強したら、
どんどん実務経験を積んで、言語や技術についての熟練度と理解を上げて行きましょう。
そうして、つよつよエンジニアになって行きたいところです。
それに格ゲーや Apex で対人戦やってから、勉強とか YouTube 見るなどすると理解が深まるように、ある程度実務経験を積んでからの勉強の方が、より意味のあるものになると思います。
ちなみにこちらの方からリクエストがあったので、お答えしたいと思います w
オッサンの私の Apex でのソロダイヤ達成ですが、
ランクマ・カジュアルの撃ち合い・反省
YouTube のプロの方のコーチング動画観る、の繰り返しで達成しますた w
プロの方のコーチング動画マジでおすすめ
【エンジニアとしての心構え、マインド】
レビューする時に人格否定しない。疑われるような言葉も使わない
レビューする時に人格否定は論外です。
コードを憎んで、人を憎まず。 人格否定を疑われような言葉を使うのも止めましょう。
レビューする際に自分の好みを押し付けない
自分の書き方と違っていて、こっちの書き方の方が好みだなっていうとき、
あると思いますが、基本的には自分の好みを押し付けないほうがいいと思います。
好みの問題でしかない場合、
それはうどんを好きな人が、ラーメンを好きな人に対して、
うどんを押し付けるのとあまり変わりません。
それはレビューではなく、好みの押し付けです。
レビューするときは好みの問題は極力排除して、
以下のようなことをツッコミましょう
- ユーザがこうしたくなったとき、どうするの?とか漏れてるかもしれない仕様の確認
- 負荷を下げる書き方の提案。index の貼り忘れとか N+1 の問題とか含む
- 可読性の高いコードの書き方の提案
- バグを回避しやすい書き方の提案
- 目先の楽さを優先するあまり、技術的に負債になるようなことをしていないかの確認
逆にレビューで好みを押し付けられたら、とりあえず修正してしまう
逆にレビューで好みを押し付けられたら、争いにならないように
めんどくせーと思いつつ修正してしまいましょう w
好みの押しつけが多発する環境なら、コーディング規約を明確にしたほうが良いかもです。
わからないことはちゃんとわからないと言う。知ったかぶりしない
当然ですが、わからないことはちゃんとわからないと言いましょう。
見栄を張ったり、知ったかぶりするのは論外です。誰かに迷惑がかかります。
属人化した仕事をしないようにする
わざと属人化した仕事をして、社内での地位を安定させようとする輩が
世の中にはいるらしいですが、そんな痴れ者エンジニアになってはいけません w
属人化とは逆の指向で、自分のやっていることを Notion などのドキュメントに残して
いつでも引き継げるようにしておくのが正しいエンジニアの在り方ですね。
【社内での人間関係について】
相性の合わない人と仕事しないといけない状況は避ける
カール・ロジャースの 2:7:1 の法則ってのがあり、
10 人いたら 2 人は気が合い、7 人はどちらでもない、1 人は気が合わないらしいです。
どんな人でも合わない人は必ずいるってことですね。
その合わない人がたまたま上司の場合、めっちゃパフォーマンスが落ち、エンジニアとしての QOL も下がります。
自分の経験上、合わない人と一緒に仕事するメリットは
何故この人が苦手なんだろう。。ということについて考えて、自分の気付いてない一面に気づき、人間的成長になったかもということだけでした。
それ以外にメリットはなく、百害あって一利なしで
気が合う人でかつ優秀な人と一緒に仕事したほうがパフォーマンス出ます。
エンジニアとしての QOL も上がるので、
合わない人との仕事を強いられるなら、さっさと転職したほうがいいです。
【働き方について】
考える仕事は椅子に座ってPC叩いているとき以外の方が捗る? 細切れの時間を大切にする
例えばこれは個人的なことですが
仕様や実装方法は散歩してるときとか風呂に入ってる時考えると捗ります。
考える仕事は椅子に座ってる時以外のほうがむしろ捗ると思います。
エンジニアの労働は量より質が大事
人月とか工数とかありますけど、個人的には
エンジニアの労働は量より質が大事です
モチベーションを上げて、いかに集中できるか、ゾーンに入れるかの方がよっぽど重要だと思います。
集中しやすい朝、ゾーンに入って終わらせてしまい、コアタイムが終わったら
自分の時間にするという働き方もありだと思います。
仕事を選ぶ基準は経験になるか・お金になるか・これからどちらかが見込めるか
これは人それぞれだと思うのですが、
自分の場合の仕事を選ぶ基準は、
経験になるか(環境とか良い人と働けるかどうかも含む)・お金になるか・これからどちらかが見込めるかです。
転職したくなったときとか、こちらを基準にして仕事を選んでいます。
採用する側に視点を変えると、
おそらく自分と同じ行動原理のエンジニアはそこそこ多いはずなので、
この 3 つのいずれかを提案できてるか
自問自答したほうがいいと思います。
1 つもないなら、エンジニアにとって全く魅力がないので恐らく採用は困難です。
若くて野心があるなら英語を学んで、英語圏で働いてみるのはいいかも
タイトル通りです。自分はそこまで野心がなかったので、
海外で働いてないですが、野心があるなら若いうちに英語を習得して
海外で働いたほうが生涯賃金は上がると思います。おそらくこれは普遍的なことだと思います。
副業は余裕あるならどんどんやっていい
副業は余裕あるならどんどんやっていいと思います。
人との出会いや自分の興味、適性の発見というセレンディピティが期待できます。
Offers に登録して、サクッとプロフィールを埋めて、
熱意ある感じが伝われば、意外と簡単に副業できると思います(さりげなく宣伝 w)
まとめ
前後編に渡って、ハード・ソフトスキルをまとめてみました。
参考になる部分もあれば、全く参考にならない部分もあったかと思いますが、
何かしら読んでる人のお役に立てれば幸いです。
副業転職の Offers 開発チームがお送りするテックブログです。【エンジニア積極採用中】カジュアル面談、副業からのトライアル etc 承っております💪 jobs.overflow.co.jp
Discussion