未経験(アパレル)からエンジニアになった私の経歴と勉強法

エンジニア

最近は人工知能機械学習、プログラミング教育も必修化するとか色々と話題が付きない。
AmazonGoogleFacebook、、、IT業界の猛者達はとどまることを知らない。
そんな中、世の中にはどうやら現在の仕事に満足していない人がやはり一定数いる。

理由は様々あるだろうが、
・収入が上がらない。足りない。
・今の会社の将来が不安。自分ももちろん不安。
・仕事自体がつまらない。やりがいがない。
・職場の人間関係が面倒臭い。そもそも職場に行きたくない。
まあだいたいこんな所だろう。


かく言う僕もかつてはそうだった。

経歴とエンジニアとして入社するまで

一応バックグラウンドを少し書くと、僕の場合はアパレル販売だったので、御察しの通り給与は少ない。
会社の業績は悪くなかったのだが、労働時間も長いし毎日疲れ果てていた。
これをいつまでやるのか、このままでいいのかと思っていた。

一応自分で起業して、アパレル製品を海外から買い付けてサイズの小さいものに絞った商品展開をして、小さいサイズならうち!というコンセプトで一応何年か運営したものの、それもやはり在庫ビジネス。
少しでも金が回らなくなった途端、大きなプレッシャーに押しつぶされそうな毎日だった。


そんな中、アパレル事業は継続しつつも、派遣社員として働いていた折に出会った人からお誘いを受けた。

「うちで働かないか?」

最初は断ったものの、諸葛亮孔明よろしく、3度目(4回目かもw)くらいで顔を縦に振ることになる。


と、ここまでがざっくりしたエンジニアになるまでの簡単な道のりである。


こんなん運じゃねーかと言われたら確かにそうだ。
が、そういわずに冷静に考えて欲しい。

声をかけてもらったのはいまだに感謝しているし、良かったのだが、
これからエンジニアになりたいと言う人がなるのはそんなに大変ではない。
(かといってコンビニでおつかいをこなす程簡単ではない)


全く何から手をつけていいかわからない!という人が大半だと思うので、
そう言う人向けに役に立つ内容になればいいと思って自分なりの道のりを書いて見ることにする。


エンジニアの種類

その前に前提として種類をおさらいしておこう。

エンジニアと言ったらみんな大体こう思うはずだ。
PHPとかRuby on Railsとかのプログラム書く人だよね?」

別に間違ってはないのだが、プログラム言語はもっとたくさんあるし、プログラム書く以外にもエンジニアの仕事はたくさんある。

PMといってプロジェクトマネージメントを担う人から、
上記のようなプログラムをゴリゴリと書きまくるサーバーサイドエンジニア、
ボタンを押した時の動きやスクロールした時の動き、またその時間やタイミングを調整したりするフロントエンドエンジニア、
Amazonが提供しているサーバーのクラウドサービス(AWS)や、Google版のGCPなどを駆使してサービスのインフラを構築、運用、監視、整備するインフラエンジニア、、、、

他にもたくさんある。
未経験の人にこのどれになりたいかと聞いてもわからないだろうし、多分プログラムを書く人なんじゃないかと思う。
ただ一点言っておくと、企業にもよるが、仮にサーバーサイドエンジニアという肩書きであってもインフラの知識が全くなくてもいいかと言われたらそんなことはないし、わかることに越したことは全くない。

サービスというマクロ視点から見たら全てはパーツであり、このどれ一つが無くなってもまずいのだ。
これらを全て1人で担当する場合はフルスタックエンジニアということになる。
小さい会社の場合はたとえ経験が浅くても、大体フルスタックエンジニアのような働き方が求められがち。



やるべきことと順番

1、どんなエンジニアになりたいかを固める

あなたはどんなエンジニアになりたいのか、まずそこから考える必要がある。
具体的には
「稼げるエンジニアになる!」
とか
「フリーで自由な働き方がしたい」
とか
「とにかく手に職をつけたい」
とか。


2、1で描いた理想のエンジニア像にそったプランを考える

「稼げるエンジニア」の場合
→ぶっちゃけめちゃくちゃできる人は何しても稼げるが、そう言うのは一旦置いておいて、
稼げると言う意味でいうと●●エンジニアという職種は基本稼げる。
ただし、求人で「マークアップエンジニア」とか書いてある場合は基本安いし、エンジニアというよりはWEBデザイナーに近い、プログラムというよりルーティンワークしがちなので稼ぎ辛いと思われる。


「フリーで自由な働き方がしたい」場合
→フリーといっても企業に常駐して働くような人が圧倒的に多いので、思い描いているのがスタバで仕事したりっていうものだとするとちょっと変わってくる。
この場合だと大体PHPとかRubyといったプログラム言語を使って開発をした経験のある人じゃないといきなりは不可と思っていい。
常駐とかじゃなくて完全に在宅とかカフェで仕事したいっていう場合は、
リモートワーク可能な会社も増えてきているので、そういう会社に入ること。
ただし、未経験でリモート勤務はほぼ不可だと思うので最初は企業で働く覚悟がいる。


