概要
この記事では技術ではなく学習の進め方を記述しています。
業務と独学の違いを踏まえてどのようにすると続いたか、また技術が身についたか記述していきます。
なぜこの記事を書いた?
最近業務では携わっていない技術でアプリ開発を行っているのですが、がむしゃらに手をつけるとモチベーションと作業の進捗が著しく下がることに気づいたため、この気持ちを忘れないために備忘録的な意味を込めて作成しました。
またあわよくば、初学者の方のつまづきを減らすことにつなげることができたらいいなとも思っています。
主張したいこと
一番最初はできる限り自分で考えずに動くものが作れるように、手順を記載している記事を探して実践するべし
上記の理由なのですが、エンジニアの最初のシステム作成は挫折させるためにあるのかと思うくらい初見殺しのエラーが多発します。
そのため、局所的ではなく一連の答えを書き連ねた記事に従うことで、エラーに出会う回数を減らし挫折を防ぐべきだと思ったからです。
筆者が考える理想的な手順
- 作りたいものに似ている完成までの手順を書いてる記事を探す(そのような記事自体が少ないためここが最も難しい。例 : 過去に筆者が作った記事 )
- まるまる物真似をして手元で動かせるようにする(ソースコードの挙動を視覚的に確認し理解する)
- 自分が作りたいものにアレンジする
- 0から作れるようになりたければ、1~3を終わらせて戻ってこれる指標があるこの状態ではじめて作成する(急がば回れ)
以下余談なので気になる方だけご覧ください
初期段階でつまづく要因
大抵行き詰まるときは複数のことが原因で動かなくなってしまい、1つは解けているのに依然として動かないということがあります。
サポートがない独学だと、調べ出した解決案のどれが正しいか分からないため、全ての解決案の組み合わせを試さなければなりません(解決するまでに下記の試行錯誤を実施しなければならない)
つまづいている原因Aの解決案×つまづいている原因Bの解決×つまづいている原因Cの解決案×...
例えばこれがそれぞれA~Cまで3通りずつgoogleで調べられたとして、1箇所(1行)の実装に27回試行錯誤を行わなければならないということになります。
また、頻度は初期段階ではアプリ完成までに(約1万行記述までに)これが10行に1度起こるイメージとなります。
それだけならなんとか根性で乗りきれなくもないのですが、解決案が全て間違っているというパターンもままあり、上記の例で言えば27通り実施して全て動かないということがまあまあな頻度で起こります。
そのため答えが絶対に見つからないものだと思い込んでしまい心が折れて挫折してしまいます。
過去の自分を含めてここで大抵の人がドロップアウトしてしまうのではないかと思います。
上記のようなことがつまづく要因となっています。
(一応独学での解決策としては、ここで奮起してさらに解決案を検索して3通り見つけて27×3通りをためして、だめならまた検索して...となります。
そして本当に0の0で(お手本なしで)やる場合だと、上記の突破という奇跡を起こせた人だけがアプリを作成することができます。)
業務と独学の違い
業務
-
作るべきものについて、経験豊富なエンジニアができるだけ失敗しないようにお膳立てをしてくれたやり方で明確なゴールに向かって実装を行う
-
会社用のqiita・slackの過去のやり取り・リポジトリ内の類似の実装 があるため真似をすることで大抵悩まずに実装することができる
-
仮に上記からヒントを得ることができなくても上司・先輩がおり、誰かしら解決の経験からピンポイントの答えを持ち合わせているため、つまづいたとしても99%解決できる
-
上司・先輩に質問するとにつまづいた要因以外に、自分では気づけていないつまづいている要因まで見こした解決方法を教えてもらえるため、絶対にできないという絶望感を感じることがない
独学
-
技術的縛りがないため自分がやりたい技術を使える
-
誰も助けてくれないので、正しいかどうか分からない記事を自分で使えるか判断して試行錯誤しなければならない
-
やり方を間違えると絶対に直らないと思えるエラーに出会える。
業務以外でアプリ(システム)の作成・スキル取得はほぼできないのか?
最初の主張に戻りますが、戻れる指標(参考にできるシステム構築の経験)があればつまづきを大きく減らせます。
なので、業務につく前の人はいかに挫折しないかを第一で考えることで学べば、業務でなくても無事スキルを身につけることができ、アプリ作成もできると思います。
これまで筆者が出会ってきた一連の手順を記載してある記事
-
https://reffect.co.jp/laravel/finally-understand-laravel-on-docker
-
tech::expertの教材(接客対応は多少違和感を覚えるところはありましたが、教材はなかなかよかったです。多岐の技術を横断する一連の手順書でここまでのものはまだ他に見つけていないです。)
-
プロゲート(一応一連の流れを学べるのだが、一番つまづく環境構築を飛ばしたところからスタートで、かつ手元に完成品が残らずアレンジを試せたりしないため筆者としてはいまいち身につかない感触でした。)
-
記事を見ながらの作成動画(例:https://www.youtube.com/watch?v=u5BAt0hLgsk )