プログラミング、フリーダイビング、旅行のブログ

プログラミング道場

プログラミング道場Top

才能がないプログラマの生存戦略

更新日:

私はプログラミングをできるものの、才能あるプログラマに比べてると、どうしても劣るような気がしてなりません。
それでもプログラミングを続けるべきでしょうか?


プログラマという職業をやっていると、誰しもが「こいつには敵わない」というエンジニアと出会うことがあります。
私もそれを経験したことがありますし、クックパッドの創業者である佐野さんも大学生の時に、「こいつには敵わない」という経験をして起業家を目指したそうです。
とは言っても、才能ある人と出会ったとしても、プログラミングを辞める必要はありませんし、人と比べる必要もありません。

この記事では、自分が得意なフィールドを見つけて、戦っていく話をしていきたいと思います。

本記事の内容

  • プログラマの才能に天井はありません
  • プログラマの戦う場所は業種によって異なります
  • 現時点の技術力に関係なく問われる能力
  • 才能よりも幅広い知識が求められることがあります
  • 持っているとプラスになる能力

プログラマの才能に天井はありません。

プログラミングを生業として働いていると、できるプログラマに出会うことがあります。
上を観れば、世界には以下のようなソフトウェアを作った天才達がいくらでもいます。

  • Google、Apple、Amazonなどのシステムを作った人達
  • Bitcoinを考えた人
  • LinuxやGitを作った人達
  • Ruby on Railsを作った人

多くの人達は、20代にプログラマとしての才能を開花させています。
何が言いたいのかといえば、才能ある人達をはいくらでもいるので、「あまり上を気にしすぎないようにしましょう」ということです。

あなたには、あなたが戦うべきフィールドがあります。

プログラマの戦う場所は業種によって異なります

プログラマが働く場所は多くあり、業種によって求められてくるスキルは異なります。
順番に例を見ていきましょう。

ゲーム業界

よく使われている言語;C++、C#、Unity

比較的、難易度が高い静的な言語が使われやすく、実行速度が求められます。
数学や物理の知識も必要になってきます。
エンジニアとしては、難易度が高めの業界になります。

広告業界

よく使われている言語;C、Node、PHP

実行速度が求められる業界です。
アルゴリズムを知っている方がいいです。
広告を早く表示するために、通信の知識が求められます。
また、最適な広告配信を行うために、統計的な知識も必要とされます。

ECサイト

よく使われている言語;PHP、Ruby、Java

データベースの設計が重要になってきます。
実行速度はあまり求められません。
ビジネス側とコミュニケーションを取るスキルが大事になってきます。
また、最適な在庫情報を出すために、統計的な知識も必要とされます。

その他のWebサイト

よく使われている言語;PHP、Ruby、Java

実行速度はあまり求められません。
プログラミング、データベースの設計、サーバーやインフラの知識などが幅広く求められます。
また、ビジネス側とコミュニケーションを取るスキルも大事です。

データ分析

よく使われている言語;R、Python

統計や数学的な知識が求められます。
また、ビジネスへのコミットが求められるので、コミュニケーションが大事です。

地味な仕事らしいので、興味がある人はこちらを読んでみて下さい。

こうやって見ていくとわかるように、業界ごとに求められる能力はまったく異なります。
ということは、ゲーム業界では仕事ができる人でも、ECサイトの業界で働いたら普通の人という可能性もあります。

逆もまたしかりです。
実行速度の早いプログラムを書けても、コミュニケーションができなければ、ただの変人扱いされるかもしれません。
つまり、数学力が活かされる業界もあれば、物事を順序立てて考える論理的思考やコミュニケーション力が求められる業界もあるということです。
というか、むしろ後者の二つが活かされる業界の方が多いかもしれません。

これが、私が「才能」をあまり気にする必要はないと言った理由です。
次に、現時点での技術力に関係なく問われる能力について説明します。

現時点の技術力に関係なく問われる能力

現時点での技術力や才能に関係なく、エンジニアとして大事な能力もあるので紹介しておきます。
才能に関係なく、これらを抑えておけば、大きな武器となります。

プログラミングを楽しめる

