どうも皆さま。こんにちは。こんばんは。
渋沢です。

新米エンジニアとして働き始めると、いろいろな悩みや不安を持つ人が増えてきます。

例えばですが、

「新米エンジニアです。優秀なエンジニアになるために必要なスキルとは?」
「先輩のエンジニアに追いつくには、技術、スキルをとにかく磨けばいいですか?」
「優秀なエンジニアになるためには、技術を常に追いかけ続けたほうがいいですか?」

上記ような疑問や悩みを持つ方は多いので、今回は答えていこうと思います。

今回は、20代〜30代前半の新米エンジニアさん向けに、

  • 優秀なエンジニア目指すなら、「技術力」「良いコードを書く力」は必要ない
  • 技術力以外にあるといい能力
  • 目的を間違えると、エンジニアの仕事が苦しくなる

というテーマでお話します。

この記事を書いているわたしは、フリーランスとして生計を立てています。

わたし自身、20代前半の頃に、「プログラミングスキルを磨きまくって、稼げるようになりたい。でも、どうすればいいんだろう」と悩んだ経験があります。

過去のわたしと同じような悩みを持っている方もいるのではと思い、今回記事にすることにしました。

将来的にフリーランスとして独立を考えている新米エンジニアさんも、ぜひご一読くださいませ。

優秀なエンジニア目指したいなら、「技術力」「良いコードを書く力」は不要です

エンジニアとしてキャリアをスタートすると、

「優秀なエンジニアになるためには、新しい技術をキャッチアップしつつ、ひたすら技術力を磨くべきか」

ということを考える時期もあると思います。

プログラミングが大好きな人は、会社の仕事以外でもコードを書いて、技術を磨き続けていることが多いので、「自分もそうなろう、そうならなきゃ」と焦りがちです。

社内の優秀な先輩に追いつくには、「たくさんコードを書いて、良いコードも書けるようにしないといけない」と思い込んでしまう人もいるでしょう。
(→わたしも駆け出しの頃、そう思い込んでいたので。)

しかし、その思い込みや焦りは間違いです。

優秀なエンジニアを目指すのであれば、「技術力」「良いコードを書く力」もいらないです。

こう話すと、「いや、技術力のないエンジニアはエンジニアと言えないのでは?」という疑問を持たれる方も多いかもしれません。

なぜ「技術力」も「良いコードを書く力」も不要なのか。

一言でいうと、

プログラミングはあくまで、ビジネスを成功させるためのツールのひとつだから

です。

「良いコードを速く書けます!」と言っても、儲かるサービスがつくれないなら、会社は存続できません。

Webサービスを開発するための最低限の技術力はもちろん必要ですが、重要なことは「いかにして良いサービスをつくり、事業を成功に導くか」だと、わたしは考えてます。

個人でビジネスをつくるメリット

わたしもサラリーマン時代に言われた経験があるのですが、「経営者視点を持って、…」と、まわりの人から言われたことないですか?

もし今いる会社の経営者がエンジニア畑出身の人間なのであれば、自分の持つ技術力も多少アピールできますが、どんなに技術力があっても利益を出さないと会社は潰れてしまいます。

だから、「ビジネスのことも考えられるようになってほしい」と言っているわけです。

エンジニアとしてこの先も長く生きていきたいのであれば、「技術力」だけでなく、「ビジネス」のことも考えたほうがいいと思っています。

いきなり「経営のことを学ぶべき」と言うつもりはありません。

新米エンジニアならほかに優先することがあるので、いきなり経営者視点に立つのも無理ですし。

では、どうすればビジネスのことも考えられるようになるか。

オススメは、自分のプログラミングスキルを活用して、個人で小さくビジネスを始めてみることですね。

会社以外の時間を使って、

  • Webサイトを開発する技術があるなら → Webサイトを受託してみる
  • Webサービス開発する技術があるなら → サービスを開発してリリース
  • アプリ開発する技術があるなら → アプリを開発してリリース

といったことを小さく始めてみてください。

技術を磨けるうえに、自分のビジネスをどう成長させるかを考えるクセがつくと思います。

少しでも稼げれば、

  • どうすればユーザーが増えるだろうか
  • クライアントを喜ばせるためにはどうしたらいいか
  • デザインできないから、外注しようか

上記のようにビジネスのことも考えて、実践しながら学べるようになってくるはずです。

