始めに
こんにちは!
まんじです!!
今回は未経験から4ヶ月でウェブエンジニアになるためのロードマップを書いてみたいと思います。
この通りにできれば4ヶ月ぐらい、遅くとも5~6ヶ月目ぐらいにはウェブエンジニアに就職または転職ができると思います。た、多分。。。
結論から書くと、大体以下のような流れと全体像になります。
- プログラミング文法学習: 0.5ヶ月
- ウェブアプリ作成練習: 1.5ヶ月
- ポートフォリオ作成: 1ヶ月
- 仕事へ応募: 1ヶ月
(まあまあハードめ…)
4ヶ月で未経験からウェブエンジニアになるのは結構大変です。
きつめのスケジュール感でゴリゴリやる必要があります。
フルタイムの仕事しながらで4ヶ月とかだと多分クソきついというかめちゃくちゃセルフブラックになるので、やや発狂気味になると思います。
ただ、1年とかかけて勉強してから〜っていうのは時間が長すぎてかなり微妙なので、本気でウェブエンジニアになろうと決めているなら4ヶ月ぐらいを目標に一気に詰めたほうが良い確率が非常に高いです。
スケジュール感がハードすぎる場合などは5ヶ月ぐらいでトライすると良いと思います。
まず全体像(ゴール)を把握する
ウェブエンジニアに転職や就職するためにやることは大きく分けて2つです。
- ①ポートフォリオ作成(プログラミング学習しましたぜっていう証拠)
- ②仕事に応募して面接突破(応募しまくって適当に面接を通してもらう)
ポートフォリオ作成
プログラミング言語自体の勉強は2週間~1ヶ月までに抑えて、ポートフォリオの作成が必要(ウェブエンジニアならウェブアプリを作る)です。
なぜ必要なのかというと、ポートフォリオがあることによって「こいつはちゃんとプログラミングやる気あるんやな」てきな評価をしてもらえるからです。
採用側としても口だけで「プログラミングやりたいです!!!」みたいなことを言われてもちゃんとやる気があるのかは不明なのでポートフォリオっていう一定量学習した証拠が必要になります。
補足
イマドキのミドルベンチャーやメガベンチャーの場合は、ポートフォリオに加えてコーディング試験の突破が必要になることが多いです。
コーディング試験の突破というのはプログラミングを使ってなんか問題を解くやつです。
競技プログラミングとか言われるものに似ていたり、コンピューターサイエンスとアルゴリズムっていう分野とも言われます。
※ ミドルベンチャやメガベンチャー系にエントリーする場合は、コーディング試験が必要
※ DeNAとか、サイバーエージェントとか、Sansanとか、freeeとか
仕事に応募して面接突破
仕事に応募して面接を突破するには、さらに分解すると応募するという作業と面接を突破するという作業に細分化できます。
- 仕事に応募: いわゆる良い感じの企業を探して求人に応募する
- 面接突破: 面接で落とされないように多少の面接対策をする
仕事の応募に関しては、普通の仕事と同じで履歴書書いてポートフォリオのURLなりを貼り付けて、ひたすら応募しまくればOKです。
注意点としては、未経験ウェルカムブラックSESとかにつかまらないことやウェブ系SIer系らへんの違いがちゃんと分かっている必要性があります。
面接突破に関しては、なぜウェブエンジニアをやりたいのかなどの理由を言えたり技術的な質問がされるので、そこの対策をする必要があります。
ちょっとここらへんはもう少し詳しく書きたいので、別の記事に入れます。
ポートフォリオまでにやること4STEP
STEP1. プログラミングの文法習得(0.5ヶ月)
まずはプログラミング言語の文法を習得する必要があります。
期間の目安としては2週間程度で、深い理解度ではなくていいのでとりあえずざーっとやり終えたいです。
以下の部分を2週間前後でなんとなく知っておきましょう。
- 変数
- 基本的な型(文字列、数値、真偽値、配列、オブジェクト)
- 分岐処理(if else, switch)
- メソッド(関数)
- ループ処理(for, while)
最初から文法を完璧ゴリゴリに理解して使いこなすのは無理なので、自分の中でコピペして処理が追えるぐらいなら十分だと思います。
例えば、「このループの中のこのifがn回目にループから抜けてるんだな」みたいなことが分かっているような状態です。
変数や配列やオブジェクトのスコープや参照などの後々必要にはなるけど最初は分からなくて問題ないようなことは気にせずに飛ばすのが大事です。(←難しくて何言ってんのかよくわかない場合は無視してください。)
たまにプログラミング言語自体の学習を長くやっちゃう人がいるんですけど、微妙です。
プログラミング言語は極めれば深いけど、ポートフォリオ作成程度にはそこまでの深さは必要ないので、とにかく早くある程度の理解度で進めることが重要になります。
STEP2. ウェブアプリ作成(1.5ヶ月)
プログラミング言語の文法を適当に学んだら、次はウェブアプリの作成にいきなり取り掛かりましょう。
最初からドキュメント読んだり英語のチュートリアルや英語で解説されているものでやるのはかなりきついので、最初はKindleなどで1冊「TODOアプリが作れる本」などのコンセプトの内容を真似して作っていくのがおすすめです。
基本的にこの段階でも必死に覚えたり反復したりしたところでどうせ理解できないので、それなりの理解でコピペしつつ修正が必要な部分は書き直して作り終えることが重要です。
あとできればURL取得してvercelやHerokuやFirebaseなどの簡単にデプロイできるホスティング先へのデプロイもできたほうがいいです。
理由としては、ウェブアプリの制作工程として単純に勉強になるのと、ポートフォリオを提出する際にも役立つからです。
その他の注意事項としては、無思考でコピペはできるだけ減らして、理解しようと頑張りつつコピペして修正するのが大事だと思われます。
本当にただコピペするだけだと意味ないんですが、ただここは文字に起こすのが難しい感覚的な部分です。
全て完璧に理解していくのは無理なのである程度はコピペ感はでるものの、かと言ってもコピペすぎても、それは微妙みたいな。。。
ある程度のコピペは許容しつつも、頑張って理解しようとするのが大事ですね!
STEP3. ポートフォリオ作成(1ヶ月)
テーマ決めをして、STEP1と2で使ってきたプログラミング言語とフレームワークをベースにポートフォリオを作っていきましょう。
目安の期間としては1ヶ月程度です。
STEP2で多少なりウェブアプリの制作工程は分かっているはずなので、ググる時間は以前よりも減っているはずです。
ここでいろいろ技術的な部分に手を広げていくと終わらなくなるので、ある程度は妥協するか、それか一部だけ勉強して取り入れようとしてみるかぐらいのスタンスで良いと思います。
最近だと、AWSのEC2にフロントエンドはReactでDocker使って開発してバックエンドもAPI立てて〜みたくやる人もまあまあいます。
が、個人的にはフロントエンドならReactだけでも良いと思いますし、バックエンドならDjangoとかFlask(Python)のMPAと言われる昔ながらのウェブアプリで全然良いと思います。
レベルの高い会社を除いて、ぶっちゃけそこまでは求められていないのと、単純に広く浅くなりすぎてしまう場合も多いからです。
STEP4. 仕事へ応募(1ヶ月)
STEP3でポートフォリオがある程度形になったら実際に仕事へ応募していきましょう。
ここでたまに出てくるのが以下のような意見というかマインドというか考え方です。
「いや!でも!もっとブラッシュアップしてからのがいいと思うんです!」
「まだ実務レベルには足りないと思うので引き続き勉強します🙇(土下座)」
ぼくも昔はまさにこんな感じでした。
でも実際のところ、ブラッシュアップとかをしていくとそもそもキリがないです。
具体的には、実務レベルには足りないみたいなのはそもそもいくら勉強したところで実務(労働)で求められるプログラミングは自分1人でやるプログラミングと少し質が違うのでいつまでたっても勉強は終わらないというのがあります。
なのでポートフォリオがあってそれがデプロイできているならもうその状態で応募していってしまって現場からのフィードバックなどを得て改善をするなり実力が不足していても入ってなんとかしたほうが時間(お金)の節約になります。
- 1日休日にプログラミングの勉強を1人でしている場合 ⇒ 無給料でしかも明確な指針もない
- 1日プログラミングで働いた場合 ⇒ 少なくとも8000円は出る、現場のエンジニアからのレビューありきでコードが勉強しながらお金をもらいながら書ける
どっちがいいのかは一目瞭然です。
さっさとクソコードをgithubやgitlabにpushしてメガネからdisられつつも適当に謝りながら改善していくほうがいいです。
もはやここは完全にマインドセットの問題なので、本当にさっさと入ってしまうほうがいいです。
大事なのはとにかく応募して面接までいくことです。
面接までいければもし落ち続けた場合でも不足点が分かるので、学習し直すにしても必要な部分を学んでいけます。
自分がウェブエンジニアをやる前にあった疑問点
疑問1. 最近のウェブエンジニアのポートフォリオのレベルは上がってるって聞いて不安
答え: 実際にリアルの現場にいけば普通に雑魚がいるので大丈夫
ウェブエンジニアがフルリモートできたりフリーランスなりやすかったり手に職がついたり年収も平均と比べると悪くないっていう側面で人気なんですけど、ウェブエンジニアって言ってもただのそこらへんにいる平凡なサラリーマンが大半です。
最初は周りがすごそうに見えたり、すごい人ばっかだと錯覚して自滅しがちなんですけど、自分で自滅するのはもったいないというか80~90%ぐらいは普通のおじさんなので大丈夫です。
ただ、普通の水準でやっているとそこらへんの普通と同じぐらいの並びになるので、そこは気をつけないといけないかもしれません。
*普通にクソ優秀だったり、労働時間が長くて開発時間が長い勤勉厨、ガチですごい人などは普通のサラリーマンに比べると多い感じはするのでそこは注意が必要です
疑問2. ポートフォリオの数は1つよりも2つがいいのか?
答え: 1つでいい
2つあっても採用者側はそんなに見きれないし、そもそも限られた採用判断の時間だと1個のウェブアプリで十分です。
ただ当然のことながら、1個がレベル4よりも2個がレベル4のほうが評価は高くなると思いますが、2個作ったから評価が2倍になるかというとそんなことはないです。
労力とリターンの比例が1個をそれなりにちゃんとするほうがコスパがいい可能性が非常に高いです。
疑問3. 英語は必須なのか?
答え: 必須ではないけど、できる人は英語は普通に読み書きできる
ウェブエンジニアをするとドキュメントとかgithubのissueとか海外のサイトやスタックオーバーフローをみる機会が圧倒的に増えるので、基本的に英語は読み書きがそこそこできるのが好ましいです。
だだ最初はぶっちゃけdeepLだけで十分なのと、やりながら本当に必要を感じ始めたら英語も勉強すればいいってだけだとは思います。
余談としては、いわゆるそこそこ技術力があるっぽい感じの人はかなり高い確率で英語ができるか、そもそもグローバル企業出身だったりもうなんていうか土台から優秀という現実はあります。
疑問4. ウェブエンジニアになってからも勉強し続けないといけないのか
答え: できる人や収入が高い人は勉強時間や開発時間やその他自己研鑽の時間が長い
これはウェブエンジニアに限らないと思いますが、普通に普通な年収とか人生自由度でいいなら周りと同じように平均的な時間の使い方をすると大体そこらへんに落ち着きます。
ただ、一定期間で一気に実力を伸ばしたい場合や収入を上げちゃいたい場合や人生自由度を上げちゃいたい場合なんかには、特に最初の1~2年は思いっきり勉強すると自分の理想っぽい状態に近づくのが早くなります。
「みんな勉強しているのか」とか「エンジニアはこうあるべきだ!」って感じのやつに関してはそもそもそんなのはないというか、別に個人の自由で、良くも悪くもただ自分へのフィードバックが来るだけです。
疑問5. 実務レベルとは
答え: 普通に職場の平均ぐらいの技術偏差値と遂行能力があって労働できるレベル
実務レベルっていう言葉自体が老害の威厳を守るための言葉にしか見えないんですが、いわゆる実務レベルは最初はきついですけど半年~1年ぐらいで慣れてくるので、そこらへんが実務レベルだと思われます。
当然チームや会社内でポジションが高いとそれだけ難しいことを任されるので実務レベルっていうやつが高くはなりますが、普通に働くレベルなら別にそんな大層な能力でもありません。
あとは普通に慣れと、技術力を高めたいなら普通に勉強時間や開発時間を増やすっていう普通な部分に帰着します。
まとめ
ロードマップと言っても「プログラミングの基礎文法をさくっと適当に勉強してウェブアプリの作り方を学んで作って、それらの学んだことをポートフォリオに入れて仕事に応募しまくる」という1行の記事でした。
細かい方針などの道筋が見えない場合にはメンターをつけるなどしてお金で時間を買って、将来的にお金をむしろ多く回収するみたいな戦略もありだと思います。
実際1人で完全に独学で誰からも教えや導きがない状態で進めるのは大変です。
個人的にはウェブアプリを学んで作る部分と、ポートフォリオを作るところが1番大変だった気がしますが、そこを乗り越えるともはや仕事応募&面接ゲーです。
つらい時はなんでウェブエンジニアをしたいのか(年収、自由度、スキル、将来性、らへん・・・?)などを改めて思い出しつつやると良いと思います。
ファイト!