作成者別アーカイブ: yamauchikeita

ポンコツでも這い上がれる。自分にできることは何でもしよう。

こんにちは、やまです。

今では月収100万円以上を稼げるようになり、フルリモート・フレックスタイムの現場を選ぶことができるようなってきましたが、

昔は異業種の会社員で仕事が全然できなくて、28歳目前まで月収20万円でした。

エンジニアになりたくても、未経験のアラサーだったので転職するのも簡単ではなかった状況です。

それに加え、

同世代の方はめちゃ活躍している一方で、自分は任された仕事をこなすのが精一杯

報告が遅れて期日に間に合わないなんてこともよくありました。

自分の無能さに気持ちがどんどん内向きになり、体調を崩すことも多く、休職することもありました。

そんな私が、今ではフリーランス案件で

「ぜひ来て欲しい!」

「単価を上げてでも延長をお願いしたい!」

と嬉しいお言葉をいただけるようになれたのですが、

それができるようになれたのは、自発的に学ぼうとしたから

会社や周りの環境に任せるのではなく、欲しいものは自分から掴みに行こうとしたからだと感じています。

経験させてもらえないなら、自分から経験できるように行動すればいい

自分の道は自分で切り開いていけばいい

そのためにやるべきと思ったことは気持ちに関係なくやりました。

仕事と並行し、たとえ眠いのを我慢しながらでも、夜中までプログラミングの学習とポートフォリオ作りを行っていましたし、

面談でお祈りの連続で辛くても応募し続けていました。

アラサーで新人同然の仕事ぶりで金銭的な余裕もなかった状況だったので、

「失敗したらどうしよう」という不安よりも、

「選択肢はやるだけだ!」

のスタンスで必死に取り組んでいました。

その甲斐あって未経験からでもフリーランスエンジニアになれたと思いますし、

その後も既に成功されている方から学び、現場での働き方やプライベートでの自己研鑽に生かすと、

経験2年半で月105万円でオファーをいただけるようになりました。

今では、現場で改善提案することが当たり前になりましたし、

CTOやリードエンジニアから単価を上げてでも延長をお願いしたいと言っていただけるようになりました。

また、面談しても安定的に105万円以上でオファーをいただけるようになり、

今後もずっとエンジニアとして仕事し続けるための考え方、100万円以上で成約いただくための努力の仕方がわかるようになり、キャリアに迷うことがなくなりました。

昔は落ちこぼれたような生き方をしていた私でも、

フルコミットで行動し、成功者から学びながら2年間頑張ることでここまで成長することができました。

未経験からフリーランスエンジニアになり、半年ほど経過したときにエージェントの方とお話しした際、

未経験でも現場での開発を見越してポートフォリオを作り切った話をすると

「そこまでやる人はなかなかいない」と言っていただきました。

突き抜けるくらい、「ここまでやる人はなかなかいない!」と言われるくらいやってみましょう。

欲しいものを手に入れるためなら辛くてもやってやる!というスタンスで行動していれば、誰だって成長できるはずです。

月80万円以上でオファーいただくのって実はそう難しくない。最速で、かつ長く稼ぐ要素がある。

こんにちは、やまです。

私は経験2年半で月単価105万円、4年で最高120万円でオファーをいただくことができ、

また、私の知人にも同じくらいの経験年数で月単価80〜110万円の方が結構いらっしゃいます。

今回は私も含め、その方々にも共通する、経験年数が少なくても高単価でオファーをいただくことができた理由の一つをお話ししていきます。

結論からお話しすると、企業様に「この人に是非参画してもらいたい!」と感じていただける最低限を準備してきたからです。

高単価でオファーをいただくためには、面談先の企業様から「この人は魅力的だ!」と感じていただく必要があります。

ただ、そのために押さえておきたいポイントは一般的に言われているほど大きなことはなくても良いのですね。

一般的にはよく、

・経験年数10年以上

・バックエンド、フロントエンド、インフラ全てできるようになる

・要件定義、設計など上流工程の経験

・リーダやマネジメントの経験

・モダンな技術を身につける

高単価でオファーをいただくには、これらを満たしていたいと言われているように感じます。

たしかにこれらのスキル・経験自体は素晴らしいですし、
月単価30万円の時代の私は、これらを全て満たしていないから高単価エンジニアになるのは、まだ随分先だろうな…と考えていました。

