강의

멘토링

커뮤니티

BEST
Programming

/

Programming Language

マルチパラダイムプログラミング第1編:イテレータパターン & LISP (with TypeScript, Clojure, Kotlin)

中上級開発者として成長するための高度なプログラミング言語活用能力と、関数型、オブジェクト指向、LISPパラダイムを組み合わせたソフトウェアの設計および実装能力を養います。

  • mduniv
시리즈
이론 실습 모두
multi-paradigm Programming
TypeScript
Functional Programming
oop
software-design

学習した受講者のレビュー

受講後に得られること

  • 高級プログラミング言語活用

  • 型システム

  • 関数型プログラミング

  • オブジェクト指向プログラミング

  • リスト処理

  • マルチパラダイムプログラミング

オートバンドバナー(63)

22年目のソフトウェアエンジニア、
県マープルコーポレーションCTO、
元カカオ、NCソフト開発者の
TSKotlinプログラミングパラダイム講義


オブジェクト指向、関数型、命令型パラダイム
すべてをサポートする
現代のプログラミング言語
効果的に活用する方法
は何ですか?


プログラミング言語は、過去に主に関数型、オブジェクト指向、手続き型言語に分かれてきました。しかし、今日では、この傾向が変わりました。関数型とオブジェクト指向の両方の機能を持つハイブリッドプログラミング言語が登場し始め、Java、C#、Scala、 TypeScript 、JavaScript、 Kotlin 、Swiftなど、ほとんどの主要なプログラミング言語がマルチパラダイム言語になりました。この変化は、現業で広く使用されている言語の共通の特徴となりました。

これらの言語は、クラス、継承、インタフェースなどのオブジェクト指向機能だけでなく、一級関数、リスト処理、遅延評価、非同期/並行処理などの関数型プログラミング機能も幅広くサポートしています。また、堅牢で柔軟なタイプシステム、タイプ推論、ジェネリック、ユーティリティタイプなどを提供し、さらには静的タイプと動的タイプを混合することも可能です。


もしそうなら、ほとんど
現代のプログラミング言語
なぜマルチパラダイム言語になったのですか?


いくつかの問題は関数型で解決することが優勢な場合があり、ある問題はオブジェクト指向プログラミングで解決することがより優勢な場合があります。プログラマは、もはや関数型が良いのか、オブジェクト指向が良いのか、静的型が良いのか、動的型が良いのかを議論する必要はありません。言語を作成し、標準を定義する団体と企業は、1つの言語が複数のパラダイムをサポートするように発展させ、おかげで私たちは1つのプロジェクト、ひとつの関数内でも様々なパラダイムを組み合わせてプログラミングできるようになりました。

もう一度基本、
しっかりした基本基盤は明らか
優れた応用力を導きます。


今、私たちはたぶん、特定のライブラリやフレームワークに依存し、それに合った限定的なパラダイムに従い、言語レベルのさまざまな機能とパラダイムを十分に活用できないかもしれません。関数型プログラミング言語やオブジェクト指向プログラミング言語に適用されてきた多くの技術は、非常に深い歴史と本格性を持ち、すでにさまざまな問題を解決して検証されています。言語レベルのさまざまなスキルを持つプログラマーは、より多くの問題を迅速かつ安全かつ柔軟に解決できます。また、特定のライブラリに縛られることなく、より基本的な方法でコードを書くことができます。


パラダイムは特定の言語に限定されない概念であり、
マルチパラダイムプログラミングは
現代のプログラミング言語全体で広く普及しています。


このレッスンシリーズでは、 TypeScript( TypeScript )とCotlin( Kotlin )を主要言語として使用していますが、 Java、C#、Scala、Swiftなどの他の言語でも適用できる技術と概念について説明します。既存の環境と言語を維持しながら、関数型プログラミングを実務に適用するのに役立ちます。また、オブジェクト指向プログラミングと関数型プログラミングを混ぜて問題を解決するコードを提示することで、マルチパラダイム言語を効果的に扱う技術力と応用力を高めて問題解決能力を拡張できるようにします。

中高級開発者として成長するために
より本格的な技術とプログラミング言語
パラダイムの深い探求が不可欠です。


