こんにちは!
seiです!
僕はプログラミングを独学で身に着けて、エンジニアになりました。
プログラミングを身に着けたことで、僕はニートから年収500万円になりました。
勉強期間は25歳から26歳までの一年ほどです。
先に結論をお伝えすると、最も重要なのは「成果物を作る事」です。
勉強しながら成果物をどんどん出せばプログラミングは身に着きます。
プログラミングを一年独学した体験談
25歳の時ニートだった僕は、「プログラミングが稼げる」と聞いて勉強し始めました。
実はニート期間に起業していて、ちょうど作りたいシステムがあったので、勉強しつつこれを完成させるのが目的でした。ついでにプログラミングを身に着けて案件を受注して稼ごうと考えていました。
僕がプログラミングを身に付けられたのは以下の理由だと考えています。
- 1日8時間みっちり学習した
- 学んだことを即アウトプットした
- 入社先にインターンした
1日8時間みっちり学習した
独学でやるなら時間をかなりかけないと身に着かないと思って気合入れて勉強してました。毎日毎日プログラミングの事しか考えてませんでした。
当時はスクールに通うお金は自分で出せなかったので、必死で勉強しました。
「お金がないなら時間を使う」しかないですからね。
一応理系でしたが農学部だったので、まったく情報系の知識がありませんでした。
ただ、情報系の知識がなくても意外と大丈夫だったので気にせず進めてください。
Webページの表示の仕組みとか、webサイトの仕組みとかが分かって結構楽しかったです。
1日8時間勉強してると、2ヵ月後には以下のスキルが身に着きました。
- ホームページを作成できる(ワードプレス上にも)
- お問い合わせフォームを自作できる(not プラグイン)
- ワードプレステーマを作成できる
この辺まで来ると、クラウドワークスで案件が受注できるようになりますね。
今考えるとスキル的にはまだ「エンジニア」とは呼べないです。webコーダーみたいな感じですね。
学んだことを即アウトプットした
上記過程で学んだことは即アウトプットしてました。
というか何か作るために学んでいたというほうが近いです。例えばホームページ制作について学習していた時は、自分で実際に簡単なホームページを制作しながらHTML、CSSを学びました。
また一通り学習して、アニメーション付きレスポンシブ対応のきれいなHPが制作できるようになったので、クラウドワークスで案件を受注してました。
案件を受注すると、難しい機能(ファイルをダウンロードさせたり、問い合わせフォームからメールを飛ばして、メールリンクから再度問い合わせフォームの内容を復元したり)を実装してほしいと言われて大変でした。
特に「メールリンクから問い合わせフォームの内容を復元する」という機能が当時の自分の技術力だとどうしてもできなかったので、別のワーカーさんにお願いして乗り切りました。
とても勉強になりましたが、正直単価は低いしライバルも多いので長くやるのはおすすめしません。
また、この状態のままクラウドワークスをやっても、エンジニアと呼べるまでの技術は手に入らない可能性が高いです。
- ひとつずつ調べて解決する
- バグっている原因を可能な限り考える
- 背景知識を学習する
誰も教えてくれないので、適当に調べていても一生わかりません。必ず一つずつ丁寧に調べてました。
また、バグって原因が分からないと脳死しがちですよね(笑)
バグの原因が分からないときは大体背景知識が足りてないときが多いです。考えても分からないので背景知識を学習することに力を入れてました。
急がば回れってことですね。
そんなこんなで学習してると、6か月くらいでアプリが完成しました!
HP学習期間と合わせて2+6=8か月間独学してました。
入社先にインターンした
作ったアプリを元に外資系IT企業に内定をもらったので、入社を決めました。ちょうどインターンを募集していたので、インターンをやってみることにしました。
独学でwebアプリ一人で作れるようになったので、これ以上勉強できる事あるのかなと思ってましたが、めちゃくちゃありました(笑)
インターン先の参考プロジェクトのコードを見てめちゃくちゃ感動しました。洗練されてるんですよね。
独学でやっていた時代は、コードの書き方やコードを書く場所にルールがなく、ぐちゃぐちゃだったので結構自分でも読みづらく開発効率がおちてました。
あとは、知らないシステムの構成の話や設計の話もできて、とても勉強になりました。
独学終わったら早く就職せよ
独学が終わったら、一刻も早く就職するのをお勧めします。
なぜなら、インターンで得た知識は、独学だと絶対にたどり着けない領域だからです。
先輩エンジニアや同期のエンジニアと情報交換するのはとても大切な事です。一人よりもみんなの知識を取り入れたほうが圧倒的に成長できます。
よく独学からフリーランスエンジニアを目指してる人いますが、わざと縛りプレイしてるのと同じですね(笑)
※僕もやろうとしてましたが
就職してからのほうが、エンジニアとして信用がつきますし技術力も上がりやすいので、楽です。またプロジェクト先にも迷惑がかかりません。
いきなり独学からやろうとすると、チーム開発の作法が分からなかったり、独りよがりなことをしてしまいがちなので周りに迷惑がかかることが多いです。
よくある質問
Q.独学は挫折しやすいって聞きますが、挫折しなかったんですか?
A.挫折しませんでした。
多くの方が挫折する原因は、「アウトプット優先にしてないから」だと考えています。勉強:アウトプット=1:9ぐらいの意識がちょうど良いです。スポーツ練習するのに本ばっかり読まないですよね?それと同じです。
Q.プログラミングスクールってどうですか?
A.プログラミングスクールは「時間がない人」または「お金に余裕がある人」は行くべきだと思います。
最初が一番時間かかるので、短期間に治療に時間が確保できる人じゃないと独学は厳しいと思います。
スクール選びに関しても、基礎的な知識を学ぶのであれば、どこも大差ない感じがしてます。
Rubyは廃れる可能性があるので、PHPやPythonの講座をとるのが良いと思います。
Q.プログラミングに数学力は必要ですか?
A.あったほうが良いです。
ない人でも論理的な思考ができる人であれば大丈夫です。フロントエンド(webアプリの見た目)領域ならほぼ関係ないかなと思います。
ぶっちゃけると業務で数学的な知識を問われることはほとんどないです。DB周りのパフォーマンスとか考えるんだったら少し数字が出てきますが、数学的知識は中学生あたりで大丈夫だと思います。
Q.一回挫折したんですが、諦めたほうがよいですか?
A.スクールに通って下さい。
世の中には0→1が得意な人と、1→10が得意な人がいます。0→1が苦手なだけで、教えてもらえば才能が開花する可能性は十分あるので、あきらめずにスクール通って下さい。
Q.プログラミング学習を何から始めたらいいかわかりません
A.こちらの記事をどうぞ。
こんにちは!seiです。 プログラミング始めたいけど何から始めればよいか分からない... 独学で始めたいんだけど大丈夫? おすすめを教えてほしい そんな方に向けた記事です。[…]
ふぅ~
たくさん書いて疲れたので今回はこのへんにしておきます。
何か質問や疑問があれば、「Twitter」か「お問い合わせフォーム」からご連絡ください。