どうも、アラサー未経験からエンジニアになったなおや(@naoya2_2)です。
僕もそうだったのですが、エンジニアを目指しプログラミングを始めた頃ってどう勉強したら良いのか分からずに時間だけが経過しがち。また、勉強を始めてもひたすら基礎を復習し、同じ教材を何周も繰り返してしまったり…
ですが、その学習方法は非常に非効率。
今回は、最も効率の良いプログラミング学習方法についてお話していきます。
目次
【結論】素早くプログラミングを習得したいなら就職しよう
最初に結論なのですが、効率よくプログラミングを習得したいのであれば少しでも早くエンジニアとして就職してしまいましょう。僕も今でこそフリーランスエンジニアとして働いていますが、まずは就職しました。
半年も働けばそれ以前との差は歴然です。
一日中プログラムと向き合うことができますし、もちろん働いてお金を稼いで新たな勉強への投資にすることも可能。
正直言ってエンジニアとしてのスキルを最速で高めるのであれば働く以外の選択肢はありません。
なぜ就職が効率的なのか?3つの理由を解説
就職が効率よくプログラミングを学べる理由としては以下3つが挙げられます。
- アウトプット前提の学習ができるから
- 現場にはプロがたくさんいて教えてもらえる
- 締め切りという時間制限があり本気度UP
理由①:アウトプット前提の学習ができるから
これが最も大きな理由で、アウトプット前提の学習ができるからです。逆に言うとアウトプット予定のない知識は詰め込まなくてもいいです。
どういうことかと言うと、
勉強する理由 | 行動 | 判定 |
仕事で機能Aを実装したい → | 機能Aの実装方法を勉強する | ○ |
いずれ役に立ちそう → | Webスクレイピングの勉強をする | ✕ |
こんな感じで、使うための知識をその時に勉強することが超重要。
会社のプロジェクトに入ることでアウトプット前提の勉強が自然とできるようになります。せざるを得ない状況になります。
アウトプット予定の無い勉強も絶対するなとは言いません。その技術に興味があって楽しめているのならどんどんやりってください。
ただし「プロゲートを5周やりました」みたいにアウトプット予定なしに同じことを何度も繰り返すことはほとんど技術向上に繋がらないのでやめましょう。
アウトプット予定のない勉強はほとんど身に付かない。
理由②:現場にはプロがたくさんいて教えてもらえる
就職して仕事の現場に入れば、当然すでに活躍しているプロのプログラマー、エンジニアがたくさんいます。
そういった環境に自身も入ることは非常に大切で、仕事のやり方を教えてもらったりコードを見せてもらったりすることで1人よりも圧倒的に多くのことを学べます。
自分の書いたコードをレビューしてもらって改善させることもできますし、1人で勉強しているだけでは絶対に得られないメリットが膨大にあります。
理由③:締め切りという時間制限がある
仕事には納期があり、1つのプロジェクトには実質の時間制限があります。この締め切りの存在がプログラミング学習の効率をグッと引き上げる要因になっていると考えています。
どういうことかと言うと、例えば一人のもくもくとプログラミングの勉強をする場合は1つの問題に対して無限に時間をかけて解決できます。でも仕事だとそうはいかず、
- 短時間で問題解決にたどり着く能力
- 適度に助けを求める能力
これらの能力が必須になってきます。
このように仕事を通してプログラミングに触れることによって、短時間でトライアンドエラーを繰り返すようになり知識技術ともに最速で高めることが可能になります。
「そもそも就職が難しいのですが」→もちろん解決できます
就職せよと言われても「そもそも就職が難しいのですが」と考えている方は多いかと思います。なので、ここでは実務未経験でも就職するためのコツを話していきますね。
【就職のコツ】SESに入ってしまうのが手っ取り早い
たしかに、エンジニアとしての実務経験が全く無く、かつ30歳を超えていると「そもそも就職が難しい」という意見には同意です。でも、解決の糸口はあります。
それは、SES企業の正社員として入社することです。
ざっくり言うと、社員を委託先企業に派遣して働かせる事業形態のこと。つまり社員(あなた)は就職した会社ではなく委託先の会社で働くことになります
SES企業は未経験の人でも採用しているケースが多く、企業によっては半年ほどの検収カリキュラムを用意しているところもあります。
エンジニア業界ではSESで働くことは悪とされていますが、そういった会社に飛び込んで2年くらいがむしゃらで働いて勉強すればプログラミングスキルは飛躍的に向上します。
でも、未経験からの仕事は結構大変です
当然ですが、未経験から仕事をこなしていくのは結構大変です。疲れますし、覚えることがたくさんあり体力的にも消耗します。
プログラミングに限らず最初が一番苦しい時期。
でもこの時にどれくらい必死になれるかでプログラミングの上達度は変わってきます。正直、ここはもう割り切るしかありません。
僕も何度か心折れながら今に至っています。しんどかったことなどこちらの記事にも書いています。
関連記事:エンジニア転職から1年が経過しました
未経験者がエンジニアとして就職する方法
上記の通り、未経験者であってもエンジニアとして就職することは可能です。では具体的にどのような方法をとれば就職しやすいのかをお話します。
①まずはプログラミングの「基礎だけ」を学ぶ
未経験でも就職可能と言えど、当然ですがプログラミングについて何も知らずに就職をするのは非常に厳しいです。最低限の基礎知識だけは身に付けましょう。
Progate(プロゲート)などの無料サービスなどもあるので、基礎だけをさらっとやってみてください。
「全て分かるまで何周もやる」みたいなことは避けてください。
(すごく雑に言ってしまうと、プログラミングはfor文とif文が使えれば割となんとでもなります)
もし時間にもお金にも余裕があるのであればプログラミングスクールに通うのもおすすめ。初学者ほど特に身近にプログラミングを教えてくれる人がいる環境は継続の力になります。
②オリジナルのポートフォリオを作る
プログラミングの基礎を覚えたら、その知識を最大限に使いポートフォリオを作成しましょう。
ポートフォリオがあるだけで就職活動のしやすさは格段に上がりますので、必ず作り面接前に作っておきましょう。
自分は既に手を動かしています!とアピールできる材料。その成果物。
Webページやアプリケーションなど
僕が就活をした際にはUdemy(ユーデミー)で勉強しつつ簡単なオリジナルのWebページを作りました。静的(動きのない)Webページを作るだけなら以下が分かりやすくポートフォリオ作りの参考になります。
③就職活動を開始する
オリジナルのポートフォリオが作成できたらいよいよ就職活動です。まずはWantedlyなどでサクッと話を聞きに行き、良い会社だなと思ったら採用試験を受けると良いと思います。
会社の雰囲気を知るためにもできれば現地に足を運んで、働いている人の様子なども観察してみてください。
【まとめ】効率よくプログラミングを覚えるなら就職が最適
今回はプログラミングを覚えるなら就職が最適というお話をしてきました。その理由をまとめると、
- アウトプット前提の学習ができるから
- 現場にはプロがたくさんいて教えてもらえる
- 締め切りという時間制限があり本気度UP
上記の通りです。
特にアウトプット前提の学習をするという点は本当に大切なので、ぜひ覚えておいてほしいポイントです。
すぐ就職することが難しい場合でも、作るものを確定させてから学ぶことで効率は大幅にアップします。ポートフォリオ作成の役にも立ちますので、まずはUdemyなどで簡単なWebページを作りながら学習を進めると無駄がなく効率的です。
高橋直也(@naoya2_2)
フリーランスエンジニア。SEとして主に某企業顧客管理システムの開発、改修を担当している。ブログでは30歳未経験からSESを経てフリーランスになった経緯等を発信中。