ところが、これらを全て満たしているわけではなくても、高単価でオファーをいただくことは十分可能です。

現に、私が月単価105万円で初めてオファーをいただいた時は、いずれも満たしていませんでしたし、

私の周りで月単価80万円以上のエンジニアの方も、全てを満たしているわけではありません。

特にフルスタックやリーダやマネジメント、上流工程は経験なしという方がほとんどですし、経験年数も皆2〜4年です。

私も含め、皆さんも押さえるべき最低限を学び準備してきたからこそ、経験年数の少なさは無関係に高単価でオファーをいただくことができたのだと感じます。

・どんな技術ポジションで戦うか

・どんなレベルの課題解決ができるようになれば良いか

・どんなコミュニケーションをとって仕事をしていくか

・スキルシートや面談で企業様が求めていることは何か?どのようにアピールすれば良いか?

等を既に月100万円以上で活躍されているフリーランスエンジニアの方から、お金をお支払いして学ばせていただきました。

最低限を知らずに、

・フルスタックになるために、インフラ・バックエンド・フロントエンド全部勉強するぞ!

・上流工程、マネジメント経験やらないとな…それができるようにならなければ高単価は難しいだろうな…

これらを素直にやろうとしたら、とても時間が足りませんし、体力的にも精神的にも消耗して疲弊していたかもしれません。

押さえるべき最低限を知り、実践していくことで最速で成果が出るようになりますし、長く稼いでいけるので精神的にも楽になりますね。

私も今後、押さえるべき最低限をどんどんお伝えしていく予定なので、是非ご覧いただけると嬉しいです!

フルリモートで生活の質が一気に上がった話

こんにちは、やまです。

私は以前は週5で出社していたのですが、フリーランスエンジニアになって以降はフルリモートで仕事をしています。

また、最近はフレックスタイム制を導入されている企業様に参画させていただくことが増えてきたのですが、

それも相まって生活の快適さに喜びを感じる毎日です。

特に、出社していた頃と比べて時間が格段にコントロールしやすくなりました。

出社していた頃は通勤で片道約1〜2時間かけて電車で移動しており、始業時間も決まっていたので、満員電車で身動きが取れずにいました。

フルリモートになると、出社しなくても良いので、通勤に当てていた時間を自由に使えるようになりました。

睡眠不足を感じれば、ベッドで眠ることもできるので、

眠いのを我慢して仕事を始めることもなくなりましたし、勉強したければ勉強もできますね。

また、出社していた頃に私が歯痒さを感じていたことの一つに、作業がノッてきたのに終業時間を迎えて終了しなくてはならなかったことがありましたが、フルリモート・フレックスタイムであれば、自分で作業時間をコントロールできるので、そのような歯痒さもなくなりました。

前日に集中していて夜遅くまで作業していても、翌朝で睡眠を調整できることで忙しくても安定して7〜8時間眠れるようになったことも嬉しいですね。

フルリモートで働くには、フルリモートが許される領域で価値提供できるようになることが大切ですね。

Web系の自社開発企業はそのような勤務体系を導入している企業が多いので、その企業様が求めていることを適切に捉えてアプローチしていけるようになることを目指していくのが良いですね!

28歳目前まで落ちこぼれていたエンジニア未経験でも、頼られるフリーランスエンジニアになれた話

こんにちは、やまです。

今となっては、私も
安定して月収100万円以上稼げたり、CTOやリードエンジニア、マネージャから「ずっとうちにいてください!」と頼りにされるようになるまでに成長することができましたが、
私は元々28歳までエンジニア未経験であるばかりか、仕事も全然できなくて毎日落ち込んでいるような生き方をしていました。

大学卒業時に就職先が決まっておらず、
公務員試験浪人を2年しても結果が出ず、
やっとの思いで就職した企業でも、いつまでも新人同然の仕事ぶりで全然役に立てている実感が持てていませんでした。

周りの同世代の方や知人は認められて昇進や有名企業へ転職したり、
SNSを見ていても同世代で既にフリーランスエンジニアで活躍されている方を見ると、焦りもありましたし、その人たちとの差に落ち込む日々でした。

その頃は週5で出社していましたが、
ある月曜日の朝、出勤する時に最寄りの駅で目の前の景色が霞んで見えるくらい、自分の無力さに苦しんでいました。

