🦔

未経験スキルに参画時、駆け出し、未経験のエンジニア必読❗️現場の技術についていけない場合はどう対策すべきか

に公開

未経験、駆け出しエンジニアの現場についていけない問題

未経験や駆け出しエンジニアでよく現場でついていけないというのはよく聞く話です。
だけど具体的に何をすればいいかわからないという方もいらっしゃると思います。

僕も過去にLaravelの開発現場に未経験から入って挫折したことがあります。
技術が全く追いついていなかったです。技術がダメで周りが見れなくなってしまい、
社員として契約する前に戦力外でした。当時自分は1000時間近く学習していたのに、
ここまでできないのかと落ち込みました。エンジニアはやっぱり向いていないと思ったのですが、
戦い方を変えただけでそこそこは戦えるようになりました。

現場の技術に全くついていけない理由(実体験)

これは単純にアウトプット不足です。
自分は最初Railsを学んだ後にLaravelを使った会社に入る前にある会社で人事の方から
「君は凄い勉強熱心だね。だけど努力のやり方を変えた方がいいよ❗️」と言われました。
当時僕はQiitaにアウトプットをしまくって100記事以上も発信していました。
これを見て会社の人事の方はこうアドバイスを僕にしました。
「君はアウトプットしているけどインプットした内容をアウトプットしただけだ❗️
Qiitaとかでアウトプットするのは、自分で何かを作った過程のことをアウトプットするものだ❗️」
実際この人事の方の予言は的中して、いざLaravelの会社に入った時、
インプットバカになってしまっていた僕は何もできずに現場を離れることになりました。
プログラミングに特別才能が無かったのではなくて、努力の方法を間違えていただけでした。

実際に自分がやっていたのはこんな感じでした。

  • Progateレベル400(笑)。正直レベル50もいらないです。
  • オンライン教材7、8周もする。
  • グダグダな共同開発講座を受講してしまう

これだと時間がかかって当然だなと思いました。
Qiitaにアウトプットを始めてから学習はスムーズになったので、これなら
いけるだろーと思ったら現場で撃沈でした。あと一歩アウトプットが足りていなかったです。

他にも重要なものがありました。Git操作です。
Dockerを使った実務に近い環境での開発も大事です。こ
経験浅い時から1から構築する機会はほぼないのでいいかもしれないですが、
Gitだけはちゃんとやりましょう
操作ミスると会社のシステム破壊しますし、Gitわからないと仕事にならないです。
Gitを使っていない現場もありますが、基本Web系だとほとんど使っています。
僕もGitには苦戦しましたし、僕に以前教えていただいたエンジニアの方も
Git操作で会社の環境破壊しかけたみたいで、現場から戦力外になってしまったみたいです。

最後に一つ現場でのコミュニケーションです。下の記事を読んでみてください。

https://zenn.dev/norihashimo/articles/093a35faae6384

実際どうすればいい?

自分は実際どう対策したかというと現役エンジニアが指導する共同開発に参加しました。
現役エンジニアというのは重要リーダー経験などがある方がメンターだとベストです。

共同開発で特にこの2つを満たしているかも確認してください。

1.CRUD処理と認証機能の実装

ほとんどのWebサービスはこの2つの機能の延長線上でできています。
これをやれば最低限実務で何をやっていいかわからんとはならないはずです。

2.共同開発でGit操作とお作法を学ぶ

実装ができても現場でのコミュニケーションやGit操作ができない
仕事にならなくなってしまいます。
個人開発だけだとこの2つはなかなかできないのが現状です。

上の2つを学んだら最低限タスクはこなせた

上の2つを学んだおかげで、Laravelの実務案件(簡単な案件でしたが)はなんとか
やり切ることはできました
。スタートラインに立てた感じでした。
ただこれはあくまでスタートラインです。

共同開発が難しければ個人で開発

どうしても共同開発は無理だーというのであれば、個人開発でやりましょう。

有益な参考記事です。この記事に詳細は書いてあります。

https://read-engineer.com/2023/09/15/saiteigen/

後この方のメルマガやYoutubeは登録しておいた方がいいです。
どうキャリアを歩むのか?現場でどうすれば戦力になれるか?などのコンテンツは凄い有益です。
騙されたと思ってまずは発信の確認、メルマガ登録、してみてください。

もしTodoリストだけで物足りないならRunteqのポートフォリオも参考にしてみましょう。

https://fledge-hub.com/

後はTechpitとかもあります。(バージョンとかが古いですが😅)

https://www.techpit.jp/

個人開発の学習法

以下の動画と記事を参考にTechPitやUdemy、スクールの課題などで学んでみてください。
簡単にいうと写経しないで、アウトプットの練習、AIはなるべく使わずに練習することです。

https://read-engineer.com/2023/09/23/1000hour-nashi/

https://www.youtube.com/watch?v=spQrb5CtkXc

僕はReactを学んだ時、この方のスクールの無料特典で実践講座があり、それで学びました。
これをNext.jsでリプレイスしてみたり色々工夫してみました。
ゆうだいの海外エンジニアライフ

AIがあってもプログラミング学習は必要

AIがあるから学習は不要って意見ありますが、そんなことはないです。理由はざっくりこんな感じです。

  1. そもそも何も知識なかったらAIに的確な指示を出すことはできないです。
    知識0でいきなりアプリ作ってとか言われてできますか?🤔

  2. AIがカバーできないところは必ずあります。手動でやった方がいい場面もあります
    いざそういう場面に遭遇して知識0で対処できますか?🤔

  3. AIが今何をやっているのか理解できなくなってしまいます
    こんな状態で開発なんかできますか?🤔 知識0でいいならエンジニアなんか不要ですよね?

個人開発でアプリを作る(現場で使う構成で)