そしてこの旅は本当に面白くて楽しいです。この講義を通じてマルチパラダイム言語の多様な可能性を実感し、高度なプログラミング言語活用能力はもちろん、関数型、オブジェクト指向、LISPパラダイムが結合されたソフトウェア設計および実装能力を養い、何よりコンピュータプログラミングとソフトウェア工学の楽しさを一層深く享受できるきっかけになれば幸いです。


この講義を通じて、 TypeScript開発者はKotlin、
Kotlin開発者はTypeScriptを
マルチパラダイムプログラミングと呼ばれる
同じ視点で一緒に学習できます。


マルチパラダイムプログラミング』講義シリーズ🔎🧑‍💻🚀

マルチパラダイムプログラミング図書に基づいて、幅広く深い講義を提供します。


1: TS - イテレータパターン & LISt Processing (with TypeScript, Kotlin, Clojure)

「このレッスンでは、オブジェクト指向と関数型プログラミングの交差点であるイテレータを中心に、マルチパラダイムイテレーションとリストプロセッシング全般を扱います。

  • イテレータ、ジェネレータ、イテレーションプロトコル、リスト処理

  • 関数型、型システム、クラス、ジェネリックプログラミングを組み合わせた抽象化

  • コード: オブジェクト: 関数 = Generator: Iterator: LISP = IP: OOP: FP

  • コトリンを試す

  • 関数合成と遅延評価の概念の深化

  • リスト処理による実用データの取り扱い


  • より多くの問題に拡張する


2編TS - 非同期/同時性プログラミング(公開予定)

「このレッスンでは、非同期プログラミングの言語の設計とスキームを調べ、非同期作業の結果を値で扱う方法と、遅延評価とリスト処理を使って非同期/同時性ロジックを作成する方法、非同期プログラミングをタイプにハンドリングする方法を紹介します。」

  • 値で扱う非同期プログラミング

  • 遅延性を扱う同時実行プログラミング

  • タイプシステムと非同期、AsyncIterationプロトコル


  • 非同期エラー処理

3編Kotlin - マルチパラダイムイテレーション(公開予定)

「このレッスンでは、Kotlinが提供するイテラブル(Iterable)、イテレータ(Iterator)、シーケンス(Sequence)を学習し、これを通じてKotlin特有の洗練された組み合わせ性と拡張性を見て、リスト処理全体を扱います。 」

  • イテラブル(Iterable)とイテレータ(

    イテレーター)

  • コトリンの洗練された組み合わせ性と拡張性

  • シーケンス(Sequence)

  • リスト処理と遅延評価

  • コトリン拡張関数

  • リスト処理による実用データの取り扱い

  • より多くの問題に拡張する

4編TS - バックエンド/実務中心マルチパラダイムコードとパターン(公開予定)

「バックエンドプログラミングの実践に必要なコードを中心に、MSA環境で分離されたサービス間のデータ同期を合わせるためのスケジューラをリスト処理ベースで実装し、並列性や要求サイズ制限などのバックエンド必須技術もリスト処理の観点から取り上げます。プロセッシング(関数型)を導入するのか、どのような問題に命令型方式を選ぶのかという基準を立てる例もまとめています。

  • カレンダーを描く


  • リスト処理のパターン化

  • バックエンド非同期プログラミング:MSAを処理するリスト処理

  • ハッシュベースの最適化、要求サイズの制限、並列性を活用した効率の向上


  • ネストされたデータと再帰的ロジックを解決するマルチパラダイム手法

  • オブジェクト指向、命令型、関数型を組み合わせた並行処理の拡張

5編: Kotlin - マルチパラダイムイテレーション実戦編(公開予定)

「Coroutine、Flowなど、Deferred、Channelなど、さまざまな並行性メカニズムを学習し、マルチパラダイム同時処理の手法を深く見ていきます。また、本番バックエンドの非同期プログラミングシナリオを通じて、これらの機能を効率的に適用する方法を紹介します。」

  • コルーチン、フロー

  • Deferred, Channel


  • マルチパラダイム同時処理

  • 本番バックエンド非同期プログラミング


