プログラマーの適性は、数学の得意さではない
数学が得意な人、頭の回転が速い人、理系の人。プログラマーの適性としてよく挙がるこれらは、 実は現場での成否とあまり関係がありません。実際に続いている人に共通しているのは、 分からない状態に耐えられることと調べ直すのを面倒がらないことの2つです。
この仕事の大半は「うまくいっていない時間」
プログラミングを仕事にすると分かるのは、書いている時間より、動かない原因を探している時間のほうが長いということです。 エラーの意味が分からない。想定と違う値が入っている。昨日まで動いていたものが動かない。
このとき、多くの人が苦しくなるのは「いつ終わるか分からない」という点です。 1時間で解けるのか、3日かかるのか、始めた時点では分かりません。 この宙ぶらりんの時間に耐えられるかどうかが、続くかどうかをいちばんよく説明します。
逆に言えば、ここが苦手でも工夫で補えます。「25分やって進まなければ人に聞く」と時間で区切ってしまえば、 耐える時間の上限が決まります。根性ではなく設計で解けます。
数学が必要な領域は、思ったより狭い
業務で書くコードの大半は、条件分岐、繰り返し、データの並べ替えと集計です。使う数学は四則演算と論理が中心で、 高校数学が必須というわけではありません。
高度な数学が要るのは、機械学習の研究、3Dグラフィックス、暗号、信号処理といった特定の領域です。 これらは重要ですが、仕事全体の一部にすぎません。 「数学が苦手だから無理」と考えて入り口で止まるのは、判断としてもったいない。
意外に効くのは、読む力と書く力
実務で毎日やるのは、自分でコードを書くことより、人が書いたものを読むことです。 既存のコードを読み、仕様書を読み、エラーメッセージを読み、他人の質問と回答を読む。
そして詰まったときに助けを得られるかどうかも、書く力で決まります。 「動きません」だけでは誰も答えられません。「やったこと・期待した結果・実際の結果」の3点で書けると、 返ってくる答えの質が段違いに変わります。文章を扱ってきた人が不利にならないのは、こういう理由です。
細かさは、この分野では実力になる
1文字違うだけで動かない世界なので、几帳面さがそのまま成果に直結します。 普段「細かいことを気にしすぎ」と言われてきた人ほど、ここでは評価されます。
逆に大枠をつかむのが得意で細部を流しがちな人は、弱点にする必要はありません。 人の注意力は当てにせず、機械に確認させる仕組みを早めに入れれば済みます。 これはむしろ、良いエンジニアの標準的なやり方です。
向いていないと感じたときに見るべきこと
「向いていないかもしれない」と感じるとき、原因は適性ではなく環境であることがよくあります。
- 聞ける相手がいない。初学者が一人で詰まると、時間だけが溶けます。これは能力の問題ではありません。
- 課題が大きすぎる。最初から大きなものを作ろうとすると、完成しないまま終わります。
- 比較対象を間違えている。学生時代から書いている人と比べれば、差があって当然です。
- 目的が「学習」になっている。教材を終わらせることが目的化すると、面白さが消えます。
比べるなら3か月前の自分です。そして題材は、自分の困りごとを解く小さな道具がいちばん続きます。
開発職だけが道ではない
技術に近い仕事は、コードを書く仕事だけではありません。 テストや品質保証、業務の自動化、データ分析、テクニカルサポート、技術営業、ディレクション。 どれも技術の理解が必要で、そしてどれも人手が足りていません。
とくに技術と、それを使う人のあいだに立てる人は非常に希少です。 開発の基礎を持ったうえでこの位置に立てると、代えのきかない存在になります。 入り口を開発職だけに絞らないほうが、選択肢は現実的に広がります。
7つのタイプと、伸ばし方
| タイプ | 強みが出る場面 | 次の一歩 |
|---|---|---|
| 問題解決型 | 不具合の原因追及 | 解いた問題を記録に残す |
| ものづくり型 | 手を動かして形にする | 作ったものを公開する |
| 品質職人型 | テスト・レビュー・運用 | 再現手順つきで記録する |
| 学習好奇型 | 新しい技術の吸収 | 学んだら小さく作って終える |
| チーム開発型 | 読む・聞く・伝える | 人のコードを読む時間を取る |
| 分析・データ型 | 業務改善・データ整理 | 表計算の自動化から始める |
| 橋渡し型 | 導入支援・技術営業 | 手を動かす経験も少し積む |
この記事は本アプリのために書き下ろしたものです。特定の言語・教材・スクールを推奨するものではありません。