こんにちは。倉内です。
paizaではプログラミング学習サービス「paizaラーニング」を提供しています。エンジニアを目指してプログラミングを学習し、時には未経験から「paiza新卒」や「EN:TRY」を使ってエンジニアになっていく方も多くおられます。
一方で、いつまでたってもプログラミング初心者から抜け出せない方もいます。
もちろん「プログラミングをやってみたけどまったく面白くない」「自分にあっていない」という場合もあります。人間には得手不得手がありますし、それはある意味では仕方のないことだと思います。
ただ、「プログラミングをやるのは楽しいけど、なかなか物を作るまではいかない」「エンジニアへの就職もうまくいかない」という人も少なからずいます。
こういう人は何がいけないのでしょうか。「初心者と中級者を隔てる壁」はどこにあるのでしょうか。今回はその原因を考えてみたいと思います。
すぐ成長が止まる人にありがちな「答えほしいほしい病」
プログラミングに限りませんが、学習において自分で考えたり調べたりせず、答えをすぐ知りたがることの是非はときどき話題になるテーマです。
一般的には過程を飛ばして答えだけを求めることは好ましくないとする場合が多いようです。
プログラミング学習においてはどうなのかを考えてみます。
答えを得て成長できるのは初心者のうちだけ
学習初期の基礎文法すらままならないうちは、答えそのものに加え解法・解説もすぐ参照できたほうが学習を無理なく継続できます。
というのも、たとえばif文やfor文の使い方や応用の仕方、文字列の扱い方、数値のさまざまなフォーマットでの表記(整数・小数・桁の丸め方)などは、学んでいるプログラミング言語ごとに明確な正解(=正しく動く記述の仕方)があるからです。
これらは書籍で学ぶのもよいですが、オンラインのサービスでも正確な情報が手に入りやすいのでおすすめです。
ちなみにpaizaラーニングの学習講座では、動画で基本的な文法について理解しながら、ブラウザ上で実際にコードを書いて演習課題(解答の参照可能)を解くことで、学んだ内容が身についているかの確認が可能です。
ただし、これが通用するのは初心者のうちだけです。「答えがないと勉強ができない」と言っているといつまでも初心者のまま先へ進めません。
しかし、世の中には「とにかく答えを覚えればいい」と考えて、いつまでたっても答えを求めようとしてしまう人が少なくありません。こういう人のことを、この記事では「答えほしいほしい病」と呼ぶことにします。
では、なぜ答えほしいほしい病の人は初心者から抜け出せないのでしょうか。エンジニアの仕事内容を踏まえて考えてみましょう。
サービス開発では答えにたどり着く過程も大切
答えを聞いてたどり着けるのは「その道具をどう使うかの理解」までです。たとえば、関数やメソッドの使い方は分かるでしょう。型が決まっているアプリを作ることもできるでしょう。ただ、できることはそれだけです。
一方、サービスやアプリを作るときは、基礎文法と違って正しい答えというものがありません。
「どんなものを作りたいか」「どのようなサービスにニーズがあるか」「そのサービスにはどんな機能が必要で、実現するためにはどうしたらよいか」に対してひとつの正解が用意されているわけではなく、自分自身で考えて試行錯誤しながら取り組む必要があります。
初めての挑戦で一度もつまずかずにスムーズに完成させられることはほとんどありません。そのため「手っ取り早く答えが欲しい」という考え方をしていると途端に行き詰まってしまいます。
「開発がしたいのであって、分からないものを手探りで調べたり考えたりすることに時間を費やしたくないんだが…」という気持ちもよく分かります。初心者のうちは自分で解決するのが難しい問題に直面することも多いでしょう。
しかしエンジニアの仕事は、「手っ取り早く答えが欲しい」では通用しない部分が多いということを知っておく必要があります。具体的には次でご説明します。
エンジニアを目指すなら知っておきたい3つのこと
エンジニアの仕事はコードを書くだけではない
開発系のエンジニアになった場合、もちろんメイン業務はコードを書くことになるでしょう。
ただし、開発をしていてエラーが出たらエラーコードやメッセージを読み、調べて解決するということに多くの時間を割くこともあります。
また開発に着手する前に要件を聞いて仕様を詰めたり、機能実装後にテストをしてバグを潰したりする工程もあります。
むしろ調査をする、考えて試すことを繰り返すといった時間のほうが長いくらいかもしれません。
これは受託開発でも自社開発でも基本的にはそう変わらないと思います。受託開発の場合は、細かく役割分担されておりコーディングのみを任されることがあるかもしれませんが、エラーや不明点があれば調べて解決に努める必要があります。
もちろん実務では先輩エンジニアに助けてもらうことも可能でしょう。しかしその際に「なぜかうまく動かないんですけど…」では困ってしまいます。「こういう事象が起こって、エラーメッセージを頼りに自分ではここまで調べてみて……」と
「企業が求めるエンジニア」を意識する必要がある
コロナ禍において、準備や対策なしで未経験からエンジニアへの転職は厳しいとこのブログでも何度かお伝えしてきました。
IT人材が不足している状況であっても、育てる余裕のある企業はそう多くありません。それでも実務経験が浅い方を採用している企業は、以下のような観点で選考をおこなっています。
- 実務経験がない中で自分でどのくらいコードを書いてみたか
- 分からないところを調べたり考えたりすることができるか
- サービスやアプリを実際に作ってみようとしたか、完成させたか
- ITエンジニアとしてポテンシャルを感じられるか
- どのようなエンジニアになりたいか具体的なイメージがあるか、そのために何をするとよいか自分なりに考えているか
未経験からの転職の場合、過去の実績(携わった案件や自分がプロジェクトで担った役割など)をアピールできる中途転職と違って、開発経験をアピールできません。
そのため「今は実務経験は足りていないけど、頑張ってスキルを身につけて、将来貢献してくれそうだな」と企業に思ってもらう必要があります。
とはいえいくらIT技術や開発に興味があると口で言っても、コードを1行も書いていないような状態ではポテンシャルを感じてもらうのは難しいので、成果物としてポートフォリオを見せることをおすすめします。
以下の講座ではHTMLとBootstrapを使って、実際のポートフォリオページを作る方法を学ぶことができます。
エンジニアになることはゴールではない
苦労して異業種・異職種からエンジニアに転職できたことは、たしかにひと段落とは言えるかもしれません。
しかしそれはエンジニアとしてようやくスタートラインに立ったに過ぎません。
これからもっと勉強を続けなければいけませんし、業務は趣味で開発をするのとは違う部分がたくさんあり、大変だと感じることもあるでしょう。チーム開発を円滑に進めるための振る舞いやサービスで利益を出すことについて考える必要も出てきます。
ただ、ここまで厳しい面ばかりお伝えしてきましたが、自分がエンジニアとして携わったサービスが世に出るというのはとても達成感があります。
ちなみに現役エンジニアを対象に実施したアンケートで「エンジニアをしていてやりがいを感じるときは?」という質問をしたことがあります。「新しい技術にかかわれる」「クリエイティブな仕事ができる」に続いて、「システムが完成したときの達成感」を選んだ方も多くいました。
まとめ
未経験からのエンジニア志望者が答えだけを求めて学習をしても、結果的にエンジニアの実務や企業が求めるものとズレがあるということをお伝えしてきました。
開発系のエンジニアでも業務ではコードを書く以外に割く時間も多く、ある程度経験がある人でも調べたり考えたりしてようやく答えにたどり着くことは珍しくありません。
ベースとなる開発スキルは必要ですが、エンジニアに求められるスキルはそれだけではないということを覚えておいていただくと、学習や転職活動時のつまずきを回避できるかもしれません。
「EN:TRY」は、paizaが運営する、これからエンジニアを目指そうと考えている若い人のための転職サービスです。開発の実務経験が少ない人でも応募できる若手チャレンジ求人を中心に掲載しています。プログラミングスキルチェック問題を解いて、スコアが一定基準を超えれば、書類選考なしで複数の会社へ応募ができます。
未経験者がよく聞かれる質問や面接対策については、paizaの転職成功ガイドでも詳しく解説しています。
詳しくはこちら
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら