こんにちは。もんしょー(@sima199407)です。
という疑問があるかと思います。
以前に以下のようなツイートをしました。
今エンジニア未経験ならどうするか?
①とにかくプロダクトを作る
基礎をやるより作って学ぶことをする。
「基礎を固めてから〜」だと進まないし、モチベーションを保てなそう。。②プロダクトを持って面接へ
給料とかは考えずに家の近くから順にエンジニアでコードを書ける場所を探す。③修行。
— もんしょー@時短リモートエンジニア (@sima199407) November 30, 2019
今エンジニア未経験ならどうするか?
①とにかくプロダクトを作る
基礎をやるより作って学ぶことをする。
「基礎を固めてから〜」だと進まないし、モチベーションを保てなそう。。
②プロダクトを持って面接へ
給料とかは考えずに家の近くから順にエンジニアでコードを書ける場所を探す。
③修行。
これについてもう少し詳しく解説していきます!
動画でも解説してます
結論から申しますと、基礎をやりすぎるなです。
「未経験の方からどうやったらいいか分かりません」ってよく相談がありますのでこういった意見に応えれればと思います。
僕は現役エンジニアとして、プログラミングを始めて3年になるので、僕が感じること、経験したことを中心にお話していきます。
無駄のないルートはこれだ!
ポイント1つ目、無駄のないルートはこれだ!についてです。
Twitterでも言った通り、3ステップで考えられると思います。
1:プロダクトを作成
2:プロダクトを持って面接する
3:実務経験を積む
これが最速の方法だと思います。
ただ、3ステップ目はすでにエンジニアとして働いているので、今回は1ステップ、2ステップについてお話していこうと思います。
プロダクトを作成
プログラミングを勉強しようと思ったら基礎からやろうと思うんですけども、ぶっちゃけ基礎のところはめっちゃ多いんですよ。
そこはある程度勉強したらどんどん次のケースに進まないとか、挫折していったりだとかモチベーションを保てません。
大事なのは何を作るか目標を設定しましょう。
そこから何が必要か逆算してプログラミングを勉強していきましょう。
シンプルでいいからカタチにしよう
これがすごく大事なところで最初に作るものは凝ったものでなくていいんです。
例えば、ToDoリストだとか、掲示板を作ってみるとか、SNSっぽいものを作ってみるとか、なんでもいいから形にしてみよう。とりあえず、形にしようとするのが大事です。
最初のプロダクトは駄作になるワケ
プロダクトで何かを作りましたそれを面接に持っていき、採用されて、仕事をするじゃないですか。
その後に自分が最初に作ったものを見返してみると、無駄なもの書いてるなとか、この実装なにやってんのとか、ここ無駄じゃんってところが多く出てきます。
それは恥ずかしくはなるんですけども、気づけるってことは成長している証拠です。
きれいに作りたいと思いますが、とりあえず形にするってのが大事です。
プロダクトをもって面接に行こう
作ったものが完成したらどんどん面接に行きましょう。基本的に未経験可とか、そういったところを応募していくと思います。
しかしこういうのは複数社受けていくのが王道かなと思います。
その理由は、倍率が高いからです。そのため、未経験可って書いてないところでも応募していくのがいいかなと思います。
未経験で新しくエンジニアになろうと考える人はそういったところに意外と応募しないんです。
ただ、企業側としてはスキルがあればちゃんと取ってくれるので、自分のスキルをちゃんと証明できれば、採用に結びつく可能性はかなりあります。
ただ、未経験可って書いてないところに書類とかを送った時にあんまり反応がなかったとか、そういうこともあるかと思います。
そういうのはどんどん切り替えて新しいところにどんどん応募していけば、すぐにエンジニアになれる可能性があります。
https://simablog.net/engineer-portfolio/
技術<コニュニケーション
未経験で応募するときにですね、重要なポイントがあります。
技術力だと思うかもしれませんが、技術力も判断材料の一つにはなりますが、未経験の時に必要なものは、「コミュニケーション能力」これが一番大事かなと思います。
その次に必要なのが、会社との相性。
この2つがすごい大事になってくるので、ここをどれだけ発揮できるか本当に就活と同じですよね。
そういったところをちゃんとアピールできるかどうかが面接を突破できるかのポイントになります。
自分のプロダクトを説明できる?
あともう1つあります。
自分が作ったプロダクトについて以下を言えるようにするといいです。
・明確にどんなコンセプトで作った
・どういった技術を使った
・どこが大変だった
をちゃんと説明できることです。
これで面接合格の確率はかなり上がります。
基本はその都度戻って勉強しよう
ポイント2つ目、基本はその都度戻って勉強しようについてです。
プロダクトを作ってきて、それで面接にいって採用されましたと、晴れてエンジニアになれましたと。
そういった時は、作ったプロダクトの最低限の知識しかないので、それ以外の知識が必要になってきて、分からない・・・。
どうしようと思うかもしれませんがその都度基本のところに立ち返ってもう一回勉強すればいいと思います。
全部覚えるのはすごく大変なことで、プログラミング一つの言語をとっても、なので全部覚える必要はないので、実務経験で必要なものだけをピックアップして、勉強していく方法、これだと効率が良いかなと思います。
何度も触れることで自然に覚えてきますので自分に本当に必要なことは手を動かして何度もやります。
コードをメモしてストックしておこう
何度も自分がふれてきてよく使うなってところは、しっかりメモしておきましょう。
まとめておくと、自分の中での記憶の定着であったり、他の人にプログラミングを教える時に、こういった所を勉強した方がいいよと伝えることが出来ます。
実務に入って勉強するというのは、効率的な事かと思います。
https://simablog.net/engineer-how-to-memo/
未経験時代の僕の話
ポイント3つ目、未経験時代の僕の話についてです。
未経験時代に、プロダクトを作って面接に行くという王道のパターン分かってはいたんですけども、僕はプロダクトというのをそもそもちゃんと作れていなかったんです。
プログラミングスクールで作った簡単なSNSのプロトタイプみたいなものはありました。
話してて恥ずかしいところもあるんですけどもコピペみたいなのも少しあるんですよ。
デザインを変えるとかはしましたが、このコンセプトがあってとかこういった人に使ってもらいたいとか、そういったものがなくて基本で使えるものを作っただけです。
そうなると採用されにくいのかなと思って、5社受けて1社受かりました。
面接は連続で落ちるわけなんですよ。
すごいへこんだりするんですけど、プロダクトをちゃんと作ってなかったり、プロダクトをなんで作ったのかを喋ることができなかった、これは自分の中で反省点だと思ってます。
もしあなたが長期インターンや未経験でエンジニアに転職するならこういった経験をして欲しくないです。
プロダクトをちゃんと作って、自分のコンセプトを伝えたりだとか、コミュニケーション能力だとか、会社との相性というを見つけていただければなと思います。
全ての道はグーグルにつながる
ここまで効率よくエンジニアになるルートについてお話してきました。
エンジニアになる時に色々調べていきます。
こういう実装をしたいんだけど、どうやってやっていけばいいかわからないってなると、多分パソコンで調べると思うんです。
分からないことを調べるとなるとプログラミングはすごく身についてくるので調べる事って言うのを疎かにしないってところですね。
これをやっていければなと思います。
プロダクトを作るときに、自然にググるんですよ何かを作るってなると。
そうなると面倒くさいと思わずに「検索力を上げる修行」だと思ってやって頂ければと思います。
まとめ
1つ目、作りたいプロダクトから逆算して学習する!
何かを作るってのをまず決めてから、それに必要なものをですね、勉強していくっていう方法。これが最効率な方法だと考えています。
2つ目、面接で自分が作ったものを説明できるようにする!
作ったプロダクトをどうやって使うのか・コンセプトなのかと、そういったことを伝える。
すごく難しいことを伝える必要はないんですよ。
例えば、SNSで犬好きのためのSNSとかそういった感じのざっくりとしたコンセプトでもいいです。
そういった風に作って「会員登録はこうやってします」「投稿の仕方はこうやってします」とか、説明できるところが重要です。
3つ目、調べる力はエンジニアになってから役に立つ!
ググる力はエンジニアになっても分からないこと、どんどん出てきます。
なので、その都度調べてなるべく早く解決する方法っていうのを、下積み時代からどんどんやるのが成長にもつながるのでコツコツやっていくのが大事です。
僕の経験からこの方法が良いと感じています。
今回のまとめです。
・作りたいプロダクトから逆算して学習する
・面接で自分が作ったものを説明できるようにする
・調べる力はエンジニアになってから役に立つ
https://simablog.net/how-to-engineer-career/