BLOG

元営業マンが未経験からエンジニアになるまでの過程を紹介

2020.5.18
CHALLENGE

こんにちは。2020年5月1日よりマーベリックスに入社致しました、桑嶋と申します。記事のタイトルからお分かりだと思いますが、私は業界未経験からweb業界へキャリアチェンジをした新人エンジニアです。

今回は、私がどのようにして未経験からエンジニアになったのか、その過程をお伝えしたいと思います。

対象読者

主に、

  • 現在は別の仕事に就いているけどエンジニアになりたいと思っている社会人の方
  • 勉強するにあたってプログラミングスクールを利用するか独学かで迷っている方
  • (マーベリックス受けてみようかな。とちょっと気になっている方)

の参考となれば嬉しいです。

ではまず、

簡単な自己紹介と経歴

  • 1992年生まれの27歳・男
  • 2016年3月:大学(経営学科)卒業
  • 2016年4月〜2019年9月:通信機器ベンダーの営業職として勤務
  • 2019年9月末︰エンジニアへの転職を決意し退職(→半年間の独学)
  • 2020年3月末:エンジニアとして内定

前職では民間企業や病院へ内線電話機のシステムや無線アクセスポイント(wifi機器)などを販売していました。なお、プログラミングとの接点はありませんでした。

エンジニア転職のキッカケとなった原体験的な話

前職で営業として日々仕事をしている中で、時々感じたことがありました。それは、自分の仕事が「メーカーの作った既製品」を取り扱うという域を出ないよなぁということです。

つまり、すでにある商材を通して価値を提供すること、商材を適切に組み合わせて提案するといったことよりも、その商材に当たるもの自体を自分で作って提供することで人の役に立てたらいいな。と、漠然とした思いを抱くことがありました。

ある日、何かを作る仕事にはどんなものがあるだろうと思い、テキトーにググってみると、皮鞄職人とか、美容師が使うハサミの職人とか、陶芸家とか、プログラマーといった職業がヒットしました。鞄やらハサミをつくるのは流石にハードルが高すぎたので、とりあえず以下2つをやってみました。

  • 陶芸要素があるということで、100円ショップで紙粘土を買って何かを作る(アホっぽいですが。)
  • ノートPCを持っていたので、自宅でもプログラミングが学べるサービスとしてProgate(プロゲート)を始める

結果、紙粘土については全くハマりませんでした。

Progateでは、まずPythonの講座をやってみました。Pythonを選んだ理由は、ネットの情報によると構文がシンプルで初心者でもとっつきやすいという情報が多かったからです。というわけで、休日に少しずつ勉強して結構楽しんでいたのですが、これが作りたい!という明確なものが無かったために一旦Pythonは挫折することとなります。とはいえ、「自分はこういう分野が好きだ」という感触を得るには十分な経験ができました。

web制作の勉強(自習)を始める(2019年4月頃〜)

Pythonで挫折後すこし経ってから、もう一度プログラミングに触れたくなりました。色々なプログラミング言語を調べるうち、プログラミング学習の初歩というか、多くの分野の土台にはHTMLとCSSが存在する事がわかり、基礎から学び始めることにします。それがきっかけでweb制作にハマっていきました。初めてtitleタグに記述した文字がブラウザのタブに反映された時、かなり興奮してしまったことを覚えています。

オンライン学習サービス、ブログ記事を用いての自習(2019年4月〜8月)

この頃はHTML/CSS/JavaScript/jQueryを勉強しました。学習に利用したものは以下です。

Progate

Pythonで一度お世話になりましたが、再びProgateを利用しました。未経験からエンジニアを目指している方であれば、多くの方にとって既知のサービスかと思います。私はこれを一度やっただけでは全然定着しなかったので、次に紹介するドットインストールで勉強した後にまた戻って来ることも多かったです。CSSなんかは、スタイルの指定がどのように効くのか試す意味であちこちの値をいじりました。一回講座をクリアしただけで身に付けられることは少ないと思うので、アレンジを加えて理解度を深めたり、漏れていた点は反復していました。

ちなみに、無料利用枠では物足りなかったので、有料会員になって利用していました。料金は月額で1,000円ほどです。

