エンジニアとして転職活動するなら、プログラミングを学び続けながら活動するべきです。
- 「独学で本を1冊マスターしたらそれで終わり」
- 「スクールを卒業したらエンジニアになれる」
と思っているとしたら、それは違います。
※「そんなのわかっとるわい!」という人はこの記事を読む必要はないです。
本やスクールで学べるのは、あくまでも、さわりの部分。
さらに学び続けながら転職活動するのは当然だし、1日でも早く業務レベルに近づけようとする姿勢が大切です。
エンジニアの転職活動はプログラミングの基礎を学んでからが勝負
エンジニアの転職活動はプログラミングの基礎を学んでからが勝負。
基本的には、「学び続ける」ということを意識してください。
業務ではどのような開発の流れなのか
- 業務では、実際にどんな流れで開発が行われるんだろうか?
- 自分が勉強した言語の開発事例は何か?自宅で試すことはできないか?
- 自分が勉強した言語で主流なフレームワークってなんだろう?
完璧である必要はないけど、興味関心を持って、調べ方くらいは知っておくべし。
ちなみに、Javaのフレームワーク(ざっくり言えば、開発を簡単にするためのしくみ的なやつ)であればSpringとApatch Strutsあたりは、自分で調べれば使えるレベルになっておいて損はないです。
自分でやるには限度はあるし、完璧でなくてもいい
ただ、自分でやるにも限度はあるし、完璧でなくてもいいです。
「勉強した言語だと、フレームワークAだけでなく、Bの案件も多そうだな。よし、やってみるか!」
くらいの、興味関心を持って行動に移すイメージで。
「まだまだ覚えることがたくさんあるんだな~」というのがわかれば十分かと。
「一度学んで終わり」という姿勢だとエンジニアの転職活動は厳しい
独学で学んだり、スクールに通うなりで、プログラミングの基礎を身に付けたとして。
仮にエンジニアになったとしたら、フレームワークなり、指定されたAPIを使うことが求められたり。
その時々によって、覚えることだらけなので、プログラミングは「一度学んで終わり」ではないです。
お客様の要望あってのシステムなので、求められるスキルは常に変わる
あくまでも、「●●システムを作ってほしい!」みたいなお客様の要望があって。
その要望を実現するために、一人なり複数人で協力するなりして、完成させる手段がプログラミング。
あまりいないとは思いますが、
- 自分だけが、楽して稼ぐ手段がプログラミング
- プログラムを勉強さえすれば簡単にエンジニアになれる
のように考えている人がもしいたら。
「むしろ学んでからがスタート。使いこなしてナンボ」だと考えるほうが、エンジニアになれる可能性は高いです。
プログラムは書けて当然だし、仕事する上でのコミュニケーションも必要
例えば「専用のAPIを使って、取引される商品が軽減税率の品目かどうかを判定してね」と言われたら、その通りにコーディング。
仮にAPIがおかしかったら、担当者にすぐに報告して対応するみたいな。
プログラミングがある程度、詰まることなく書けるのはある意味当然だったり。
プログラミングも大切だけど、上司や一緒に開発するメンバーに説明して情報共有したりと言ったスキルのほうが大切だったりするのです。
「社会人が未経験でエンジニアになる場合の自己PRできるスキルは3つ」でいうところの「コミュニケーション力」や、「自己解決力」は大切です。
ポートフォリオを改良しながらエンジニアの転職活動を続ける
「それじゃあ、具体的にどういう行動をすればいいの?」と思った人もいると思います。
その答えは、プログラミングを学ぶ過程で作ったポートフォリオ(作品)を、さらに良くしていくこと。
具体的には、下記のようなことが考えられます。
- ポートフォリオの内容をドキュメント化する
- テストケースを作って、自分でテストする
- 追加したい機能を自分で考えて、実装する
例えば「飛行機の予約システム」をポートフォリオで作ったと仮定します。
ポートフォリオの内容をドキュメント化する
「飛行機の予約システム」とは具体的に何をするのかわからない。
ということにならないように、下記のようなことを書きます。
- その画面はざっくりとどのような動きをするのか?
(例:出発地と目的地、日時を指定して予約ボタンを押すことで飛行機の予約ができる) - ボタンや入力項目は何があるのか?
(例:出発地と目的地はボックスで選択。ボタンは、クリアボタンと予約ボタンの2つ) - 例えば、予約ボタンを押すと、どの順番で何が起こるのか?
(例:予約ボタンを押すと、出発地と目的地が存在するかをチェック。存在する場合は、入力内容が予約情報テーブルに登録される)
「設計書」といって、プログラムの動きを文章化します(実際に使う人向けに書いたり、エンジニア向けに中身の処理を書いたり)。
地味で面倒だけど、やっておいて損はないです。
テストケースを作って自分でテストする
たとえば、「目的地を『ああああ』と入力して予約ボタンを押したらどうなるか?」をテストするみたいな話です。
※この世に「ああああ」という場所はあるかもしれないけど、ない前提で進めていきます。
存在しない目的地で予約出来たらマズいですよね。
あとは、日時であれば、「2月30日」みたいに存在しない日付を入力したときの動作とか。
ポートフォリオを作ったら、いじわるな入力を想定して、テストしてみてほしいです。
追加したい機能を自分で考えて、実装する
テストをしているうちに、いろいろと「もっとこうなったら便利だよね」みたいに、利用者目線で見えてくるものがあるはずで。
- 日時はカレンダー入力できるようにしたいなぁ
- 定員を超えたら予約できないようにしたいなぁ
- GoogleMapを埋め込みたいなぁ
直したいところを、自分で操作すればするほど思うはず。
それは、ぜひ自分で調べて、実装してみてください。
もっと言えば、別のフレームワークで作り直してみたり、プログラミング言語を変えてみたり(Ruby⇒Javaで同じものを作るみたいな)。色々とやっただけ経験になります!
最後に:プログラミングの基礎を学んで終わりだと思ってる人は厳しい
「転職活動しながら、勉強し続けて意味あるのか?」と思った人もいますよね。
確かに、自分でやるにも限度はあります。
肝心なのは「学んで終わりではない」ということを理解すること。
ただ、ポートフォリオを作って終わりにせずに、そこから自分で考えているうちに・・・。
- 「テストして、完成度が良くなってる!前職でも点検業務をしていたからかな?」
- 「アイデアが次々と出てきて面白い!前職は、企画を出す機会多かったからかな?」
のように、自分の強みに気づけたりします。
そして、それは転職活動でも
「前職の●●のような経験が、エンジニアで活かせると考えました。まだ、学び始めて3か月の身で、1つずつ勉強していますが、1日でも早く貴社に貢献できるよう努力します」
みたいに言えれば、悪い印象ではないはず(即戦力以外は不要な企業以外を除いて)。
そして、1日でも早く業務レベルに近づけようとする姿勢を見せるためにも、「学んで終わりでなく、学び続ける」ということは意識してくださいね!
コメント