
- 「プログラミングに向き・不向きはある?」
- 「プログラミングが向いていない人ってどんな人?」
- 「プログラミングが向いていない人はエンジニアになれない?諦めたほうが良い?」
この記事ではそういった悩みを解決します。
この記事でわかること
- スキル不足≠プログラミングが向いていない
- プログラミングが向いていない人の10の特徴
- プログラミングが向いていない人でもエンジニアになれます
- 1番重要なことはプログラミングが「好き」かどうか
記事の信頼性
- 現役エンジニア歴8年
- プログラミングは独学で習得
- ただし、独学で2回挫折した経験あり
独学に失敗&成功した経験、さらに現役エンジニアの目線から、プログラミングについて解説することが出来ます。
プログラミングを始めて勉強すると「自分はプログラミングに向いていないかも…」と感じることがあります。
確かにプログラミングには向き・不向きがあって、同じようなエラーを繰り返したり、自分が思ったようなプログラムが組めなかったりすると、向いていないのかもと思ってしまうかもしれません。
現役エンジニアの目線でアドバイスすると、プログラミングに向いている・向いていないは気にする必要はありません。
先に結論をお伝えすると、プログラミングの向き・不向きよりも、プログラミングが「好き」と感じるかどうかが1番重要で、プログラミングが楽しいなと感じている人は迷わず突き進めば大丈夫です。
この記事では、『プログラミングが向いていない人の特徴を理解し、向いていない人でもエンジニアになる方法』について解説します。
この記事を読むことで、プログラミングが向いていないかも…という不安から解放されますよ。
スキル不足≠プログラミングが向いていない
まず前提として、プログラミングの勉強を始めたばかりでまだスキル不足な人が、「自分はプログラミングが向いていないのかな…?」と考えるのは勘違いです。
なぜなら、スキル不足は単純に学習時間が不足しているだけで、プログラミングの向き・不向きとは関係がないからです。
例えば、プログラミングを勉強していて以下のようなことで悩んだことがある人。
- 簡単なプログラムでもバグばかり埋め込んでしまう
- 自分の思った通りにプログラムが動かない
- 作りたいものがあるけど、作り方がわからない
上記の悩みは『スキル不足』が原因で、プログラミングの向き・不向きではなく、単純に学習時間が不足しているだけです。
プログラミングスキルは学習すれば一定のレベルには誰でも到達できるので、まずは学習を積み重ねることが必要です。
プログラミングを勉強し始めるときは誰しも知識ゼロ・経験ゼロからスタートするので、あなたの現状を嘆く必要は全くないですよ。
プログラミングが向いていない人の10の特徴
プログラミングに向いていない人には次の10の特徴があります。
- 論理的思考が苦手
- 技術に対する好奇心がない
- 疑問を持たない
- 地道な作業や調査が好きではない
- コミュニケーションが苦手
- 自分で試す好奇心や自発性がない
- 作業が遅れたら残業すればよいと思っている
- 見栄を張る
- 考えていない、自分の意見を持たない
- プログラミングがつまらないと感じている人
ただ、上記に当てはまる点があったとしても落ち込む必要はなくて、意識して改善していけばOKです。
真摯に自分と向き合うことが大切ですよ。
論理的思考が苦手
論理的思考が苦手な人は、
- 細かい計算処理ができない
- 業務の処理をするワークフローが組めない
- 画面の表示を制御するプログラムがうまく実現できない
といった傾向があります。
すると、要求仕様が実現できないとか、ある条件によってはプログラムがうまく動作しないとか、下手するとシステムが動作停止するレベルの不具合を埋め込んでしまいます。
また、プログラムが読みにくい傾向もあります。
読みやすくきれいなコードを書くためには、アルゴリズムなどを簡単に説明できる論理的思考力が必要です。
「二重表現しているようなプログラム」や「無駄な繰り返し処理や分岐処理」をしていると、可読性の低下やメンテナンス性の低下に繋がります。
書いてあるコードを正しく理解するのも苦手な傾向がありますね。
製品開発をするときは、コードを書くこと以上に、書いてあるコードを的確に読み解く力が重要です。
論理的思考ができないと、書いてあるコードのロジックが正しく理解できず、間違ったコードを埋め込んでしまいがちです。
技術に対する好奇心がない
新しい技術とか最新の業界事情に興味・好奇心が湧かないことはプログラミングに向いていない人の特徴です。
プログラミングの世界は技術進化が早くて、今まで安泰だと思っていた言語も廃れてしまうので、業界の最新事情にアンテナを貼っていたり、新しい技術を自分で獲得していく必要があります。
技術に対する好奇心がないとどうなるかというと、市場から必要とされなくなり、稼げないエンジニアになってしまいます。
- オンプレミス開発からWeb・IT・クラウドが主流に
- 公式サポート言語が変わる(例:Androidアプリ開発がJava → Kotlin)
- 案件No.1の言語だったJavaが1位ではなくなる
- AI関連の開発需要が急激に増える
上記ような業界の変化がここ数年で実際に起こっているので、技術に興味がない人はつらい業界かも。
疑問を持たない
疑問を持たない傾向の人はプログラミングに向いていません。
例えば「分からないことをネットで調べて「そうなんだ」と受け止めてしまう人」や、「人に言われたことを鵜呑みにしてしまう人」は要注意です。
どんな理由であれ自分の書いたコードには責任を持つ必要があり、そのためには、なぜそのコードで正しいのかを理解する必要があります。
- なぜネット上でこの情報が正しいとされているのか?
- 他の書き方だとなぜダメなのか?
- それを裏付けるものは何か?
「ネットに書いてある情報を鵜呑みにしてコードを書いた結果、上手く動かなかった。なぜ不具合になったのか?と聞かれたところ、ネットに書いてあったからと答えた。」
私は医療機器ソフトウェアを作っていますが、もし上記のような理由で不具合が起こり、医療事故に繋がったとしたら…どう思いますか?
地道な作業や調査が好きではない
地道な作業や調査が好きではない人はプログラミングに向いていません。
プログラミングは動くものができたときは派手なのですが、開発中は黙々と作業する地味なことが多いです。
- 1つのプログラムを作り上げるのに何ヶ月もコードを毎日書く
- 大量のエラーやバグに根気よく立ち向って解決する
- 不具合の原因がどこにあるか1つ1つ仮説を立てては検証を繰り返す作業
- 毎日長時間椅子に座りつづける
営業職のように足を動かして各地を飛び回る、といったことが好きな人には向いていない世界です。
コミュニケーションが苦手
プログラミングをする人はコミュニケーションが苦手な人には向いていないことがあります。
プログラマ=寡黙、オタク、マニアみたいなことをイメージする人も多いと思いますが、実際の開発ではそんなことはなくて、コミュニケーションとれないと業務が成り立ちません。
- コンピュータと人間の仲を取り持つ架け橋
- 開発の進捗状況を正しく報告する
- 課題をソフトウェアで解決できることを魅力的に提案する
コミュニケーション力が不足すると、顧客の要求を正しく聞き出せなくて、開発しても価値のないプログラムが出来上がってしまいます。
チームで開発するときは、チーム間の情報共有が上手くいかず進捗の遅れの原因となりかねません。
人とコミュニケーション取るのが苦手だからエンジニアになりたいと考えている人、考えを改めましょう。
自分で試す好奇心や自発性がない
自分で試す好奇心や自発性がない人はプログラミングが向いていないです。
なぜなら、プログラミングは思った通りにいかないことも多々あるので、とにかく試してみる姿勢が大切だから。
知っている知識の範囲で全てをカバーできれば問題ありませんが、そんなことは滅多になくて、知らない知識を学びつつ試行錯誤しながら開発する、といったことが多いです。
- サーバーサイドをRuby, JavaScript, Pythonのどれを使ったら良いか試してみる
- AIのディープラーニングを業務改善に活用できないか試してみる
自分で率先して試すことができる人は、新しい技術の習得も早く、技術の選択肢も広がります。
幅広い選択肢の中から最適な選択をすることができるので、開発でも失敗しづらく、会社でも高く評価されますよ。
作業が遅れたら残業すればよいと思っている
いわゆる真面目に働くことが好きなタイプの人もプログラミングが向いていないです。
プログラマは手を抜くことが命であって、効率化してこそ成果です。
「プログラミングが遅れたから残業しよう…」ではなく、「作業が遅れないようにどう効率化すれば良いか?」といったことを常に考える必要があります。
真面目に作業する人は上から言われた無理難題を素直に受け止めてしまい、残業でなんとかしようとして、結果自分の体を壊す。
会社で働いていて、体を壊して辞めていった人を何人も見てきました…。
見栄を張る
ついつい見栄を張ってしまう人もプログラミングに向いていない傾向があります。
例えば、「見積った作業工数より短い時間でできることをアピールする人」や、「知らない技術のことも簡単にできると言ってしまう人」などですね。
特に男性の人って見栄をはる傾向が多いんですが、自分の首を締めるどころかチームの人にも迷惑をかけることになるので、よろしくないです。
プログラミングは決められた納期通りにきっちり終えることが1番評価に繋がります。
少し背伸びをして短い納期を設定する → 納期通りに終わらなくて遅延する → 再スケジューリングすると、同じ開発期間であっても印象が悪く残ってしまいますよ。
考えていない、自分の意見を持たない
言われたことをやるだけで、自分の意見を持たない人はプログラミングが向いていないです。
プログラミングは何かの課題を解決するための「手段」として行うものなので、なぜプログラミングが必要なのかがぶれてしまうと、顧客が求めるものが作れません。
なぜ必要なのか本質を理解せずに開発すると、結局手戻りの原因になってしまうことが多々ありますよ。
プログラミングがつまらないと感じている人
※最初にお伝えした通り、勉強し始めたばかりでプログラミングがつまらないと感じている人は別です。
スキル不足ではなく、ある程度プログラミングができるようになった結果、プログラミングがつまらないと感じている人は…本当に向いていないですね。
つらいことを仕事にしても人生楽しくないので、別のポジションや部署に異動するか、思い切って別業界に転職した方が幸せになれるかもしれません。
プログラミングが向いていない人でもエンジニアになれます
プログラミングに向いていない人の特徴に当てはまるからといって心配する必要はありません。
なぜならプログラミングに向いていない人でも以下の理由でエンジニアになれるからです。
- 実践で求められるスキルはそれほど高くない
- プログラミングに向いていないエンジニアは実在する
- 向き・不向きはやってみないと分からない
実践で求められるスキルはそれほど高くない
実は企業に勤めて製品開発するときに必要になるスキルってそんなに高くなくて、基本的なスキルが身についていれば十分戦力となれます。
どれくらいのスキルが必要かというと、1つの言語がある程度できるようになるために必要な学習時間は200〜300時間ぐらいと言われていますが、そのレベルがあれば十分仕事できます。
他に必要なスキルがあれば自分で学べるレベルにはあるし、製品のドメイン知識は開発しながら学んでいけば良いので問題ないかと。
じゃあ製品開発の中で技術難易度が高い部分はどうしているかというと、技術力のある人が担当しているだけ。
企業の中にもスキルレベルの高い人がいて、コードレビューでフォローしたり、解析が難航しているところのヘルプに入ったりして、各プロジェクトが上手く回っています。
言い換えると、基礎的なスキルを身につけるために必要な学習時間である200〜300時間を学習できる人は、プログラミングの才能あり=向いていると言えますよね。
プログラミングに向いていないエンジニアは実在する
エンジニアとして働く人がみんなプログラミングに向いている訳ではないです。
実際、チームで仕事をするといろんなタイプの人がいて、必ずしもみんながプログラミングに向いている性格をしていたり、プログラミングが好きな人達が集まるわけではないです。
例えば、次のような人たちも企業で一緒に働いていて、そういった人達が集まっても仕事はできるし製品開発は無事に行われています。
- 感情的な思考をしていて、プログラミング向いてなさそう…
- プログラミングが好きじゃないのかな?
- 仕事だからと割り切ってやっている人
また、エンジニアといっても以下のようにいろんなポジションがあるので、プログラミングが向いていなくても働けます。
- プロジェクトリーダー(PL):プログラミングをして開発をする人たちとチームを組んで、開発プロジェクトの管理や調整を行う仕事。プログラミングスキルより、マネージメントスキルが重要。
- 上流工程・仕様担当:ソフトウェアの仕様や設計をメインに行う人。プログラミングを行うためのインプットを作る仕事。製品仕様やドメインの知識が重視される。
- SE:顧客の要求から仕様を決定し、大まかな設計をするまでの情報システム開発を担当する人。交渉力や提案力が求められる。
どのポジションでも共通するのは、プログラミングやソフトウェアの作り方や大変さを理解しているからこそできることがある、ということ。
PLは、チームメンバにプログラミングに向いていない人がいる場合、その人が気持ち良く開発ができるような担当を割り振る必要がありますよね?
「プログラミングに向いていなかも…」と思っても、エンジニアとして働くことはできるので、変に思い詰めてしまう必要はありません。
向き・不向きはやってみないと分からない
正直、プログラミングの向き・不向きはやってみないと分からないです。
私も最初は面白そうだなと思ってプログラミングを始めたけど、2回挫折したときは本当につまらなかったし、マジで才能ないんだなと実感しました。
ただ、プログラミングスキルがどうしても必要で必死になって勉強した結果、今ではめっちゃ向いている!と自負しています。
特に、世の中にはプログラミングの向き・不向きを判定する適性検査みたいなのがありますが、ぶっちゃけムダですね。
良い結果が出た人は前向きに頑張れるかもしれませんが、ネガティブな結果が出た人はどうするのでしょう?信用して良いかよく分からないツールが出した結果を鵜呑みにして諦めるのでしょうか?
プログラミングの向き・不向きはある程度学習を積み重ねたあとでしか分からないので、まずは200〜300時間の学習を諦めずに頑張るしかないです。
エンジニアの仕事はプログラミングを書くだけではないし、むしろ仕事の全体のうちプログラミングが占める割合って2〜3割、向いてないなと思っても別のポジションへ行くなど対応はできます。
1番重要なことはプログラミングが「好き」かどうか
プログラミングに向いている・向いていないは確かにありますが、それよりもプログラミングが「好き」と感じるかどうかが重要です。
好きなことを仕事にすることがあなたの人生にとって一番良いからで、嫌いなことを仕事にしてもつらいだけです。
エンジニアとして働くのであれば少なからずプログラミングに触れる機会はあって、その度に嫌な思いをすると働きたくなくなりますよね。
プログラミングが向いていないとしても、好きであれば楽しんで仕事ができて、もっと仕事をしようという気になれます。
プログラミングはある程度できるようになってくるとガラッと世界が変わって見えるので、まずはそこまで努力はし続けてみて欲しいです。
過去の私のように、勉強中にプログラミングが向いていないのかな…と感じることがあっても、本当に向いているかどうかそもそも分からないことが多いので、1度始めたらまずはやり続けましょう。
現役エンジニアに相談してみる
あなたが今プログラミングについて悩んでいることは、現役のエンジニアに直接相談してみるのがオススメです。
なぜなら、現役エンジニアの人も過去にはあなたと同じように悩み、その悩みを克服しているので、解決策やノウハウを知っているからです。
例えば、プログラミングスクール「テックアカデミー」の無料カウンセリングを使えば、現役エンジニアの人と直接話をすることができます。
もちろん、カウンセリングを受けたらからといってスクールに申し込む必要はないので、軽い気持ちで悩み相談してみればOKです。
無料なのでリスクはゼロ、やらなきゃ損ですよね。
申し込みは以下のリンクからできて、1分で申し込みできますよ。
>> TechAcademy(テックアカデミー)無料キャリアカウンセリングに申し込む
\ 現役エンジニアに無料で相談 /
※自宅にいながら気軽に相談ができる
※エンジニア転職で平均67万円の年収アップ