プログラミング勉強したいんだけど何したらいいんって聞かれたときに見せるページ

\[ \newcommand{dn}[3]{\frac{\mathrm{d}^{#3} #1}{\mathrm{d} #2^{#3}}} \newcommand{\d}[2]{\frac{\mathrm{d} #1}{\mathrm{d} #2}} \newcommand{\dd}[2]{\frac{\mathrm{d}^2 #1}{\mathrm{d} {#2}^2}} \newcommand{\ddd}[2]{\frac{\mathrm{d}^3 #1}{\mathrm{d} {#2}^3}} \newcommand{\pdn}[3]{\frac{\partial^{#3} #1}{\partial {#2}^{#3}}} \newcommand{\pd}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\pdd}[2]{\frac{\partial^2 #1}{\partial {#2}^2}} \newcommand{\pddd}[2]{\frac{\partial^3 #1}{\partial {#2}^3}} \newcommand{\p}{\partial} \newcommand{\D}[2]{\frac{\mathrm{D} #1}{\mathrm{D} #2}} \newcommand{\Re}{\mathrm{Re}} \newcommand{\Im}{\mathrm{Im}} \newcommand{\bra}[1]{\left\langle #1 \right|} \newcommand{\ket}[1]{\left|#1 \right\rangle} \newcommand{\braket}[2]{\left\langle #1 \middle|#2 \right\rangle} \newcommand{\inner}[2]{\left\langle #1 ,#2 \right\rangle} \newcommand{\l}{\left} \newcommand{\m}{\middle} \newcommand{\r}{\right} \newcommand{\f}[2]{\frac{#1}{#2}} \newcommand{\eps}{\varepsilon} \newcommand{\ra}{\rightarrow} \newcommand{\F}{\mathcal{F}} \newcommand{\L}{\mathcal{L}} \newcommand{\t}{\quad} \newcommand{\intinf}{\int_{-\infty}^{+\infty}} \newcommand{\R}{\mathcal{R}} \newcommand{\C}{\mathcal{C}} \newcommand{\Z}{\mathcal{Z}} \newcommand{\bm}[1]{\boldsymbol{#1}} \]

よく聞かれるので考えをまとめておく

プログラミングをおすすめしたい人

変態に技術を与えた結果がこれだよ!

プログラミングできたほうが有利?

どの言語がおすすめなん?

何かひとつをしっかり勉強しておけば転向しても応用できる.モチベーションに合わせて選べば良いと思う. 艦これの初期艦から性癖がわかるやつ

どうやれば作りたいものが作れるか簡単に説明します(独断と偏見でおすすめな方法を書きます)

共通のツール

開発環境

GitHub

Linux

Webサイトを作りたい

いつだれが見ても同じサイトは作れます.逆に,ユーザごとに違う情報を表示したり,ログインがあるようなサイトはこの方法では作れません.(次項)

Webサイトは文字と画像を縦の巻物に配置して作ります.

  1. HTML
    • 非常に質素なサイトが作れます
  2. CSS
    • サイトを装飾します
    • 簡単なアニメーションなど,シャレたサイトは HTML + CSS でだいたいできます
  3. ※ SVG
    • 凝ったデザインや動きをつけたいときに使えます
    • 高画質なイラストを表示できる
    • デザイナーをやりたい場合は勉強しとくと良いと思われる
  4. JavaScript
    • 複雑な機能をつけたいときに使います
    • ログインとか
  5. サーバー
    • 作ったウェブサイトを公開します
    • GitHubPagesを使えばタダで簡単に公開できます

Webアプリを作りたい

ユーザ間でデータをやりとりしたり,たくさんのデータを扱うにはサーバーが必要です.

HTML, CSS, JavaScript は必要 ↑

  1. Typescript
    • JavaScript の問題を
  2. React

スマホアプリを作りたい

Webアプリと同じ方法で作ることができます.

ゲームを作りたい

フレームワーク:Unity

言語:C#

シュミレーションをしたい

ハッカーみたいに黒い画面をいじりたい

(๑•ૅㅁ•๑)

あの人たちは OS・ネットワーク といった,情報システムの根幹にある技術を駆使してます.

リアルで動くものを作りたい

ロボットとかIoTモノとか

  1. Arduino
  2. RaspberryPi
  3. C / C++ / Rust

コンピュータを作りたい

(๑•ૅㅁ•๑)

Web上の教材

  1. チュートリアル
    • とりあえず 言語名 + チュートリアル で調べてると,公式のチュートリアルが出てくる
    • Youtube でチュートリアルの実況プレイがある
    • だいたい英語だけど画面を見ながら
  2. Qiita
    • 日本語記事が多い
  3. リファレンス・ドキュメント
    • 最後はこれ
    • 必ずどこかに答えがあるはず
    • ただ読むのが難しい
    • Web系なら MDN

教養としてのプログラミング