こんにちは、mabuiです。
2018年8月現在フリーランスエンジニア一年目で、時給換算で6000円程の案件をメインに仕事しています。
勤務日数は週3~4と減らしていますが、週5換算だと年1000万オーバー、月90万以上になる計算なので、エンジニアとしてそれなりに稼いでいる方だと思います。
それと並行して技術寄りのブログを継続中です。
プログラミングの記事一覧
そんな自分ですが昔はパソコンを触るのが嫌いでした。
大学生の頃からMacBookを使い始めましたが、それまで使用していたWindowsのXPで少し不具合が起こると画面に出る専門用語の羅列とその対応を調べるのにイライラしていたからです。
どちらかというと妹の方がパソコン得意で、タイピング速度では圧倒的に負けていました、、
そんな自分がプログラミング経験がない中、文系大学を卒業して独学からエンジニアを始めてこれまでの経験を書きました。
昔の自分と同じように、プログラミングの才能がないと思っている方の励みになればいいなと思います。
就活 〜 新卒時代
僻地にある文系大学生でしたが、就活きっかけのインターン先でWeb viewを使った単純なiOSアプリ作りを経験させてもらい、プログラミングに興味を持ち始めました。
そこから独学で勉強を始めましたが、勉強といえば本を読むことと思っていた自分はひたすらいろんな言語の本を読んで、コードはあまり書かない不毛な勉強法をやっていました。Perlの正規表現とか、C++の600ページくらいある本とか、全く無駄とは思いませんが、優先順序が考えられてませんでした。
そんなこんなでやる気をアピールして内定をもらった企業では内定者アルバイトでエンジニアをやらせてもらうことになりました。
そこで社長に最初に依頼された仕事は自社のコーポレートサイト作りでした。
サイトを作るといってもHTMLもまともに書けない自分が作れたのは、ローカルで部分的に動作するゴミでした。
先輩エンジニアに5年前のデザインと言われました、、
この件で社長には失望され、入社前にエンジニア配属を外されてしまいました。
働くことの動機がエンジニアになることのみだった自分はこの時期家で泣いたりしていました。
その後三回程、社長に配属戻してもらうよう頼みましたが、ダメだったので転職を決意しました。
新卒で入った会社に三ヶ月で退職伝えた時は、人生のレールが外れた認識からか、職場でオフィスチェアに座っていながら地面が急になくなって、ずっと落ちていく感覚に襲われました。
この時はアルバイトからでもエンジニアになってやろうと決意していました。
ですが、熱を出しながら面接を受けた転職活動三社目で幸運にも受かって、BtoCスマホアプリの自社サービスをやっている会社に入社しました。
スマホアプリの開発会社での4年
入社してJavaを始めました。この時構文からわからず、一応中途入社で教育してもらえるわけでもないので最初の1ヶ月間は黙々と本を読んでいました。
その後徐々に社内用管理画面の改修をやらせてもらうようになりました。
業務を始めて最初の頃は本当にコードの理解ができなくて、同じクラスファイルを10時間見続けるような生活をしていました。
あまりに作業が進まなすぎて、やる気を見せないと速攻クビになると思った自分は、土日も自主的に出社して、いつも会社にいる人と言われたりしました。
そのかいもあって社長に採用したの最初は失敗だと思ったって言われましたが、やる気は評価されました。
半年ほどそのように生活していて、プロジェクトを異動になり、今度はユーザー向け機能の開発チームに参加しました。
何を作っていたかというとソーシャルゲームで、ガチャの実装なんかを行なっていました。
ゲームの制作ではより複雑なロジックを求められ、実装の難易度が上がるかつ、スケジュールもより厳格になるため大変でした。
毎週のように徹夜するも納期が守れなさすぎて、新卒の卒業年度が同じで既にチームのリーダーをやっていた同期にガチで怒られまくっていました。
当然納期は守るつもりで仕事していましたが、納期越えるたびに「あ、終わった、クビかな」って感覚を何度も味わっていました。
一年ほどそのプロジェクトにいて何とか作業が進むようになった頃、別プロジェクトに異動になりました。
そこでしばらく経った後、同期エンジニアのリーダーが辞めることになり、リーダーを任されました。
その時はとにかく悩んで時間を潰さない、他のエンジニアと連携して最短で問題解決することを意識していました。
別会社に運用を引き渡すことになり、そのタイミングで異動した先で負荷試験を任されました。
開発とはまた違った業務で、うまく作業が進まず、またここで納期が守れずやらかしてしまいました、、
次の異動先は初めて運用中ではなく、新規開発のプロジェクト参加になりました。
ここで初めて使ったJava8では既存Javaの構文に大幅なアップデートが加わっていて、ラムダ式の構文にはかなり苦労しつつ、プロジェクトをサポートしていたCTOにレビューを受けながら仕事をして、以前の自分と比べたら開発力が爆上がりしました。
開発中とはいえスケジュールはタイトで、その中で仕様変更やレビューを受けては何度も担当機能の作り直しをしていました。
順調に仕事していたとはいえず、相変わらずしんどかったです。
前にやらかした負荷試験もリリース前、プロモーション前と1から任せてもらい、
シナリオ作成からチューニングまで担当して、スケジュール通り特に大きな問題もなくリリースできました。
リリース後はユーザーの行動分析用の複雑なSQLを書いたりもしていました。
その後インフラのチームに異動して、自分としては全く新しい分野の技術を学ばせてもらいました。
独立から現在
仕事を一旦辞めてがっつり留学したいという目標のためにお金を貯めるべく、ちょうど4年間お世話になった会社を辞めてフリーランスエンジニアとして独立しました。
そろそろ独立して一年経ちますが仕事も途切れず、独立した頃からは週5換算だと20万以上単価が上がりました。
会社員として働いていると、この上げ幅はなかなか実現しにくいかと思います。
独立してからはどこにも所属していない危機感もあってブログを始めて、シストレのプログラムを公開したり、勉強した技術をアウトプットしたりしています。
会社員の時より自立的に動けるようになって楽しいです。
以前より時間も確保しやすくなったので、今後自分でサービスを作って公開していきたいなとか考えています。
おわりに
経験がない時から自分はエンジニアになりたいという思いだけで現場に入って、無謀にも首の皮一枚で次に繋がってきました。
振り返ってみると動き方が効率悪すぎたとも思っています。
今エンジニアを目指している人とか見ていると動き方が洗練されている人多くてすごいと思います。
持論ですが、他人がやれていることは結局継続すれば何でもできるようになると考えています。
新卒入社した会社では周りにエンジニア辞めたほうがいいと親身に説得されたりもしましたが、心折れないで継続してきてよかったと心から思っています。
頑張れない時でも自分を責めるのはやめましょう。
辛くなるだけですし、本気で想いつづけていればプログラミングは絶対できるようになります。
自分がエンジニアになったのもつい5年ほど前ですが、今ではもっと環境が整っていて情報も溢れています。転職支援する今流行りのプログラミングスクールなんかもなかったですし、才能ないなんて思わずお互い頑張りましょう!