Unityでゲーム製作などでC# を学んだことがある人、あるいはこれから学ぼうと思っている人向けの記事です。C# はObject-Oriented Programming (OOP) に適したプログラミング言語です。ですがOOP自体の理解が曖昧だと「それ、本当にオブジェクト指向になっている?」かどうかを自分自身でも判定できないことでしょう。
この記事では本当のOOPの理解のために超絶オススメできるUdemyコースをご紹介します。実際に私が最後まで学習したコースですが、とてもオススメです😊
- なぜOOPという手法が生まれたのか?
- OOP以前のプロシージャルなプログラミングの限界とは?
- どうやってプロシージャルな、モジュラーなプログラミングからOOPに変換するか?
- OOPであるか否かの境界線、OOPの必須条件
上記を解説できる人は既に立派なOOPマスターでしょう。このコースではこれらを理解できるようになります😍 C# 学習者にはなおさらお得。
ただし、学習に要するエネルギーはかなり多め。つまり学習のハードルは高い。
とはいえ、おそらくどんなOOP学習コースでも難易度は高めなので、それに比べて難しすぎるわけではない。そもそもOOP自体が難解な概念の固まりだから。
それらを考慮してもなお、いいと思ったのでオススメします😊
何度も復習して「本当のオブジェクト指向」でコーディングできるようにしたいですね!
なお、オススメするコースは英語への苦手意識がある人にはまったく向きません。他の日本人講師のOOP解説コースを探した方がいいでしょう。
(約 3,200文字の記事です。)
おすすめの受講者
大前提として、過去に何らかのプログラミング言語を学習したことがある人が対象です。「プログラミングって何?」という超絶初心者向けではありません。
- 過去に何らかのプログラミング言語を学習したことがある人
- C# でOOPを本当に理解したい人。
(ただし学習日数が必要なので、すぐに使い出せるようにはならない) - OOPに苦手意識があるけど克服したい人
- 英語に苦手意識がないか、あるいは英語力を高めたい人
どちらかというと、過去にプログラミングを学び「OOPって何だかよく分からない。何のメリットがあるの?謎」という人向けです。
Unityでゲームを作りたい人などは問答無用でOOPを理解しないと行き詰まることは確実です。他者の教材をなぞっているうちは問題がなくても、自分で作り出そうとするときに曖昧な知識の組み合わせではOOPは正常動作してくれません😭
ただし、本当に英語での理解が必要になるので、
- 本気でプログラミング英語のリスニング力を高めたい
- プログラミングに関する英語力を高めたい
という人にはメチャンコ効きますが、そうでない人にとっては返金申請したくなるくらいハードモードです。
事前情報
学習の効率化のために字幕の翻訳アドオンをインストールして下さい。
使い方や設定方法はGoogleで探せばすぐにでてきます。
このアドオンを使うことで、Udemyプレーヤー純正の英語字幕で表示させつつ、同時に日本語字幕も表示させられる。つまり日本語と英語の2つの字幕をリアルタイムで表示させられるのだ!😍
おすすめの理由
- 普通のコーディングからOOPに変換する手順と考え方を教えてくれる
- OOPであるための条件をハッキリ教えてくれる
- オブジェクト指向の考え方で、コーディング前の設計から解説してくれる
- 概念の説明や考え方の次に、C# でのコーディングに入る
英語が苦手な人でも日本語字幕とスライド(ブラウザで自動翻訳)+絵で理解しやすいはず。
知りたいところから教えてくれます。C# の書き方やC# の特徴というような「プログラミング言語特有」の話じゃなくて、あらゆる言語でOOPを実践するためのオブジェクト指向の考え方の解説が始まります。そのあとでC# で具体的な実装方法に入っていきます。
ですのでこのコースでオブジェクト指向を理解できれば、何がプロシージャーなモジュールプログラミングなのか、OOPなのかの境界線がハッキリ見えるようになります。
英語でのリスニングが必須
プレビューを見てもらえれば分かると思いますが、英語話者の講師です。ですが、先ほどのアドオンを使えばサクサクGoogle翻訳されて日本語字幕になります。リスニングは英語になりますが字幕は日本語。なので理解できます。
講師の発音が綺麗で聞き取りやすいです。しかも丁寧にゆっくり話してくれます。
ただしときどき比喩表現が入ってくるので、英会話学習者でない人(私)にとって初耳の英単語も出てきたりします。この辺に要注意。少しだけだけどね。英辞郎 on the WEBで調べよう!😤
OOPでは英単語とその概念がとても重要
OOPについてはもう日本語よりも英単語のまま概念を理解した方がいい。時間はかかるが、各単語の持つ概念とそれらのつながりがはっきり分かる。変に日本語にするとその概念のつながりが逆に分かりにくくなる。
例えば新たな概念の英単語が10個でてきたとしよう。日本語にするとさらに10個の和名を覚えることになる。合計で20個の単語を使って10個の概念を覚えるのは、数が増えるほどキツくなる。
だったら最初に苦労してもカタカナ英単語でもいいから、英語で理解しておいたほうが楽。
カタカナ英単語でも、スペルも覚えた正しい英単語でも、どちらでもいいと思うが、せっかくなのでスペルも何となく覚えておくとWebでのリファレンスを読むときに爆速になる。
それに1回英単語で覚えてしまえば、他のUdemyの英語のコースでも理解の助けになるし、英語ドキュメントでも「この単語は何?日本語で言うと何?🤔」という手間が1つ減る。
「 this. 」referenceがとても重要
「この リファレンス」が重要じゃないよ。this. という指示機能、参照先の指示機能がOOPにとってとても重要という意味。(しかも通常は省略されるのが当たり前のthis. )
でもこれ、自動翻訳だと「このリファレンス」になってしまう。違うんだよ、あっているけど、正しくないw このニュアンスは1センテンスを丸ごと英語で理解したときに、初めて意味が分かる。自動翻訳ではすり抜ける、知恵の欠落が発生する。
とはいえ重要な情報は画面上に表示されるので、完璧主義にこだわらなければ何とかなる。
私の学習方法
一例として私の学習方法をご紹介いたします😊
- 日本語字幕の力を借りながら1つの動画を何となく理解
- 英語リスニングと英語字幕で「英語で」概念の理解を確認
(再生速度を上げる) - 最後は英語リスニング+画面の2つのみで概念の理解が正しいことを確認
(再生速度をさらに上げる)
1つの動画を3回見ることになります。確かに学習進度は落ちますが、英語耳と英語脳が育つ!プログラミングの学習は、遅かれ早かれ英語と友達になる必要があります。だったら早い時期に身につけた方がお得。
OOPでは「日本語にはないか日本語にしづらい英単語」がたくさん出てきます。ですのでEnglish to Englishで日本語に頼らないで英語のままで理解したほうが、多分、急がば回れになると思います。
英語学習分の時間投資をしてでも英語+OOP理解で完走したいと思っています。
OOPをしっかり理解したい人にオススメ
数時間で実戦投入したい人には向きませんが、数日かけてでも本気でOOPを理解して使いこなしたい人にオススメです。OOPの表面的な使いこなしだけではなくて、本気で使いこなすためのガチの解説コースです。
私はこのコースに真剣に取り組んでいます。ガチでOOPを自分の武器にしたいのです。徹底的にやり込む価値のあるコースです😍
Udemyは定期的にセールを開催しているのでそのタイミングでコースをまとめ買いするのがおすすめです。書籍代よりもかなりお安く知恵を購入できますよ😊
筆者はAmazonアソシエイト・プログラムに参加しています。(Amazon様の商品を宣伝することで紹介料をAmazon様から頂けるという大変ありがたい仕組みのこと。)
以下の商品名や画像アイコンをクリックしてからAmazon様で何かお買物をして頂ければそのご購入総額の1~2%が私に寄付されます。クリック後に別の商品のご購入でもOKです!誰が何を買ったかは私に通知されませんのでご安心下さい😊
また当サイトは楽天アフィリエイト、バリューコマース Yahoo!ショッピング アフィリエイト、および第三者配信の広告サービス(Googleアドセンス)を利用しています。
今回の創作活動は約1時間30分(累積 約3,888時間)
(972回目のブログ更新)