ドットインストール

ドットインストールも有名なサービスですね。動画で講師がコードを書きながら説明してくれるので、それを自分も真似る感じで取り組みました。(だいたい誰でも同じやり方だと思いますが。)

私はドットインストールとProgateの両方で学習していました 。Progateの説明ではわからなかった箇所が、ドットインストールで理解できたり(逆も然り)、Progateの後に復習で流し見したり、一緒にコードを書きながら動画見るのしんどいかも…という時には、先に全体像を掴むために一回ザッと見した後でしっかり取り組むという使い方をすることもしばしばでした。

ドットインストールも有料会員になって利用していました。費用もProgateと同程度で、月額1,000円くらいです。

コーディングノウハウ系サイトの記事を読んだり真似て再現したり

例えば、サルワカあたりのサイトです。去年のGWは実家に帰省していましたが毎日図書館に行ってwebデザイン入門のパートをやっていた記憶があります。他にはweblikerNxWorldなどのサイトです。weblikerとNxWorldは困った時に検索すると良い記事が見つかることが多く、気に入ってました。

まとめ

上記の学習サービスやサイトを利用させてもらいつつ、5ヶ月ほどかけてHTML/CSS/JavaScript/jQueryを勉強しました。平日も勉強していましたが、時間外勤務も多かったので少しずつしか進まず、主に土日にやり込んでいました。Progateも、やっては忘れで周回したのでそれで勉強が間延びした感はあります。しかし、ペースは人それぞれなので正直わかりません(笑)Twitter上では、驚くほど効率的に短期で勉強を進める人達を見かけるので、そういった方々と比べると基礎ばかりやりすぎだったのかも知れません。

プロの方からの指導を受ける(2019年9月〜11月)

一通り基礎を自習した次のステップとしてやったことの紹介です。

MENTAの利用(2019年9月〜11月)

MENTAとは、現役のエンジニアの方と、コーディング・プログラミングの初学者をマッチングするサービスです。MENTAを通してメンターとコンタクトを取り、契約が成立すれば学習を開始できます。

それまでのProgateやドットインストールの勉強だけでは不十分だと思ったので、現役エンジニアの方をメンターにつけるのは間違いなくメリット大だと思い、契約しました。

なお、MENTAの料金については、どのメンターさんを選ぶかや、そのメンターさんが提供しているプラン内容・契約期間によってもまちまちです。私の場合は3万円/月のプランを3ヶ月利用しました。(決して安くはないですが、スクールは利用しなかったのでここに投資です。)

私が利用したプランでは、デザインカンプ(UIデザイン図のこと。)をコーディングし、フィードバックを貰うということを繰り返していました。その過程で、CSSの設計やセマンティックなタグの使い方なども教わりました。Progateやドットインストールを終えたばかりの人にはあるあるだと思いますが、CSSがとりあえずスタイルをつけるためだけのものになっていたり、なんでもかんでもdivタグを使っちゃうみたいな節があると思うのですが、(私がそうでした。)その辺りをすぐ矯正してもらうことができたのは有り難かったです。また、SCSSも早々にオススメされたので、積極的に活用していきました。

参考

MENTAの課題の+αとして、書店に行って自分の弱点を補強できそうな本を購入し、本で知り得た事をコーディングに取り入れるということをしていました。

その時購入したのは「CSS設計の教科書」、「Sassの教科書」、「jQuery最高の教科書」の3冊です。

自分の場合の本の買い方についてですが、

  • Amazonで自分に不足している技術をタイトル検索し、候補となる書籍に目星をつける
  • 書店に行って、中身をざっと見たらその場で買う(この時、Amazonのレビューはあまり意識しすぎずに自分に合いそうなものを選ぶ)

という感じでした。その理由は、レビューに振り回されると買う本がなかなか決まらないこと、書店で買ってしまえば帰ってすぐ勉強に使えるという2点です。

自作のwebサイトを公開する(2019年10月)

自作サイト公開のキッカケ