理想と現状のギャップに追い詰められすぎて、抑うつ状態になることもありました。

そんな状態でも、
「活躍されているフリーランスエンジニアの方々のようになりたい」
「自分の力で社会に貢献していきたい」

これらの気持ちは捨てずに、仕事をしながらプログラミングの学習を続けました。

期間としては約半年、
土日は食事・睡眠以外は全て学習とポートフォリオ作成に、平日も仕事を終えて帰りの電車で技術書を通読し、夕食を終えたら22時頃〜24時頃まで作業して翌朝6時に起きて出勤のサイクルを続けていました。

スムーズにいかずに、平日にエラーでつまづいて朝4時頃まで作業して2時間睡眠で出勤することもありました。

やっとの思いでポートフォリオを作り切るも、最初は仕事にありつくだけでも大変でした。

応募してはお祈りの連続でしたし、面談まで進んでもなかなかオファーまでには至らずでした。

約1ヶ月間、応募と面談してやっと1社からオファーをいただけてエンジニアデビューしました。

エンジニアデビューの案件は納期がとても厳しく、通常は半年は要する規模の開発を2ヶ月でお願いされました。

参画初月に最初のリリースがあるものの、私が参画した時は開発環境ができているだけで、仕様も未確定の状態でした。

その中でも、がむしゃらに開発し続けてなんとか納期をクリア、その後も自分がやるべきと思ったことはマネージャに相談の上、どんどん解決に向けて動くことを大切にしてきました。

中には失敗する施策もありましたが、そのような動きを繰り返していると、

マネージャの方から「やまくんのペイフォワードな姿勢にはいつも助けられているよ」とお話しいただきましたし、「ずっとうちにいて欲しい」という身に余るお言葉もいただくまでに成長しました。

今では、月収100万円以上、現場でも頼りにしていただけるまでになりましたが、
それなれたのは、

どんなにボロボロでも、スムーズにいかなくても、辛くても、目標・叶えたいことを胸に行動し続けてきたからだと思います。

本気で取り組みたいと思ったからこそ、壁を感じた時でも踏ん張ることができましたし、自分にできること・やるべきことを考えて実行することができたのだと感じています。

ただ、私も最初から頑張ることに慣れていたわけではありません。

むしろ大学卒業から数年間は、頑張り慣れておらず、
無力感を感じながらもダラダラと日々を過ごしていました。

それでも、「やるしかない!」「絶対成長してやる!」と奮起するタイミングで頑張り切ることができましたし、
一度乗り越えると、それ以降は「頑張る」という感覚よりも
「やってみよう!」というポジティブな思いで進めることができるように
なりました。

誰だって、どんな状況でも達成したい未来に近づいていくことができるはずです。
20代後半まで落ちこぼれていた私でもできたんですから。

もし今辛くても、やめずに行動し続けることができれば、1年後には達成しているかもしれません。

時々休憩を入れつつ、自分を追い詰めすぎずにやっていきましょう!

自己流で何も上手くいかなかった私が成功者から学ぶことで月収100万円以上稼げるようになった話

こんにちは、やまです。

何かしら達成したい目標ができたら、まず真っ先にすることは達成までの方向性を確立することというお話をします。

新しいことを始めたり、やりたいことができた際は、

最初に努力の仕方・どんな努力をすれば目標が達成できそうかを定めようというお話ですね。

私は学生の頃は自己流で頑張ろうとして、失敗ばかりしてきました…

高校時代はバスケットボール部に所属していたのですが、特に自己流で上手くいかなかったなぁと印象に残っています…

なんとか試合には出させてもらっていたものの、全然チームの力になれていなくて悔しい思いをしていました。

他のレギュラーメンバーはそれぞれシュートが上手かったり、パスが上手い、視野が広いなど、持ち味がはっきりしていました。

かたや私はこれといった強みがなく、試合中も私のミスで流れが悪くなることもあるし、

「おい!何やってるんだよ!」と監督だけではなく、チームメイトからも叱責を受けることもよくあり、ずっと落ち込んでいました。

それでもなんとか上手くなろうと、シュートフォームを工夫しようとしたり、練習での動き方を変えてみたりましたが、一向に良くならないばかりかむしろ停滞していた感覚すらありました。

しまいには監督から「下手になっていく選手はいない」とまで言われ、レギュラーからも外れました…

