「未経験転職の自己PRにプログラミングスキルは使えるのか?」と考えている社会人向けの記事です。
社会人が未経験でエンジニアになる場合に、自己PRに使えるスキルは、3つあります。

プログラミングがないじゃん!
と思った人がいるかもしれません。プログラミングは積極的にアピールするというよりも、「ポートフォリを用意して、聞かれたらアピールする」が結論です。
実務未経験だとすると「プログラミングできます!」と自分からアピールしたところで、正直な話、ズレています。
「社会人としての基礎力もあるし、プログラミングも学んでます。ポートフォリオも作りました。」というスタンスの方が、客観的に見たときに好感が持てますよね。
「それじゃあ、何をアピールするの?」となれば、上記3つです。
ポートフォリオを用意した場合、「どのようにしてその作品が出来上がったのか、過程を説明してくれ」と言う質問はくるので、答えは用意しておきましょう。本記事の趣旨はあくまでも、「自己PRはプログラミングにするべきでない」と言う話です。
エンジニア転職で自己PRできるスキルは3つ
エンジニアになる場合に、自己PRできるスキルは3つあります。
「3つの中で、どれが一番大切か?」と言えば、自己解決力。
簡単に説明すると、エンジニアの業務では、「●●のユーザの権限をAからBに変更するのにどんな作業が必要になって、どれくらい工数かかる?」みたいなことを突然言われたり。
その場合でも、自己解決が大原則です。
※だからこそ「プログラミングを独学で学ぶのは難しい?無理ではないのでやってみるが肝心」でも、まずはやってみてほしいなぁと思っていたりします。
仮に聞ける人が周りにいたとしても、「ここまではできているのですが、そこから先が・・・」みたいに、聞くにしても、ある程度は自己解決しましょうねという話になります。
その1:エンジニアにコミュニケーション能力がないと困る
エンジニアにコミュニケーション能力がないと、ぶっちゃけ困ります。
「コミュニケーション能力というと、ざっくりしてない?」と言われそうですが、ここでは「相手にわかりやすく伝える力」と考えてください。
相手にわかりやすく伝えるコミュ力が必要な場面の例
具体的に、コミュニケーション能力は、実際の業務で次の場面で活用できます。
その1:スケジュールの進捗を上司に把握してもらうとき
エンジニアだけではないですが、どんな仕事でも、上司に報告する場面はあると思います。
- 現在の進捗
- 遅れている場合は、どうやって取り戻す(リカバリする)か?
エンジニアはプログラムを開発する過程で、必ずこれらは報告することを求められるのですが。
まずは、やってはいけない伝え方を書きます。
伝え方の悪い例
「PG(プログラミング)が半分完了しています。スケジュール通りに今週中に完了予定です。」
伝え方の良い例
反対に、いい例を書きます。
「PGの進捗は、設計書に記載のある関数5つのうちの2つが完了しているので40%です。スケジュール通りに進んでいますが、残りの3つは肝となる処理で、実装に時間がかかることが想定されるので、油断せずに進めていきます」
根拠をもって説明しないと、相手に伝わらない
悪い例のように、単に「スケジュール通り」と言われても、「じゃあ、がんばって」としか言えないです。
良い例では「残りの3つは肝となる処理で、実装に時間がかかることが想定される」と言っているので、「無理そうなら早めに報告してね」とか、言ってもらえそうですよね。
根拠をもって進捗(進み具合)を説明するかしないかで、問題が発生したときの初動と対処が変わってくるのは、なんとなく想像できるかと。
スケジュールを例に出しましたが、「相手にわかりやすく伝える」のは開発の現場では求められます。
その2:顧客にプログラム的な説明をするとき
エンジニアは、一日中パソコンに向かって作業しているか?と言えば、それは違います。
顧客に、プログラム的な説明をするときは当然あって、そのときに
「今から、権限の追加をやります。権限の追加をすると、●●地区のユーザは、昨日までできなかった伝票の登録が、明日より可能になります」
みたいな感じで、プログラムの中身の話をするのでなく、相手にわかるように、業務目線の説明というか。
※プログラム的な説明は、「ユーザマスタのテーブルに、1行データを追加する」みたいな感じですが絶対にやってはいけない説明です。
顧客はシステムに詳しいことはめったにないので、お互いの認識をあわせるために資料を作図解もします。
その2:エンジニアのスケジュール管理能力
エンジニアのスケジュール管理能力も大切です。
スケジュール管理能力とは?
先ほどの、コミュニケーション能力として伝える前の元ネタとなる話のイメージです。
- どの作業をやっていて
- 残りの作業と
- 全体でどれくらいかかるか
を、自分の中に落とし込んで説明できるようするのが、スケジュール管理能力です。
スケジュール管理の例
<検索画面が完了するまで>
- 関数 A→完了(1.5日)
- 関数 B→半分完了(2日)
- 関数 C→未着手
<タスクXの全体の進捗>
- 関数Bの実装が半分, Cは未着手だから、40%~50%程度
- 関数Bの半分までで、3.5日かかっている
- 関数Cの難易度にもよるが、残り3.5~4日程度はかかる見込み
作業中は「ただ作業しているだけ」となりがちなので、自分で完了までを逆算して、何がどれくらい残っているのかを把握するようにするべきです。
その3:エンジニアの自己解決力【最重要スキル】
エンジニアの自己解決力は、最重要スキルです。
自己解決をベースに。わからなければ聞くみたいにして、様々な困難を乗り越えていきます。
エンジニアの大前提は、自己解決
例えばですが、システム開発や運用保守を問わずに、必ずと言っていいほどエラーの調査があります。
1に調査、2に調査、3、4がなくて、5に調査です。
その際に、自分が知っている内容であれば対処できるのですが、見たことないエラーを吐いている(わからない箇所がある)ということも、よくあります。
そんなときでも、自分で調べて解決が基本です。
ほとんどの場合は、ググればQuitaやteratailのようなエンジニアのコミュニティサイトに解決方法があるので、それを参考にしながら解決します。
それでもわからない場合は、質問するけど・・・
調べて解決しようとしたけど、わからない場合は、質問するしかないです。
ただ、その時に必ず、どこがわからないかを明確にして質問します。
これがないと、まず、相手にされません。
「●●の時は、Aという対処をとるのはわかるのですが、▲▲みたいなケースはあまりないんですけど、一緒にやってもらえませんか?」
みたいに、誰かに聞くにしても「どこまで理解できているのかを伝えた上で」、相手に質問したり協力をお願いするスタンスは、お互いのためというか大切です。
・・・相手にぜんぶ丸投げをするのだけは、NGですよ。
プログラミングスキルは必要だけど、それこそ何とかするしかない