2019年9月末、転職のための勉強に専念すべく仕事を辞めましたが、10月に入ってすぐに妻と共に2週間の九州旅行に出かけました。旅行初日、辞めた会社の九州支店の同期と飲みに行き、その席で今後自分がweb制作会社に就職しようと思っている事を話しました。するとその同期から、プライベートでライブイベントの運営をやっていて、12月にイベントを開催するからその告知用サイトを作ってくれないかと相談されました。思いがけないチャンスだったので引き受けることにし、旅行から帰って早速着手しました。

なお、この時期も先述のMENTAの契約中だったのでちょっと料金が勿体無いなとは思いつつも、自分で一からサイトを作る経験もしたいと思ったので、一旦課題はストップし、困った時にメンターにアドバイスをもらうという方向にシフトさせてもらいました。

どんな感じで取り組んだか

デザインカンプをXDで作成し、デザインについて同期にレビューをもらってコーディングしていきました。コーディングの部分で壁にぶつかることは多かったですが、「自走力」も大切と思い、基本的に自分でググって解決していましたが、どうしても上手くいかない時はメンターにアドバイスをもらって乗り越えました。

作ったサイトはGoogleのFirebaseのHostingを利用して公開しました。このサイト制作を通して、これまで学習してきたことの総復習とレベルアップができてかなりラッキーでした。何より嬉しかったのは、その告知用サイトを見たライブの出演者の方々がTwitterで、

「こんなすごいサイトを作ってもらいました!!」とか、「演奏のモチベーション爆上がり!」

といったコメントと共にサイトを拡散する様子を目の当たりにした時でした。北海道と九州という遠く離れた地にいる、見ず知らずの人達が、自分の作ったものを見て感動しているわけです。「これが、webの力か…」と改めてwebに魅了されました。

ポートフォリオサイトを作る(2019年11月)

デザインカンプからのコーディングや、自力でサイトを作って公開したことでアピールできそうな実績が増えてきたので、ポートフォリオサイトを作りました。ここではメンターの方にデザイン的な指摘やGoogleAnalyticsの導入のススメなどを受けながらポートフォリオを仕上げました。(※実在のサイトの模写コーディングなども数本やっていましたが、権利的な問題が絡むため実績として掲載はしませんでした。)

ポートフォリオサイトの公開方法については、Firebaseではなく、ドメイン取得・サーバー契約・FTPアップロードで公開しました。

プログラミング言語の学習(2019年12月・2020年1月)

この頃は、

  • JavaScript(ES6)
  • Javaの基礎
  • PHPの基礎
  • Linuxコマンド

あたりをやっていました。JavaScriptについては「ES6 まとめ」などと検索して記事を読んでいました。

Javaは、JSでいまいちピンと来なかったオブジェクト指向の理解を深めるために「スッキリわかるJava入門(第3版)」という本を買って、章末問題を解くという使い方で勉強しました。本当にスッキリわかって、楽しかったです。

PHPの勉強ではまたProgateとドットインストールを使いましたが、文法を学んだ程度でした。

Linuxコマンドは、後々役に立つだろうと思い、上記3つの勉強の合間にやっていました。しかし今振り返ればwordpressをやった方がよかったと思います。

この頃はアウトプットが疎かになり、インプットに偏ってしまったと反省しています。就活に関しても2,3社ほど気になっていたところの志望動機を書いてはみたものの、どれも似たようなものになっていることに気付き、それぞれの会社に対しての熱意が足りていない感がありました。「熱意のない未経験を採用するとこなんて絶対ないじゃん…」と思ってしまい、この時点で応募社数はゼロでした。

PHPとMySQLでメモアプリを作る(2020年2月)

ここからは、ちょっとマーベリックスの雰囲気もお伝えする意味で、就活時の話も交えますがご了承ください。

マーベリックスへの応募

志望動機を書いては書類落ちするという脳内就活ばかりして燻っていたある日の夜、なんとなーくTwitterを眺めていると、エンジニアを募集しているマーベリックスのツイートを発見し、リクルートページへジャンプしました。するとそこには良い意味で胸にグサグサと突き刺さる熱い言葉が連発されていて、心が蜂の巣状態にされてしまいました。メッセージ一つ一つに逐一共感してしまい、ニヤニヤしながら文章を読み進め、そのままお問い合わせフォームから連絡を入れてしまいました。

