私は、転職を考えてプログラミングの世界に飛び込もうとする多くの人と話をします。彼らが最も懸念することの1つは、失われた時間を取り戻すことです。
この分野で長く働いている人たちと競争するためには、あらゆる言語を学び、あらゆる技術的スキルをすぐに習得する必要があると考えるのです。
これは大きな間違いです。
誤解しないでください。技術的なスキルは、あなたのキャリアにとって不可欠です。コードを書けなければ、プログラマーになるのはかなり難しい。
しかし、最高のプログラマーを他から引き離すものは、技術的な能力ではありません。
多くのプログラマーが軽視している「ソフト」スキルなのです。
プログラミングは、コードを書いたりデバッグしたりするだけではありません。
最高のプログラマーは、ある重要なことを理解しています。それは、技術的なプログラミングスキルよりも、こうした非プログラマーのスキルのほうが、仕事や昇進、面接、顧客、取引先を多く獲得できることが多いということです。
なぜでしょうか?
誰とでも喧嘩して、チームと話ができない優秀なプログラマーよりも、コミュニケーションが上手で、チームワークの良い有能なプログラマーの方が、はるかに多くのチャンスを得ることができるのです。
では、プログラミング以外のスキルは、あなたのプログラミングスキルを次のレベルへ引き上げるのでしょうか?
今日はその話をしましょう。
コミュニケーション
どのようなキャリアを歩むにしても コミュニケーションは不可欠です。時には、技術的な問題について同僚と明確かつ正確にコミュニケーションを取り、期限までにプロジェクトを完了させる必要があります。また、コードの書き方を知らない人に自分の仕事を伝えなければならないこともあります。多くのプログラマーは、専門用語を使わずに非プログラマーとコミュニケーションをとることがいかに難しいか、ひどく過小評価しています。誰に対しても明確に伝える方法を学ぶことで、あなたは際立った存在になれるのです。
タイムマネジメント
他の人と差をつけるには、「やる」と決めたら確実にやり遂げることが大切です。これは、いつ何時、突然、タイムラインに疑問を投げかけるような問題にぶつかるか分からないからこそ、言えることです。完成したプロジェクトを期限内に納品できるか、未完成のプロジェクトを期限内に納品できるかの違いは、時間管理にかかっているのです。世界中のどんな知識やスキルも、自分の仕事を管理し、時間通りに終わらせることができなければ、あまり意味がありません。何をするにしても、時間の管理は欠かせません。
問題解決
プログラミングは、問題解決に尽きます。コードを書いたり、デバッグしたり、他の人が作ったプログラムを改良したりするために、クリエイティブな方法を見つける必要があります。問題に対する新しく面白い解決策を見つけることで、他の人と差をつけることができます。多くの場合、あなたは誰かからビジョンや目標を与えられ、それを実現するための最良の方法を問題解決によって見つけ出さなければならないでしょう。新しい会社、新しいプログラム、新しいテクノロジーは、日常の問題を解決する新しい方法を見つけた人たちによって生み出されてきました。どのチームも、どの企業も、どのクライアントも、問題を見て解決策を見出すことのできる問題解決者を必要としているのです。
書くこと
文章を書くことは、どこに行っても必要不可欠なスキルです。マニュアルを書くにしても、プロジェクトの進捗状況を部長に報告するにしても、文章を書くことに変わりはありません。誤字脱字、文法の不備、プロらしくない文章は、同僚、社員、上司、顧客から誤解や不信を招く。しかし、文法的な問題のない明瞭な文章は、信頼を築きます。
チームワーク
プログラマーは、完全に一人で仕事をすることはありません。チームで、あるいは顧客やクライアントのために、コードを書き、プログラミングを開発するのです。人は、あなたと一緒に仕事をするのがどんな感じだったかを覚えています。一緒に仕事をするのが難しい、あるいは気難しいという評判が立つと、たとえその仕事に必要な技術力があったとしても、昇進やチャンスを逃してしまう可能性があります。人は優れたチームメイトと働きたいと思うもので、チームワークを心得ている人と働くためなら、他のスキルを見過ごすこともあるでしょう。
アカウンタビリティ
あなたがどんなに優秀で、自分の技術に専念していても 物事はうまくいかないものです。予期せぬ技術的な問題で締め切りに間に合わなくなることもあるでしょう。要件を忘れて、コードに重要なことを書き込まないこともあるでしょう。あるいは、単にミスを犯すかもしれません。物事がうまくいかないとき、あなたはどうしますか?誰かのせいにしたり、責任をとろうとしたりしますか?自分の都合の良いように、中途半端なことを言ったり、好き勝手なことを言ったりしますか?それとも、良いことも悪いことも自分の手柄にするのでしょうか?もしあなたがケアラーに信用を得たいのであれば、説明責任を持たなければなりません。
ラーニング
プログラミングの世界は、決して止まってはいません。常に新しい言語、新しい技術、新しいアプリケーションが世の中を覆そうとしています。それがプログラマーになる面白さです。プログラマーになるには、常に勉強が必要です。今日必要な技術力は、明日必要な技術力とは限りません。好奇心旺盛で常に学習していれば、変化に対応できるようになります。
コードを書いたり、不具合を素晴らしいキャリアを築くには、これらのスキルを受け入れ、技術的な知識を最大限に活用する必要があります。
世界で最も優れたプログラマーは、ソフトスキルの範囲内でしか活躍できないことを常に念頭に置いてください。
これらのスキルを軽視しないでください。これらのスキルは、あなたをより良いプログラマーに、そしてより良い人間にします。今日から実践できるのです。