第6編TS - マルチパラダイムフロントエンドプログラミング(公開予定)

「Web API(バニラ)ベースのフロントエンド開発を扱い、オブジェクト指向ベースのコンポーネント設計とマルチパラダイム実装の手法を見てみましょう。クラス、インタフェース、継承、抽象、イベント、状態管理から、Headless UI、ジェネリッククラス、戦略パターン、状態パターン、デコレータなどを幅広く学習します。」

  • Web API(バニラ)ベースのフロントエンド開発


  • オブジェクト指向ベースのコンポーネント設計とマルチパラダイムの実装

  • クラス、インタフェース、継承、抽象、イベント、状態管理

  • ヘッドレスUI、ジェネリッククラス、戦略パターン、ステータスパターン、デコレータ

  • ヒューリスティックDiffアルゴリズムとUIレンダリングの最適化

  • 非同期UIハンドリング、コンポーネント間通信設計

7編マルチパラダイムバイブコーディング(公開予定)

講義の特徴と追加資料🚀


👨‍🏫さまざまな言語と技術経験に基づいたカリキュラム

  • インストラクターは、TypeScript、Objective-C、iOS、Java、Android、Node.js、PostgreSQL、Clojure、Kotlin、Ruby on Rails、Web APIs、Canvasなど多様な言語・技術経験に基づいて、オブジェクト指向・関数型・コマンド型パラダイムを効果的に組み合わせる方法を提示します。

  • また、堅牢なタイプシステムやジェネリックからクラス・インタフェース・デザインパターンに至るまで、これらの基盤と設計、そして実戦型コード実装過程を深く取り上げます。

🏢ネクソン・ネイバー・カカオなど主要IT企業技術教育

  • ネクソン、ネイバー、カカオ、LGU+、SKプラネットなど、主要なIT企業を対象に進んだ様々な技術教育のすべての内容を集約しました。


🛠サンプルコードと設定

  • サンプルコードと環境のインストール方法は、マルチパラダイムプログラミングとタイプスクリプトの公式GitHubリンク)で確認できます。

🌐オンラインコミュニティとYouTubeチャンネル

🧡 収益の寄付🏥 👶 🧒

  • 本講義の収益の15%と本の著者収益の全額は、ソウル牙山病院児童病院に寄付されます。

📖マルチパラダイムプログラミング:

オブジェクト指向、関数型、命令型を組み合わせた
ソフトウェアの設計と実装

  • 本書では、追加の理論的内容と見解を盛り込んで、本講義の内容をさらに裏付けています。本書と一緒に勉強すれば、より深い学習と探求が可能です。

  • この書籍には、Haskell、Clojureなどの他の言語に関する教育資料もあります。


  • おすすめの投稿を見る

    1-3章プレビュー

  • 本を見る - 教文庫、 yes24 アラジン


📖コートリンマルチパラダイムのイテレーション:

マルチパラダイムプログラミング付録無料公開

  • マルチパラダイムプログラミングは、特定の言語に限定されない言語に依存しない概念であり、現代のほとんどのプログラミング言語に適用できる方法論および技術です。

  • 『コトリンマルチパラダイムイテレーション』は『マルチパラダイムプログラミング』の付録で、本書の一部内容をコトリン言語に特化して解き出した資料です。

  • 無料の公開資料を見る


