今現在社会人として働いていて、プログラミングに興味のある方やエンジニアへの転職を考えている方、こんなふうに思ったことはありませんか?
- 働きながらプログラミングって勉強できるの?
- 仕事を続けながらスクールって通えるのかな?
過去の私もこのように考えていました。
私自身、もともとプログラミングは勉強したことがなく、全く別の文系職として働いていましたが、テックキャンプというプログラミングスクールに半年間仕事をしながら通い続け、今では転職してエンジニアとして働いています。
当時を振り返ってみると、プログラミングの勉強を始める前は、
- 本当に働きながら続けられるのか
- 本当に転職できるのか
不安に思っていました。
調べてみると、プログラミングスクールに通っている人は一度仕事をやめて勉強に専念している人が大半でした。
プログラミングスクールでの学習経験を紹介しているブログでも、働きながら通っていたという人はほとんどいませんでした。
この記事を読んでいる方も同じような状況の方は多いのではないでしょうか?
そこで今回は、私が実際に社会人として働きながらプログラミングスクールに通い、エンジニアに転職するまでの体験談をご紹介します。
実際の体験を元にいくつかアドバイスもできると思いますので、これからのプログラミング学習の参考にしていただければと思います。
自己紹介
- 年齢:24歳
- 性別:男
- 大学:私立文系学部卒
- 仕事:1部上場企業の文系職
- 年次:新卒3年目
プログラミングは一切触ったことがなく、文系大学出身で就職活動も文系職志望でした。
入社してからも仕事内容は営業やマーケティング関連の業務がほとんどで、システム開発やWebサイトなどは作るよりもむしろ発注する側でした。
新卒3年目になり仕事もだいぶ慣れてきて、後輩ができて教える側にもなり、人間関係的には特に問題なく働いていました。
プログラミングスクールに通おうと思ったきっかけ
なぜプログラミングを学ぼうと思ったのか
その会社を辞めようと思った理由は、仕事が激務だったからです。
ほぼ毎日残業で遅くまで働いていたり、月10回ほどは出張で全国の取引先に訪問したりしていました。
取引先のお客さんも基本は良い人ばかりですが、中には理不尽な要求をしてくるお客さんも一定数いて、精神的にもタフな仕事でした。
やりがいはありましたが、この先何年も続けられる仕事ではないなと思い転職を考え始めました。
また、元々将来的に独立したいと思っていたのも理由の一つです。
今後独立しようと考えたときに、何か武器になるスキルを身につけたいなと思っており、せっかくならそういった自分で稼げるスキルを身につけられる職種に転職しようと考えました。
そのときに見つけたのがテックキャンプというプログラミングスクールでした。
プログラミングは今後も需要が増えていくスキルであり、テックキャンプならプログラミングを学びながら最終的にはエンジニアとして転職できるという点にも魅力を感じ、無料カウンセリングに申し込みました。
プログラミングスクールに通うとなったときに一番ネックになったのが受講料でした。
当時は給付金制度も適用対象外でしたので、総額80万円ほど支払う必要がありました。
これまでの人生で一番高い買い物です。
そしてこれだけのお金を支払って本当に最後までプログラミング学習を続けられるのかという点も不安でした。
途中で挫折したら一生懸命働いて貯めた80万円が無駄になってしまいます。
ネットで調べてみても、プログラミング学習を続けられる派と、途中で挫折するからやめとけ派がちょうど半々くらいで余計に悩みました。
結局は自分の頑張り次第なのかなということで、思い切って受講することにしました。
ここまできたら絶対に80万円の投資を回収してやろうという気持ちで申し込みました。
貯金もたくさんあるというわけではなかったので24回の分割払いです。
ちなみに最近ようやく分割払いが終了しました。
なぜ仕事を続けながら通うことにしたのか
テックキャンプでは受講スタイルを「短期集中スタイル」と「夜間休日スタイル」から選択することができます。
短期集中スタイル:一度仕事を辞めて10週間の短期集中で学習するコース
夜間休日スタイル:仕事を続けながら半年間かけて学習するコース
テックキャンプに通う人の大半は短期集中スタイルを選択します。
ですが、私は夜間休日スタイルを選択することにしました。
その理由は大きく分けて3つあります。
1つ目は、高額な受講料を払った上で少なくとも3カ月間は収入が0になるというのはリスクが高すぎると感じたからです。
私は基本的には保守的な性格なので、80万円払っているだけでも十分リスクをとっているので、それ以上にリスクをとったチャレンジはあまりしたくありませんでした。
2つ目は、当時コロナが流行り始めて在宅ワークが増えたのと、土日も外出する機会が激減したので、空いた時間を全てプログラミングに捧げればいけると思ったことです。
3つ目は、今すぐに仕事を辞めるのは周りの人に迷惑がかかると思ったからです。
短期集中スタイルを選択するには、今すぐに仕事を辞める必要があります。
そうなると現在自分が抱えている案件を投げ出すことになり同僚や上司に迷惑がかかるので、モヤモヤした感じで仕事を辞めることになります。
それはいやだなと思ったのと、単純に自分自身も中途半端な状態で仕事を辞めたくないというプライドもあったので、キリのいいところまで仕事は続けようと思いました。
以上の3つの理由により、私は仕事を続けながらスクールに通うことを決断しました。
プログラミングスクールでの学習
受講開始前
スクールの受講を申し込んだのは3月だったのですが、テックキャンプは申し込みが殺到していて実際の受講開始は5月からでした。
なので受講が始まるまでは独学としてProgateで予習をしていました。
HTML、CSS、Rubyの基礎的な文法を学習していました。
感じたこととしては、プログラミングの基本的な部分は独学でも十分学習できるという点です。
Progateをはじめとする独学のプログラミング学習教材はどれもわかりやすく、プログラミング学習の入門にはぴったりです。
ただ、実際にWebアプリを開発するなどといった応用的な部分になると途端に難しくなります。
教材に載っていないエラーが発生したり、自分の思ったような処理ができなかったりなど、問題解決に時間がかかることが増えました。
多くのプログラミング初学者はきっとこの辺りで挫折するんだろうと思います。
自分も独学だけでプログラミングを学習していたらすぐに挫折していたでしょう。
結局ある程度Progateを触った程度でスクールの受講が始まりました。
受講開始後
プログラミングスクールには2020年の5月から通い始めたのですが、当時は皆さんご存知の通り緊急事態宣言の真っ只中でした。
当初の予定は渋谷にある教室に通ってプログラミングを勉強する予定だったのですが、緊急事態宣言の影響で教室は閉鎖され完全オンラインでの受講になりました。
私は学生時代から、自宅よりも教室や塾などで勉強した方が集中できるタイプだったので、プログラミングも教室で勉強したかったのですが仕方なく自宅で勉強を開始しました。
集中できるか不安だったのですが、その部分は特に問題ありませんでした。
テックキャンプでは、受講生が途中で挫折しないような工夫があらゆるところにありました。
例えばカリキュラムの進捗はスプレッドシートで管理されているのですが、1つ1つのカリキュラムは1〜2時間程度で終わるくらいの長さなので、サクサクと先に進めることができ、進歩している感覚を実感しながら勉強することができます。
また、zoomでスタッフの方や他の受講生の方と繋ぎながらカリキュラムを進める時間もありました。
以下のような1時間サイクルで勉強していく学習法でした。
- 45分間:ミュートで各自勉強
- 5分間:勉強した内容のアウトプット
- 10分間:休憩
学習と休憩を交互に繰り返すので、集中力が途切れることなく長時間勉強することができました。
学習を進めていく中でわからない部分があったら、メンターというプログラミング専門の講師にいつでも質問することができます。
こちらもオンラインですが、専用のシステムで問い合わせをしたら大体数秒〜1分以内にメンターの方に繋がり質問することができます。
すぐに質問できる環境があることで、問題が解決できずに悩んでいる時間を極限まで短縮できます。
独学していたときは悩んでいる時間がかなり長かったので、この質問対応は非常に助かりました。
勉強時間について
勉強時間ですが、私の場合は土日にプログラミングフルコミット、平日はほとんど仕事というようなスケジュールでした。
平日でもある程度勉強時間は取れるかなと思っていたのですが、元々激務の仕事でしたので平日はほぼ仕事に時間を奪われ、勉強時間は平日5日間に合計3〜4時間取れるかどうかという状況でした。
逆に土日は仕事もなく外出自粛の状況でもあったので、ほぼ1日中プログラミング学習の時間に当てることができました。
1日10〜12時間、土日だけで20〜25時間は勉強時間を確保できました。
このように勉強はほぼ土日だけという進め方だったのですが、カリキュラムの進捗は同期の中で常に1〜2番でした。
平日は仕事が忙しくて勉強できなくても、土日をプログラミングに捧げることができれば問題なくプログラミング学習は進められるということがわかりました。
カリキュラムの進め方
テックキャンプのカリキュラムのスケジュールは以下のような感じです。
カリキュラム | 短期集中スタイル | 夜間休日スタイル |
基礎カリキュラム | 1〜2週目 | 1ヶ月目 |
応用カリキュラム | 3〜6週目 | 2〜3ヶ月目 |
最終課題 | 7〜10週目 | 4〜6ヶ月目 |
転職活動 | 11週目〜 | 7ヶ月目〜 |
いずれもオリジナルの教材を使って実際にWebアプリを開発しながら実践的にプログラミングを学んでいきます。
各カリキュラムの最後には確認テストがあります。
コーディングテストやエラー画面を見て解決方法を考えるテストです。
確認テストは難易度が高いと聞いていたので、できるだけカリキュラムは早めに進めて確認テスト前に復習する時間を多く取るようにしました。
何回か不合格にもなったりしたのですが、再受験OKなのでしっかり復習してテストを受け直して無事合格できました。
最終課題ではチームでWebアプリを開発します。
4人チームだったのですが、私はスクラムマスターというリーダー的な役割を任され、プロジェクト管理的なスキルも合わせて学ぶことができました。
応用カリキュラム、最終課題と並行して個人アプリも作成しました。
簡単な写真投稿アプリなのですが、自分一人で全て開発したので良い経験になりました。
仕事との両立について
先ほども紹介した通り、平日はほとんどプログラミングは勉強できず仕事に追われていました。
一番辛かったのは仕事へのモチベーションが湧かないことです。
数カ月後には辞めることが決まっている仕事に対してモチベーションを見出すのは難しいです。
当然職場の上司にはプログラミングを勉強していることも仕事を辞めることもまだ話していなかったので、業務量を減らしてもらうよう相談するわけにもいきません。
あと数ヶ月我慢すればエンジニアとして転職できるという期待で自分を鼓舞し、いかに仕事を早く終わらせて、少しでも勉強時間を確保するかを考えながら日々仕事をこなしていました。
エンジニアとしてのキャリアを考え始める
最終課題も終わりが見えてきたあたりで、エンジニアとしてのキャリアプランを考え始めました。
エンジニアといっても様々な職種があります。
- フロントエンドエンジニア
- バックエンドエンジニア
- インフラエンジニア
- データエンジニア
- ネットワークエンジニア
- サーバーエンジニア
などから自分が興味のある分野を絞って、転職活動時に志望する職種を考え始めました。
その中で私はデータエンジニアに興味を持ちました。
当時の仕事ではクライアントのマーケティングや経営数値の分析を行う機会が多く、データ分析に興味があったことがきっかけです。
上記のような分析もプログラミングを使えばもっと幅広くできるんだろうなと思って、データ分析を行う会社に転職したいなと思う気持ちが強くなりました。
ただ、一つ問題があり、データ分析を行うエンジニアにはpythonがほぼ必須であることが判明しました。
テックキャンプではRuby on Railsを中心に学んでいて、pythonはカリキュラムにありませんでした。
ですので、私はスクールと並行して独学でpythonを勉強し始めました。
また一から勉強し直しかなと思いながら勉強を始めたのですが、pythonもすでに学んでいるRubyも基本的な考え方は共通する部分が多かったので理解が進みやすく、思ったより早くpythonには慣れました。
とはいえ、プログラミングを学び始める前に、あらかじめどんなエンジニアになりたいか決めておけば、もっと最短距離でプログラミングの勉強ができたなと思いました。
当時はとにかくエンジニアになりたい、プログラミングを勉強したいという漠然としたイメージで勉強し始めてしまいました。
これからプログラミングを勉強しようと思っている方は、何を勉強するか決める前に、ざっくりとでもいいのでどんなエンジニアになりたいか考えてみることをおすすめします。
転職活動
プログラミングスクールのカリキュラムが終了した後は、本格的に転職活動を開始しました。
転職活動時は以下の項目を軸として求人を探していました。
- データエンジニア職
- 自社開発企業
- 都内企業
- ヘルスケア業界
- 年収400万円
使用した求人媒体は3つです。
- プログラミングスクールの求人紹介
- 転職エージェント
- Wantedly
プログラミングスクールでは5社の求人を紹介されました。(紹介された求人についてはこちらで紹介しています。)
スクールの求人は都内企業、ヘルスケア業界、自社開発企業という希望は満たしてくれていたのですが、データエンジニアの求人はなく、年収も希望を満たしていることが少なかったので、こちらはキープしつつ自分でも求人を探しました。
転職エージェントについては、エンジニア転職に特化したエージェントをビズリーチで探して登録しました。
エージェントには自分の希望を細かく伝え、条件に合う求人をいくつか探してきてくれました。
その中から3社ほど応募して選考に進みました。
Wantedlyにも登録して様々な会社のエンジニアの方とも面談し、実際に採用面接にも2社進みました。
面接に進んだのは合計5社です。
本当はもっとたくさん応募した方が良いと思ったのですが、自分の希望に合致する企業がなかなか見つからなかったのと、本業もまだ続けていたため働きながら何社も並行して受けるのは難しいと判断して5社で転職活動を進めました。
どこにも内定が決まらなかったら、条件を考え直してやり直そうとエージェントの方と話していました。
転職活動の結果は結論から言うと以下のようになりました。
- A社:内定、データエンジニア、年収420万円
- B社:内定辞退、テストエンジニア、年収400万円
- C社:最終面接落選、データエンジニア
- D社:2次面接落選、データエンジニア
- E社:2次面接後辞退、データコンサルタント
2社内定をいただき、そのうち1社に入社することを決めました。
理由は自分が希望していた条件に最も合致していたからです。
もう1社は仕事内容が自分がやりたかったことと少し異なっていたため辞退しました。
残りの3社のうち2社は選考の段階で落ち、1社は選考途中で辞退しました。
どちらも選考にコーディング試験があり、実力不足での落選です。
企業が求めているスキルレベルに達していなかったということなので仕方ないですね。
辞退した会社は途中まで進んでいたのですが、内定した会社の方が志望度が高かったため辞退することとなりました。
その時働いていた会社にはA社の最終面接前に退職意思を伝えました。
本来は内定が決まってから伝えた方が良いらしいのですが、働いていた会社が来季の人事編成を考え始めており、早めに伝えないとかなりバタバタしそうだったので前倒しで当時の上司に伝えました。
ただ、結局かなり引き留めにあいましたので、退職が決まるまでに1カ月ほどかかりました。
直属の上司と面談して、その上の上司と面談して、その上の上司・・・と全部で5回ほどの面談を経てやっと退職が決まりました。
現在
2020年12月に当時の会社を退職し、2021年1月から内定した会社で働き始めました。
プログラミングスクールに通い始めたのは2020年5月なので、それから8カ月でエンジニアとして転職したことになりますね。
現在もその会社で働いています。
仕事内容はpythonを用いたデータ分析の仕事です。
プログラミングスキルももちろんですが、統計の知識も要求されており、日々勉強しています。
大変なこともありますが、やりたかった仕事ができており充実した生活を送れていると思います。
80万円払ってプログラミングスクールに通ったのは正解だったと今では思っています。
働きながらプログラミングを学ぶときに気をつけること
自分の経験をもとに、社会人が働きながらプログラミングを学ぶ際に気をつけるべきことをまとめてみました。
- 無駄な時間を徹底的に減らす
- 仕事とプログラミング以外は何も考えない
- エンジニアとしてのキャリアをあらかじめ考えておく
- 挫折できない状況を強制的に作る
無駄な時間を徹底的に減らす
働きながらのプログラミング学習は時間との勝負でもあります。
いかに限られた時間で効率的にプログラミングを学ぶかが非常に重要です。
プログラミングで最も時間を消費するのはエラーで悩んでいる時です。
特に初学者の場合は何時間も問題が解決しないということが多々あるので、そこで挫折してしまうことがよくあります。
この悩んでいる時間を減らすには、詳しい人に質問するしかありません。
解決策はプログラミングスクールに通うか、知り合いやSNS、MENTAなどのサービスを利用してプログラミングを教えてくれるメンターを探すのが良いと思います。
仕事とプログラミング以外は何も考えない
仕事をしながらプログラミング学習を継続するには、本業以外の時間はほぼ全てプログラミング学習の時間にあてるくらいの覚悟が必要です。
特に私のように平日は仕事でなかなか時間が取れないという方は、土日はほぼ丸一日勉強時間にあてるようにしましょう。
私の場合はプログラミングスクールに通っていた半年間は、土日に関しては勉強以外の予定を入れていたのは月に1日あるかどうかくらいでそれ以外はほぼプログラミングをしていました。
これはコロナ渦で外出自粛の時期だったこともあり、意外と無理なくできました。
Progateはスマホでも勉強することができるので、すきま時間もプログラミング学習の時間にあてられますね。
半年ほどは仕事とプログラミング以外何もしないくらい集中してコミットしてみることをおすすめします。
エンジニアとしてのキャリアをあらかじめ考えておく
プログラミング学習を始める前に、エンジニアになって具体的にどんな仕事をしたいのかをあらかじめ考えておくことをおすすめします。
それによってどの言語を勉強すべきなのかが変わってくるので、なりたいエンジニア像が決まっていればそこに向かって最短距離で勉強を進めることができます。
フロントエンドの開発がしたい・・・HTML、CSS、JavaScriptなど
バックエンドの開発がしたい・・・Ruby、Javaなど
データ分析の仕事がしたい・・・pythonなど
といったようにそれぞれ必要なスキルが異なります。
私の場合はそれを先に考えずにとりあえずプログラミングスクールに通い始め、後でデータ分析がしたいということでpythonを学び直しました。
これはこれで良い経験だったとも言えるのですが、若干遠回りだったなとも思うので、これからプログラミングを学び始めるという方には、なんとなくでもいいのでプログラミングで何をしたいのか考えてみることをおすすめします。
挫折できない状況を強制的に作る
いつでも辞められる状況よりも絶対に挫折できない状況を作る方が、プログラミング学習は継続できます。
挫折できない状況をどのように作るのかというと、
- プログラミングを勉強していることを周りに発信する
- 勉強仲間を見つける
- プログラミングスクールに通う
- 会社を辞めてプログラミングを勉強する
などが考えられますね。
以上の4つは上から難易度が低い順に並んでいます。
難易度とリスクを考えた上で、自分ができそうなものから実践してみるといいと思います。
私の場合はプログラミングスクールに通い80万円の受講料を支払うことで、辞められない状況を作りました。
まとめ
働きながらプログラミングを勉強するというのは、大変なことではありますが、やり方次第では十分に成功できると私は思います。
この記事を含め、ネット上には様々な方の経験が集まっていますので、いろいろな方のアドバイスを集めた上で最終的に自分がやりやすい方法で勉強を始めてみてはいかがでしょうか?
私自身はテックキャンプというプログラミングスクールに通ってエンジニアとして転職することに成功しました。
興味のある方はこちらの記事で詳しく解説しておりますので、合わせてご覧ください。
私の経験が皆さんのプログラミング学習の参考になれば幸いです。
本記事は以上になります。