オブジェクト指向学習2周目が終わって分かったこと一覧
C# でオブジェクト指向、Object-Oriented Programming (OOP) の学習中。以下のコースを2周目完了😊改めて見えてきたことがあるのでそのまとめ。
(約 1,300文字の記事です。)
OOPで分かったこと一覧
OOPは機能拡張とメンテのしやすさを両立させるための手段
OOPには実装の作法がある。考え方に原理・原則があり、それを理解しないと写経してもまったく身に付かない。
パターンデザインを学ばないと実践で使えないっぽい。
クラスの継承はオブジェクトに無限の組み合わせを与えるリスクがある
オブジェクトの委任を上手く使うことでクラスの継承を最小限に抑えられる
やらためったらOOPにこだわる必要はない
小さなプログラムなら思いつくままプロシージャルなコードで問題ない
機能拡張を前提としない使い捨てコードならばプロシージャルが一番手っ取り早い。
規模がある程度大きくなったときにOOPにコードを書き換えることはできる(スパゲティになり始めるあたりがプロシージャルの限界)
OOPは学習コストが数ヶ月は必要。なのでプログラミング初心者なら即挫折のリスクが高い。ゆえに初心者はまずはプロシージャルコーディングで言語になじむのが吉。
だが初心者が中級者になったころにOOPに出会ってその難易度の高さに驚き、自信をなくす😭
今のところの結論
OOP学習期間は2ヶ月以上を見積もって、コンスタントにコツコツ毎日学ぶべし!
1~2週間集中したところで「何の成果も得られませんでした!」になる。なので継続学習と割り切って、すぐの成果を期待しないこと。
プロシージャルでいいからプログラミング言語を使って何かをやろうとしておくこと。プログラミングは活用目的がないと学習意欲が消し飛ぶ。世の中にはお気楽な娯楽が山ほどあるから。
最終的にはOOPを駆使して「何をしたいのか?」の目的を持っておくこと。これがないと絶対に挫折する😖
というわけでこちらの3周目に入ります。
だんだん視聴速度を上げて英語を英語のまま(日本語字幕に依存しないで)理解できるようになってきた。とにかくOOP関連の英単語が多すぎ。しかもその概念をきちんと理解しないと、どこかで詰まると全部詰まる。なのでOOP関連英単語だけは英語のまま理解できるようにしておきたい。
とにかく繰り返してOOPの原理を頭にたたき込む予定。
この教材が完全に理解できたら、先日買っておいたパターンデザインに進みたい。
OOPは概念なので、しっかりと概念を理解しないと使えるはずがない。OOP限定でいいから英語耳と英語脳を作りたい。
そのためには反復練習しかない。
数年前に、VRChatで日本語ペラペラの外国人(オランダ人だったかアメリカ人だったか忘れた)に、言語習得のコツを聞いたら、
Practice and practice!
て言われたことを思いだした。反復練習しかない。
今回の創作活動は約30分(累積 約3,908時間)
(1,152回目のnote更新)
読んでくれてありがとう。気長にマイペースに書いてます。この出会いに感謝😊