高校バスケを頑張っていた頃の私がまずかったのは「すでに上手くいっている人を参考とせず、自己流で頑張ろうとしていた」ことでした

学生時代の失敗から、自己流で進むと目標達成が難しくなってしまうと考えた私は

未経験からエンジニアになる際、いきなりプログラミングを学び始めるのではなく、
最初にしたことは、すでにWebエンジニアとして活躍されている方が発信されていた未経験からエンジニア転職する際のポートフォリオの方針を見て、どのレベルを目指せば良いか・どんなことに気をつけて進めていけば良いかを把握したことです。

そこから逆算してマイルストーンを決めて、日々仕事をしながら学習とポートフォリオ作成に勤しんでいました。

未経験から目指すので、当然なかなか解決できないエラーに泣かされたり、
到達すべきレベルとのギャップに苦しむことも多かったですが、

最初に方向性を確立していたため、迷う・悩むことはありませんでした。

約半年かけて作り上げたポートフォリオをもとに、転職活動を進めていると、
10社応募して2社から内定をいただきましたし、

「もしかするとフリーランスでも行けるんじゃね?」と根拠のない自信を感じて応募を始めたフリーランス案件では、
30社以上応募して、1社からオファーをいただくこともできました。
(月単価はフリーランスエンジニアとしては驚くかもしれませんが、30万円でしたが…)

エンジニアになって以降も努力の方向性を初期に確立することを意識し、
すでに成功されているフリーランスエンジニアの方の発信を常に見ていました。

フリーランスエンジニアとして活躍されており、月単価100万円を超えている私の恩師である方から、キャリアの歩み方や面談の攻略法、技術習得法などをお金を出して学ぶこともありました。総額150万円くらいは使ったと思います。

当時、月収30万円で決して余裕はありませんでしたが、高校時代の失敗から努力の方向性を定めずに自己流で頑張るよりも、すでに成功している方から学ぶ方が早く目標達成できると考えました。

「学んで使った金額以上稼げるようになれば今お金が一時的に少なくなっても良い、頑張って高単価エンジニアを目指そう!」と意気込んでいました。

学んだ内容をもとに、エンジニアとしての得意領域(ポジショニング)の方向性を定めて自己研鑽したり、
スキルシートの書き方や面談の臨み方を変えたり、技術習得を進めていくと、気づいたら経験2年半の時点で月単価105万円でオファーいただけるまでになっていました。

今では月収105万円以上を稼げるようになり、1年以上経つので当時自己研鑽のために使った額の10倍以上を稼ぐことができたことになります。

もしあの時、成功者から学ぶことをせずに自己流でやっていたら短期間で月単価105万円は達成できていなかったと思いますね。
(900万円の年収UPのチャンスを失っていたことになっていました…)

今回は

自己流で頑張るよりもすでに結果を出している人から学んだほうが早く目標達成できることをお話ししてきました。

自己流で頑張ることも素晴らしいですが、過去の私のように結果が出ないと辛いですし、自分に自信を失うこともあるかなと思います…

失敗から学ぶことも多いですが、せっかく同じ時間をかけるなら、より効果が見込める時間の使い方をしたいですね。

そのためにも、何か達成したいと思ったら、すでに成功されている方のやり方・考え方を真似してみる、もし学べる機会があるなら学ぶことを大切にしていきましょう!

課題を見つけるのが上手な人の特徴

こんにちは、やまです。

エンジニアでシステム開発における課題解決をどんどんしていく人がいらっしゃると思いますが、その方々が考えていることについてのお話です。

結論をお話しすると、課題発見が上手な方は皆

暫定対応だけではなく、根本対応とセットで考えていますね。

例えば、バッチ処理がメモリ不足で終了してしまうという課題があったとすると、

暫定的な対応としては、
「一度の実行件数を減らしてメモリ不足を回避する」「メモリ容量を上げる」等が考えられ、実際不具合を直すために、初手として対応すると思います。

ただ、課題発見・解決に長けている人はこの暫定対応に加えて、
根本対応はどのようにすると良いかを同時に(その場は難しくても時間をあまりおきすぎずに)考えています。

例) そもそもメモリを圧迫する原因となる処理ロジックを見直して改善する等

このように「そもそも」を考えることで根本的な問題を特定していきます。

