使う道具に拘る
ということの重要性を強く感じ始めているmrsekut.icon
道具というのは色々あって、
プログラマなら、
キーボードとかディスプレイとか
プログラミング言語、ライブラリ、エディタ、OSとか
GitHubとかFigmaとかのサービスとか
(大きく見れば、思考ツール、デザインパターンとかのパターンの適用もそう) なにか苦手なタスクとか上手く行かない物がある時
だいたい使っている道具が悪いのではないか、という気もする (たぶん過言)
先天的な能力の差異というより、考え方やツールの操作性の問題
自分の中にあるメンタルモデルと、目の前にあるツールのメンタルモデルが一致していない
道具によって、思考の方向性や、チャンキングの単位が大きく変わる 道具のせいで不要なことを考える必要が出てくるかもしれないし、
e.g. Vimのキーバインドを覚える、フリック入力のルールを覚える
道具のおかげで考えることを減らせるかもしれない
e.g. 慣れれば、Vimで「パラグラフを消す」は1単位できる、とか
逆に、道具のせいで視野が狭まるとかもあると思う
TSでは型クラス的なものが存在しないが、それが原因で型クラスがある世界の思考に到達できない可能性がある
その道具が前提している世界の上限を超えられない
道具に自分を合わせていく
まあ、しかし、実際は他の要因も大きい
業務でやるなら、人材の採用とかも関わってくるので無闇に尖った選択もできないし、ライブラリの潤沢さとかも経営に大きく影響してしまう
使う道具、良いツールとはなにか、に対する評価の軸を持っておく 今使っているそのツールの良いところと悪いところを言語化しておく
今使っていツールを相対化するために、他のツールを触れる時間を取る
例えば、1つの言語しかできないと思考が固定的になる
作る側としても同じ
我々プログラマは、ユーザに対してサービスやツールを提供する立場である
自分が生み出すサービスやツールに対しても同等の評価ができるようにならないといけない
思考が固定的になると、感性がそれに引っ張られるというのは大いにある
利用者と共有する背景によって良さの評価が変わってくる
PCだと使いやすいが、スマホだと使いづらい
コンピュータに詳しいと簡単だが、そうでないと使いづらい、
OOPに慣れていると簡単だが、慣れてないと意味不明
利用者にとって適切な抽象度というものがある