エンジニア歴が前職2ヶ月半 + 現職4ヶ月半くらい経過しました!
ブログ自体、全く書かなくなっていた(技術不足を補う為の学習に集中)のですが、何かのきっかけに細々と記事の更新は続けたいなぁと思ってましたので、半年経過の棚卸しがてら近況を書きます。
胡散臭いイメージであまり使いたくない表現・キーワード満載の、
- 未経験
- スクール卒
- 30代から
と、過大広告のネタになりそうなステータスの僕なんですがw、実際にその通りなんです。
えてしてこの手のブログ記事では、アフィリエイト目的のスクールオススメ記事が多くてうんざりしてまして。
Googleの広告だけは申し訳程度に残させて頂きながら、
リアルな・未経験・比較的高齢・スクール卒転職者の近況と感想をご覧頂ければ何よりです。
Contents
エンジニア業務について
現職の状況
2月10日〜
自社開発のスタートアップベンチャー企業に属しています。
知人の紹介を経て、なんとなくカジュアル面談を受けに行ったらそのまま面接となってしまい、現在に到るという感じですw
アプリや業務システムを作って、それをある業種に提供しています。toBがメインです。
- アプリの顧客を管理するサイトの修正・改良・運用など
- 業務システムのAPI開発
- 何かあった時の技術的ヘルプ
- PM(いずれさせられる予定)
などですね。細かく言いますと、bugfix、API開発(大枠の設計〜実装〜テスト)、納品物の運用管理、ドキュメント整理などが中心です。
触った深さに差はあれど、経験技術的にざっくり書くと、
フロント:React
サーバサイド:Laravel、Node.js、Go
インフラ:AWS、Docker、kubernetes
となるかな。
採用技術に関してはモダン寄りで、覚えられたら楽しいです。分からないとかなり辛いです。。Go全然ワカリマセン。
良い所は、割と自由気ままに働ける点ですね。私服万歳!!(ガチでこれ目当てでエンジニア転職した部分もあるw)。出社時間も柔軟に調整できて、今の状況もありますが基本リモートで、1人作業もしやすいです。
設計〜テストまで1人称まで回せる技量のある方にとっては、自分好みにプロダクトが作れますので魅力的な環境ではないでしょうか。
中で働いている方々の経歴も非常に高く、ついていくのも大変ですが勉強になり刺激的な環境です。
また、有名ではないですが親会社企業の子会社といった位置づけです。 諸々あり独立しました。
給料も経歴や実力の割りにかなり恵まれてると思います。
ありがたや、ありがたや。
イマイチな点は、個人主義でチーム体制があまり整っていない所ですかね。。勿論質問して教えて頂ける方いますが、基本は自力でなんとかするしかない場面も当然あります。
分からない事があっても人に聞けず、切り抜けるのに相当苦労したことも少なからず。
業務はビジネスサイドの人から案件が直接降りてきますが、さらっと言われたけど簡単にできるかな..? という具合で難しそうな内容も含まれます。できる業界歴10年くらいの先輩は、話を聞いて設計→実装→リリースまであっさりとこなされます。すごいです!
要件定義を設計に落とし込んで一人でゴリゴリ作れる人でないと、サポートなしに一人称で回すのは厳しいでしょう。
そういう点では、歴1年未満の1人称開発にもたつくレベル感の人には不向きかなと感じます。
が、そんな中でも僕はやっていくしかない。やっていけるようになりたい。
日々技術と業務知識のキャッチアップに追われています。
前職
約2ヶ月半
ゲーム + 業務の受託開発会社で、トライアル(アルバイト)入社でした。
色々問題がありました.. 僕も力不足で申し訳なかったですね、はい。
一応過去の記事に詳細は書いたので気になる人は辿ってみて下さい。
アルバイトといっても、時給はまぁまぁで残業も滞留時間全てついてしまっていたので、生活に困らないくらいは貰えてました。
やった事としては、
- 業務システムのAPI開発
- サイトのサーバー移設(さくらVPC→AWS)、移設に伴う修正など
- アプリゲームの運用業務補助
- ゲームや業務システムのデバッグ
などです。
携わった採用技術は、
- Laravel
- Vue.js
- AWS
- Docker
- WordPress
など。Ruby on Railsの案件もあったみたいです。
今振り返っても、業務経験がない上に、Laravelには触った事がない(フレームワークに不慣れ)、商業コードをみた事がない、業務DBを扱って何かした経験がない、HTTPの知識が全然ない、swagger、postmanも何それ状態からのAPI開発を自走するのは無茶です.. ..
着手する開発の難易度精査とメンター的なフォロー体制は欲しかった…
他の案件もモタついてはいましたがさほど問題は起きなかったので、参画する案件と中の人次第だと痛感しました。
エンジニアになってみて感じた事
言語云々より低レイヤーのIT知識が重要かと
言語云々より、低レイヤーの基礎知識やSQL、Docker、プロダクトのリリース・運用経験(Git、Github、CI/CDツールの知見、yml、Dockerfileの理解など)が重要ですね。これは声を大にして伝えたいのですが、昨今のSNS等でプロフィールアピールが輝いていてイキリ散らしていらっしゃるような未経験エンジニア志望の方には残念ながら届かないでしょう。。
※受託やSESでもあるのか分からないですが、実装に特化してひたすらコード書くだけの業務とかだったらまた変わってきますが
もちろん実装に伴い言語やフレームワークを知らないと、当然作れないですし、直せないです。
ただ、ある程度実務経験を積んで書き慣れたら、言語はなんであれパターンが見えてくる上、ググれば情報が拾いやすいのでなんとかしやすいんですね。(ならなくて死にかけた事も勿論ありますが。。)
それよりも、HTTP、API、ネットワーク、インフラの常識などを知らないが故に解けない問題の方が圧倒的に多い気がします。
言語はあくまで道具の1つで、状況によっては普段使っているもの以外を色々使わざるを得ないケースが多いです。
なので拘りは大切ですが、言語やフレームワークの基礎を抑えたら、IT基礎教養を集中学習・実践した方が良いと個人的には感じます。
実務に勝る経験なし
いくら教科書見てその通り何か作っても、動画を見て学んでも、業務レベルの開発経験値には到底かないません。
悪評名だたるプログラミングスクールにて習った内容の大半が初歩の初歩で、最初に与えられる簡単な部類の実務を問題なくこなせる水準にすら及ばないと思ってもらって間違い無いかと思います。多分プログラミングに限らずそんなものでしょう。
僕が通ってたスクールが他と比較して高水準な教育内容・環境かと思われますが、それでも当時のカリキュラムは技術書で基礎知識や初歩の経験を丁寧になぞった+α程度。これ以上の学習経験を考えると、実務案件レベルのチーム開発課題でもしないと難しいです。
解決しなければならないエラーに直面したり、要求を満たす実装を乗り越えて、どんどん能力がついていくと思います。
特にエラーのデバッグは差が出ます。
今までは何日も詰まってた内容でも、業務で緊急性が高いと数時間で解決させなければなりません。
わざわざ英語でヒントをくれているので、それを十分に理解した内容を元に必死に考えて解決させるのです。
といっても僕も苦手です。エンジニア適性低いですはい。
慌てていてエラーメッセージをよく読まず、なんとなく解決策っぽい事が浮かんで試しては失敗の繰り返しで、
タイムロスばかりしてます。
できるエンジニアの方は無駄が非常に少ないですね。
元々の経験から勘所をつけて、最短距離で解決策を考えて行動されていました。
その辺りの解決能力が、エンジニアの技量の差となっています。
地頭の良さはないと厳しいかも
覚える事は当然多いです。日進月歩変化する業界なので、日々のキャッチアップは欠かせません。
求められるプロダクトの要件を実装に落とし込んだり、
ER図、DB設計、システム構成図、シーケンス図といったドキュメント作成能力も、経歴が上がれば必要でしょう。
これらをこなしながら、打ち合わせでもスラスラ内容を理解して受け答えできるレベルとなると、ある程度地頭が良くないと大変かと痛感しています..
専門技能職ではあるので一回覚えたらずっと使える類の能力もありますが、覚え直しが非常に多く、飲み込みがイマイチな人が参入するのはオススメしません。
土日も休まず勉強してます
休日こそ、溜まった積読本や調べられなかった技術知識、業務で遅れている面のフォローをしているのでまぁそれなりに忙しいですねぇ。
やりたい事をできているので良いのですが、未経験転職を狙っていて休日はガッツリ休みたい・遊びたいという人には僕はオススメできないなぁ。お預け中の趣味・特技なスポーツ再開はいつ頃になるのかしら。。
適性高い、キャッチアップ力が素晴らしい、業務に余裕がある、元々の経験値がある。
という人なら無問題ですが、それでも休日はエンジニアに関わる学習など何もしないという人は相当少ない気がする。
あるいは技術的要求度の低い会社、案件を担当するだけの人なら可能かも知れませんが。
業務歴が長くなるにつれ、このぐらいできるでしょ? とできる事のハードルは上がるので、生存し続ける為には長期目線でスキルアップは必要と僕は考えます。
コードを書いているのは楽しい
これは人によりけりですが、コードを書いている時間が一番楽しいです。
実装は、開発の一部(設計〜実装〜テスト〜納品)にすぎず、業務経験ない人が思っているよりコードを書いてる割合は高くありません。
作って狙った通りの動きが実現できた時の達成感はこの上なく幸せですね!
逆にいくら試してもうまくいかない時は死にたくなりますがw
よく聞く話で、エンジニアが楽しいから上流工程のマネージャーやPMなどにならず、コードを書き続けたいという人が割と多いようです。そんな人の気持ちが超分かりました。
ハマると楽しいです。しかし、拘ると果てしなく難しく奥深いです。
デザインパターン、グッドプラクティス、バッドプラクティス、可読性、再利用性、メンテナンスのしやすさ、などなど。
実際には同じように動くコードでも、知れば知るほど実現する方法は無数にあるのです。
その中からなぜ採用したのか? 利点・欠点、別の方法との比較。
腕の立つエンジニアは空気のようにやってる中、僕はと言いますと。
納期があって、間に合うようなんとか動くものを調べて実装できて、ほっとして提出→レビューでフルボッコ。のパターンを何回も食らいました。。
コードの質を万人がみて満たすクォリティに仕上げるのは難しく奥深いですが、それでも楽しいです。
今後の目標
日々自分のショボさを思い知って悔しい想いをしていますが、いずれ1人称で開発をガンガンできるようになりたいですね!
全部経験不足でまだまだすぎますが、特に設計、テストあたりをもっと経験を積まないと全然ダメだと思います。
特に、
- 要件定義から設計に落とし込む
- なんならヒヤリングから要件定義する
- 過不足ない設計書を作る
といったところが、実践なしでは鍛えるのが難しく感じます。
どこぞのインフルエンサーさんや、それに憧れたり影響を受けた駆け出しエンジニアさんからは揶揄されがちなSierですが、業務内容はシステム開発の基礎が詰まっていて、堅めな業務システムを設計〜納品までガンガンこなされる。
今の僕からすると、そんな経験が積めるSierは貴重なキャリアにみえます。下手なジュニアWebエンジニアより余程有能だと思うのは僕だけでしょうか?
Webの言語さえ覚えたら無双できるのではと感じるこの頃です。
積極的に学びたい具体的な技術としては、
- フロント:JS(React)、CSS(設計)
- サーバーサイド:PHP(Laravel)、Node.js
- インフラ:AWS、Docker、kubernetes(まず基礎から)
- DB:設計、各図の作成
あたりを伸ばしたいですね。CSSまでは多分手が回らなそう。。選択と集中をしたいので正直これ以上学ぶ言語を広げたくないです。
細かく言えば、正規表現とかyml、json設計とかドキュメント作成だったりも含みます。
Dockerfileやdocker-compose.ymlもイチから書いて思い通りに動かせるようにできたらと。
学びたい事つらつら書いてみると、一体いつになったらこなせるんだ.. って分量です。。
結局フロント、サーバーサイド、インフラその他ある程度満遍なく分かってないと、どこかで詰まりますので..
エンジニアとしては、引き続き薄くても守備範囲広めなオールラウンダーを目指します。
ちなみに業務でPMを行う話も上がってますが、個人的にはエンジニアをもっと深めたいかなという感覚です。
ただ、PM経験も貴重で良いキャリアになりますので、なんとかこなせるようにはしたい。
議事録とか過不足なく書けて、人の話をさっと聞いて大体理解して、テキパキ応答・返答して案件を要領よく進められる。
そんな事が求められるイメージなので、ともすればエンジニアより難易度高くないかな.. とも思うのですがどうでしょうね。
コロナでフルリモートを余儀なくされた中、今の所は現職で在籍できていますが、まだまだ先行きどうなるか分かりません。
このまま生き延びて、いつ何時も食いっぱぐれない能力を身に付けられるよう、必死に愚直にコツコツとやってきます。
そしてコロナのワクチンが出回り落ち着いた数年後には、国は住みやすければこだわりないので短期間の海外生活を経験してみたいですね。リモートで働くことも可能そうですし。
日本は好きであまり不満ないので、海外移住というよりは英会話強化合宿兼、異文化生活体験・勉強的なイメージです。
決してレベルが高くなくても良いので、拙い英語力の底上げをしたいです。
とは言え、時間経過や僕自身の環境変化などあれば、それもどうなるか実現できるのかその時やりたいかも分からないので、ここに一応今の心境として書き残しておく事とします。
引き続き、目標達成に向けて取り組みます。
は〜いつの日かスポーツも再開して大会とか出て上位入賞目指して燃えたいなー