小さい物を繋いで大きな仕事をする
友人が「パイプ
|
の扱いを覚えると良い」って言っていたのを思い出した

たぶんちがう
まあ確かに違うのは違うw

ふむふむ?(わかってない)

>パイプとは、プログラム間でデータを受け渡すプロセス間通信(IPC)の手法の一つで、あるプログラムの出力を別のプログラムの入力として渡す仕組み。UNIX系OSで標準的な手法として広まり、Windowsなど他のOSにも似た機能が普及した。
例えば「カレントディレクトリにあるテキストファイルをランダムに並べたリストが欲しい」といった時、これをそのままプログラムに起こすのではなく
カレントディレクトリの一覧を出力するプログラム
渡された一覧を絞り込むプログラム
渡された一覧を並び換えるプログラム
この汎用の小さいプログラムを繋いだりするための機構がパイプ
実際に書き起こすとこうなる
ls | grep .txt$ | shuf
(
Linuxで動くもの)
こんな短いのか…

もっと長いプログラムかと思った
これが汎用の小さいプログラムに任せる利点ですね

この説明で大丈夫だろうか

わかりやすいご説明、感謝です!

このへんに興味があったら
UNIX哲学で調べてみるといいかも(プログラミングできる人向けの話しか出てきませんが)

Scrapboxの設計思想もこれらしい
プログラミング(デカい主語ですみません)、やらなきゃという思いが先行しすぎつつ作りたいものがないのでモチベが上がりません!

ほっとくしかないと考えてます

作りたいものができたら始めるようにする
私は作りたいものありきで始めたけど、作りたいものがない時期も結構あって、その時は面倒ごとを解決するのにしか使っていなかった
「面倒ごとを解決する」のでもすげー感すごいです

気合入れてやりたいことをやらなくても、例えばこんなのを書けるとかでもいいと思う

(↑を見て)動いている既存のものをいじるというプログラミングの学習法もありますね

ゲームプログラムを改造してレベルマックスからスタートみたいなやつとか

のプログラミング経験のスタートはMinecraftのMOD作りだった
マイコンベーシックマガジンに掲載されたゲームを打ち込んで実行して遊んで、その後改造する
「自分のプログラムで画面に ”Hello World" が出る」ことそのものに喜びを見出せる人はプログラミングに向いている気がする

Hello inajob に改造しよう
Hello inajob inajob inajobとたくさん出してみよう
for文を使ってinajobを100こに増やしてみよう
みたいな感じ
コンピュータサイエンス全般、わりとこういうイメージがある

UNIX哲学で作られたソフトウェアスタックを使うことが多いから余計かな?
書籍 CPUの創り方
>コンパイラをコンパイル対象のプログラミング言語で作成した際に、そのコンパイラの最初のコンパイルをどうするかといった場合を典型的な例とする、いわゆる「鶏と卵」の形をしたセルフホスティング環境の問題
この一連のTweetとか象徴的(良く探し出せたな、自分・・)
>GNU/Linuxのreproducibleなブートストラップへの道のりが長すぎる。
とある未開の惑星に不時着したエンジニアという設定
エンジニアなので物は作れる
簡単な物の作り方とどんな技術があるかは知っている
惑星に取り残されているので既存の技術ツリーや資源にはアクセスできない
惑星にある資源を利用したり自分で技術を復元したりしないといけない
簡単な技術で作れるものを組み立て、それで研究を回して新しく作れるようになったもので研究を加速していくというアプローチ
最終的にロケットを作って脱出するのが目的
アトリエシリーズも似ているとこがある
最初は素材→アイテムを作り出す
だんだん力量が上がってくると複数のアイテム→上位のアイテムを作り出せるようになる
ゲームデザインとしてはよくあるものなのか
ちょっとずれる
>そもそも拡大再生産とは、経済学者マルクスが提唱した理論で、概略ですが利益を生産設備に投資することで、前より多くのモノを生産しようという理論です。
>(...)上記のマルクスの理論から転用して、機械を購入しお金を増やすゲームのことを「拡大再生産ゲーム」と言います。ボードゲームは当然ゲームですので、終わるための条件が必ず存在します。例えば資金が100億円になる、50ターン経過するなどです。そのため、いかに効率的にゴールへ届くよう計画し拡大再生産をするかがキモとなっております。