連絡を入れた翌日に返信があり、職務経歴書と履歴書を求められたのでその日に提出し、さらに面談の日取りも決めることができました。面談までは2週間ほど時間があったので、何かやらなきゃと思い、改めて募集要項を読み返しました。

業務内容欄には「ホームページ制作とWebシステムの開発」とあり、求めるスキルは、

  • HTML・CSS、JavaScriptでコーディング経験
  • PHP・JavaによるWebアプリケーションの開発経験
  • MySQLなどRDBMSを用いた開発経験

とありました。

当時ホームページ制作に関しては経験があったものの、Webシステムは何もつくったことがない状態だったので、そのまま面談に臨むのは失礼だと思い、PHPとMySQLでログイン機能付きのメモアプリを作ることにしました。PHPも基礎文法をやっただけで何もアウトプットしていない状態だったのでタイムリーでした。

ということで、またまたProgateにお世話になり、SQLを勉強し始めます。加えて、DB連携のアプリというのはCRUD操作なるものが肝だとわかったので、CRUD操作って何?どうやってやんの?と思いながら情報を集めた結果、「いちばんやさしいPHPの教本(第2版)」という本に辿り着きました。あまり分量もなく、CRUD操作だけでも理解するにはぴったりな本でした。

面談当日までにログイン機能までは完成しませんでしたが、DBと繋いでCRUD操作が可能にはなったので、多少会話はできそうな状態に持っていけました。が、面談の席では技術的な話はほとんど無く、1時間程のざっくばらんな会話の中でエンジニアの仕事に対して抱いているイメージとか、どんな感じで勉強しているかという質問が多かったです。

その面談はかなり楽しく、1時間があっという間に過ぎてしまいました。もはや選考であることを忘れて楽しく喋っていただけだったので、手応え的なものが全く無く、うっかり致命的なボロが出ていなかったかな?と帰宅してから不安になりました。マーベリックスが行っているようなフランクな面談は、良くも悪くも素が出てしまうので、パーソナリティの判断とか入社後にギャップが発生しそうかを判断する上で有効な手法だと思いました。

余談 〜結果待ちの期間の話〜

面談の結果は翌週ということだったので引き続きメモアプリを作っていましたが、その間もマーベリックスからは「今作っているメモアプリで何か困ったことがあったらフォローするので気軽に相談してください!」と連絡があって、技術的な質問に色々と答えて頂きました。そんな親切対応をしてもらう中で、マーベリックスがチームづくりを大切にしているというのはホントなんだと実感できました。

Nuxt.jsとexpress.jsでメモアプリを作る(2月下旬〜3月末)

それまで自分がやっていた勉強内容は99%コーダーの範疇でしたが、ここからようやくエンジニアっぽいことをし始めました。

最終選考の課題を受ける

面談の翌週、選考結果の連絡がありました。

内容は、人柄や姿勢がマーベリックスとマッチしていますが、業界未経験とのことで採用を決断するのは難しいので課題に取り組んで頂けないか、とのことでした。課題がどんな内容かはわかりませんでしたが、是非やらせてくださいと回答しました。

後ほど送られてきた課題内容は、当時PHPとMySQLで作ったメモアプリ(=つまりログイン機能とCRUDができる仕様)をベースに、フロントはNuxt.js、バックエンドはexpress.js、DBはMySQLでメモアプリを作るというもの。また、期限は設けないので、自分で設定してスケジュール表を提出してくださいとのことでした。

触れたことがない技術だったこともあり、ざっとNuxtとexpressの学習コストを見積りたかったので、スケジュールを出すまで2日の猶予をくださいとお願いしました。そしてまず、Udemyで以下3つの講座を買ってざっくり眺めました。結局のところ課題を完成させるまでどれくらいの時間がかかりそうかハッキリさせられませんでしたが、3月末を期限としました。(計38日のスケジュールを確保。)

参考 その時買ったUdemyの講座↓

超Vue.js2完全パック-もう他の教材は買わなくてOK!

