HN 日本語サマリー

← 一覧へ戻る
プログラミング

レクリエーショナル・プログラミング

Recreational Programming (cphiri.dev)

21 pointsby jslakro5 コメント

要約

レクリエーショナル・プログラミングとは、仕事や金銭、外部の要求のためではなく、純粋にプログラミングそのものの喜びのためにコードを書く活動です。これは、好奇心を満たすための探求、個人的な問題を解決するためのツール作成、あるいは単にコードを書くこと自体を楽しむことを含みます。キャリアアップやサイドハッスルとは異なり、内発的な動機付けに焦点を当てることで、燃え尽き症候群を防ぎ、長期的な情熱を維持することが重要です。

全文翻訳

レクリエーショナル・プログラミング皆さんは給料をもらっていますか?手を挙げてください:プログラミングを始めたきっかけが楽しいからだという人は?パート1 レクリエーショナル・プログラミングとは?定義プログラミングそのものの喜びのためのプログラミング - 仕事のためではなく、お金のためではなく、外部の要求のためではない。どのようなものか:仕組みを知りたくて物を作る新しい言語を試すために探求する頭の中だけに存在する問題を解決する実際には持っていない問題のためのツールを作成する思わず笑顔になるコードを書くそれは何ではないか:サイドハッスルや潜在的なスタートアップキャリアアップのためのスキル構築チュートリアルをステップバイステップで進める面接のためにコーディングチャレンジをこなす他人が期待するものを構築する主な違い:内発的な動機付け vs. 外部からの圧力なぜそれが重要か:内発的な動機付けに再接続することで燃え尽きを防ぐ低リスクな探求を通じて直感を育むクラフトへの長期的な情熱を維持する予期せぬブレークスルーや学習につながることが多いパート2 レクリエーショナル・プログラミングのスペクトラムスタイル1:ライブ・エクスプローラーストリームやブログを通じて公に構築する行き詰まり、バグ、再開など、乱雑なプロセスを見せるコミュニティが説明責任とエネルギー源となるプロジェクトは実用的なツールから純粋な実験まで多岐にわたるスタイル2:ディープ・ダイバー物事が実際にどのように機能するかを理解することに没頭する複雑なシステムのトイバージョンを構築する出荷よりも学習を重視するしばしば複数の「教育的」実装を持つスタイル3:クリエイティブ・テクノロジストコードを芸術的な媒体として使用するジェネレーティブアート、音楽合成、インタラクティブインスタレーションテクノロジーがクリエイティブなビジョンをサポートするしばしばプログラミングと他の分野を融合させるスタイル4:問題解決者コードで個人的な「痒い」ところをかく小さな厄介な問題を解決するツール彼らにとってうまく機能する「十分良い」解決策しばしば偶然にも役立つものを構築するスタイル5:言語エクスプローラー常に新しい言語やパラダイムを試す同じ概念を異なる言語で実装する珍しい、あるいは実験的な言語に惹かれる知的好奇心としてのコードパート3 すべてのスタイルに共通するパターン「無用な」ものを構築する許可ビジネスケースは不要好奇心が十分な正当化失敗した実験でも貴重な教訓が得られる主要な洞察:ROIはレクリエーショナル・プログラミングには適用されない計画ではなくエネルギーに従う興奮が薄れたらプロジェクトを切り替える複数の放棄されたリポジトリは失敗ではなく探求である退屈は興味のあることに関するデータである主要な洞察:退屈は敗北ではなくデータである旅を記録する結果だけでなくプロセスを共有する教えることはより深い理解を強いる同様のパスをたどる人々とつながりを作る主要な洞察:自分の決定を語る学習プロセスを受け入れる新しいドメインでの初心者マインドを知らないことに快適である製品よりもプロセス主要な洞察:完璧よりも進歩パート4 あなたの個人的なプログラミングプレイグラウンド環境専用の「実験」フォルダ/リポジトリプロダクションの懸念なし:最小限のセットアップ、CI/CDの圧力なしクイックプロジェクト初期化スクリプトバージョン管理はオプション試せるアプローチ週ごとの実験(1つの新しいことを2〜4時間探求する)スクラッチビルドチャレンジ(使用するツールのトイバージョンを構築する)痒いところをかくプロジェクト(自分自身の厄介な問題を解決する)ティーチングプロジェクト(説明しながら何かを構築する)クロス言語チャレンジ(同じ問題、異なる言語)マインドセットシフト「〜すべき」ではなく「もし〜だったら?」完璧よりも進歩出荷よりも学習生産性よりも好奇心パート5 現実世界の例ジカニ・ニレンダ - 実践的実験者ランダムだが役立つツールを作成する:ブラウザ自動化、ファイルオーガナイザー、GitユーティリティGo、Rust、Python、Vue、Reactで実験するコーディングへの「今日解決できる小さな問題は何?」というアプローチコードを通じて個人的な「痒い」ところをかくことの完璧な例github.com/zikani03ジェレマイア・チエンダ - フルスタック実験者さまざまなアーキテクチャパターンやフレームワークを探求する新しい技術を学びながら実際の問題を解決するツールを構築するレクリエーショナル・プログラミングが技術スタック全体にどのように広がるかを示すgithub.com/liwooツォーディング・デイリー - ライブ・エクスプローラー毎日4時間以上、ランダムなプロジェクトをゼロから構築するストリームを作成する独自のテキストエディタ、プログラミング言語、レイ・トレーサーを構築した失敗やデバッグを含む完全なプロセスを示すあらゆることに対する「もし〜だったら?」というアプローチザ・プライムエイジアン - ハイエナジー問題解決者個人のワークフロー最適化のためのCLIツールとNeovimプラグインを作成する開発ツールとパフォーマンスへの感染力のある熱意他の開発者のコード/アプローチを反応させ、批評する最適化とツール作成をエクストリームスポーツのように感じさせるケイシー・ムラトリ - システム・ディープ・ダイバーハンドメイド・ヒーロー:ストリームで完全なゲームをゼロから構築するすべてのコード行とシステム設計の決定を説明するライブラリなし、すべてを最初の原則から理解するフレームワークなしで最新のソフトウェアを構築できることを実証するベン・イーター - 教育的ビルダーブレッドボード上にコンピューターを構築し、すべてのコンポーネントを説明するCPU、メモリ、ネットワークが実際にどのように機能するかを説明するビデオシリーズを作成する5ドルで買えるものを構築するのに数ヶ月かかるハードウェアの基本をアクセス可能で魅力的にするダン・ルー - ディープ・テクニカル・インベスティゲーターパフォーマンスの謎を調査する詳細なブログ記事を書くキーボード、ターミナル、プログラミング言語など、すべてをベンチマークする「なぜXは遅いのか?」という好奇心を数千語の研究に変えるレクリエーショナルな調査が業界全体の課題を明らかにできることを実証するそれぞれがプログラミングの喜びへの異なる道を示しているクロージングチャレンジ1つの実験を選ぶ:使用しているツールの最悪のバージョンを構築する興味のある言語で2時間過ごす小さな問題を解決する自分のプロセスを記録する興味深いプロジェクトをフォークしていじるライブコーディングやストリームを試す唯一のルール:楽しくなくなったらやめる最終的な考え「目標はこれらのプログラマーのいずれかになることではありません。それは、あなたがコーディングを始めた理由を思い出し、その好奇心をキャリアと共に生き生きと保つことです。」