他にも例えば

・手動の動作確認で漏れがあるなら、そもそもテストで自動化しよう

・パフォーマンス改善を少しずつ行っているのなら、そもそもボトルネックとなっている箇所がないか確認しよう

・不具合が発生したら暫定的な改修だけではなく、そもそも不具合が発生してしまい得る設計を見直そう

などなど「そもそも」をキーワードに考えていくイメージですね。

このように暫定的な対応だけで終わらせず、
恒久対応も合わせて検討・対応していく考え方をすれば、課題はどんどん見えてきます。

そして、見つけた課題を解決するために試行錯誤したことは、高単価案件の面談でのアピールにもなり、後の自分に大きなプラスになって返ってきます。

暫定対応 + 恒久対応で考えていくことがエンジニアのレベルアップの上での大切なスキルとも言えそうですね。

肩書きなし・技術がほどほどでも月100万円稼げる

こんにちは、やまです。

エンジニアで稼いでいく上で肩書きや技術スタックが決して広くなくても、
月100万円以上稼いでいくことは可能
という話をしていきます。

実際に私が会ってきた月単価100万円超えのエンジニアの方は
皆必ずしも目を見張るような経歴、資格を持っていたわけではなく、
技術に関しても、特定の領域に特化しているような方が多いです。

そのような方々に共通しているのは、
企業様の課題解決を根幹においていることです。

「どうすればもっとこのサービスが良くなるかな?」
「どうすればもっと開発効率が良くなるかな?」
「どうすればもっとチームがより連携取りやすくなるかな?」
など

「どうすればより良くなるかな」と考え、ひいては「少しでも企業様に喜んでいただくには、どうすれば良いかな」と考えています。

実際、企業様は肩書きや技術スタックの豊富さをあまり重視しておらず、
「その人がどんな考え方をしていて、どうシステム開発しているのかな」
「その考え方・行動をもとに、我が社のサービスを伸ばしていくためにどんな働きをしてくれるのかな」
と考えて面談しています。

私も経験2年半で月単価105万円でオファーいただき、4年が経過する今でもそれ以上をキープしていますが、
特に有名企業に勤めた経験もありませんし、資格も基本情報技術者のみ、つまり肩書きはほぼありません。
また、技術スタックとしても、面談先で問われるバックエンドはほぼRuby(Ruby on Rails)一本です。

私も昔は
「エンジニアのキャリアを前進させるには資格がいるのかな…?」
「Goが流行っているから早く身につけなければ!」
「経験年数が少ないから、すぐの高単価は難しいかも…」
と考えていた時期がありました。

ただ、既にフリーランスエンジニアとして活躍されている方から
エンジニアで活躍する、稼いでいくには肩書きや技術以上に向き合う考えがあると教えていただき、
それが上記でお話しした「企業様の課題解決に向けて行動する姿勢」でした。

価値提供・課題解決ができていれば、肩書きは必要ではないですし、
技術スタックも必ずしも広ければ良いということではありません。

逆も然り、技術スタックを頑張ってかなり習得したけど、
企業様が求めていることと異なることをしてしまえば、面談でオファーすらいただけなくなってしまうのは、とても虚しいと思います。

実力としては並でも自分なりに考えて提案してみる、
少しでも課題を解決していこうという姿勢が企業様に喜んでいただけますし、
周りのメンバーにも「あの人頑張っているな、よし自分もやっていこう!」と良い影響を与えます。

肩書き・技術はすぐには難しくても、マインド面は今日からでも変えていけると思います。
ぜひ、企業様のために「(大小は問わず)どうすればもっと良くなるかな?」と考えてみることから始めてみましょう!
資格を取る、技術を広げるよりも早く活躍・高単価への道が開けるかもしれません!

経験年数が少なくても月単価100万円以上でオファーいただくには?

こんにちは、やまです。

今回は私がエンジニア経験2年半でフリーランス案件で月単価105万円のオファーをいただき、
経験4年となった現在は最高月単価120万円でオファーいただけるようになった経験をもとに、
経験年数が少なくても、高単価で成約できるようになるための考え方について書いていきます。

ちなみに経験4年で月単価100万円以上の案件でオファーいただいたときは、
事前のエージェント面談で「経験4年だと出ても月単価75万円が相場です」と言われていましたが、
実際には最終的に100万円以上で複数オファーいただけました。

