🏔️

未経験からエンジニアを目指す方の「どんなポートフォリオが転職に有効ですか?」に回答した時のメモ

2021/06/20に公開

背景

教員から別のお仕事に転職されて、そこからエンジニアを目指している方から掲題の質問をいただきました。
私自身も全く同じ流れで転職しましたので、自分なりの回答をさせていただきました。

こちらの質問をちょくちょくDMでいただくので、その時用にここにメモ書きとして残したいと思います。

返答原文

  • お名前のところだけ隠してあります
  • 誤字を修正しました
  • 脱字を補足しました
  • マークダウンで一部修飾しました

まずは、細かく背景を質問していただき、誠にありがとうございます。文章からご自身で勉強されていることや、とはいえどう進んでいいかのような迷いを感じましたので、できる限り自分が現場を見て、もしくは現場のエンジニアマネージャーから聞いた話を踏まえて、しっかりと自分の思う事実をお伝えできればと思います。

回答以上のことを補足として付け加えるため、 「そんなの聞いてないよ」とか「うるさいな」 と思われてしまうかも知れませんが、せっかく自分に関わってくださった方ということで、そして元自分も教員であるので、何かお力になれればと考えております。

前提が長くなってしまいましたが、よろしくお願いいたします。

①どんなポートフォリオが転職に有効でしょうか?

私は今教員を辞めて町医者の医療事務として働いていて、コロナワクチンの予約を紙でしているので、予約システムなんか作れたらいいななんて思っています。でも今勉強しているのはruby on railsで、ほかにもっと向いている言語があるとネット記事には出てきます。言語もrubyにこだわりがあるわけではないですが、学習していますので実際に自分で開発してみたい気持ちがあります。

回答

質問を分割すると

1、転職に有効なポートフォリオ

2、もっとアプリ作成に向いている言語があるか

以上の二点かと存じます。

1点目に関しては、ぶっちゃけそんなのありません というのが、現場の声だと思います。私の個人的な意見ですが...その上で、これじゃない方がいいというのはあるので、そこは共有させていただきたいと思います。

まず、現場のエンジニアが未経験の人を見る際に気にするのは、当然 「どのようなことを勉強してきたか」「どれくらいの伸び代があるか(ポテンシャル)」「何を作りたいのか、なぜエンジニアになりたいのか」 この3点だと思います。人によってここは違うと思いますが、私はそう考えています。

ポートフォリオはあくまでも学習してきたことをアピールするものであるため、テーマや題材に関してこれを使ったから合格しやすいなんてものはないと思います。その上で、どうすれば評価されるかという観点で言えば、

・コードの綺麗さ
・設計
・実装の工夫

これらをどのように行なっているかだと思います。具体的には、 変数名を他の方にも理解できるようになっていたり、コントローラーに処理を全部書いていなかったり、AWSやHerokuを使う場合は理由を持ってインフラの構築を選べていたり… といった部分です。自分がよく耳にする一部の悪いインフルエンサーの方々は、こういった部分をすっ飛ばしてポートフォリオを作れば転職できる、といったことを言っているのも耳にしますが、そこだけは絶対に大きな間違いで、ポートフォリオの中にも細々とした気をつけなければならない部分があるのです。

逆に、そこさえ気をつけてアピールするものがGithub上などに残っているのであり、論理的に説明できるのであればポートフォリオはなくても転職できる と考えています。

2と関連しますが、プログラミングは言語を跨いで応用が効くものだと考えています。そのため、 しっかりと一つの言語やフレームワークを学習して、アプリケーションを作っているのであれば問題ないと思います。 Railsで十分ですし、初学者の間はどの言語がメジャーとかブームとかは、そこまで気にしなくてもいいと思います。

例えば、Laravelを使っている会社に、Railsでポートフォリオを作った人と、Laravelで作った人が同時に受けたら、それは後者が受かるかも知れませんが、Laravelの方が例えば、先ほどあげた観点ができていないのであれば、普通にRailsユーザーが内定を取ると思います。

じゃあ「コードの綺麗さ、設計、実装の工夫」を盛り込んだ上で、どんなポートフォリオが転職に合格しやすいかというと、「何を作りたいのか、なぜエンジニアになりたいのか」とか、XXXXさんの背景・パーソナリティが伝わるポートフォリオではないでしょうか。

私の例で言えば、エンジニアになりたい理由は 「力をつけ続けること」 が一つあったので、 タスクを行うと経験値がもらえて、ユーザーのレベルが上がるポートフォリオ を作りました。また、パーソナリティは発想力が強く、課題の解決に関して色々なアプローチをできるところが強みなので、「アプリにゲーミフィケーションを盛り込む」というところを意識しました。一応、Railsで作る人が多かったので差別化としてフロントエンドのフレームワークは別のものを使用しました。

