はじめに
こんにちは!KIYOラーニング株式会社でスタディングの開発をしている @Kumacchiino です!
今回は、新人プログラマ応援 - みんなで新人を育てよう!というテーマで、これまで自分が複数の現場を経験する中で、どこでも共通して役に立ったスキルを3つに絞って紹介します。あとは関連するおすすめの書籍も。
AIの発展や技術トレンドの変化があっても通用する土台の話なので、新人の方や、これからIT業界に入る方の参考になれば嬉しいです。
自己紹介
- 1社目:受託開発(未経験入社・Web系)
- 2社目:ユーザー系SIer(製造業)
- 3社目:自社サービス(旅行・宿泊業界)
- 4社目:自社サービス(教育業界)※現職
我ながら一貫性がないキャリアですが、色々な現場で色々な経験ができて、人間関係にも恵まれて楽しく働いてきました。
1. 話すスキル
まず1つ目ですが、話すスキルです。
基本的なことですが、「話す力」は非常に重要です。ほんとに。
特に、相手の立場に合わせてわかりやすく伝える力は、どの職場でも求められます。
プログラマー、事業部、経営層それぞれに対しては、伝えたいことが同じでも、選ぶ言葉や話す内容は大きく変える必要があります。
話すスキルは技術力と同じくらい大切です。
自分自身かなりの人見知りなので、今でも話すことは得意とは言えません。ですが、意識して訓練することで以前よりはかなり改善しました。
話す際は、以下の3点を意識すると効果的です。
- ① 結論から話す
- ② 事実を率直に伝える
- ③ 相手の立場に合わせて説明する
話す際には、PREP法を意識すると、伝わりやすくなります。
PREP法とは
- P(Point):結論・主張
- R(Reason):理由
- E(Example):具体例・根拠
- P(Point):結論の再提示
新人のうちは、質問・相談・報告の機会が多いので、PREP法のような型を持っているとかなり助かります。
自分の考えが整理しやすくなるだけでなく、相手にも伝わりやすくなるからです。
PREP法を使って、コードレビュー指摘をする時には、以下のような伝え方になります。
例① コードレビューについて
P: この処理は関数化した方が良いです。
R: 重複したロジックを各所に持つと、修正時の影響範囲が広がるためです。
E: 例えば、バリデーション条件を変更した場合、現状だとA処理とB処理の両方を修正する必要があり、片方だけ修正漏れするリスクがあります。
P: そのため、共通関数として切り出して一元管理することを提案します。
このように話すことで、レビュー時にも意図が明確に伝わります。
例② 学習について
P: 新しいスキルはアウトプット前提で学ぶべきです。
R: 知識の定着率が大きく向上するためです。
E: 例えば、学んだ内容をブログにまとめたり、人に説明することで理解が深まります。
P: そのため、学習と同時にアウトプットの機会を設けることを推奨します。
説明や主張にも説得力が出てきます。
人見知りの自分ですが、それでも訓練でそれなりになんとかなってきました。
以下の書籍は、PREP法を含めた伝え方の基本が整理されており、おすすめです。
タイトルに「コンサル」と書かれていますが、コンサル業界以外でも実務に活かせる内容なのでおすすめです。
2. 考えるスキル
2つ目が、考えるスキルです。
いわゆるロジカル・シンキングですが、その中でも自分が実務で特に役立ったと感じるのは、ロジックツリーで問題を分解することです。
プログラマー・エンジニアとして仕事をしていると、「生産性を上げたい」「品質を良くしたい」「手戻りを減らしたい」みたいな、少し大きくて曖昧なテーマがよく出てきます。
こういうときに、そのまま考え始めると、何をどう改善すればいいのかが曖昧なまま進みがちです。
そこで、問題を分解して考えます。
例えば、「プログラマーの生産性向上」というテーマなら、こんなふうに整理できます。
生産性のロジックツリー
さらに細かく見ると、以下のように分解できます。
① 作業効率
② 時間確保
③ バリュー
④ ロス削減
上司や先輩から「生産性を上げてほしい」と言われたときも、こうして分解して考えると、どこを改善すべきかが見えやすくなります。
なんとなく「頑張ります」で終わらせず、「作業効率の問題なのか」「時間確保の問題なのか」「そもそも価値の高い仕事に時間を使えていないのか」と整理できるだけでも、かなり前に進みやすくなります。
ロジカル・シンキングの基礎を学ぶには、以下の書籍がおすすめです。
3. ドメイン駆動設計
3つ目は、ドメインを理解するスキルです。
ここでいう「ドメイン」とは、ソフトウェアを適用する業務領域のことです。
例えば会計システムなら、「帳票」「勘定科目」「仕訳」といった概念がありますし、生産管理システムなら、「部品表」「工程」「在庫」といった概念があります。こうした業務上の概念やルールが、そのシステムにおけるドメインです。
そのドメインの知識を中心にソフトウェアを設計していく考え方が、 ドメイン駆動設計です。
最近はAI駆動開発で、コードを書くこと自体のハードルはかなり下がってきています。
ただその一方で、何を作るべきか、業務のどこに価値があるのかを理解することは、むしろ以前より重要になっていると感じます。
ドメインの概念や事象をしっかり理解すると、プログラムの設計や実装が、ユーザーの現実の業務と自然に対応しやすくなるのが大きなメリットです。
受託開発でも、自社の基幹システムでも、自社サービスでも、結局大事なのは、ユーザーにとって価値のあるソフトウェアを作れるかどうかだと思っています。
AIがコードを書いてくれる時代だからこそ、
「どう実装するか」だけでなく、何を表現するべきか、どの業務ロジックを大事にするべきかを考えられるエンジニアの価値は、これからさらに高くなっていくはずです。
以下の書籍は、ドメイン駆動設計を学ぶうえで一度は読んでおいて損はないと思います。
ただ、かなりボリュームがあります。
こちらは比較的読みやすく、入門として入りやすいと思います。
まとめ
AIにコードを書かせる時代になってきていて、プログラマー・エンジニアに求められる役割や、必要になる知識やスキルもどんどん変わってきていると思います。
ただ、AIの技術が発展してきているからこそ、逆に人と人の繋がりや、ソフトウェアと人の繋がりが、より一層重要になってくると思います。
なので、話す・考える・ドメインを理解するといったスキルは、どの現場でも変わらず重要で、むしろこれからさらに価値が上がっていくはずです。
自分自身、受託開発・SIer・自社サービスと色々な現場を経験してきましたが、今回紹介したようなスキルは、どの現場でもずっと使い続けています。
こうした土台のスキルを身につけておくと、環境が変わっても応用が利きやすいと思います。
新人の方や、これからIT業界に入る方にとって、少しでも参考になれば嬉しいです。
一緒に働いてくれる仲間も募集しているので、興味がある方はぜひ弊社のHPも見てみてください!
ここまで読んでいただき、ありがとうございました。
KIYOラーニング株式会社について
当社のビジョンは『世界一「学びやすく、分かりやすく、続けやすい」学習手段を提供する』ことです。革新的な教育サービスを作り成長させていく事で、オンライン教育分野でナンバーワンの存在となり、世界に展開していくことを目指しています。
プロダクト
- スタディング:「学びやすく・わかりやすく・続けやすい」オンライン資格対策講座
- スタディングキャリア:資格取得者の仕事探しやキャリア形成を支援する転職サービス
- AirCourse:受け放題の動画研修がついたeラーニングシステム(LMS)
KIYOラーニング株式会社では一緒に働く仲間を募集しています