プログラマとして給料を貰う以上、プログラミングは仕事なのですが、それでもプログラミングを楽しめる人は長く業界に残っています。
「どうやったら、この処理が早くなるか?」といったことを楽しめる能力が、プログラマには大事になってきます。

学習意欲が高い

web業界の進化のスピードは非常に早いです。
10年前までは、スマホはありませんでしたが、今では全世界で多くの人がスマホを使っています。
ということは、この10年間で、エンジニアは、スマホで動くアプリに対応する必要がありました。
このような変化に対して、積極的に学習していく能力が、プログラマには求められます。

論理的思考能力

プログラミングを書いていると、何らかの問題にぶつかることは、日常茶飯事です。
そういった時に、問題の理由を切り分けて考えつつ、自分の力で調べていける能力が、プログラマには必要とされます。

才能よりも幅広い知識が求められることがあります

次に、才能に関係なく、個人が戦える戦略を考えてみます。

プログラミングに関することで、一つのことを極めることは難しいのですが、幅広く理解する分には難易度が下がります。
「一つのことを極めた方がいい」という意見もありますが、開き直って幅広く理解するのも一つの戦略です
下記に、エンジニアの職種の一覧を紹介します。

  • サーバーサイドエンジニア
  • フロントエンジニア
  • デザイナー
  • iOSエンジニア
  • Androidエンジニア
  • ネットワークエンジニア
  • サーバー管理者

会社によっては、この中の一つのを極めている人が求められることもあれば、複数のことを知っている人が求められるケースもあります。

例えば、このケースでは当然、高スキルの人が求められます。

高スキルのサーバーサイドエンジニア  普通のサーバーサイドエンジニア

でも、アプリエンジニアも求められている場合だと、このようになる場合もあります。

高スキルのサーバーサイドエンジニア  普通のサーバーサイドエンジニア + 普通のアプリエンジニア

外国人が多い職場だと、このようになる場合もあります。

高スキルのサーバーサイドエンジニア  普通のサーバーサイドエンジニア + 英語力

つまり、いくつかの能力を持っていれば、それを活かせる会社があるということです。
最後に、持っているとプラスになる能力について説明します。

持っているとプラスになる能力

英語力

日本企業では、英語力はなぜか評価されます。
英語力があっても大して使う機会はないのですが、「グローバル化」という流行りのキーワードにのって、日本企業では英語ができる人材を求める傾向にあります。
また、英語でプログラミングに関するドキュメントを読んだり聞いたりすることもあるので、英語力はあって悪いものではないでしょう。

UML

UMLとは「Unified Modeling Language」の略で、プログラミングを書く時に作成する設計図のようなものです。
これを使うとロジックが整理されますし、他人ともロジックを共有しやすいので、世界的によく使われています。
プロジェクトマネージャーやリーダーになる人は、持っているといいでしょう。
これも、きっと強い味方になってくれるはずです。

コミュニケーション力

他人とコミュニケーションをとるということは、営業だけでなく、プログラミングでも重要な能力です。
これは意外と見過ごされやすいので、他人と差をつけやすいところです。
プログラミング力に自信がない方は、是非とも他人との気持ちよいコミュニケーションを心掛けましょう。

ここまで読んでもらえれば、理解したはずです。
才能に勝つ方法とは、「自分のエンジニアスキルを水平的に広げる」+「英語力」+「UML」+「コミュニケーション力」といった感じに、自分のスキルを積み上げていくことです。

もしかしたら難しく感じるかもしれませんが、一気に勉強する必要はありません。
地道に、少しづづ、トライしてみて下さい。

また、一人でキャリアプラン考えることが苦手だという方は、転職エージェントに相談してみるのも手かもしれません。
転職エージェントは、今の市場で何が求められているかを、よく知っているので参考になります。
私のお勧めする転職エージェントはdodaです。
以前に、相談した時に、非常に親身になって相談にのってくれました。

Good luck for your engineer life!

この記事に興味が面白かった方は、こちらの記事も読んでみて下さい。

-エンジニアの処世術

Copyright© プログラミング道場 , 2019 All Rights Reserved Powered by AFFINGER4.