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

「稼げるエンジニアを目指したいけど、技術は磨くべきですか?」
「プログラミング技術さえ磨けば、稼げるようになりますよね?」
「稼ぐエンジニアと稼げないエンジニアの違いってなんですか?」

上記のような質問に答えていこうと思います。

今回は、プログラミング初心者、フリーランスエンジニアを目指している方向けに、

  • 稼げないエンジニアと稼げるエンジニアの違い
  • 職人気質なエンジニアは技術を磨けばいい
  • 目的をもって、スキルは身につけるべき

上記の内容でお話しします。

この記事を書いているわたしは、ざっくりですが「スタートアップ → Web系企業・副業ワーカー → 現役フリーランス」というキャリアを歩んできました。
スクールで講師をしていた経験もありますし、様々なタイプのエンジニアと仕事してきたので、そういった過去の経験をもとにお話します。

駆け出しエンジニアの方も参考になるように、現役のエンジニアの意見も取り入れつつ、執筆してまいります。

稼ぐスキルが低いエンジニアと、稼ぐスキルが高いエンジニアの違い

一般的には、

  • 稼げないエンジニア → 技術力が低い → 収入が低い → 長時間労働
  • 稼げるエンジニア → 技術力が高い → 収入が高い → 柔軟な働き方

と思われがちですが、これは不正確ですね。

稼ぎたいだけなら、「技術力」はそこまで必要ないです。

なぜなら、「高い報酬 = 労働力やクオリティによる対価」ではないからです。

例えば、まったくの素人が「会社のWebサイトを作りたい。予算は30〜40万円で」という依頼をするとき、

  • エンジニアAさん:技術力が高くて、綺麗なソースコードが書ける。高度な機能も実装できる
  • エンジニアBさん:技術力はそこそこ。SNSやマーケティングの知識も豊富で、集客に関してアドバイスできる

どちらに頼むかといったら、Bさんだと思うんですよね。

お客様を第一に考えたら、

  • プログラミングスキルが高い方に依頼したいわけではない
  • 高度な機能もそこまで求めていない
  • 「ソースコードもこのルールに沿って書いて欲しい」という要望もない

上記のとおり、完璧な技術力は必要ないです。

わたし自身、学生の頃や社会人1年目の頃は、開発するときにキレイなコードを書きたいと考えて、

  • 『リーダブルコード』
  • 『CSS設計の教科書』

などの本を読んで、ガイドラインを整えたりしてました。

「ソースコードがキレイかどうか」「エンジニアのレベルが高いか」とか、お客様はそのレベルを求めていないにもかかわらず、丁寧にコードを書きたいと思っていたわけです。

では、稼ぐスキルが低いエンジニアと、稼ぐスキルが高いエンジニアの違いとはなにか。

まとめると、下記のとおりです。

  • 稼げないエンジニア → つくるだけ → 提供しているモノやサービスの価値が低い
  • 稼げるエンジニア → お客様の悩みや問題を根こそぎ解決する → 提供しているモノやサービスの価値が高い

という感じです。

つまり、「高い報酬 = 労働力やクオリティによる対価」ではなく、「高い報酬 = 提供しているモノやサービスの価値による対価」ということですね。

職人気質なエンジニアは技術力を高めるべき。そうでないなら、技術だけになってはいけない

  • エンジニアは技術力が高くてナンボ
  • とにかくプログラミングをしている時間が好き
  • 作っている時間が楽しく、スキルアップをし続けたい
  • 高度なレベルのエンジニアを目指し、スタートアップやベンチャーで働きたい
  • モダンな環境で自社サービスを開発して、チームで仕事がしたい

上記のような考えを持つ職人気質なタイプのエンジニアは、どこの企業も欲しがりますし、技術力をどんどん磨くべきです。

技術力の高いエンジニアが増えれば増えるほど、国や企業にとっても良いことですからね。
GAFA(Google、Apple、Facebook、Amazon)レベル、世界規模の企業で活躍することを目指して、頑張るべきです。

一方、「自分のプログラミングスキルを活用して社会の問題や人の悩みを解決したい」といった目標があるなら、技術力だけでなく、マーケティングの知識もあったほうがいいです。

「フリーランスとして月100万円、200万円以上稼ぎたい」といった目標があるなら、技術力だけでも稼ぐことは可能ですが、技術力がそこそこでもほかのスキルとかけ合わせれば達成できます。

わたしの場合、

  • HTML
  • CSS
  • JavaScript・jQuery
  • PHP
  • WordPress
  • Ruby・Ruby on Rails
  • Bootstrap
  • Slim
  • Git

など

すべて挙げきれないほどのスキルを磨いてきましたが、「世界規模に成長しそうなスタートアップに入って、CTOとして活躍する」というような目標もなかったので、ただのノウハウコレクターになってたわけです。

「フリーランスエンジニアになって、毎月60万円以上(会社員の給料の3倍くらい)稼ぎたい」という目標なら、

  • HTML
  • CSS
  • jQuery
  • WordPress

このあたりのスキルがあれば、十分です。
1件20万円〜40万円の案件もたくさんあるので、月に2〜3案件回せれば十分稼げるわけです。

わたし自身、1件30万円くらいのWordPress案件も2日で作り上げますし、難しくないですよ。

