エンジニアとして生き残っていくためにはどうすればよいのか

こんにちわ

この記事は
「エンジニアとして生き残っていくためにはどうすればよいのか」
というテーマに対する自分の考え方の記事になります。

想定している読者層は

- これからエンジニアを目指す方
- エンジニアになりたての方
- エンジニアとしてなにかに行き詰まっている方

になります。

少し長いのですが、最後まで読んで頂ければと思います。

# 記事を書く理由
「エンジニアとして生き残っていくためにはどうすればよいのか」というテーマをもとに、
困っているエンジニアの方へ大事なことを伝えることで、
少しでもエンジニアとしての悩みがある方の問題解決のきっかけになれたらと思っています。

自分の頭の整理整頓もありますが、それはついでになります。

# ぼくの経歴（読み飛ばし推奨）
本題ではないのですが、気になる方がいるかも知れないので書きます。
読み飛ばして頂いて問題ありません。

- **CE時代（2年）**  
高校卒業して、やりたいこともなく、とりあえず就職しました。  
プリンタ・ATMの保守などがメイン事業に配属になったの良いものの、  
ネットワー機器とPCのキッティングの日々でした。  
このままではだめだと思いPGになるために転職しました。
- **テスター時代(2年）**  
SES業界に転職しPGになるためにテスターとしてまず現場に入りました。  
この現場で概ね自分の基盤ができました。  
テスターだけではなく、プロジェクトリーダーもやらせた頂いたこともあり、大変感謝しています。
- **プログラマー（3年~）**  
テスター時代の開発部門の方から声をかけくださった事がきっかけてプログラマーとして働き始めました。  
その方には大変感謝しています。  
3年間色々あり、人としても、プログラマとしても成長はしてきましたが、自分のプログラマーとしての将来のことは考えていませんでした。  
最近になって、やっと自分なりたいエンジニア像というのが見えてきました。  
いろんな思いがあり、この記事を書こうと決めました。

# 結論
パーフェクトな答えはないし難しいですが、僕の答えはとてもシンプルです。

- 技術力
- 人間性

生き残るため必要なモノはこの2つだけです。
なぜこの2つが必要なのかについて、僕の考えを書く前に、
社会全体の事について少し触れます。

## 世の中はビジネスで成り立っている
当たり前ですが、我々の生活は需要と共有で成り立っています。
需要と供給があるから、ビジネスが生まれます。
つまりビジネスで成り立っているわけです。

ビジネスという言葉は個人的に嫌いですが、これは真実と思っています。

ではそのビジネスにおいて何が大事でしょうか？
「実績」「信用」「信頼」と思っています。

実績がなければ信用も信頼もないですね。
「買ったばかりの炊飯器が動かない」ってなったらそのメーカーさんへの信用は失いますよね。
買った人にとって動いたという実績がないわけですから。
これも当たり前の話です。

つまり、世の中のほとんどは「実績」「信用」「信頼」で成り立っているとも言えますね。

## IT業界において
世の中の大枠がビジネスなので、IT業界も同じことが言えます。
つまりIT業界もビジネスで成り立っています。

この場合、技術者は技術力という商品を売りにしています。
その技術力を使って、より大きな商品（サービスなど）を生み出すため、企業は技術者を必要とします。
ここでも需要と供給が生まれますね。

## 技術力が大事な理由
ここまでの流れでみなさんがもうお分かりかと思いますが、
エンジニアとしての価値を上げることで、必要としてくれる企業は増えます。
その企業の中から、自分のやりたい事ができる企業を自ら選ぶこともできます。
これはエンジニア目線から見た場合ですね。

企業からみた場合、自分たちが供給するサービスをより大きくし、
より多くの顧客を獲得することで大きな利益（供給）を上げることができるので、
サービスをより大きくするためにもより優れた技術力を持つ技術者がほしいわけです。
これも当たりまえですね。

要約すると
**技術力を上げることで技術者としての価値が上がり、欲する企業も増える。
結果的に選択肢が増えることで自身のやりたい事も将来も安定する。**
と考えています。

なので、技術力は大事です。

## 勘違いしてはないけないこと
### 技術力が全てではない
エンジニアの価値を上げるのに、
ここまでは技術力が大事ということを伝えましたが、それだけではありません。

どんなにパワーがある車でも、すぐ壊れたりすると使う気が失せて使わなくなりますよね。
それと同じで、どんなに技術力があっても、しょっちゅう休んだりしたら、信用なくなります。

つまり、技術を磨いているだけではなく、人間性も大事ということです。

### 企業は技術力だけを追い求めていない
企業は闇雲に技術力がある人だけを採用するわけではありません。
企業の場合、理念とミッションを掲げてあり、
その理念に基づき、ミッションの達成のために技術を用いているのです。

企業は技術だけではなく、企業の理念を理解し、ミッションのために尽力してくれそうかどうかを見ています。
だから、面接で志望動機などを聞いて来るのです。

また、企業は技術力がある人だけを採用する事はありません。
どんなにすごいエンジニアでも最初は新人です。

新人を育てて行かないと業界は伸びないし、
エンジニア高齢化が進んでしまいます。
いわゆる高齢少子問題のエンジニア版ですね。

だから、企業は新人を採用して育てていくのです。
その新人たちに期待するのは「技術力」ではなく、伸びしろです。
これも人間性の一部ですね。


## 人間性が大事な理由
人間性が大事だということを書きましたが、
僕が言っている人間性は以下のことを指しています。

- **礼儀をわきまえること**
- **努力すること**
- **素直でいること**
- **優しさを持って人と接すること**
- **感謝の心を持つこと**

これらを心がけて行くことが大事と考えています。

**いつも礼儀正しくて、技術力が無くても仕事以外の時間を使って勉強して、
アドバイスをしたらすぐ実践して、いつも同僚に笑顔で接して困っている人がいたら力になり、日々周りにありがとうを伝える人。**

そんな人と一緒に仕事したくなりませんか？
ぼくはそんな人と一緒に仕事したいです。
技術力への信頼はなくても、一人の人間として信頼・信用できるからです。
これが「人間性が大事な理由」です。

## 小まとめ
「技術力」と「人間性」　はエンジニアとして生き残るために必要です。

納得する方もいれば、納得出来ない方もいるかも知れません。
もっと他に大事なこともがあるかも知れませんが、現時点で自分が見えている範囲の事とその考えを綴りました。

ビジネスの部分は結構ドライに書きましたが、これらはとても大事な見方です。
ぼく自身はエンジニアの技術力は商品だとか、ビジネスで世の中が成り立っているとか、
そういう見方は嫌いですが、個人的感情を入れずに物事をみることで本質が見えてくることもあります。

ここから先は、エンジニアとしてどうやって成長していくかについて書いていきます。

# エンジニアとしてどう成長していくか
エンジニアとして大事なのは「技術力」と「人間性」であることをお伝えましたが、
特に新人の方達は、どの様に成長していけば良いのかと悩む方もいるかと思います。

あくまでも一つのやり方ですが、
参考になれたらと思います。

## 技術力を上げる方法
技術力を上げていく上で大事なのはモチベーションです。
モチベーションがなければ続かないので、とても大事です。

### モチベーションの源泉探し
まずはやり方あ云々ではなく、
「**自分がどんなエンジニアを目指したいのか**」
を明確にしてみると良いと思います。

例えば
「作りたいものをサクッと作れるようなエンジニアになりたい」でも
「ネットワークが好きだからネットワークスペシャリストになりたい」でも
「くだらないものを作ってみんなを笑わせるような技術力を身に着けたい」でも
なんでもいいです。

「**自分がワクワク・面白い・やってみたい**」と思えるかどうかが重要です。

### 分野を決める
いろんなモノに興味を持ってやってみたくなる方もいると思います。

それなりに経験がある方なら色々やってみるのは良いですが、
エンジニアなりたてやこれからなりたいって言う方はまず自分が身を置きたい分野を定めておくと良いと思います。
定めるために色々触って見るのは全然良いと思います。

ウェブアプリを作りたいなら、html,css,jsの勉強すればいいし、
サーバーサイドを極めたいなら、サーバーサイドの言語を一つ絞って勉強すればいいと思います。

まだどの分野に身を置きたいのかわからない方は、
色々と触ってみるのも良いと思いますが、ダラダラとあれもこれもではなく、
区切りも大事なので、そこを意識すると良いと思います。

### 刺激を求める
刺激は大事です。
一人でずっと勉強しても井の中の蛙なので、モチベーション落ちるし、ベストなやり方ではありません。

エンジニアは外に出て、いろんな方と触れ合うことが大事です。

こんな風になりたいという人に出会うこともあるかも知れないし、
こんな事もできるのか、こんなこともあのかと知見を広げることができてモチベーションも上がったりします。

今どき、IT勉強会はたくさんあります。
いろんな企業がいろんな勉強会をやっているので、
自分がどんなにレベルが低くて、内容を理解できそうになくても参加したほうが良いです。

**「知らない」と何も始まらないですが「知っている」と理解を深める事はできます。**

### 楽しむ
これは難しいのですが、楽しむことは大事です。
先日[ゴリラチャット](https://qiita.com/gorilla0513/items/3828378f92103cba0ab0)を作ったのですが、たくさんの方に楽しんでもらえて、自分も楽しかったです。

こういったちょっと思いついたアイディアでものを作ったり、
あくまでもプログラマ目線の話になりますが、くだらないモノを作って楽しむことが大事です。

エンジニアは楽しんだ方が生産性が良いと思うし、
楽しい、面白いと思うことはどんどんやっていくと良いと思います。

### 教える
これはよくあるやり方ですが、人に自分の理解したことを教えることで自分の理解を深めることができます。
読んでいて、作っていて理解したつもりでも、いざ人に説明すると言葉が出ないことは自分もしばしばあります。

教えることで、どこが完全に理解できていないのか見えるし、
教わる側も、知らないことを知れるというメリットああるので、お互いWinWin関係が成り立ちます。

なので、初心者だからとか、まだマスターしていないからとかは気にしなくて良いです。
初心者が初心者に教えたって良いです。

## 人間性を磨く方法
個人的に人間性を磨くというよりも、人として成長するということがニュアンス的にしっくりきます。
これはとても難しいです。
なぜなら心の話だから。

人それぞれの人生バックグラウンドが違うので、
こうすればいいという正解はないです。

それでも、自分の思いを伝えたいので、
ここからは手法よりも思いを中心に書いていきます。

### 感謝の心を持つこと
人として大事なことは「周りへの感謝」です。
これは言い切れます。
すべては感謝の気持ちから始まります。

給与という対価を支払っているから、仕事してもらって当たりまえと思う方もいるかも知れないのですが、
仕事いつも頑張ってくれてありがとうってお互いに感謝し合うのは個人的に好きです。

自分も相手も、心が満たされるからです。

新人なら、いつもアドバイスくれる同僚・上司に日々の終わりに「ありがとう」と伝えてみてください。
上司・先輩なら、いつも頑張って勉強して業務を取り組んでくれている新人・後輩・同僚に「ありがとう」を伝えてみてください。

何かが変わると思います。

### 優しさを持って人と接すること
仕事していたら何かしら困りごとは発生します。
自分にできる範囲のことで良いので、まずは困っているひとがいたら力になってあげてみてください。

例えば、新人が業務で困っているのに質問もしてこない時は、業務全体に影響が出かねないこともあると思います。
そんな時は「なぜ質問してこないんだ」と怒るのではなく、
「困っていることでもあるのかい」と優しく声をかけてみてください。

優しさはひとを救います。
自分が困った時に、自分が優しく接したひとが助けてくれたりします。

# 最後に
長くなりましたが、エンジニアとして生き残っていくために必要な事について、
自分の考えを一部綴りました。

もっと色々ありますが、書ききれないのでまた別に機会に書こうと思います。

この記事を読んで、少しでも悩んでいる方のためになれたらと願っています。