Nuxt JS入門決定版!Vue.jsのフレームワークNuxt JSの基本からFirebaseと連携したSPAの開発まで

Node.js+Expressで作るWebアプリケーション実践講座

以上

それ以降はUdemyの動画を見まくっていましたが、いつまで経っても手を動かせないので、色んな情報をググり、ブラウザのタブはファビコンしか見えなくなるぐらいギッチギチにして色んなサイトを開きながらコードを書いていきました。上の3つの講座ではDBがMySQLのものが一つもなかったので、その辺りも苦労しました。また、開発を進めていく中でRESTもあやふやでしたので、「Webを支える技術」という本を買いました。あとは補助的にYouTubeで海外のエンジニアの動画も見ていました。(英語は全然聞き取れないので字幕とコードの内容でなんとなく参考にしていた。)

内定(2020年3月末)

課題が大体出来上がってきたところで途中経過を見せると、未経験なのによくできていると評価して頂き、マーベリックスの代表の竹部さんから「くわじまさんと一緒に働きたいです!」と言ってもらえました。普通はこちらが言うようなセリフを、逆にこちらが率直に言われた時、あくまでも対等な関係で見てくれているんだなぁ。と感激しました。(その後、制作物の方はちょっとエラーが出てしまったので、期限1日遅れの4/1に課題を終えました。)

以上が、私がエンジニアになるまでにやったことです。かなり長々と書いてしまいましたが、ここまで読んで頂きありがとうございました。

さいごに

アドバイス的なことと、私の抱負を少し。

いま業界未経験からエンジニアへ転職を目指している方の中には、プログラミングスクールか独学かで迷われている方もいらっしゃると思います。結果論になるので意味がないかもしれませんが、私は運よく(?)独学でエンジニアに転職することができました。

スクールに通えない事情があるならば、MENTAのようなサービスを利用することで学習のプロセスにプロのアドバイスを取り入れるのは非常に有効な方法だと思うので、利用する価値大だと思います。

あとは、web開発を楽しめれば強みになると思います。楽しければ勉強が続くし、勉強が続けばスキルが上がるし、熱意のアピールにも繋がりやすいです。この、「楽しむ」という点に関しては、こうやったら楽しめるよ!というアドバイスは私からはできません。ただ、これはやらないほうがいいというアドバイスを一つ挙げるとすれば、Twitterを見過ぎない(=他人を意識しすぎない)ということです。

Twitterを見ていると、エンジニア志望の人達がいろんなツイートをしていると思います。(こんなものを作りました!とか、内定もらいました!とか。)しかし、それらに気を取られ過ぎると焦ってしまうし、自分がやるべきじゃない勉強に手を出そうとしてしまったりする恐れがあります。

もっとも、私がマーベリックスの一員になれたのはTwitterから得た情報がきっかけなのでメリットも絶大であることは間違いないのですが、周囲に惑わされて勉強が手につかなくなっては意味がありませんので、Twitterとの付き合い方はほどほどに留めるのが吉かなと思います。

逆に、そういうツイートに煽動されるという方は、このアドバイスもどきは無視してください!また、もしもこの記事こそ焦りを生み出す元凶になりそうなら、話半分で受け流して頂いてOKです!

私自身もエンジニアになれたとはいえ、まだLv.0ですし、マーベリックスともたまたまマッチングできたに過ぎないと思います。そして、これから自分の未熟さをまざまざと思い知らされるような、多くの壁にぶち当たると思います。ですが、他の人と比べれば何年ものビハインドがあるので仕方ないとある程度は割り切って、悲観し過ぎずにレベルアップに励もうと思っています。

前職の上司が「人の成長度合いのグラフは右肩上がりの直線じゃなくて、停滞しては上がっての繰り返しで階段みたいな線になると思うよ。」と、すごく良いことを言っていたので、皆さんにも共有したいと思います。この言葉を胸に、これからも着実に進化していきたいです。

ではまた!

The following two tabs change content below.
NorihisaKuwajima

NorihisaKuwajima

営業職から転職したエンジニア。エンジニア転職のために無職となり、自宅に引きこもって独学していた半年間で、退職の餞別で貰ったうまい棒を500本食べて太る。