今の学習を続けていて、10年後も笑っていられるだろうか
AIに仕事が奪われるというニュースを見て、エンジニアになるという方向性は間違っていないだろうか
そんな不安を抱えて、思い悩んでいませんか?
実は僕も、前は同じでした。
毎日変わり映えしない仕事をこなしながら、「このままじゃいけない」と焦る毎日
エンジニアの学習は続けてるけど、本当に方向性合ってるのか不安
AIが最近なんか凄いし、勉強した先に職はあるのかな
そんな毎日を過ごしていました。
でも、実際に現場を3年経験して分かったこと・感じたことがあります。
それは、エンジニアになる上で必要なのは、物事に対する考え方 と AIとの向き合い方 を知って実践することです。
今回は、僕が現場経験を通して個人的に思った「エンジニア初学者がこれからのエンジニアになる上での必要な考え方と姿勢」をお伝えします。
※もちろん、エンジニア初学者以外の方にも参考になれば幸いです。
1. 手を動かす前に考える
「数学が苦手だからエンジニアは無理」
僕はずっとそんなイメージがありました。でも、いざ現場に入ってみると、中学や高校で習った数学の知識は全くと言っていいほど使いません。
エンジニアに必要なのは数学を解く能力ではなく 「論理的な考え方」 です。
論理的な考え方とは?
- 物事を要素に分ける
- 順序立てて物事を進める
この考え方を常日頃から意識して実践すると、 開発の質とスピード が上がります。
タスクを開始すると、とりあえず手を動かす人は意外と多い印象です。
これは後々手戻りが多くなりがちですし、目標を俯瞰できていないことが多くアウトプットの質も下がります。
目隠ししながら、42.195km走るのと同じです。
逆にタスクを始める前に、目標とそれに到達するまでのプロセスを洗い出してからスタートした方が、ゴールに早く、正確に到着できることは、想像しやすいと思います。
実はみんな無意識に論理的に考えている
論理的な考え方は、日常の仕事や生活の延長線上にありますし、無意識のうちにやっていることが多いです。
例えば、カップラーメンを食べたいとき、その工程を大きく分解すると「ラーメン買う・湯を沸かす・待つ・食べる」という要素に分けられ、順番に無意識にこなしていますよね。
このように実は普段から無意識にやっていることなので、そんなに難しく考えなくても大丈夫です。仕事レベルになると、訓練は必要ですが、誰でもできるようになります。
ポートフォリオなど、自分が作りたいアウトプットを作る際、どんな要素で構成されているか、どんな手順で開発を進めるか、頭の中ではなく、ぜひスプレッドシートや紙に書き出して実践してみてくださいね。
2. 全体を捉えてから詳細を見る
新人の頃の僕は、見ず知らずのシステムを前にして「どこから手をつければいいか分からない……」と固まってしまっていました。そんな時に教わったのが、開発をスムーズに進めるための 「3つのステップ」 です。
① 全体像を確認する
いきなり細かいコードを見ようとせず、そのシステムの目的やその目的を果たすために構成されている要素、またその要素のつながり・広がりを把握し、全体像を確認します。
そうすることで、いざ自分があるシステムを構成する一部の要素の開発をする際に、自分が今何をしているのか、全体のどの位置にいるのかが分かり、迷子にならなくなります。
② 担当範囲を細分化(分解)する
全体が見えたら、自分の担当部分を切り出します。どんなに複雑に見えても、細かく分解していけば「単純な作業」の集合体にすぎません。
③ インプットとアウトプットを明確にする
「何を入力すると、どのような結果が出るか」という流れを明確にします。中身のロジックをすべて一度に理解しようとせず、「入口と出口」の関係性さえ掴めれば、実務は驚くほどスムーズに回り始めます。
例:会員登録の機能をイメージしてみる
Javaでのシンプルな例ですが、考え方はどの言語でも同じです。
// 会員情報を登録するシンプルな処理のイメージ
public String registerUser(UserRequest request) {
// 1. 入力(インプット):ユーザーが入力した名前などを受け取る
String name = request.getName();
// 2. 中身の処理:ここの詳細は後回しでも、まずは「分解」して考える
if (name == null || name.isEmpty()) {
return "名前を入力してください"; // エラーというアウトプット
}
// 3. 出口(アウトプット):データベースに保存して「完了通知」を送る
userRepository.save(request);
return "登録が完了しました!";
}
「コードの中身を全部理解しなきゃ」と思うと沼にハマります。まずは 「入口と出口を見る」 という感覚で進めると、最初の大きな悩みが消えていくのを感じるはずです。
3. 「60点で出す勇気」を持つ
完璧主義を捨てる
僕は元々、真面目すぎて手が止まる完璧主義なところがありました。
「100%理解してから出さなきゃ」と抱え込み、結果として進捗が遅れてしまったこともあります。
でも、現場で学んだのは 「自分が思う60点の成果物を早めに出すこと」 の大切さです。
エラーが出て解決できず、100点まで自力で中々到達できないことはあるあるです。
また、100点で出さないと評価されないという思い込みからくる不安とか、完璧な状態で出したいという自分のプライドとか、色んな思いが邪魔して、たくさんの方にご迷惑をかけてきました。
この経験をして分かったことは、自分一人で100点を目指して3日悩むより、60点の状態で「ここまで分かったのですが、ここから先が詰まっています」と相談する方が、チーム全体としては喜ばれるということです。
60点で出せる人は結果的に成長する
また、現場でなくても今プログラミングスクールで課題に取り組んでいる方の中で、詰まっている部分があったら、早めに講師に聞いてみるのも良いと思います。
ポートフォリオを100%作り切るまで粘っている方はまずは60点でも世に出してみるのも良いですね。
そうすると、自分が悩んでいること、これでOKと思っていることに対して先輩や世間から「こんな良いやり方あるよ」「本当はもっとこうして欲しいのに」など自分では気付けない視点をたくさん頂けます。
その視点を素早く収集し、自分の中に素直に取り入れる。
これを繰り返している人は成長スピードが凄まじいです。
「自分は100点に固執しているな」と思い当たる節がある方は、ぜひトライしてみてくださいね。
4. AIを相棒にして、AIが出す成果のその先の成果を考える
AIを相棒にする
「AIがコードを書く時代に、エンジニアの仕事はなくなる?」
そんな不安も聞かれますが、
これからの時代、AIは脅威ではなく
強力な相棒になる
というより
強力な相棒にする
という意識でAIと向き合うことが大切だと思います。
これからのエンジニアに求められるのは、完璧なコードを一から書く力ではなく、AIを使いこなして効率的かつ品質の高い成果を出すことです。
定型的なコーディングはAIに任せ、人間は「どんなシステムを作れば課題を解決できるか」という設計や目的設定に集中する仕事が増えていくと思います。
そんな中で、AIにただ 答えのようなもの を聞いてそれを成果として出しているようだと危険です。
これはAIと相棒になっている状態で対等、むしろ下に位置する関係です。
そうではなく、AIを駆使してどうすれば最適な答えを出せるか、AIを相棒にして(=きちんと使って自分で判断する側に回る)、自分の意思決定をコントロールするようにするべきだと思います。
AIが出す成果のその先の成果を考える
コードをAIに書いてもらって終わりではなく、書いてもらったコードにより実装された機能をより良くするにはどうしたらいいのか?
そんなことを本記事の1つ目でお伝えした論理的に考えることで思考力が養われ、AIが考えつかないアイデアや解決策を導けるようになり、AIに代替されない人材になっていけると僕は信じています。
この問いはエンジニア経験者・未経験者問わずできます。日々の学習の中で10分でもいいので立ち止まって、そんなことを考える時間を作ることから始めてみてはいかがでしょうか。
さいごに
今回は主にエンジニア初学者の方に向けて、これからのエンジニアになるために必要な考え方について、率直な僕の意見を述べさせていただきました。
今回お伝えした内容をまずは実践してみようと思っていただいた方がいらっしゃれば、こんなに嬉しいことはないです。
先行き不透明な時代の中で、エンジニアのキャリアを歩もうとされている方々の中で、一人でも多くの方に役に立つ記事を発信できたらと思っています。
最後まで読んでいただき、ありがとうございました。
PRUMのエンジニアの95%以上は未経験からの採用です。
よければコーポレートサイトにも遊びに来てください。
Comments
Let's comment your feelings that are more than good