エンジニアはコードを書くことだけが、仕事ではありません。

経営に関する分厚い書籍を読む必要もないので、まずは個人でビジネスを始めて、ほかのスキルも身につけることをオススメします。

技術だけ、良いコードを書くだけは限界が見えてくる

プログラミングが大好きなエンジニアであれば、毎日ひたすらコードを書いているので、技術力も上がります。

技術で勝負できるのであれば、仕事も楽しいと思いますが、ほかのチャンスをもらったときが大変です。

例えば、新規事業を立ち上げる場合、

上司Aさん
「Bさんに新しいプロジェクトのリーダーを任せます」

エンジニアBさん
「すいません。上司と部下の間に入って、コミュニケーションするのが苦手です」

これだと、当然ダメですよね。

年齢が上がるにつれ時代も移り変わり、「技術力のある若い部下」や「人件費の安い海外のエンジニア」もライバルになるかもしれません。

なので、「技術力オンリー」で勝負し続けると、苦しくなってしまいます。

技術力がそこそこのレベルでも、

  • コミュニケーション力
  • 営業力
  • 企画提案力

といった能力を持っているエンジニアのほうが、圧倒的に「自分の市場価値」は高くなりやすいです。

上記の能力は、将来的にフリーランスを目指すなら、なおさら身につけたほうがいいですよ。

企業で働き続ける場合も同様に、ひたすらコードを書くだけではなく、

  • 会社の向いている方向
  • チームのマネジメント
  • サービスや事業の戦略
  • 自分のキャリア、市場価値
  • ユーザーの心理

なども考えつつ、日々の仕事に取り組むことが大切だと思います。

まとめ:「技術力向上」ではなく「稼ぐ力向上」のために楽しむ

プログラミングスクールで学び始めている方、学び終えた方のなかには、「プログラミング楽しい」とか「苦ではない」と感じている方も多いでしょう。

優秀なエンジニアになることを目指すなら、「技術力向上のために学習する」のではなく、「稼ぐ力向上のために楽しんでつくる」というスタイルのほうが成長すると思います。

目的を間違ってしまうと、プログラミングすること自体が「苦行」になってしまいますからね…

例えばですが、

技術力向上が目的

「オススメされた書籍を最初から最後まで少しずつ進めよう」

「85ページ難しい」

書籍に向き合うことが苦痛になる…

プログラミングすることが、技術を磨くための勉強になってしまうので、当然苦しくなりますよね。

勉強にしてしまうと、苦痛になりがちです。

「技術力向上」を目的にするだけではなく、「稼ぐ力向上」を目的にしてみてください。

稼ぐ力向上が目的

「個人開発でWebサービスをつくって、リリースしてみよう」

「実装に必要な知識は、その都度調べればいいや」

「この機能はあの書籍に書いてあるかも」

「お、あった。これ読みつつ、実装してみよう。」

「できた!どんどんユーザー集めよう!」

上記のように、同じ書籍を読んでいたとしても、目的によって、学び方は大きく変わります。

「勉強のために書籍を読む」より「つくりたいものをつくるために必要な知識を書籍でキャッチアップする」ほうが楽しく感じませんか?

個人でサービスをつくって、リリースして、ユーザーの反応を自分で確かめると、ビジネスのことも自然と考えられるようになるはずです。

「この機能あったら、ユーザーが喜ぶかも」

ネット、書籍で、実装に必要な知識を取り込む

実装しつつ、マーケティング面も考える

改善して、ユーザーが喜び、さらにユーザーが増える

少し稼げるようになる

という感じで、プログラミング学習ではなく、楽しんでつくることのほうが、大切です。

わたしのまわりの優秀なエンジニアを見ていても思いますが、みんな勉強してないです。

なにか自分でアプリやサービスを作って、人に見せることを楽しんでいる人のほうが多いです。

最新技術をただ追い求めるのではなく、必要な技術を実践的に試す、取り入れる、クセをつけていきましょう。

新米エンジニア向けの関連記事はこちら

下記の記事では、「稼ぐスキルが低いエンジニアと高いエンジニアの違い」「技術力を高めるべき人と高めるべきでない人」について、具体的に解説しています。

下記の記事では、新米エンジニア向けに、「スキルを磨くより大切なメンタルキープ術」について、経験談を踏まえつつ、解説してます。