
独学エンジニアはこれを意識しろ
はじめまして。かるでねと申します。
現在大学4年生で機械学習系のバイトとサーバーサイド系のバイトをしています。
就職先もエンジニアです。
僕は独学1年ほどですが、その中で僕が意識し続けてきたことを、今回のこの記事でまとめていきたいと思います。
それでは早速書いていきます!
1. アウトプットを意識
これは自分の中で1番意識してきたことです。
インプットだけをしていると、学習する気にはなれるのですが、いざ何か作ろうと思うと手が止まってしまいます。
新しいことを学ぶことは楽しいので、最初はインプット過多になってしまうのは仕方ありません。
しかし、その中で常にアウトプットする意識を持つことは大切です。
では、アウトプットすると何がいいのか?
・学んだことが定着する。
・アウトプットすることに慣れる。
・理解できていない部分が明確化される。
3つアウトプットすることのメリットを挙げたので、1つずつ見ていきましょう。
学んだことが定着する
「インプット」は「知る」ことはできますが、「理解」するにはなかなか至りません。
よく同じ教材を何周もする方がいらっしゃいますが、正直言って効率が悪いです。(かくいう僕も最初の頃は同じ教材を何周もしていました。)
学んだことを「理解」するのに1番適しているのが「アウトプット」です。
『「アウトプット」で具体的になんだよ?』という声が聞こえてきそうなので、具体例をあげておきます。
ブログ、Twitter、制作、代表的なものはこの3つですね。
これらの「アウトプット」は、「インプット」で「知る」ことができたものを、「理解」まで押し上げてくれます。
僕の中で「理解」の定義は「人に説明することができる」です。
なぜ「理解」まで引き上げてくれて、複数回のインプットよりも効率が良いか、考えてみてください。
考えてくれたと思うので、僕なりの考えを述べていきます。
ブログ記事を書くにも、物を作るにも、必ず記事や動画で調べるはずです。
しかも特定の領域に絞って。
そうすると、特定の領域について以前よりも詳しくなり、人に説明できるくらいまで成長できます。
これを繰り返すことで、詳しい特定の領域を広げていくことができます。
さらに、プログラミングはそれぞれが分離しているわけではなく、繋がっているので詳しい特定の領域が広がる速度がどんどん上がっていきます。
実際にやってみるとこの効果を実感できるはずです。
「アウトプット」にあって「インプット」にないものは「具体例」です。
ブログや物を作る際、実際に自分でコードを書くので、「具体例」ができます。
この「具体例」があると、自分の中にすとんと落ちて理解しやすくなります。
また、人に説明する際にも伝えやすくなります。
「インプット」でも、人の「具体例」はみれますが、自分の記憶には残りにくいです。
これらのことから「アウトプット」をすると、自分の中に定着して、「理解」することができるようになります。
アウトプットすることに慣れる
一見するとこれはメリットというほど重要性を感じません。
しかし、実は重要なことなんです。
なぜ重要なのかというと、「実務はアウトプット」だからです。
実務とは、実際にエンジニアとして働く事を指します。
エンジニアとして働くようになると、自社開発製品や受託での開発、新しい技術を調べてスライドにまとめたり、簡単なものを作成するなど、「アウトプット」がほとんどです。
今まで「インプット」しかしてこなかった人が、いきなり上記のような事をするとなると、何から手をつければいいか分からずなかなか大変です。(僕自身一番最初にアウトプットした時は、手が動きませんでした。)
この「何から手をつければ良いか分からない」というのは結構厄介で、ただただ時間が過ぎていきます。
しかし、「アウトプット」に慣れていると、「ひとまず〇〇からやろう」や「こんなググり方すればとりあえず雛形は作れるかな」ということがわかります。
また、「アウトプット」に慣れると、「アウトプット」が楽しくなり「アウトプット」せずにはいられなくなります。
このような状態になるとどんどん「アウトプット」できるようになるので、就職・転職時のポートフォリオをたくさん用意できたり、自分が作りたい物を作れるようになります。
「アウトプットに慣れる」とメリットが多いので、やらない手はないですね。
理解できていない部分が明確化される
これは実際に「アウトプット」すると実感できます。
例えば人に説明している時に、とある「部分」で詰まってしまうことが必ずあります。
その「部分」は自分が完全に理解できていないな「部分」です。
このようにピンポイントで理解できていない部分がわかると、その部分だけを復習すれば良いので、インプット効率が上がります。
「インプット」のみだと、なんとなく理解できていない「部分」があるからまた1から復習してしまったり、理解した気になってしまう部分が出てきます。
定期的にアウトプットを挟むことで、自分の理解度が確認できるならやらない手はないですね。
分からない部分の明確化のための「アウトプット」でお勧めなのは、「人に説明する」、「ブログなどの記事を書く」です。
学習仲間がいる人はぜひお互いで説明しあってみてください。
僕はボッチだったので、Twitterなどで発信していました。
以上が「アウトプットを意識」のメリット3点です。
これであなたも「アウトプット」したくてうずうずしてきたはずです。
早速これを読み終わったら、何かアウトプットしてみましょう。
2. ググり癖をつける
「ググる」とはGoogle Chromeなどのブラウザで調べるという意味です。
何かわからないことがあればブラウザで調べるはずです。(今の若者はInstagramやYouTubeで調べたりするそうですが…)
プログラミングにおいてエラーとはしょっちゅう遭遇します。
その度にググるのが基本です。
しかし、中には対してググらず質問してしまう方がいます。
これは非常にもったいないです。
なんせせっかくのググりタイミングを失っているです!
僕自身プログラミングスクールで質問などに答えていますが、やはりちょっとググってすぐ質問してくる生徒は多いです。
経験が長い人に聞いた方が一見早そうですが、エラーは千差万別です。
同じエラー文でも原因が全く違うことなんて日常茶飯事です。
なので結局聞かれた方もググることになるわけです。
もちろんググり方は経験豊富な人の方が上手いですが、頼ってばかりではいつまで経っても自分が成長しません。
よくググり方の記事を見かけますが、結局実践を通さないと身につきません。
そして、すぐ質問する癖をつけてしまうのは、相手の時間を考えない大変失礼な行為に当たります。
よくあるのが「ここがわかりません。」という質問です。
これを言われてしまうと、こちらとしては「どんな対処をしたのか」、「どんなことをしてたのか」などを質問することになり、時間が取られまくります。
質問する上では最低限以下のことを意識する必要があります。
・全体として何をしていたのか。
・具体的に何をしてエラーが出たのか。
・試してみた対処法や調べた記事について簡単に教える。
「〇〇さん。今〜をしていたのですが、このようなエラーが出てしまいました。対処法として〜や〜を試してみたのですが、解決しませんでした。お手数ですがアドバイスいただけると嬉しいです。」
こんな感じですかね。
これであれば答える方も答えやすいです。
誤解がないようにいうのですが、質問される側は質問されることは嫌ではありません。
ただ、あまりにも自分のことしか考えない人の質問に答えるのはだんだん嫌になってきます。
質問される方も暇ではないので、最低限の礼儀をもって質問するように心がけましょう。
3. 成長意欲
成長意欲を持つことは成長する上で欠かせません。
そしてただ成長意欲を持つだけでなく、それを行動に落とし込まなければ意味がありません。
ただただ、「成長したい!成長したい!」と思って成長できたら誰も苦労しません。
成長意欲を持ったら、具体的に成長するためには何をしなければいけないか考えるべきです。
僕の場合はさっさと実務に入ることでした。
実務に入れば「成長する、しない」ではなく、「成長しちゃう」、そして、「やるかやらないか」ではなく「やるしかない」という環境に入れるので、とにかく実務がしたくて仕方ありませんでした。
よく実務に行くのに躊躇う人がいます。
「もっと成長してから」、「今の自分にはできない」、「実務は怖そう」など何かと言い訳をつけて、応募さえしません。
もしエンジニアとして成長したいなら、そんな言い訳は捨ててください。
前に進むしか選択肢はありません。
もちろん実務のバイトやインターンに合格するのは簡単ではありません。
しかし、だからこそ応募して、今の自分には何が足りないのかを面談の中で見つけていく必要があるのです。
エンジニアは上には上がいます。
「今の自分ではできない」や「もっとできるようになったら」と言い訳を言う人にいいたいです。
「そのままの思考では一生その言い訳を言い続ける人生になりますよ。」
と。
たかが実務でびびるのではなく、成長のために行動していきましょう。
給料も他のバイトよりもいいのでおすすめです。
もちろん成長意欲がない人はこの話は関係ないのでご安心を。
4. 勉強する
勉強しましょう。
ここにきてごく当たり前のことを言います。
一つ聞きたいのですが、毎日プログラミングの勉強していますか?
毎日継続している方は素晴らしいですね。
では毎日どのくらいの時間勉強してますか?
僕は10時間以上です。
プログラミング始めてから1年平均すると1日の勉強時間はゆうに10時間を超えます。
もちろん勉強時間が全てではありません。
しかし、最初のうちは特別な才能がない限り、量が必要です。
「量」より「質」と言いますが、プログラミングにおいては「量と質」だと考えています。
効率的に成長できる勉強方であった的な「量」をこなす。
これを僕は大切にしてきました。
エンジニアやよく言われている効率の良い勉強を実践しようとしても、なかなかその通りに実践できる人は多くないです。
「絶対こっちの方がいいだろ」と考え、独自性を入れてしまいます。
僕もその部類でしたが、実際に効率が悪いことを学んでどんどん軌道修正していきました。
何事も実践を通して体感として学ぶことで修正できるので、まずは「量」をこなしながら「質」を高めていきましょう。
5. プログラミングを好きになる
これで最後です。
最後にして一番重要だと考えています。
ここで質問です。
「あなたの好きなことはなんですか?」
ゲーム、読書、スポーツなどたくさんあると思います。
「では、それをすることは大変ですが?苦痛ですか?飽きませんか?」
答えは「ノー」だと思います。
いくらやっても飽きず、好きで好きでやっているので苦痛にも感じないはずです。
プログラミングはずっと学び続ける必要があります。
なぜならどんどんアップデートされていくからです。
しかも1年単位でガラリと変わることも珍しくありません。
ずっと学び続けなければいけないものが、たいして好きなものではなかったら辛くありませんか?
数学や英語は嫌いだけど、社会は楽しいからそればっかりやってしまうというのに、嫌いなものはほとんど学ばなくなり、好きなものを学んでしまいます。
これらのことからプログラミングが好きであることは必ずプラスになります。
もちろん好きではなくても勉強して、成果を出すことできます。
しかし、人は好きなものに対して発揮する力は凄いです。
いくらやってもやり飽きないので、毎日平気で10時間以上できます。
しかし、最初っからプログラミング好きな人もいれば、そうでない人もいます。
特に好きではない人が好きになるにはどうしたら良いのか。
それは、自分が作りたいものを作ってみるです。
使ってみたいものがない人は、日常を過ごす際に何か不便なことがないか考えるようにしてみてください。
必ず何か見つかります。
自分が作りたいものを作れるようになると、達成感とともに楽しい気持ちになるはずです。
まずは心から始めましょう。
これで好きになれない人でもエンジニアとして働くことはもちろん可能です。
しかし、もし辛いようでしたら他の職業を除いてみても良いと思います。
「エンジニアしか勝たん!」というわけではないので、柔軟に方向転換できるようにしましょう。
終わりに
ちょっと長めですが、「独学エンジニアが意識すること」について書いてきました。
時々強めの口調になってしまって申し訳ないです。
ただ、僕と同じように独学でプログラミングを学んでいる方には成果を出してもらいたいので、頑張ってください!
何か質問などが有ればぜひ左下のTwitterアイコンからDM送ってください!
もし記事が面白いと感じたら、「いいね」を押していただけると嬉しいです🙇♂️
また、今後も記事を書いていくのでぜひ覗いていってください🦔
気軽にクリエイターの支援と、記事のオススメができます!