#はじめに#
今回、開発経験のない方にオススメの開発知識のCatch-up方法を本記事でお伝えできればと思います。
自分自身も新卒で入社後、開発未経験ながらも開発配属となり、配属当初はCatch-upにかなり苦労した経験があり、そんな境遇にある人が他にもいるのではないかと考え、本記事の執筆に至りました。
この方法が合う人/合わない人がいらっしゃると思いますが、少しでもみなさんが抱えている悩みの解消に繋がれば嬉しいです。
#自己紹介#
今年の4月に新卒で入社し、現在は主にソフトウェアを運用するための環境構築をしたり、障害が発生した際のサーバーの状態を把握するための監視をしたりする部署に所属しています。私が所属しているチームでは、クラウドサービスの管理から社内用ツールの開発など幅広い技術に触れる機会があります。
大学は社会学部で、開発とは全く縁のないことを学んでおり、プライベートでもPCに触れる機会が多くはなかったため、開発に配属後はゼロベースからのスタートでした。
そのため、配属後はCatch-upに苦労しましたが、最近ようやく自分のスタイルを確立して効率的に理解できるようになってきたので、自分が意識していることをお伝えできればと思います。
#配属された当初の学習方法#
配属された当初は右も左もわからない状態で、知らないワードが出てきては検索し、説明が理解できず途方に暮れることが多々ありました。(ネットサーフィンに1日を費やすこともありました。。。)
その当時の自分のCatch-upスタイルは、闇雲にわからないことを調べ、そこで出てきた内容を丸々理解するという方法を取っていました。
コーディングに関しても求める結果に対して、なぜそのような処理をするのか理解せず、ただ実装することに夢中になっていました。(例えばjavaの連想配列に関する処理を調べてそのままコードを真似て実装するなど)
このようなスタイルを続けていた結果、自分が理解したつもりでいる知識にあまり納得感がなく、実践的で使えない知識ばかりが増えてしまいました。
調べてインプットしているはずなのに、なぜかあまりスッキリしないな〜みたいな感覚を持っている方は他にもいるのではないでしょうか?
まさしく自分もその状態に陥っていました。
#実践してよかった学習方法#
上記の通り、配属された当初はインプットに時間は費やしているけど、うまく理解できていないことが多々ありました。
しかし、配属されたグループでの仕事に携わる機会が増えていく過程で、自分のCatch-upのスタイルが確立されていき、スッキリと理解できることが増えてきました。
以下で自分がCatch-upの際に意識・実践している3つのことに関して説明していきたいと思います。
1. 仮説を立てながら取り組む
調べて出てきた情報を闇雲にインプットするのではなく、得られた情報を元に自分で改めて「これってこういうことなのかな?」という仮説を立てて自分がぶつかった疑問を改めて考え直してみる。このプロセスを踏むことで納得感を持った知識理解に繋がり、その知識もより実践的なものになります。 仮説を立てて再考した結果、納得して理解ができていればそれは自分の知識として消化できていると判断できるし、納得感があまり持てなければうまく消化できておらず、もう少し調べてみたり、周りの人に質問して聞いてみる必要があると判断することができます。自分自身もこの仮説を立てて何かに取り組むということを意識的に実践することで、自分のぶつかった疑問に対する解像度がグッと上がりました!
2. 自分がCatch-upしたことを言語化してアウトプットしてみる
自分が理解したことを自分の言葉で改めて言語化することには様々なメリットがあります。・何が理解できているのか、自分自身だけでなく周囲に知ってもらうきっかけになる
自分の理解を言語化して説明することで、周りの人もどんなサポートやどんな経験が必要であるのかイメージできるようになり、新人へのアプローチがしやすくなると思います。また、言語化の過程で「こんなこともできるよ」「これはこういうことなんだよ」などと+αの気づきが得られることも結構あります。自分が開発に配属された当初、わからないことばかりで「もっと教えて欲しい」「もっとコミットして欲しい」と思うことが正直ありました。
しかし、試行錯誤を重ねたことで、ただサポートしてもらうことを期待するのではなくて、自分自身で周りの人がサポートしやすい環境や教えてもらうきっかけを作るということが新人として重要であると思います。
・自分の理解にズレがないかをチェックできる
自分の理解が実際にあるべき理解とズレている場合、他者に対して言語化することで事実とのギャップを知り、正しい知識へと修正を図ることができます。前の段階である程度言語化できていれば、正しい知識を即座に定着させることができます。(自分の体感では、一番定着するのはこのパターンだと思います。)・知識の定着度が上がり、より実践的になる
自分が学んだことを他者が理解できるように説明することは簡単なように見えて、確実に理解できていないと意外と難しいことです。 反対にそれができれば、その過程で理解が深まっており、なお且つ言語化というアウトプットができているためそ、の知識は実践的なものに自ずとなっています。周りの上司・先輩にぶつけてみるのはもちろん、理解できていない仲間に自分の言葉で説明してみることもお互いにメリットがあって良いと思います。(Qiitaの記事を書いて説明してみることも言語化としてはいいのではないかと思います!)
3. 知識を活用するための実践の場を作る
自分が積み重ねた知識を積み重ねただけで満足するのではなく、ゼロから実践してみることはCatch-upの最終ステップとして重要です。 例えば、コーディングであれば自分が学んだことを生かして何かを実装してみるなどが知識を生かした実践にあたります。実際に自分の知識を生かして何かを実践してみることで、自分が学んだつもりでいるものが自分の知識としてものになっているのか、それとも実践的な知識になっていないのかを改めて確認することができます。また、実践の過程で新たな知識を得るきっかけになることもあるので一石二鳥の方法です。
また実践を通して得られる、「できるようになってる!」「わかるぞ!」という感覚は自分自身の自信やモチベーションのアップにも繋がります。
#まとめ#
自分が開発に配属されてからの試行錯誤の結果、実践してよかったCatch-upの方法に関して述べてみました。
本記事に記載した以外にも様々なCatch-upのスタイルがあると思いますが、Catch-upとセットで何らかの形でアウトプットすることを意識すると理解の質がグッと上がると思います。
こんな記事なんかを書いていますが、自分自身も開発経験の少ない未熟なエンジニアです。
「こんなスタイルもオススメだよ!」などがあれば是非教えていただきたいです!
この記事を読んでいただいた方に何か少しでも気づきがあれば嬉しい限りです。
わからないことだらけで、悩むこともありますがコツコツ、一歩一歩の成長を楽しんで頑張りましょう!!