どうも、フリーランスエンジニアのりゅうけんです。
エンジニアの供給不足は向こう10年は続くと予想されており、業界全体的に、20代だけでなく、30代40代の未経験層の採用も積極的になっていくでしょう。
エンジニアはフリーランスになれば、年収1000万円も比較的容易に狙える職業です。それだけに、プログラミングスクールに応募しようとする人も多いのではないでしょうか。プログラマカレッジなんかは無料で受講できるのに就職サポートまでついてますからね。
しかし、いきなりエンジニアの世界に飛び込むのにも不安はつきものだと思います。プログラミングが自分に向いているのかどうかもわからないだろうし、エンジニアの作法的なものも知らないわけですからね。
というわけで今回は、スクールに通い始める前に準備しておきたいこと、理解しておきたいことをまとめてみました。これからエンジニアを目指す人は、これを読んで想像と現実のギャップを少しでも縮めてくれたらいいなと思います。
目次
知っておきたい1:本は買わないこと
プログラミングを勉強する際に、初心者向けの本を買う人がめちゃめちゃ多いんですが、効率的ではないのでやめましょう。スクールに通う前の事前学習であれば、Progateなどの無料のオンラインプログラミング学習サイトで十分です。
プログラミングは本を読めばできるようになるものではありません。何かを開発する過程で習得するものです。アウトプットが最大のインプットになるという。
Progateのような学習サイトでは、擬似アプリの開発を適切な手順で体験することができるため、非常に学習効率は良いです。ブラウザから即課題を進められるので、本をパラパラめくる手間もかかりません。
そもそも、仕事でも本から情報収拾するということはほぼないです。基本、ググれば大抵のことは解決するし、それでもわからなければ詳しい人に聞くから。まあ、無用の長物ですよ。
資格の勉強がしたいなら参考書はあると良いんでしょうが、資格なんてなくても仕事に差し支えはないし、フリーランスエンジニアにもなれますからね。少なくともスクールに通う前に手にするものではないと思います。
知っておきたい2:不具合は大体自分のせい
プログラミング初心者が何か不具合に遭遇した時に言いがちなセリフ。
「何もやってないんですけどね。。」
これ、人に教えてると必ず言われるんだけど、ほぼ100%本人が何かしらやらかしてるわけですよ。現象には絶対に原因があります。AIでもあるまいし、機械がひとりでに暴走するなんて事はないものと思ってください。
初心者は、自分の行動を細かく一つずつ確認しながら作業するといいです。メモ帳に全部の作業ログを残しておくぐらいでもいいかもしれません。
多少作業スピードは落ちますが、トラブルシューティングの際、エラーの原因となった行動が把握しやすくなるので、結果的に周囲より早く開発を進められるでしょう。
慣れきたらメモの粒度を落としてざっくり書いてもかまわないので、最初は作業ひとつひとつに根拠を持たせる意識を持ちましょう。
知っておきたい3:答えは英語のサイトに大体落ちてる
英語圏のエンジニアが優秀なのは、インターネットに英語で記述されているFAQが最も多いからです。要するに、英語がわかる人はググった時に答えにたどり着くスピードが圧倒的であるが故に、効率的に作業を進めることができてしまうんです。
日本もIT先進国なので、日本語のソースもネットには沢山落ちてますが、僕はそれでもStackOverflowとか、英語のソースを優先的にクリックすることの方が多いです。やっぱ的確なものが多い。
特に英語が得意でなくても、慣れで十分なんとかなります。答えが書いてそうな部分が感覚的にわかるようになるんですよね。
スクールに通う前の段階では、少なくとも英語の記事を読むことに拒否反応を起こさない程度にはなっておいた方がいいでしょう。最近はGoogle翻訳の精度も高くなってきてるので、翻訳に頼りながらでもかまいません。
知っておきたい4:開発はまず大まかな道筋を理解する
開発で最もじっくり時間をかけるべきなのは、全体像を把握することです。アプリやサーバの構成と、どういう意図があってその設計となったのか。プログラミングの進め方みたいな枝葉の部分を詰めるのは後です。
初心者は今何のためにその作業をやっているのかを見失いがちなんですが、それは「よくわからないままとりあえず手をつけてみた」結果です。全体像さえ理解していれば、そこから自ずとやるべきことが導き出され、迷いがなくなるでしょう。
習得したプログラミングスキルをすぐに活用したい気持ちはわかりますが、仕事となると、まず要件を把握することが一番大事です。焦らずじっくりリーダーの概要説明を聞く、を意識しましょう。
ちなみに、Nuboardみたいな小型のホワイトボードに図を書いて理解するのは非常に効果的ですよ。僕もしょっちゅうサーバ/ネットワーク図や要件のまとめを書いたりしてます。
知っておきたい5:進捗状況はとにかく細かく報告する
報連相が大事だとはよく言いますが、IT業界では特に大事です。特に初心者は細かすぎるくらいリーダーに進捗を報告するくらいが良いでしょう。
リーダーはぶっちゃけ、未経験者に大したものは求めてません。仕様書を渡したところで何もできないことくらいは承知です。真っ当なリーダーであれば、作業の大半は自分がコントロールしつつ、本人がわかるところだけ進めながらゆっくり成長していってもらえば良いと思っています。
だからこそ、初心者は自分が今どのような作業をどれくらいの理解度で進めているのかを事細かに指し示しておくべきなのです。その方がリーダーが教育しやすいから。
間違っても「忙しそうだから質問せずに勝手に進めた」とかやめてくださいね。勝手に間違った方向に進められると巻き戻しが大変になって逆に手間が増えるんです。これ、開発あるある。
あと、報告する際に何を報告すれば良いかわからなくなりがちなので、「知っておきたい2」で示した通り、作業ログを丁寧にとっておきましょう。
さいごに:プログラミングスクールは超効率的!
エンジニアの仕事に不安も多いと思います。僕も文系出身で社会人になってからはじめてプログラミングを学んだので気持ちはわかります。
確かに最初は難しいんですよ。一つ一つの単語の意味がわからないので、概念と概念が紐づかず、混乱します。数週間は暗中模索を強いられると思っておいてください。
いま、プログラミングスクールは非常に丁寧に教えてくれます。カリキュラム自体も全体的にブラッシュアップされてきた感もありますしね。プログラミングだけでなく、上記の「お作法」含む、仕事の進め方を理解、実践できるレベルまで引き上げてくれるでしょう。
そこに就職サポートが付帯していたりするので、これからエンジニアを目指す人にとっては利用しない手はないと思います。最高品質でかつ、完全無料もしくは格安で受講できるスクールを中心にまとめてみたので参考までに。