エンジニアならプログラミングでしょ!
と思った人もいるかもしれません。
・・・そりゃ、必要かと言われれば必要です。
ただ、「あって当然(ないのは論外)」だし、実務未経験なのにプログラミングをゴリ押してアピールするのはなんだかズレているというか。
「転職してエンジニアになるならプログラミングを学び続けながら活動するべき」でも書いていますが、プログラミングを「学び続ける」のが大切で・・・。
必要なことはその都度、自分で調べて覚えるのが当然求められるので、「実務に対応するだけのスキルがあります」ということを、プログラミング以外の側面からPRするべきです。
ただ、ポートフォリオを用意した場合、「どのようにしてその作品が出来上がったのか、家庭を教えてくれ」とは絶対なるので、答えは用意しておきましょう。あくまでも、「自己PRはプログラミングにするべきでない」と言う話です。
まとめ:自己PRはプログラミング以外から探す
自己PRできるポイントをまとめると、次の3つになります。
スクールなり、独学で学んだスキルをPRしだすと、面接でうまくいかない可能性が高いです。
実務未経験者であればポートフォリオを用意すると思うし、それで判断されるので不要。
現職の経験と、上記3つをいい感じに絡める(ここは自分で考えてもらうしかないです)と、興味を持ってもらえる可能性は高いと思います。
コメント