経験年数がまだ浅く、高単価で成約することがまだ難しいのでは…と感じる方は是非本記事を見ていってください!

経験年数が少なくても(正確には経験年数に関わらず)高単価でオファーいただくために大切な考え方について、
早速結論をお話しすると、

企業様は「経験年数」ではなく、「あなたに参画してもらうことにより、どんなメリット」があるのかが知りたいと考えています。

そして、企業様の課題を捉えて「自分が企業様に対してどんな貢献ができるのか」「どんな考えをもとに開発に臨んでいこうとしているのか」を伝えることができれば経験年数が少なくても高単価で成約することは可能だということです。

これができれば経験2〜3年でも月単価100万円以上でオファーいただくことは十分可能ですし、
逆にこれが不十分で「Railsを10年やっています!」「上流工程ができます!」のようなアピールだと経験が10年あっても高単価での成約は難しくなるでしょう。

実際に私が経験2年半で月単価105万円以上で成約いただけるようになって以降に案件探しで行っていることは大きく以下の4つです。

・自分の得意領域で案件を探すことを前提に考える

・その企業様の開発で課題になりそうなことをリストアップする

・それらの課題を解決できること(または解決に向けて動いていること)をスキルシートに反映する

・そのスキルシートをもとに応募・面談に臨む

つまり、企業様が求めていることに対し、自分は解決していけますと、解決に向けて行動していますよと伝えています。

企業様は経験年数や上流工程経験、経験技術の広さよりも

「そのエンジニアを採用することにより、開発が効率的に進むようになるか」

「課題を解決してくれそうか」

「開発が効率的に進み、利益を上げていけるか」

これらをスキルシートや面談で確認しているのです。

実際、企業様との面談で経験年数を聞かれたことは一度もありません。

  • 企業様はどんなビジネスモデルで、どのように売上を伸ばしていくのか
  • 売上を伸ばしていくために実際の開発ではどのようなことがポイントになるか
    • どんなチーム体制?
    • toC向けのメディアサービスページなら、初期表示のパフォーマンスがキーになるのでは?
    • toB向けのSaaSなら、エンタープライズ向けの大きめな案件を見越して規模が大きめな開発があるかな?、あとはアップセルのために機能を多く、スピード感を持って開発していくことが求められるかもしれない
  • 開発をしていく上で課題になりそうなことは何か
  • 技術構成でポイントになりそうな点は何か

このように企業がサービスを伸ばしていく上で課題になりそうなこと + それに対する自分の考え・現場でどのように貢献していこうか事前にリサーチ・仮説を立てて臨むのみです。
だからこそ、スキルシートや面談では課題ベースでアピール内容を考えていくことが大切です。

案件探しの際は、まずご自身の得意なことを洗い出し、それを求めているのはどんな企業様か?を考えてみましょう。

行きたい企業様や関わりたい開発案件があれば、そこで求められることをリストアップし、今の自分にできることを明確にしてみるのも良いでしょう。
その際、もしまだ不足している点があった場合でも、求められていることがわかれば準備することができます。

技術習得の考え方は別記事にもあるので、もしよろしければ是非ご覧いただければと思います。

今回は企業様が求めていることは経験年数よりも課題を捉えた上で、何ができるのか?どんな考えで開発していこうとしているのか?を
ベースにスキルシートや面談で対策していくことの重要性をお話ししてきました。

難しいかも…と感じても大丈夫です。
私も月単価100万円以上で成約できるようになるまでは、自分中心のアピールや企業様が求めていることから外れたアピールをやりがちで、お祈りの連続で月単価30万円の時代がありました。

ただ、エンジニアとして既に成功されている方にお金を支払って、経験年数が少なくても勝てる考え方やノウハウを学び、実践しながら都度軌道修正していくことで身についていきました。
正しい方向性・戦略・戦術を学べば、きっと達成できるはずです!

僕はメルマガもやっていて、キャリア戦略やスキルシート・面談の考え方、ノウハウをどんどん発信していこうと考えているので、ぜひチェックしてみてください!

企業様の課題ドリブンで考えていけば、経験年数がまだ少なくても高単価で成約できるので、是非やっていきましょう!

「自分にはまだ早い…」と感じる方へ 行動してみると思ったよりも上手くいくことがある

こんにちは、やまです。

