paiza開発日誌

IT/Webエンジニア向け総合求人・学習サービス「paiza」(https://paiza.jp ギノ株式会社)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

第二新卒が未経験からエンジニア挑戦…その転職前に確認してほしいこと

f:id:paiza:20170322125115j:plain
Photo by IDM Südtirol - Alto Adige : ICT & Automation
f:id:paiza:20140916135428p:plainこんにちは。谷口です。

最近、第二新卒で「開発業務未経験だけどITエンジニアに転職したい」といった方が増えています。

もちろん、他職種からエンジニアになること自体は可能です。実際、paizaでも開発未経験からエンジニアに転職して、活躍している方がたくさんいます

ただ、

  • なんか「エンジニア不足」って言われてるから、目指せばなれるんでしょ
  • 転職エージェントとかに「エンジニアはいいぞ」って言われたからよさそう
  • 人と話さずにPCに向かってるだけでいいんでしょ
  • とにかく手に職をつければ将来安泰そう
  • IT系ってなんかかっこいい

……などといった感じで、開発業務の実態をよく知らずにイメージだけで目指してしまうのは危険です。

というのも、エンジニアとしての適性がまったくない人が「なんかよさそう」とイメージだけで転職すると、実際の仕事が始まってから「合わない、できない、つらい、思ってたのと違った……」となってしまう可能性もあるからです。

転職後にいらぬ後悔をしないためには、これから紹介していく方法を通して最低限、自分の適性を知ってから「エンジニアを目指すかどうか」を決めた方がいいでしょう。エンジニアの仕事で「適性があるか否か」はそれぐらい重要なのです。

■適性の有無が仕事にどんな影響を与えるの?

f:id:paiza:20170322125305j:plain
Photo by IDM Südtirol - Alto Adige : ICT & Automation
ソフトウェア開発プロジェクトについて書かれた有名な書籍『ピープルウェア』では、優秀なプログラマと成績の悪いプログラマの生産性には約10倍の差があるという記述があります。『ソフトウエア開発 55の真実と10のウソ』でも、エンジニア個人においては、5から28倍のスキルの差があるとまとめられています。また最近では、奈良先端科学技術大学院大学の森崎修司氏が、個人によって同じソースコードを理解するための時間に6倍の差が出た事例を公開しました。

何倍になるという数値は諸説あるので置いておくにしても、重要なのは、昔からいろいろな研究者や技術者が「システム開発って、人によって生産性にすごく差が出るよね」と言いまくっているということです。最近はこのようなツイートも話題になりましたね。
togetter.com

情報系の学校に通っていた人は、こうした生産性の差を思い知る機会があるでしょう。例えば、情報系の同じ授業を受けているのに、課題をすぐにクリアできる人もいれば、時間をかけても全然解けない人もいる……といった場面があるからです。

しかし文系出身などで開発未経験の人が、いきなりエンジニアに転職した場合は、こうした機会がありません。実際に転職してしまった後で「合わない、わからない、興味がわかない、思ってたのと違った……」となってしまうのは、転職者にとっても会社にとってもいいことではありません。

これが新卒であれば、その時点で辞めて別の業界へ転職してしまうのもよいでしょう。しかし第二新卒の場合は、若いとはいえ、いたずらに転職回数を増やすことになってしまいます。

こうしたミスマッチは、転職を目指す前に実践的な勉強をしてみることで、ある程度防げるはずです。実践してみて「まったく興味がわかない、やっていてつらい」と感じるようであれば、その時点でエンジニアを目指すかどうか考え直してもよいのです。逆に、「結構楽しい、もっと知りたい」と感じれば、さらに勉強を進めたり、実際に求人応募をしてみるのがよいでしょう。

■エンジニアとしての適性を知る:基礎編

そして、ここからはどうやったらエンジニアとしての適性が分かるのかを考えてみます。まず基礎編として2つのことをやってみてください。これらを興味を持って続けられるかどうかで、ある程度の適性が見えてくるでしょう。

◆プログラミングの基礎を学ぶ

まずは、何はなくともプログラミングの基礎を学びましょう。

言語は、既に学びたいプログラミング言語が決まっているとか、作りたいものが決まっている人、もしくは周りにこの言語について詳しく教えてくれる人がいる!という方は、それに従うのがいいでしょう。自分が興味を持って学べる言語を勉強するのが一番です。

特にやりたい言語が決まっていないのであれば、比較的コードが書きやすいPHPから始めるといいでしょう。PHPは大抵のレンタルサーバで動きますし、後にDBに接続したり、Web上で動くものを作るときにも便利です。また、参考になる学習サービスや書籍も多く出ています。

未経験からプログラミング学習を一人で始める場合、下記のような学習サービスが役立ちます。どれも複数の主要言語に対応しています。

paizaラーニング

f:id:paiza:20160830130051j:plain
paizaラーニングは一回3分程度の動画を見ながらブラウザ上で演習問題を解き、すぐに動かして結果を見ることができます。未経験者でもブラウザさえあれば、今すぐ手を動かしながらプログラミングの基礎を習得できます

Progate

f:id:paiza:20150204125057p:plain
スライドによるレッスンで基礎を学び、オンラインエディタでコーディングをして実行結果を見ることができます。コーディングの際は、エディタやプレビュー画面と一緒にお手本となる見本画面や解説もあります。

ドットインストール

f:id:paiza:20141014152641p:plain
動画でプログラミングの書き方、環境構築方法などが学べます。


また、プログラミングの基礎的な概念が理解できて、自分のスキルを試したくなった人や、既にプログラミングの勉強ができている人は、paizaスキルチェック問題をぜひ解いてみてください。

paizaのスキルチェック問題

f:id:paiza:20150205133638p:plain
paizaでは、スキルチェック問題の回答結果によって、S・A・B・C・D・Eの6段階でスキルランクを判定しています。例えばDランクが取得できれば、プログラミングの基礎の基礎ぐらいなら理解できている…という目安になります。(paizaラーニングであれば、入門編3を終えたあたりになります)

スキルチェック問題の取得ランクも、適性を知るよい目安となります。もちろん勉強を始めたばかりの人はD問題でも難しいでしょう。ただ、たとえ未経験から独学で学んでいたとしても「しばらく真面目に勉強しているつもりだけど、Cランクにも上がれない……」という人は、恐らくエンジニアとしての適性は低いでしょう。

◆実際に動くものを作る

基礎的なコードが書けるようになってきたら、実際に動くものを作ってみましょう。そしてできれば完成させてみましょう。

たとえば、paizaラーニングWebアプリ開発入門 PHP+MySQL編では、クラウド上に用意されたエディタとWebサーバ、DBサーバを利用し、ブラウザだけで動画を見ながらWebアプリケーション開発を学べるので、動くものを作る参考になるかと思います。
paiza.jp

コードの書き方や作法は、初心者向けサイトや書籍を見て勉強すれば、ほとんどの人が身につけられるはずです。しかし、動く作品として成り立つものを一つ完成させようと思ったら、コードが少し書けるだけの知識では足りません。サーバやDB、画面の仕様などなど、作るものによってさまざまな知識や調査が必要になります。

一見簡単そうだと思っていた機能にすごくややこしい作業が必要だったり、正しく作ったはずなのにわけのわからないエラーが出たり、知りたいことについてちょうどいい資料が見つからなかったりして、時には泣きそうになることもあるかと思います。

それでも、インターネットや書籍で調べまくったり、英語のドキュメントを読んだり、人に聞いたりして、問題の解決と作品の完成を目指してください。(どうしてもそこでストップしてしまうようだったら「この日までに解決策が見つからなかったら飛ばして次の作業をする」と期日を切っておきましょう)

つらさを感じるかもしれませんが、何か課題があって、その解決策を考えたり調べたりして、実行して解決を目指す、それで解決しなければ、また他の策を考えて実行する……という繰り返しは、実際の開発業務でも同じです。

ここで「もうやりたくない、興味がわかない」「全然おもしろみを感じない」と感じた人は、エンジニアを目指すのはやめておいた方がよいかもしれません。逆に、「難しいけど楽しさも感じる」「もっとできるようになりたい」と感じる人は、余裕があればさらにこれ以降の応用編にも進んでみるとよいでしょう。

■エンジニアとしての適性を知る:応用編

◆IT系の勉強会に参加してみる・エンジニアと話してみる

IT業界では、未経験者でも初心者でも、誰でも参加可能な勉強会が頻繁に開催されています。

勉強会は、プログラミングの勉強になるのはもちろんですが、経験者や現役エンジニアの人と話せる貴重な機会です。知り合いにエンジニアがいない人は、現役エンジニアと直接話せる機会なんてほとんどありません。勉強会か転職時の面接ぐらいしかないかと思います。

やはり現役エンジニアから勉強やシステム作りでわからないところを聞いたり、実際の業務について聞いてみると、ネットで調べるだけでは出てこないリアルな話が聞けます。第二新卒の方であればまだ若いですし、「これからエンジニアになりたくて勉強しているのですが……」と言えば、喜んでいろいろ教えてくれる人も多いかと思います。(周りと交流したくない、何か聞かれても教えたくない…といった人はそもそもあまり勉強会に来ないです)

◆書いたコードや作品をWeb上に公開してみる

Githubなどで、書いたコードをや作ったものをWeb上に公開してみましょう。GitHubでは、ほかの人が公開しているコードを見ることもできますので、それもまた勉強になります。
github.com

どんなにスキルを身につけた人でも、自分からコードや作品を公開していかない限りは「何がどれくらいできるのか」を証明することはできません。開発業務未経験の人であればなおさらです。

「まだしょぼいものしか作れないから…」と公開を嫌がる人もいますが、企業も開発業務未経験の第二新卒が、ベテランエンジニア顔負けの完璧なシステムを作っているとは思っていません。

それよりも、自分なりに調べながら作ったものを通して「なぜこれを作ろうと思ったのか」「どこを工夫したか」「どこが楽しかったか」「どこが難しかったか」など、自分の考えや想いを説明できれば、多少うまくできなかった部分があったとしても「既にこれだけの内容を勉強している」といったアピールになりますし、「これからエンジニアになりたいんです」という熱意も伝わります

「作品がいくつかできた」という人は、ポートフォリオページを作っておけば応募や面接でアピールをするときに役立ちます。paizaラーニング「ポートフォリオ制作」講座では、ポートフォリオページの作り方を解説しています。
paiza.jp

■エンジニアの仕事について

コードの書き方を学んだり、自分で動くものを作ったりする中で「楽しい」「もっとやりたい」「プログラミングが好きだ」と感じられた方は、既にエンジニアとして重要な素質を持っていると思います。逆に「まったく楽しくなかった」「大変なだけだった」という人は、恐らくエンジニアとしての適性は低いと思います。

そして、実際の業務では、「一人でもくもくとPCに向かってコードを書く」だけではありません。

  • グループでの開発やミーティング
  • サービス企画から考える開発
  • エラー処理やセキュリティ対策
  • あらゆるパターンを網羅した動作テスト
  • 人のコードを読んで修正するリファクタリング

…などなど、これに限らずさまざまな作業が発生します。

求人応募の際も、第二新卒の場合は新卒ではなく中途入社の扱いになりますから、「なんかプログラミングやったら楽しかったからエンジニアになりたいです!」だけではなく、業務内容や業界構造についても把握しておいた方がよいでしょう。

paizaラーニングでは、「ITエンジニアの就活準備」講座を公開しています。IT業界の構造やエンジニアの働き方を学べるレッスンは無料で受講できます! 「プログラミングはできるけど、IT業界についてはよく知らない…」「業界構造ってどうやって調べたらいいの?」という方は、ぜひごらんください。
paiza.jp

■まとめ

適性とは、あるから優れている、ないから劣っているという話ではありません。適性がなさそうな職業は、先に選択肢から外しておいた方がいいという話です。

例えば、知らない人と話すのが苦痛で仕方ない人が自分から営業職を選ぶことはあまりないかと思います。それは「どうやら自分には営業職の適性がなさそうだ」とわかっているからですよね。

これがエンジニアだと、実生活で適性を測る機会が少ないため、仕事内容をよく理解する前にイメージだけで転職し、その後に実際の仕事を通して適性のなさを知って後悔する……ということが起こってしまうのです。

なんとなくのイメージで「エンジニアを目指そっかな」と考えていた人には、上記を参考にして、少しでもプログラミングやエンジニアの業務を知ってから、改めて考えていただければと思います。その上で「やっぱりエンジニアになりたい」と思われましたら、ぜひpaizaを使って応募してください!


paizaでは、第二新卒のように開発経験の浅い方や開発業務が未経験の方へ向けて、エンジニアとしての転職をサポートするサービス「EN:TRY」をスタートしました。

実際に、開発業務未経験からエンジニアになった方、採用を担当された方のインタビュー記事も掲載しています。
paiza.jp

EN:TRY」は、エンジニア職未経験者や経験が浅い方をITエンジニアキャリアへ導く転職サービスです。

これまでのpaiza同様、EN:TRYもプログラミング力、コーディング力で転職をする「コーディング転職サイト」です。転職希望者には「プログラミングスキルチェック」を受けていただき、提出していただいたコードをもとにスキルランクを評価します。求人には必要なスキルランクが設定されており、評価がそれを満たしていれば書類選考なしで応募が可能です。
paiza.jp

まずはスキルチェックだけ、という使い方もできます。すぐには転職を考えていない方でも、自分のプログラミングスキルを客観的に知ることができますので、興味がある方はぜひ一度ご覧ください。
paiza.jp

ITプログラマ・エンジニア向け転職・就活・学習サービスのpaiza


プログラミング入門講座|paizaラーニング

PHP入門編Ruby入門編Python入門編Java入門編JavaScript入門編C言語入門編C#入門編アルゴリズム入門編