先ほども話しましたが、「社会の問題」や「人の悩み」を解決するサービスを作りたいのであれば、プログラミングスキルだけでなく、マーケティングスキルも必要でしょう。
いきなりプログラミングをしなくても、SNSと簡単なGoogleフォームとか作って小さくビジネスを始めることだってできますからね。

必ずしも、高度なプログラミングが必要ではないので、ノウハウコレクターになってはいけません。

目的に合わせて、走りながら、スキルを身につけていくべきだと、わたしは考えてます。

未経験者は目的を持って学ぶべき。現役エンジニアも様々な選択肢があることを知るべき

これからプログラミングを学びたいという未経験の方は、どこを目指してますか?

目標は色々あると思います。

例えば、

  • スタートアップでバリバリ働くエンジニアになって、イケてるWebサービスを開発したい
    →モダンな環境、最新技術を常に追いかけるべき
  • フリーランスになって、月40万〜80万くらい稼ぎつつ、ゆるく生きたい
    →HTML、CSS、jQuery、WordPress、PHPは最低限身につけるべき
  • 解決したい問題を、自分のスキルを生かして、解決したい
    →プログラミングだけでなく、マーケティングスキルや発信力を高めていくべき(エンジニア兼〇〇なタイプ)

上記のように、目指す方向性によって、どんなスキルを磨くべきかが変わります。

現役エンジニアも様々な選択肢があることを知ることが大切

現役のプロエンジニアは、技術力だけを磨くのが選択肢じゃないです。
職人気質なエンジニアほど、「本物のエンジニア = 技術力が高い」という選択肢しか持っていないです。

仮にですが、主婦が「アプリ制作サービスを無料で提供します」と宣言し始め、無料でアプリが作れる時代が来たとしたら、、、
おそらく職人気質なエンジニアは「市場が壊れるだろ」とか「本物のエンジニアが食えなくなるじゃないか」などなど、文句だけ言うことになるでしょう。

今はブログを活用して、無料で文章を書いて発信できる時代ですが、本物の作家はいなくなりましたか?
活躍している作家さんたくさんいますよね?

ショッピングモールに行ったことはありますよね?
昭和にあった昔ながらの商店街を思い出してみてください。

商店街の近くに、大型ショッピングモールができ始めて、どんどん商店街が廃れていきましたが、それは時代とともに、消費者のニーズやビジネスモデルが変化してきたということですよね。

「未経験者を馬鹿にした高額なスクールや教材は消えろ!」とか文句言ったところで、
「役に立った」、「買ってよかった」「仕事になった」と思っている未経験が大勢いるなら、立派なビジネスであり、立派な価値なんですよね。

その立派な価値に対して、人々が自分のお金を投じているということです。

高額なスクールで現役エンジニア(技術力はそこそこ)が、未経験の受講生Aさんに教える

転職先のベンチャー企業で活躍する。幸福度も前職より高い

上記もエンジニアがひとつの社会貢献をしているわけです。

現役エンジニア(技術力そこそこ)が、初心者向けにプログラミング教材を20万円で売る

教材を購入した人が、フリーランスとして会社員の頃の給料の3倍、5倍以上稼げるようになる

これもひとつの社会貢献になってますよね。

なので、「本物のエンジニア = 技術力が高い」というのは成立しないです。

技術力を磨くのもエンジニアとして大切なことですが、ほかにも正しい選択肢がたくさんあるということを胸に刻んで行動していきましょう。

まとめ:稼いでいるエンジニアほど、言語に興味がない

わたしのまわりにも、フロントエンドからバックエンドまでカバーできる優秀なエンジニアが何人かいますが、
「WordPress案件は、需要が多いし、短い納期で効率良く稼げる」と話す人もたくさんいます。

稼ぐエンジニアほど、「プログラミングなんて問題を解決するための手段のひとつだから言語にはこだわらない」「効率良く稼げるなら、そのスキルを磨くだけ」というスタンスなんですよね。
つまり、目的に合わせて、スキルを磨いているわけです。

プログラミングは、あくまでビジネスを成功させるうえでの手段のひとつということです。

わたしの経験から断言しますが、「技術力」を磨いても、稼げるようにはならないです…

  • 技術力が高いけど、経営者に搾取され続ける低賃金の社畜エンジニア
  • 技術力はそこそこだけど、効率よく稼ぎながら自由に生活するエンジニア
  • 技術力を身につける前に、続けられない

などなど、様々なタイプの方をみてきました。
特に3つ目の続けられない人が多いですね。

最後なので、まとめておきます。

  • スタートアップでバリバリ働くエンジニアになって、イケてるWebサービスを開発したい
    →モダンな環境、最新技術を常に追いかけるべき
  • フリーランスになって、月40万〜80万くらい稼ぎつつ、ゆるく生きたい
    →HTML、CSS、jQuery、WordPress、PHPは最低限身につけるべき
  • 解決したい問題を、自分のスキルを生かして、解決したい
    →プログラミングだけでなく、マーケティングスキルや発信力を高めていくべき(エンジニア兼〇〇なタイプ)

など

上記のとおり、自分の目指すところに目を向けつつ、スキルを磨いてください。