目標はあるけど、今の自分はまだ実力不足だから難しい…と躊躇してしまう方もいらっしゃるかもしれませんね。

昔の私も(今も時々…)そうなのですが、そういう時こそ意識したいことがあります。

意外と自分が思っているよりも実現までのハードルって高くないかもしれない

完璧に準備しようとしなくても、今の自分にできることから進めると、あっさり達成してしまうこともあるということです。

例えば、私がフリーランスエンジニアになった時。

フリーランスになるには実務が2〜3年は必要と当初は考え、当時はまだその経験がなかったため転職活動をしようとしていました。

ただ、現場で使用する技術スタックのポートフォリオ(当時はLaravel, Vue.js, AWS)で構築し、応募すると意外とあっさり内定が出ました。

そこで、「もしかすると今からフリーランスでやっていけるかも…?」と思い切ってエージェントに登録し、応募していくと約1ヶ月で案件が決まりました。

当時はまだ実務経験がなく、またスキルシートや面談のノウハウを知らなかったのでスムーズではありませんでしたが(20〜30社応募してやっと1社からオファー)、「2〜3年後」と考えていた目標が「1ヶ月」で達成できてしまいました。

そして、その企業様でがむしゃらに開発し、「何としてもお客様のためにやり切ってやる!」というマインドで臨むと、

最終日にお客様から「やまくんにお願いできて本当に良かった」というお言葉をいただき、価値提供の嬉しさを知ることができて

そこでの開発経験が後の月単価UPの原点となりました。

他にも月単価105万円で成約いただけるようになった時も

当時は「今の自分はまだ80万円くらいが限界かな…」と思っていましたが、

エンジニアの師匠の後押しもあり、思い切って「105万円でお願いします!」とエージェントにお願いし

その時点で自分が企業様に価値提供できると考えた点を中心に面談に臨むと

バンバンその単価で企業様からオファーをいただけました。

このように「今の自分にはまだ不十分だな…」と思ったり、自分が思い描いたステップでなくても
その時の自分にできることで行動してみると案外上手くいくこともありますね。

確かにスムーズにいかないこともありますが、

完璧に準備しようとするよりもその時に自分にできることを探して始めてみる方が明らかに目標までの達成期間は短くなると感じます。

そもそも自分が想定している完璧が正しいとは限りませんし、もし上手くいかなくても行動することにより実際の難しいポイントや改善ポイントを知ることができます。

いきなり100点を狙いにいくよりも1点でも良いから今獲得しにいくマインドで臨みたいですね。

「ちょっと今の自分には難しい(早い)かもしれないけど、できることからやってみよう」精神で行動すると

1年後と思っていた目標が1週間後には達成しているかもしれませんね。

1〜2ヶ月でできる未経験技術の習得法

こんにちは、フリーランスエンジニアのやまです。

突然ですが、未経験技術の習得でこのようなお悩みはありませんか?

・参考書を読んだり写経しているけど身についている感じがしない…

・言語、フレームワークのチュートリアルをやった後、何をすれば良いかわからない…

・どのようなことを意識して技術習得に臨めば良いかわからない…

私も駆け出しの頃や技術習得法を学ぶ前は

これらがわからず、イマイチ自信を持てずに技術習得にあたっていました…

ただ、エンジニアを続け月単価が100万円を超えるようになると、

未経験技術であっても1〜2ヶ月もあれば、現場で最低限の仕事ができるだけではなく

企業様の課題解決に貢献できる技術力が身につけられる術がわかりました。

今回は私が日頃行っている未経験技術の習得法についてお話をしていきます。

まず、前提としてインプットよりもアウトプットを重視することの重要性についてです。

何かを身につける上ではアウトプットが大事なことはよく言われることですが、

エンジニアの技術においても当てはまります。

なぜなら、以下のような理由があるからです。

・知っていることとできることの間には大きな差がある

・完璧にインプットするよりもアウトプットの中で必要な箇所を身につける方が効率が良い

例えば、資格試験を合格に向けて勉強することは素晴らしいですが、

技術習得という観点では資格試験の勉強に数ヶ月要するよりも

自分でアプリケーションを作る方が

真に必要な知識がわかり、実際に「開発できる」状態になります。

今回の方法もアウトプットベースのお話をしていきます。

技術習得は段階的にアウトプットしていきます。