「とにかく手に職をつけたい」場合
→何がやりたいかによるが、大抵はプログラムを書きたい人が多いので、その場合はプログラム言語を使って何か簡単なものを作って見る。
それをポートフォリオとして面接に望めば、最初は安いが、企業に入って経験を積むことができる。


3、動くものを作る

どんな理由であれ、未経験からエンジニアになりたいならば、目的がどうであれ、まず確実に企業に入ることが近道。
幸い今はどの企業も人手不足故に、少しでも自分で手を動かして何かを作ったことがある人で、人間性に問題がなければ雇ってもらえるはず。
ただし、何も作ったことがない人がきても正直箔がつかず、雇いたくても雇い辛い。
●●と一緒で、企業の採用メンバー側にも言い訳を作らせる為に箔は大事。



勉強法

ここからはとにかくエンジニアとして働きたいからとにかくやることを教えてくれっていう人向けに書く。

もはやWEBで食べていきたいなら必須の知識が、HTML,CSS,JavaScriptである。
次に勉強すべきは、作りたいものがある人は、そのサービスによるのだが、比較的習得が簡単なPHPなどがオススメ。
特に最近はフレームワークといった、プログラム言語でよく使われる書き方などをまとめてパッケージ化したものから始めるのも悪くないので、LaravelなどといったPHPフレームワークがオススメ。

※他にもプログラミング言語RubyをベースとしたフレームワークであるRuby on RailsPythonなど様々あるが、Rubyはサーバーにインストールされていないと動かないし、そのRubyが多くのクライアントサーバーでインストールされていなかったり、受託開発でデータを納品する場合に調整が大変だったり、そもそも使えなかったりすることがある。
またPHPは普及率が高く、多くの企業で使われているため活躍する場が依然多い。




で、結局じゃあどうすりゃいいのよってことで、結論からいうと下記のようなオンラインサイトが勉強するにはとっつきやすい。

https://dotinstall.com/

Schoo - 学べる生放送コミュニケーションサービス

Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]


1と2つ目は環境構築からプログラミング言語、ユーザーの見た目にも関わるフロントエンドまで網羅されているため、包括的に学びやすい。
3つ目のProgateだけはプログラミング言語に特化していて、インフラあたりは網羅されていないが、WEBブラウザ上で気軽に学べるためおすすめ。


またいろんな記事で書いてある通り、独学はよほどできる人を除いてそこそこ難しい。
会社に入ったとしても結局誰かに聞ける環境というのは必ずしもないので、独学になっていることも多いが、それでも会社だと妙にうまく進むということもあるし、案件をこなすことで、これでいいんだという自信にもつながる。
自宅でもくもくだと動いていても思わぬ穴があったり、それにも気づかず、指摘もされず、責任もないという一番怖い状況になりかねない。

職業訓練校もいいが、正直職業訓練校では最低限のことしか教えてくれないので、過度に期待はするべきでない。


上記オンラインで学んで、簡単なプログラムを書いて見たら、次は興味のある本を実際に書店で手に取って読んで見て、
続けられそうだと思ったら本を買って見て始めるといい。


理想の具体的なフローとしては、
1、オンラインで勉強して簡単なものを作る
2、本で勉強して1より少し凝ったものを何か作る
までいけたら多分面接受けて良いし、難関なところでなければ受かると思う。

あとがき(最近のトレンドとまとめ)

個人的にはエンジニアはもっと増えるべきだし、日本のエンジニアは海外に比べて冷遇されがちです。
これは収入もさることながら、たまたま最近誰かのブログでみたのだが、いまだに日本でモテる男は、やれ広告代理店だの、商社だので稼いでいる男だそうです。
これに対してアメリカでモテる男はGoogle,Facebook,Amazon,Netflix、あとは忘れたw

エンジニアになるのは、現在他の仕事をしている人にとっては始めが本当に大変だと思います。
なぜならどう頑張っても一定数の時間を取らなければならないから。
場合によっては深夜に勉強したり、土日に勉強したりも必要になるでしょう。
それでも私としては、エンジニアが少しでも増えて、より便利な世の中になってほしいし、
エンジニアというのは自分の頭と手先で世界を変えられる、素晴らしい仕事だと思っています。

また、周知の事実ではありますが、会社に依存する時代でもないので、会社や上司の機嫌をとるようなことは全くもって必要ないのです。
これから目指すという方が1人でもいて、これからどこかで一緒に世の中をよくするような仕事ができたらとても嬉しいです。

そしてここまで書いていてなんだかまとまらなくなってきた気がしないでもないので、
何か気づいたことや質問があればお気軽にご連絡ください。(こんなことしたいけどどの言語がいい?どの本がおすすめ?とかなんでも!)

https://twitter.com/hiromode