プログラミング道場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サイトの業界で働いたら普通の人という可能性もあります。
実行速度の早いプログラムを書けても、コミュニケーションができなければ、ただの変人扱いされるかもしれません。
「才能」を気にする必要はあまりないと言った意味が、なんとなく伝わってきたのではないでしょうか?

次に、エンジニアの職種について説明します。

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

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

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

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

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

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

でもアプリもできる人だと、会社によっては、このようになる場合もあります。

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

だんだんと、才能を持っている人と戦う術が見えてきたのではないでしょうか?
最後に、持っているとプラスになる能力について説明します。

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

英語力

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

UML

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

コミュニケーション力

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

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

是非、トライしてみて下さい。

Good luck for your engineer life!

 

-エンジニアの処世術

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