【概要速修】プログラミングを学んだ後にできることをざっと知る(何が作れるかわからない人向け、アプリ開発、自動化等々)【プログラミング初学者向け】

  Рет қаралды 3,413

ThothChildren みんなのわかりやすい技術解説動画

ThothChildren みんなのわかりやすい技術解説動画

Күн бұрын

本日は、プログラミングの学習をこれからやる人、一通り終えた人がどんなものを作れるのかをざっと紹介する動画です.
初学者でまだ何が作れるかわからない、これから何を作ろうか悩んでいる方にどういったものが大きくあるかを紹介していきます. 高専生、大学生、社会人、これから始めてプログラミングを始める方、何か作り方のお役に立てればと思います.
あくまで概要を紹介するのみのため、この動画が調べるきっかけになれたらと思います.
アルゴリズムを使うもの、お手軽に行うもの、ハードウェアを使うもの、まただいぶレベルの高い開発だとどういうものがあるかも紹介しています. 今はまだできなくてもそういう世界があることを知ることで、いずれ辿り着くモチベーションになるかもしれません.
今回はそのようなプログラミングを学んだらできることを22分で紹介します.
ThothChildrenは数分でアルゴリズムのポイントをわかりやすく簡単に理解できること、メリットデメリットの把握を目指した解説を投稿する動画チャンネルです.
【リンク】
あなたに次の選択肢を用意するサイト Thoth Coworker~ プログラミングの次++ ~
Ubuntu/プログラミング/Web/IT/ロボット/人工知能
For 新社会人 / 新学生 / 新院生 / 新研究者
thothchildren.c...
ThothChildren - エンジニアをサポートするサイト
www.thothchildr...
【概要速修】Stable Diffusion(テキストから画像生成)はどうやって実現するのかざっくり仕組みを知る(DiffusionModel,Deep Learninig)【機械学習解説動画】
• 【概要速修】Stable Diffusion...
【概要速修】𓀀ヒエログリフ𓅓でプログラミング|古代エジプトの文字𓅓|(Parserを活用してAST生成しTranspile)【JavaScript】
• 【概要速修】𓀀ヒエログリフ𓅓でプログラミング...
【概要速修】C言語やC++がコンパイルされて実行される仕組みをさっと知りたい. なぜ異なるOSで実行できないかなど【初心者向け】
• 【概要速修】C言語やC++がコンパイルされて...
【概要速修】JavaScriptはどう動く?仕組みをさっと知りたい【初心者向け】
• 【概要速修】JavaScriptはどう動く?...
【数分解説】K-means法(k平均法) : クラスタ数を指定してデータを分割、クラスタリングしたい
• 【数分解説】K-means法(k平均法) :...
【数分解説】ベイズとかp(A|B)、画像や文字列を絡めた確率、条件付き確率のイメージを持てるようにする解説動画【初学者向け】
• 【数分解説】ベイズとかp(A|B)、画像や文...
【数分解説】ラグランジュの未定乗数法 : 拘束条件を守りつつ関数の値を最大化するパラメータを求めたい【Lagrange multiplier】
• 【数分解説】ラグランジュの未定乗数法 : ...
【数分解説】レーベンバーグ・マーカート法 : 非線形な式を扱う場合でも関数の極小値を高速に求めたい:関数フィッティングなどに応用【Levenberg-Marquardt algorithm】
• 【数分解説】レーベンバーグ・マーカート法 ...
【数分解説】ガウス・ニュートン法 : 非線形な式を扱う場合でも関数の極小値を高速に求めたい:関数フィッティングなどに応用【Gauss Newton Method】
• 【数分解説】ガウス・ニュートン法 : 非線...
【数分解説】ニュートン法による最適化 : 非線形な式を扱う場合でも関数の極小値を求めたい:関数フィッティングなどに応用【Newton Methods】
• 【数分解説】ニュートン法による最適化 : ...
【数分解説】拡張カルマンフィルタ : 非線形でもノイズを考慮してリアルタイムに直接観測できない状態を推定したい【Extended Kalman FIlter】
• 【数分解説】拡張カルマンフィルタ : 非線...
【数分解説】カルマンフィルタ : ノイズを考慮してリアルタイムに直接観測できない状態を推定したい【Kalman FIlter】
• 【数分解説】カルマンフィルタ : ノイズを...
【数分解説】ベイズ更新 : データを受けて確率を逐次的に更新して推定したい
• 【数分解説】ベイズ更新 : データを受けて確...
[内容の抜粋]
株の分析は、ネットに公開されているデータを使えばある程度簡単に集めることができます. あとは時系列データの解析や機械学習などを噛ませることで、分析や推定を行うことができます.
売買の自動化は、auのkabu ドットコムなどのAPIを自分のプログラムから呼び出すことで実現できます.
機械学習では、様々なデータで分類や、推定、生成など多くのことが行えます. 画像に写っている人を削除したり、新しく画像を追加したり、画像に写っているものを当てたり、ゲームを効率よく解くAIなども手元で試すことができます.
テンソルフローやパイトーチなどのライブラリが有名ですので、ぜひサンプルを試してみてください.Webアプリでもモバイルアプリでも動かせます.
Bulletなどの物理エンジンや先ほどのUnityなどを使えば、ゲームや研究目的で物理シミュレーションなども行えます.物理エンジンは描画を伴っていないことも多いので、画像にするには、別の方法が必要なことがあります.
競技プログラミングは、与えられた問題を指定された基準を満たして解いてプログラムを提出する競技で、速さなどを競います. 有名なアルゴリズムを理解し、問題を読んでどれが適用できるかなどを柔軟に考える必要があります. 定期的に大会は行われているので、エントリーすればいつでもネット越しに参加することができます. 提出したプログラムはサーバで幾らかのケースで確認され、全てクリアされればパスします.
海外ではトップコーダなどが有名ですが、国内ではアットコーダーなどが有名です.
ランキングやランクもあるので、成長を楽しめます.
制御や画像処理が行えるとロボット制御の開発などもできます.
言語処理や音声処理など様々なデータの処理がありますが、それぞれ学問として学ぶことがあります. 画像から特定の画像をサーチしたり、カメラの歪みを補正したり、人間の3Dモデルを作ったりできます. 自身で全て実装しなくても、画像処理ならOpen C V 、3次元点データの処理なら P C L、ロボット全般のミドルウェアならロスなどそれぞれ専用のライブラリも充実しているため、アプリケーションを簡単に実装することができます.
制御もわかると、アームなどを動かしたり、バランスを取らせたりと現実世界での動きに繋がってくるのが面白いポイントです.
データ分析は先ほどの機械学習や画像処理などを含め、データを元に新しい気づきや傾向を見つけていくような作業をさします. 例えば大量のユーザのデータがあれば、どういった特徴のある人にある傾向がみやすいかや、SNSデータがあったらどういう人にフォロワーが多いかなどを可視化することなどもできます. 傾向が分析できれば、次のビジネスで効果的な施策を打てたりするため、データサイエンティストはそういったことを期待されています.
Kaggleはそういったデータ分析の技術を競う大会です.
企業が自分達の困り事を大会のテーマとして課して、賞金を掲げます.
一般の技術者がその課題を最もよくクリアするようなデータ分析手法、予測手法を提出して最も良い得点を出したチームが優勝します.
過去には不動産の適切な値段を推定したり、レントゲン写真から病気か判断したり、衛星写真から船を見つけたりといった問題が出されました.
チュートリアルでは、タイタニックの搭乗者の属性情報から生存者を予測するようなテーマが用意されており、学ぶことが多いです.
次は高難易度な開発としてまとめています.
多くの人がアプリ開発する際に利用できる、使い回しの効くコードの集まりをライブラリと呼びます.使いやすい関数を用意しユーザの開発負担を下げられれば、良いライブラリです. そのため、使いやすくて、わかりやすくて、使い回ししやすいものが望まれます.
そうして作ったプログラムはGithubでソースコードを公開したり、パッケージ管理ソフト、例えばnode js のn p mやmac の brewなどに登録することで、多くの開発者に使ってもらえるようになります.
設計や性能などを強く意識して作る必要があるため、ライブラリ開発をするにはある程度の経験が必要になります.良いライブラリにはGithubで多くのスターが着くので、一つの実績となります.
セキュリティ等についてです.
難しい開発の例としては、”絶対に手違いがあってはいけない決済のシステム”や、”人間の安全に関わる分野で失敗してはならないシステム”などがあります.
セキュリティを意識できていないと、脆弱性を突かれ、ハッキングされたり、ウイルスを流されたりします.日々見つかった脆弱性に関するレポートも公開されています. コンピュータアーキテクチャを深く押さえつつ、技術書を通して学んでいく必要があります. セクコンなどでハッキングのコンテストも開催されているため、過去問を見ながら攻撃手法、守備手法両方を学ぶことができます.
高速な処理や、正確な処理が必要なビジネス商品などはそういった信頼性が重要になります.
最後は低レイヤの開発です.
自分のプログラムのコードを書いたら、それをコンパイル、トランスパイルして、プログラムに変換するか、インタプリタに読ませるかなどの方法があります.
どちらの場合もその先で同様にOSが提供してくれる関数を使って動作します.
OSはハードウェアを使って、マウスやキーボード、画面、HDDなどを操り、言われた通りの処理を安全に実行する役目を持ちます.
OSはどのようなハードウェアでも動かせるように、ドライバをインストールして、それを通してハードウェアを扱います. OSより下ではハードウェアが何かを意識しますが、プログラムではほとんど意識しないで済んでいます. 
OSから下のハードウェアを扱うところも全てプログラムが動いています.これを作るにはやはり高度な知識が必要です.最もハードウェアに近い部分で動いているため、低レイヤと呼びます.
プログラミングを学んだので、当然自作のプログラミング言語を作ることができます.
ソースコードを読み解いて、それをOSが実行できるように変換すれば良いので、できそうです. 様々な方法がありますが、他の言語に変換するトランスパイル、C言語のようにプログラムを生成するコンパイル、ソースコードを読み解きながら実行するPythonのようなインタプリタなど様々な実現手段があります.
過去動画でヒエログリフをJavaScriptに変換するトランスパイラをお試しで作っているのでご覧ください.
次はドライバ開発です.
といっても新しくハードウェアがなければあまり必要となることはそうそうありません.
ハードウェアを動かす方法をOSに提供します.
最後は自作OSの開発です.
プログラミングを学んだので理論上できるはずです.
Linuxなどもほとんどが右上の比率のようにC言語で書かれています. OSが管理しているファイルシステムやプロセス、割り込みなどを理解して、自分だけのOSを作ってみましょう.

Пікірлер: 2
@beginner8
@beginner8 2 жыл бұрын
プログラミングを学ぶモチベーションを出させてくれる神動画
@mfr2725
@mfr2725 2 жыл бұрын
勉強になりました、ありがとうございます。
🕊️Valera🕊️
00:34
DO$HIK
Рет қаралды 2,7 МЛН
Who’s the Real Dad Doll Squid? Can You Guess in 60 Seconds? | Roblox 3D
00:34
Watermelon magic box! #shorts by Leisi Crazy
00:20
Leisi Crazy
Рет қаралды 105 МЛН
How to Do 90% of What Plugins Do (With Just Vim)
1:14:03
thoughtbot
Рет қаралды 899 М.
🕊️Valera🕊️
00:34
DO$HIK
Рет қаралды 2,7 МЛН