結論個人でアプリは作りましょう
あとAIで作るにしても、AI丸投げは現場入ってからヤバイことになります。💦

【エンジニアの技術習得方法】毎月たった600円でできる技術習得方法

毎月10円でフルスタックのスキルが身についてしまう方法

フルスタックエンジニアになるための抜け道

エラーの解決法(問題の切り分け)

エラーで詰まった時の考え方はこれが大事です。
仕事ができる先輩達は当たり前のようにできていました。💦

https://freelance.cat-algorithm.com/divide-problem/

ちなみにこの方はワンダフルコードというスクールの講師の方です。
よかったら動画の7:20からチェックしてみてください。
エンジニアとしての行動方針(エンジニアとしてどう取り組むのか)を教えてくれます

https://wonderful-wife.net/w_code/?maf=3327_3409424.48437.0..2334412369.1733153723

https://www.youtube.com/watch?v=5HkzsNdMoBU

現場のコードの読み方

自分もまだまだできていないですが以下のやり方を実践してみてください。

https://qiita.com/Hashimoto-Noriaki/items/04a958ca298398623b63

自問自答する習慣を持つ

Brainやオンクラスといった巨大なプラットフォームの開発を担当していた
強強CTOの金子さんという方から教わったことです。

プログラミングができる人は自問自答することができる人で、
いろんなライブラリやコードの書き方を知っていることではない
と教わりました。

ex)
このコード他の人読みやすいのかな?
有益な記事あるけどしばらく更新されていないからバージョン古いのかな?
AIはこう言っているけど、このまま採用したらコードが肥大化しちゃうのでは?

などなどです。

Webの基礎も学ぶ

Webの基礎が理解できていないことが、原因でフレームワークの理解が浅くなってしまうことが
多々あるので、Webの基礎もできるようにしていきましょう。

https://zenn.dev/norihashimo/articles/1e8eaa64a892e5

https://www.youtube.com/watch?v=9P0AEjjpqQE

共同開発での失敗談

共同開発ができるサービスを紹介します。自分の失敗談でグダグダな共同開発講座に入ってしまいました。
実際にこれを終えて、以前学んでいたエンジニアの方と会った時も、「大して成長していないね」
と言われました。それもそのはず、現役で活躍している方からレビュー何もないので、
出来上がったのはあまりにもショボいアプリでした。現場のお作法も何も身についていません。
結果メンバー6人中僕ともう1人以外はエンジニア就職できませんでした。
なのでちゃんと現役エンジニアが指導してくれるスクールに行った方がいいです。

共同開発ができる講座、サロンなど

教育実績もある環境を紹介します。検討してみてください。僕が知っている範囲です。

  • ゆきひろさん
    30代未経験からチャレンジしたい方はこの方に1度相談してください。
    PHP、laravelを教えている方です。30代からのチャレンジのノウハウを持っています。

https://www.youtube.com/@YukihiroLaravel/videos

  • Zero to Hero
    OJTができるサロンで、本物の実務案件をやらせてもらえます。
    ただある程度、自作でアプリを作ったりしていないと効果があまりないです。
    Git操作も慣れた状態がベストです。後土日の対応ができないのがネックです。

https://zero2hero.jp/

自分の経験談

現場に入る前に共同開発に参加した時のことを詳細に書いてあります。
長い文章で読みづらいですが、振り返りをして欲しいです。

https://qiita.com/Hashimoto-Noriaki/items/34681cab7b7b6798ecff

これは模範的な記事です。この記事をポートフォリオの役割を果たして開発系の企業に
内定をいただいたみたいです。

https://qiita.com/ryota100100/items/6b48f38b34d1cebaac0a

どうやって実装ができるようになった?(正確にはマシになったです😂)

この下の3つを共同開発では意識しました。まだ自分は実装ができるようになったとは言えないですが笑

1.似ている実装を参考に作る
似たような機能はけっこうあったりするので、それを参考に作りました。

2.ググる(どこが使えてどこが使えないかを見極める)
ぐぐってもそのまま使うのでなく疑問に持ちながら実装しましょう。

3.ChatGPTなどAI活用する
これは便利なので使わない手はありません。

可能なら個人開発であらかじめ自分で簡単なものを作っているとそのまま使えたりします

4.上記の動画のスラスラコードが書けるようになるにはの動画で練習

コードを説明しながら書く

自分はいきなりコードを書こうとしてフリーズしてました。
ではなくてまずは何をしたいのか、今何をやっているのかを言語化できないと積んでしまいます。
エラーで苦戦すると自分もついやらなくなってしまうので、こうならないようにしましょう。

https://www.youtube.com/watch?v=AdguxgpH514

調べた時は必ず実装する前に疑問をもつ

ぐぐってもその記事を書いた人の環境、バージョンなどは違うので、
以下のように疑問を持つといいです。

ex)
バージョンはいつ?
どんな環境?
この記事の意図は?

とか

AI依存症注意

以下でChatGPTの使い方が載っています。

https://www.youtube.com/watch?v=oVMBd1Fqz_Q

ただChatGPTの注意点として、ChatGPTに依存しないことです。
普通に間違えた情報が出てくる時もありますし、トリッキーなコードが出てきてしまう
こともありますし、依存しすぎて自分で考えた実装をやらない時期も出てきてしまいました

共同開発のデメリット

共同開発にもデメリットはあります。
1.自分が全部作った訳ではない。技術のアピールがしづらい
2.現場に比べたら成長速度は遅い(現場の方が成長速度が圧倒的に速い)
3.費用がかかる(未経験や微経験同士で集まっても仕方ない)

なのでご自身でCRUD処理や認証機能を実装して、Todoアプリなどを作るのもいいと思います。

参考資料

https://read-engineer.com/2023/09/26/shoboi/

Discussion