結論としましては、どんなポートフォリオを作ってもいいが、前提として「コードの綺麗さ、設計、実装の工夫」を意識して、その上で作った理由...つまりは、エンジニアになりたい理由やそれをつくった思い、他の人にはないような工夫があるといいと思います。

先に上げたダメな例は、とりあえずSNSとか、とりあえずこれがいいと思ったからこれ、みたいなものです。理由としては、なぜそれを作ったのかみたいなのが説明できないと、一貫性が説明できないからです。私も 教員→別の仕事→エンジニア になったので、ただでさえ転職してふらふらしていると思われがちです。そのため、何においても一貫性は意識しました。

②もし↑のようなポートフォリオを作るのが転職のためのポートフォリオに有効だったとして、どのような機能をつけると良いのでしょうか?

初心者用のProgateやUdemyの動画の内容を応用した実装でも十分なのか、全てのレベルの人用のUdemyの動画の内容くらいのものが必須なのか…もちろん詳しいことに越したことはないのは分かるのですが、最低これは必須!というようなものがあれば知りたいです。

回答

機能に関しては、CRUD機能は最低限必要だと思います。ただ、上とも重なりますが、 なぜその機能を入れたかが説明できれば 、なんでも評価されうると思うのです。

忘れて欲しくないのは、 この機能を入れればってスタートして欲しくないのです。エンジニアになってから感じたのですが「何か解決したい課題や、面倒なこと」があって、それを解決するために機能を盛り込んだ アプリケーションを作っていると感じています。

こんなものあったらいいな、というのは、より便利にしたい、より助けになりたいみたいな思いから発生するのではないでしょうか。ですから、機能から考えるよりもXXXXさんが、 「これを解決したい」という課題を日常やこれまでの経験から探して、それを解決するために機能を作れば良い と思います。

回答を避けているわけではなく、「何でその機能作ったの?」って絶対聞かれると思うんです。その時に、こういう課題があって、今までの他のアプリだとこういうところができてなくて、だから私はこう作ったんです。みたいなロジックこそが評価されると思います。

その上で、私がエンジニアのマネージャーさんから聞いた話は、ソート機能が評価されたという内容です。ソートって、rubyで言えば確か.sort_byみたいに書けばできると思うんですが、見えないところでいろんな処理が行われています。そして、その処理を実は自分で実装することもできるんです。

処理が遅かったから、このように実装して工夫したとか、 本当少しでもいいのでエンジニア的な観点から機能を修正したり、細かく実装したら、評価されるんじゃないかと思います。

③今勉強してきた知識で未経験独学者は転職市場では必要とされますか?

例えばさらにPythonなどほかの言語も習得した方が良いですか?yukiさんは色々な経験をされて今の経歴がおありかと思いますが、私もここからITで活躍していくために、次はポートフォリオ作成で間違っていないのでしょうか?

自分を否定するようなことを言いますが、はっきり言って秀でた何かがなければ、 そこまで必要されていないと思います。 これは時代の背景や未経験エンジニアを取り巻く情報を書くのが大変ですし、あまり数値的なデータが持って来れないので私の印象ですが、あまり求められないと思います。

その上で求められるには、現役のエンジニアさん達と密にコミュニケーションを取り、情報をもらって、何が必要かを辛いけど教えてもらって、言われたことをきちんとやってみる力が必要だと思います。

個人的には(もう学んでいたら申し訳ないですが)、次はバージョン管理の学習だったり、アルゴリズムの学習だったり、Ruby自体をもっと学習してみる、綺麗なコードは何か書籍を読んで学んでみる、設計ってどう言うものがあるか、クラウドってどう言うものがあるか、といった知識をつけるべきじゃないかなと思います。

最後に、あくまでも個人的なお勧めですが、稼いでるとか、全面的にフリーランスの自由さとか稼げる部分とかを押し出している方よりも、作ったものを公開していたり、技術のツイートをしている方と繋がるのをお勧めします。

#駆け出し #積み上げ といったタグを使われてるのもいいですが、そういったエンジニアの方々は多分好かないと思うので、横で繋がるのも大切です。切磋琢磨するのも意味があります。ですが、XXXXさんには是非そういった現役のエンジニアの方々とつながってみることをお勧めします。

XXXXさんを利用しようとか、自分のメリットに利用しようと思う人ほど優しく、きっとあまりエンジニアの方面を知らないのをいいことに極端な話や、優しい話を伝えてくるんじゃないかと推測しています。

私の妄想かも知れませんが、まずは情報の取捨選択、わからなかったら現役のエンジニアに聞いてみる、みたいなところをやってみると良いのではないでしょうか!

以上です。

Discussion