第一段階: 入門書(入門講座)を読みながら写経

まずは入門書、言語やフレームワークのチュートリアルやUdemy等の入門講座を

通読しながら写経していきましょう。

この際、一つ一つ丁寧に理解しようとしたり暗記しようとしなくても大丈夫です。

「へぇ〜、〇〇言語のif文ってこう書くんだな」程度にとどめるくらいでOKです。

この段階では後で実践的なアウトプットをする際に見直せるよう

「そういえば入門書に書いてあったな」と思い返せるよう頭にインデックスを貼っておくイメージですね。

第二段階: 基本的なCRUDアプリケーションの構築

入門レベルの教材を一通り通読・写経し終えたら

もうこの段階でアプリケーションを作り始めましょう。

と言っても複雑なものではなく、簡単にCRUDを1〜2個含む程度の簡単なアプリケーションで大丈夫です。

私がよく作るものはTODOリストですね。

例) NestJS × GraphQLを用いた簡易TODOリストAPI

https://github.com/yamao-sys/nestjs-graphql-code-first

現場で開発するサービスも基本単位はデータベースのデータのCRUDであり、

これさえ実装できれば、最低限の仕事はできるからですね。

第三段階: 現場の課題解決を想定した技術検証

第二段階までで基本的なアプリケーションの構築はできるようになり、

最低限仕事で使えるレベルまで習得しました。

第三段階ではエンジニアとしてより価値提供していく、高単価案件に成約できるようになるためのアウトプットをしていきます。

それが現場での課題をリサーチし、解決するための技術検証となります。

ここがエンジニアとしての価値の発揮できるようになるための一番のポイントです。

現場に参画して遭遇したことのある課題や、

開発しながら「もっとこうなれば良くなりそうなのにな…」と違和感がある部分

また、求人票やテックブログで記事になっているようなトピックをもとに

その技術を使う上で生じそうな課題を洗い出していきます。

課題が洗い出せたら、解決するための知見を得るために技術検証を行っていきます。

例えば、私が個人開発で検証した一例として

NestJS × Prismaのテストの効率化(DBの並列化、テストケースごとのDBのリセット)があります

https://github.com/yamao-sys/nestjs-prisma-sample

上記検証の背景としては、

NestJSではORMライブラリを選定してDB関連のModel(Entity)やCRUD操作を行いますが、

RubyのRSpecやPHPのPHPUnitと異なり、DB操作関連のテストコードの基盤を自力で作る必要があり、

テスト導入の初期導入コストがかかるなという課題を感じました。

・CIでテストの並列化を行う想定で、DBの並列化や

・テストケースごとのDBリセット

このように実際のサービス開発で遭遇する課題ベースで個人開発で検証することにより

NestJSのテストで課題を感じている企業様にご提案する知見を得ることができます。

以上、私が未経験の技術習得で意識して取り組んでいるポイントでした。

あとはよくあるサービスを模したアプリケーションを作ったり、

自分で欲しいな思う自分専用のアプリケーションを作り、

技術選定やその中で開発しにくい部分が見つかれば、それを解決できるように検証していきます。

例えば、私は読書(ビジネス書)が趣味で読んだ本の学びを記録できるような読書記録アプリを作成しました。

https://github.com/yamao-sys/reading-record

https://github.com/yamao-sys/vite-react-spa

上記の開発では、実際の現場での開発を想定して技術選定を行ったり設計を考えてREADMEに書くようにしています。

技術選定や設計の意思決定を言葉でまとめると、思考が整理されるのでオススメです。

まとめると

・技術習得はインプットを早めに切り上げ、アウトプット重視で進めていくこと

・アウトプットはCRUDから始め、課題解決を見据えた検証を行っていくこと

アウトプット重視で段階的にレベルアップしていく方法で

企業様でより価値提供できるようになり、

メンバー皆が難しいと感じている課題でも解決に向けて動いていくことができ、

よりこう単価案件に成約する土台を作れるようになっていきます。

これから個人開発で技術習得を行っていく方は是非、完璧を求めすぎず、

「まずは簡単にCRUDでもやってみるか〜」

「開発している中でこれ大変だった覚えあるな、よし検証してみるか」

くらいの感覚で始めてみましょう!

私も引き続きエンジニアとして精進していくので、一緒に楽しみながら頑張りましょう(^^)