本投稿は、以下の「新人エンジニアにすすめたい、あなたの勉強法をシェアしよう! by Udemy Advent Calendar 2022」の2日目でもあります。というか、そのための記事です笑
去年2021年は3日目に投稿してました!
今回は勉強法のシェア、特に新人エンジニアということで、もし自分が1,2年目くらいにこのUdemy講座をみていたら色々なモヤモヤがすぅーと解決したのかな?と思い、紹介させていただきます。
オブジェクト指向がいまいちピンとこない日々・・
クラスって?継承って?という、いわゆる構文や文法的なことは新人研修や独学でも書籍や実装しながら理解していけるのですが、「オブジェクト指向の威力?」というのがなかなかピンときませんでした。
「デザインパターン、あー、知ってる知ってる。クラス図とか見ても何となくわかるわかる」
でも設計や実装に落とし込もうとするとどうしても繋がらないことが多々あると思います。少なくとも自分はそうでした・・
この記事でお薦めする講座はつい最近見たのですが、是非1年目、2年目くらいの時に見てほしいなと思いました。
ただオブジェクト指向っぽく実装すれば良いのではなく、その必要性やコツみたいなのがとてもわかりやすいです。
講師が「ピーコック アンダーソン」とあったので、最初英語なのかな?と思ったら全然そんなことありません。2倍速でもわかりやすいし、あらためて勉強になりました。Udemyは基本2倍速で聞いて、わからない時は速度落とす感じが時間的にもお薦めです。
そもそもSOLID原則とは?
SOLID原則という言葉自体を1年目とかで耳にするかどうか?は、研修や現場、身近な先輩次第な気もしますが。
そういう自分もSOLID原則を耳にしたのはだいぶ経ってからでした・・。早くに知っておけば。。
とはいえ、なかなか書籍とかサンプルを読んでもわかったようでわからないような。。
- S (Single Responsibility) 単一責任の原則
- O (Open-Closed) オープン・クローズドの原則
- L (Liskov Substitution) リスコフの置換原則
- I (Interface Segregation) インターフェイス分離の原則
- D (Dependency Inversion) 依存性逆転の原則
どうですか?5つの原則を説明できそうですか?ソースを見た時に原則違反というか違和感に気づけそうですか?
では行ってみましょう!
お薦め講座3選
この3講座でSOLID原則を学ぶことができます。講座の詳細は各ページに委ねますので、ここでは講座名とお薦め理由のみを。
各講座はC#を使った実装例ですが、C#に詳しくなくても何をしているか?はわかると思います。原則に沿わない実装をした時にどういうデメリットがあるのか?それを原則に沿う実装にしたらどうなるか?など、順を追ってとても細かく解説してくれているので、デメリットとメリットが分かりやすいです!
講座内でも必ずしも全てを原則通りにするべきとは言ってません。ただ、少なくとも前提知識として持ち、違和感に気がつくことができることが望ましいと思います。レビューの質もあがりますし、結果品質も上がると思います。
1年目の自分に見せてあげたかった・・笑
今回の内容に限りませんが、もしその時に理解できなくても、またしばらくしてから繰り返し見ることで確実に理解が深まっていくと思います。きっと勉強やこの業界はそういう世界なんだと思います。いつまでも繰り返しと継続ですね。
あと、講師の話し方の好みは主観にもよりますが、個人的にはとてもわかりやすかったです。
オブジェクト指向の原則1:単一責務の原則とオープンクローズドの原則
オブジェクト指向の原則2:リスコフの置換原則と継承以外の解決方法
オブジェクト指向の原則3:依存関係逆転の原則とインタフェース分離の原則
ということで
Udemyを使ったことある人はわかると思いますが、頻繁にセールをやってますのでセール中に購入しましょう!
エンジニアの勉強に限らず自分への投資ですので、セール期間中に本数冊分と思ってポチってみるのも良いのではないでしょうか?もうすぐ冬休みも近いですし、他にも色々な講座があるので興味あるものを楽しく学ぶのが何よりお薦めですね。ピーコック アンダーソンさんの講座に「デザインパターン」の講座もあったので、クリスマスプレゼントに届くことを楽しみに待ってます。
エンジニアってアスリートに近いなって思います。練習(勉強)を怠ったら、本番(業務)での瞬発力や判断力が鈍りますし。日々の積み重ねあってこそだと思います。勉強を継続していくためにも、あまりハードルを上げすぎず、楽しみながらできる工夫も必要かなって思います。
時には書籍でカッツリ集中したり、Udemyで少し聞き流す感じで勉強してみたり、勉強会などに参加してお互いに刺激やモチベーションを分けあったり。
いずれにしても自分なりのルーティンを早めに確立することが大事だなって思います。
毎朝決まった時間に勉強するとか、寝る前に30分でもコードに触れるとか。スタイルは人それぞれあると思いますが、ルーティン化をお薦めします。
さいごに
新人プログラマを応援するというと上から目線な感じがしますので、頑張ってくださいとは言いませんが、自分もみなさんと一緒に勉強に励んでいきたいと思います!だって、楽しいから。そして未だにわからないことだらけなので笑