多くのシニア開発者がこの講義をお勧めします( 抜粋🌟

「このレッスンは、遅延評価、ジェネレータ、イテラブルなどの現代的な手法を通じて、非同期プログラミングをさらにシンプルで直感的に扱うように案内し、バックエンド並列処理やエラー処理などの複雑な部分もリスト処理手法で優雅に解決できるという事実を悟らせてくれます」

「オブジェクト指向と関数型プログラミングのマルチパラダイム的融合を自然に身につけることができ、単にコードが「動作」することを超えてコードの本質と設計を深く理解し、実戦型パターンを柔軟に適用できる洞察力を得ることになります。」

「中級開発者から高級開発者に成長したい方なら、関数型の純度と不変性からオブジェクト指向のカプセル化と責任分担まで幅広く活用し、さらに拡張された視野で多様なプロジェクトに能動的に対応できるはずです」

「遅延評価でデータフローを最適化し、ジェネレータ・イタラブルを活用して並列処理やエラー処理などの難しい問題を直感的に解決する過程をたどってみると、「どうすればより少ないコードでより多くの価値を作れるか」という究極の質問に対する答えを探すことになります。」

「この講義は「コードの本質」を見つめる目を育ててくれ、単純な文法知識よりも実務志向的なマルチパラダイム設計とパターン適用ノウハウを体得し、様々な状況で最適な解法を提示できるプログラマーとして生まれ変わる機会をプレゼントします。」

こんな方に
おすすめです

学習対象は
誰でしょう?

  • 確かな基礎力を身につけたい開発者

  • 中級開発者

  • フロントエンド開発者

  • TypeScript を使用するバックエンドエンジニア

  • マルチパラダイム言語の基礎と活用を学びたい Kotlin/Java/Swift 開発者

前提知識、
必要でしょうか?

  • 現代プログラミング言語基本文法

  • TypeScript 基本文法

こんにちは
です。

22,692

受講生

793

受講レビュー

457

回答

4.9

講座評価

5

講座

カリキュラム

全体

48件 ∙ (5時間 15分)

講座掲載日: 
最終更新日: 

受講レビュー

全体

30件

5.0

30件の受講レビュー

  • jihoson94님의 프로필 이미지
    jihoson94

    受講レビュー 16

    平均評価 5.0

    5

    100% 受講後に作成

    本当に久しぶりに、単純な技術を習得して行う成長ではなく、プログラミングを行うソフトウェアを扱う人そのものとして成長できる経験をしました。学習を進める中で、毎瞬間インドンさんのインサイトに感嘆しながら、今まで自分で下してきたプログラミング関連の決定以外にも、他の選択肢がたくさんあることを確認できました。 当然のように活用してきた技術の根本的な設計意図を把握でき、より多くの選択肢を持つためには、複数のパラダイムをうまく混ぜて、適材適所に活用できる能力を身につける必要があります。その成長はこれから始まるのではないかと思います。そのようなスタートを切るには良い講義だと思います。 他の同僚の開発者もこの講義を通して、マルチパラダイムプログラミングを完全に共感し、楽しめることを願っています。

    • mduniv
      知識共有者

      「ソフトウェアを扱う人そのものの成長」は、本当に素敵な表現であり視点ですね。講義を通じて伝えたい話が伝わるようで嬉しいです。これからもジホさんがソフトウェアエンジニアリング分野で素晴らしく、楽しいことでいっぱいになるよう願っています!

  • lignerdev1129님의 프로필 이미지
    lignerdev1129

    受講レビュー 3

    平均評価 4.3

    5

    98% 受講後に作成

    「マルチ」パラダイムを学べる講義。 長年にわたり様々な言語やフレームワークを扱ってきましたが、今回の講義ほどパラダイム自体に重点を置いて、プログラミングを扱った経験は本当に久しぶりな気がします。数年前に関数型プログラミングを学習していた時を思い出しますね。 オブジェクト指向/関数型/命令型を行き来しながら説明する方式は非常に印象的でした。イテレータパターンについて構造的思惟をすることができ、実質的な活用法を共に学ぶことができたので有益な時間でした。 言語学習ではなく、プログラミング言語がどのように思考を拡張させるのかを経験することができました。 現在、自分のコーディング方式に新たな転換点を置きたい方々に強くお勧めします。

    • mduniv
      知識共有者

      繰り返し、そして多様な巡回戦略をイテレーターという値(オブジェクト)でカプセル化して扱い、一つの繰り返し文の中でも様々なパラダイムに転換できるように発展してきた現代言語の設計は、本当に素晴らしいと思います。ありがとうございます。:)

  • junni34님의 프로필 이미지
    junni34

    受講レビュー 1

    平均評価 5.0

    5

    100% 受講後に作成

    9年間の開発経験を持つ開発者として、私はオブジェクト指向、関数型、手続き型など多様なプログラミングパラダイムを使ってきましたが、各パラダイムの違いや活用を十分に活かしきれていないと感じていました。 初めて開発者カンファレンスでインドンさんの発表に感銘を受け、Inflearnの関数型プログラミング講義とYouTubeを通じてより多くの内容に触れ、今回新たに発売されたマルチパラダイム講義は、単に特定の開発スタイルや方式についての話ではありませんでした。パラダイムに対する見方そのものを変化させてくれました。特に、遅延評価(lazy evaluation)、iterable、iterator、generatorのような概念を、理論だけでなく実際の活用という観点からより深く理解することができ、これらの概念を実務にどう適用できるか具体的に考えるきっかけになりました。 毎日慣れたパターンで開発し、思考方式が凝り固まっていたのですが、この講義は新しい観点からコードを見てみようと思わせてくれました。 これからは会社のチームメンバーとマルチパラダイムプログラミングについて共有し、私たちの実際の業務コードにどう適用し改善できるか話し合ってみたいと思います。🔥 part-1からpart-7まで続くという講義計画を聞き、これから出てくる深化内容と応用事例も本当に楽しみです。👍

    • mduniv
      知識共有者

      ご受講いただきありがとうございます。チームの皆様と適用までお考えとは、素晴らしいですね。きっとお役に立てると信じています:) 私も良いコンテンツでお手伝いさせていただきます!一緒に頑張りましょう!

  • gilsuk님의 프로필 이미지
    gilsuk

    受講レビュー 1

    平均評価 5.0

    5

    100% 受講後に作成

    本編の講義では、Iteration Protocol(イテレーションプロトコル)を集中的に扱います。命令型、オブジェクト指向、関数型パラダイムを行き来しながら、さまざまな実装方式でプロトコルを実装し、動作原理を探求します。また、多様な言語がそれぞれの方法でイテレーションを定義し、活用する方法を通じて、多様な視点と洞察を伝えます。 学習を通じて、イテレーションプロトコルが特定の言語やパラダイムに縛られない共通の規約であることを理解できます。このような特徴のおかげで、多様なパラダイムを活用しながらも、互いに調和するマルチパラダイムプログラミングが可能になります。 イテレーションプロトコルは、マルチパラダイムという特徴の他に、演算やメモリ効率にも役立ち、ラムダ式による便利な型推論も可能になるなど、機能的な利点もあるため、それ自体が十分に魅力的な概念です。主に使用する言語がジェネリックをサポートしている限り、どこにでも適用できるため、活用度も非常に高く、学習する価値があると思います。 OOPに慣れている方はもちろん、FPを扱ってきた方でも、講義で説明するイテレーションの特徴を探求していくうちに、きっと新しい視点を身につけることができると思います。

    • mduniv
      知識共有者

      詳細なレビューありがとうございます!講義をとても詳細に学習してくださったようですね。おっしゃる通り、ほとんどの現代言語に適用できる概念です!楽しいプログラミングの旅になりますように!ありがとうございます:)

  • jhlee4997님의 프로필 이미지
    jhlee4997

    受講レビュー 5

    平均評価 4.8

    修正済み

    5

    100% 受講後に作成

    様々な要素を組み合わせて自分だけの言葉で昇華させた達人の講義でした。私はこの内容をより数学的な言語であるIterable Functor -> Fx Monadと理解していましたが、より実務的な形で解き明かしてくれたのが良かったです。そして、著者が説明するlist processingは数学的にはadjoint functorを用いて理解する枠組みがあるのですが、コード(意味) < - > データ (意味なし) を混同しうると強調したのも非常に良いです。ただ個人的には、ほぼすべての説明が関数型パラダイムに基づいているようで、マルチパラダイムだと見るのは少し難しかったです。実務と理論がうまく組み合わされた講師の能力に刺激を受けます。ありがとうございます。 全講義修了しました!良いですね!

    • mduniv
      知識共有者

      ご受講、そして素敵なレビューを誠にありがとうございます。:) 1編ではマルチパラダイムの交差点の一つであるイテレータについて扱った後、1編にはない内容である本書の4,5,6,7章へと進むにつれて、マルチパラダイム的な内容が高度化されます。 多くのご関心をお願いいたします。:)

¥6,874

mdunivの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!