プログラマーは高収入です。ソフトウェア開発者は毎日カジュアルな服装をしています。誰でも独学でプログラマーになることは可能です。これらは、人々が開発者になりたいと言う理由のほんの一部に過ぎません。残念ながら、求人市場には、優れたプログラマーになるための素質や性格を備えていない、優れた知性や知識を持っているかもしれない人が溢れています。ソフトウェア開発者になるべきかどうかを決める際に考慮すべき点をいくつかご紹介します。
この無料の電子書籍を読んで、他の IT 職種について知り、自分に合っているかどうか判断してください。
1. 独学よりも訓練を受けたい
ほとんどの開発現場では、たとえ会社が他の従業員向けの研修プログラムを用意していたとしても、研修が行われることはほとんどありません。せいぜい、書籍購入費用を会社が負担してくれる程度でしょう。プログラマーは、初日から必要なスキルをすべて(あるいは少なくともほとんど)身に付けていることが求められます。さらに悪いことに、プログラマーは問題解決能力に優れた非常に優秀な人材であるという思い込みが蔓延しています。この思い込みから、上層部は優秀なプログラマーには研修は不要だと考えるようになります。そして、開発者向けの研修には多額の費用がかかります。その結果、部署が異動する際には、何が起こっているのかを自分で理解する必要があり、おそらく独学で学ぶ必要が出てくるでしょう。
参照:開発者としてのキャリアはあなたにぴったり? 自問自答すべき10の質問(TechRepublic)
2. 規則的な勤務時間を好む
ソフトウェア開発プロジェクトは遅延が多いことで有名です。たとえ予定通りに納品されたプロジェクトであっても、どこかの時点で必ず遅れが生じます。雇用主からの不規則で変動的な時間制限が苦手(または対応できない)なら、開発はあなたには向いていません。正念場を迎えると、雇用主はあなたの子供のサッカーの試合よりも、100万ドル規模のクライアントに製品を届けることに注力するでしょう。
3. 転職よりも定期的な昇給を優先する
開発の世界は、スキルの価値が常に低下していく世界です。変化の遅い技術を扱う会社で働いているのでなければ、あなたのスキルセットの価値は日々下がっていく可能性が高いでしょう。最先端技術は急速に変化しており、今日注目されているスキルも明日にはつまらないものになるかもしれません。そのため、毎日同じデスクに座って同じ仕事をしていては、生活費の上昇を上回る昇給を期待することは困難です。現在の価値を維持するためにも、スキルを常に最新の状態に保つ必要があります。さらに、給与を上げたいのであれば、スキルセットを大幅に拡張し、社内昇進するか、他の会社に転職する必要があります。
4. 他人とうまく付き合えない
内向的な性格や一人で仕事をすることを好むことは一つのことですが、他人とうまく付き合えないことは全く別の問題であり、開発者としてあなたのキャリアを阻害する可能性があります。さらに、あなたの上司は非技術者(あるいはしばらく実務経験のない技術者)である可能性もあるため、非技術者に対しても自分の考えをうまく伝えられる必要があります。
参照: Python 入門: 無料リソースの一覧 (TechRepublic PDF)
5. すぐにイライラする
ソフトウェア開発は往々にして非常にフラストレーションの溜まる仕事です。ドキュメントが古かったり間違っていたり、前のプログラマーが書いたコードが読めなかったり、上司が意味不明なルールを定めていたり…挙げればキリがありません。しかし、常に小声で悪態をついたり、モニターに向かって怒鳴り散らしたりする人の隣で働きたい人はいません。一見10分の仕事に8時間も費やして気が狂いそうになるようなタイプの人は、この仕事に向いていません。
6. 他人の考えに心を閉ざしている
プログラミングでは、多くの問題に複数の「正しい」答えがあります。批判をうまく受け止められなかったり、他人の提案に耳を傾けなかったりすると、重要なことを見逃してしまう可能性があります。例えば、数週間前、ある若手社員が私に提案をしました。少し考えた後、試してみることにしました。ところが、彼の提案は正しく、私の提案は間違っていました。彼の提案のおかげで、コードの実行時間は数日から数時間に短縮されました。経験レベルの違いを理由にこの人を無視していたら、きっと愚かな選択だったでしょう。
7. あなたは「細かいことにこだわる人」ではない
プログラミングは細部にこだわるものです。ピリオドが1つ抜けているといった些細なことが、偶然の失敗と完璧な成功を分けることもあります。ピリオドがどこに抜けているか分からないような人なら、キャリアの幅はせいぜい限られてしまうでしょう。
8. 仕事に個人的な誇りを持っていない
もちろん、教科書通りにプログラミングして、まずまずの成果を上げることは可能です。問題は、教科書が何度も書き換えられることです。ソフトウェア開発は、一日中同じボルトを締め続ける工場の仕事ではありません。少しトルクが強すぎたり弱すぎたりしても、何の影響もありません。ソフトウェア開発には独立した思考が求められ、そのためには、仕事に誇りを持つ必要があります。さらに、間違ったやり方でプログラミングしても、最終的には本番環境で問題なく動作してしまうことはよくあります。一見問題にならないように見える「小さなエラー」は、結局問題を引き起こします。それぞれのプロジェクトを誇りを持って取り組まないプログラマーは、質の低い仕事しか生み出しません。そして、それが彼らのキャリアを短命にしてしまうのです。
参照: 開発者の皆さん、絶望してください: 時間の半分は悪いコードに費やされています (ZDNet)
9. 先に撃ってから質問するのを好む
ソフトウェア開発者、少なくとも優秀な開発者は、実際に入力するよりも、何を入力するかを計画することに多くの時間を費やします。通常、プログラマーがコードエディターを開いてキーボードを叩き始めると、書いたもののほとんどは後で削除されてしまいます。熟考し、検討し、計画を立てるプログラマーは、より少ない問題でより短い時間でより良いコードを書きます。多くのプログラマーが正しい入力方法をほとんど知らないのには理由があります。仕事で難しいのは、何を入力すればよいかを知ることです。「実際の仕事」に取り掛かる熱意に最初から時間を投資しない人は、実際には「実際の仕事」を怠っているのです。もしあなたが考えるタイプではなく、実行するタイプなら、ソフトウェア開発はおそらくあなたにとって良いキャリア選択ではありません。
10. オタクっぽい人が嫌い
様々な理由(中には正当な理由もあります)から、多くの人はエンジニアや技術者っぽい人と一緒にいるのが苦手です。もしあなたがディルバートやウィアード・アルのようなタイプの人と付き合うのが苦手なら、プログラミングの世界に入ることは考えない方がいいでしょう。開発者は皆そんな人なのでしょうか?もちろん違います。しかし、彼らは労働力の大きな部分を占めているので、結局この業界ではうまくいかないでしょう。
開発者の役割はあなたに合っていると思いますか?これらのリソースが役立ちます
- 開発者になる方法:チートシート(TechRepublic)
- すべてのプログラマーが読むべき15冊の本(TechRepublicの無料PDF)
- ソフトウェア開発者は変化している: 彼らは異なる方法で学びたいと考えている (ZDNet)
- 開発者として成功するキャリアを築く方法(TechRepublicの無料PDF)
- 採用キット:IoT開発者(テックプロリサーチ)
- 採用キット: Python 開発者 (Tech Pro Research)
- 開発者に最も高い報酬をもたらすトップコーディング言語 (ZDNet)
あなたの考え
開発者になろうかと考えていますか?それとも、少し前にその決意を固めたばかりですか?TechRepublicのメンバーとあなたの洞察や経験を共有しませんか?