良いセンスは「手で触れて学ぶ実験(ティンカリング)」によって得られる
(seated.ro)- 何かを触り、変えながら学ぶ行為(ティンカリング) は、単なる技術習得ではなく 学びとセンス形成の中核となるプロセス である
- 目的なく試し、失敗を繰り返す過程で 探究心と感覚 が育つ
- 良いセンス は、さまざまなツールや環境を自分で使い、嫌なものは捨て、良いものは残す反復的な実験 を通じて形作られる
- 毎回手を入れ、壊し、作り直す行為は、凡庸さと卓越を見分ける感覚 を育てる方法である
- 問い、実験し、毎日ぶつかる習慣 こそ、今の時代の開発者が持つべき姿勢である
ティンカリングとは何か
Tinkerは、何かを直したり改善したりするために細かな修正を繰り返す行為を意味する- FPSゲームの マウス感度調整、Linuxウィンドウマネージャーの設定、メカニカルキーボードの分解と潤滑 といった行動がその例である
- こうした行為は必須ではないが、自分だけの環境を作っていく楽しさ を与え、学習へとつながる
ティンカリングの姿勢
- 目標達成のためだけに行動する人 と 理由もなく試す人 の二種類が存在する
- 理想的な姿勢はその中間にあり、実験と実用のバランス を見つけることだ
- 新しい言語、ツール、エディタに触れ、不便さを引き受ける行為は、創造的な感覚を広げるプロセス になる
- 一部の開発者が VSCodeのターミナルだけを使うこと、vimバインディングを知らないこと、CLIの代わりにGitHub Desktopを使うこと を悪いと断じるつもりはないが、これは 基本レベル(minimum) と見なすべきである
- 「練習は捨てられるものだ」という言葉のように、結果よりも過程の探索性と頻度 のほうが重要である
学びとセンスの関係
- 良いセンスは経験の蓄積から生まれる識別力 であり、多様な試みなしには得られない
- さまざまなツールや言語を使ってみて、「良いもの」と「いまひとつなもの」を見分ける過程そのものが学習になる
- 過去には不要に見えた試みが、結果として プログラミングへの理解と愛着 を深める
- 他人の基準に従うのではなく、自分自身の基準で選び、捨てることを繰り返すこと が本当のセンスを作る過程である
- 最近では GLSLシェーダーの作成、Rustのプロシージャルマクロ、テンプレートC++、Swiftアプリ開発、Helixエディタの使用 などを試し、純粋な楽しさから新しい知識と経験 を得た
“学びに使った時間は決して無駄ではない”
なぜ今、センスが重要なのか
- 絶えず試し、直し、壊し、また作る行為 の中で、技術だけでなく 感覚や美的基準 もともに育っていく
- 良いセンス(good taste) は、さまざまなものを使ってみて、気に入らないものは捨て、気に入ったものは残す過程を通じて形成される
- ここでいう「センス」とは 凡庸さと卓越を見分ける能力 であり、人それぞれ異なり、他人と同じである必要はない
現状維持に疑問を投げかけ、実験し、壊し、それを繰り返してください
1件のコメント
Hacker Newsの意見
昔、友人が「コーヒーについてすべてを学んだあと、高価な豆と機械で淹れたコーヒーしか楽しめなくなった。でも昔スーパーのコーヒーを飲んでいたときと、楽しさ自体は同じだった」と話していた
だから自分は、できるだけ**「好み」を減らす生き方**を目指している。20ドルのヘッドホンと200ドルのテレビでも十分満足できるし、友人たちが3000ドルのテレビを使っていても、楽しさの大きさは変わらない
今は独立系ロースタリーの豆を定期購読して飲み、そのたびに新しい味を探検する楽しみがある。良いコーヒーを知ったことは、自分の人生をより豊かにしてくれた経験だ
自分にとって「好み」は体験を損なうどころか、むしろより豊かにしてくれる
それでも日常では相変わらず20ドルのものを使っている。大事なのは**「気取らずに楽しむ気持ち」**だと思う
ちょうど優れたエンジニアが週末にジャガイモでDoomを動かすように、好みとは多様さを受け入れる力でもある
本当の好みとは、いろいろなスタイルの美しさを理解できる能力だ。自分もコーヒー器具をいろいろ使ってみて、結局は「より非判断的な好み」**を持つようになった
「目的のためにだけやる人」と「ただやる人」がいるという話に共感する
今は誰でも「vibe coding」ができる時代なので、開発者どうしの差は**「良いセンス(good taste)」で分かれると思う
これは単なる感覚ではなく、いろいろ試す中で積み上がる識別力だ。システム設計でも同じで、速く作るだけでなく、「崩れない構造」**を作る力が重要だ
だから自分は
sandboxフォルダを作って、新しいアイデアやライブラリを実験しながらセンスを磨いている~/Codeフォルダには実験用プロジェクトがぎっしりある。こうした小さな実験が自分をより良いプログラマーにしてくれるたとえばFlaskアプリに単にルートを追加すれば済むのに、わざわざAWS LambdaとTerraformで複雑にしたPRを見たことがある
筆者の要点はわかるが、例はあまり良くないと感じた。マウス感度やキーボードスイッチ、VSCodeの設定は、**「もともと調整するために作られているもの」だ
本当の学びは「間違った使い方をしてみること」から来るのに、最近はそうした試みすら商品化されてしまっている。世界が便利になりすぎて、「調整ですらパッケージ化された体験」**になってしまったのが残念だ
昔は「好み」を良い品質を見分ける基準だと思っていたが、今では**「価値の一致度」**だと見ている
誰かのセンスが良いと評価するのは、結局その人と自分が同じ価値を共有しているからだ
こうした**「意図性」**こそが、本当のセンスの核心だと思う
自分が見てきた最悪のエンジニアは、「自分のセンス」に閉じこもった人たちだった。協業が必要な環境でそういう態度はチームを壊す
コーディングは芸術ではなく、**「他人のための仕事」**だ。ユーザーは言語やパターンより、成果物の価値に関心がある
本当に有能な開発者とは、どんなやり方でも協業できる人だ
大事なのは、いつ原則を守るべきかを知る感覚だ
「目的のための行為 vs ただやる行為」という区別は、**『Zen and the Art of Motorcycle Maintenance』の概念に似ている
ロバート・パーシグはこれを「ロマン的理解」と「古典的理解」**に分けているが、結局はどちらも虚像であり、統合された視点が理想だと述べている
筆者のいう「tinkering」の概念は、実際には**神経多様性(neurodivergence)**に見られる反復的な集中行動に似ているように感じる
良いセンスは単なる反復ではなく、知識と技術の組み合わせから生まれる。世界をどれだけ広く理解し、自分の知らない領域を認識できるかが核心だ
昔は自分も**「無限にいじり続ける人」**だったが、家族や仕事や生活が忙しくなり、現実的に諦めた
今はSynology NASを使い、Linuxの代わりにWindowsへ戻った。それでもtinkeringの精神は今も自分の中にある
**「保守が必要なノートのやり方」**は自分には合わない
「センス」という言葉が適切かはわからないが、**「楽しい実験を通じて学ぶ過程」**という点には共感する
ただし、こうした学び方には2つの限界がある
筆者はIDEを例に挙げて「tinkering」を定義していたが、IDEだけが唯一の実験対象ではない
マウス感度やキーボード、ウィンドウマネージャーなど、さまざまな領域がある
IDEをいじらないからといって「非ティンカー」だとは言えない。結局重要なのは**「探究の姿勢」**であって、特定の道具ではない