Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login
Amateurs obsess over tools, pros over mastery (adamsinger.substack.com) similar stories update story
311 points by jger15 | karma 14516 | avg karma 7.57 2023-07-09 13:37:11 | hide | past | favorite | 219 comments



view as:

Another of these is: amateurs focus on code, professionals focus on the data model.

Amateurs would disagree

Clever architecture can almost always beat clever coding, languages and frameworks.

Speaking as a pro, or so I like to think, I'm not sure what you mean by data model. Are you simply talking about data structures?

Um...I think his point is clear? First, you understand your data, and decide how to represent it. Only then can you write code to work with that data.

Poor programmers dive into methods and algorithms, and then try to force their data to match. Which almost never works.


Pretty much. A manager early in my career would say “get the data model right and the code will write itself” and I’ve found that to be mostly true.

It wasn't clear. If he meant data structures then say data structures. If he meant something different or broader by 'data model' then I don't know what that was.

I value plain, simple code and equally plain, simple writing. I am becoming dismayed at the trend towards fancy labels on basic things. A while back someone talked about 'affordances' in C# which sent me into a tailspin because I thought there was some significant area of the language I'd never encountered. Turns out he just meant attributes and methods.


"Data model" isn't a confusing term, and "data modeller" is a profession. They work on data models.

"modeling your data" is terminology that I encountered before, not sure why you find it unusual /shrug

@pessimizer, @SuperCuber - So educate me. Let's base it on something I've actually done, a code analyser. For this you parse the code into an AST, and to deal with lexical scopes of declarations of procedures/variables etc. you have a stack of symbol tables.

So we've got a tree (the AST), we've got a symbol table for the current scope (a hash table of <id, info> pairs), and we have a stack of symbol tables (a stack).

A tree, a hash table and a stack. Those are data structures. What more needs to be added to this definition to turn it from "data structures" into a "data model"?

Firstly this is a serious question, secondly I have a great deal of experience of defining data structures to solve problems, so I can't see what adding an abstract term is doing.

You could say that the extra something is the specification/maintenance of the correct interrelationship between those data structures (and I'd agree), and there's a word for that: it's called 'code'. I genuinely don't understand what you're getting at and I'd genuinely like to know.


And no answer :-( It does rather defeat the point of discussion here if people say things they won't back up. I don't know if I've changed your mind, you certainly haven't given me any reason to change mine, so why post?

Unfortunately HN doesn't notify of replies need to go digging for then in "threads"

I'll give you an example from a ongoing side project of mine: https://github.com/SuperCuber/facto_rs/blob/master/src/model...

Hopefully the Rust syntax is not too much of a distraction here, but enough to focus on the `struct` and `enum` parts (an enum in rust can be "one of" the variants, like tagged union or sum type in other languages, or | operator in typescript). The project is a live wallpaper/screensaver that is a simulation of something like a combination of the games Factorio and Mini Metro.

I had in mind what I wanted to happen - a grid containing a rail network with trains running between different nodes.

What I call the model is the representation of the things in the code: I could store the train's position in terms of [float,float] and a facing Direction, but instead I choose to store it in terms of List<[int, int]> of grid tiles that it plans to go through, then an int for its current position in the list, and then a single float between 0 and 1 representing how far into the tile it's moving.

The two possible solutions have pros and cons, and there are other solutions as well that are equally valid I'm sure. In my mind, the process of "modeling your domain/problem space" is about deliberately thinking about these things and choosing what you think is the best.


I completely, fully get what you're saying and I've done this trade off between various data structures for a very long time, but my question wasn't about that, but the difference between data structures and data models. Put simply, it was a question of terminology used rather than technique applied.

I guess in the way I use it, choosing a data structure is about the complexity/performance of operations you're going to do with a collection of objects, and choosing a data model is more about the meaning of fields, and what entities and relations between them you have in the first place, sort of like `CREATE INDEX` vs `CREATE TABLE`

Data structures is often part of the model, but that's not what the "data model" is all about. It's about having a good overview of how everything is connected.

https://en.wikipedia.org/wiki/Data_model


I think this statement is actually much more true than the titles' statement (for programming).

Yes! And amateurs focus on tools, pros focus on execution/getting it done.

Good data model means less code

What's wrong with being an amateur?

Nothing. What's wrong is choosing through arrogance not to rise above amateurhood.

Having a healthy mistrust of your work is good.

Thinking the next tool will make a difference when your customers don’t care what language renders the html and JavaScript can have it’s place.


People making comments on the code editor you use before using the mouse to select text like monkeys.

The number of times I've intervened on HN with someone for whom functional programming is God's answer[1] to everything and anything procedural suxx, it gets you down a bit.

[1] used to be OO but God moved on I guess


At the end of the day, it's about solving problems with the budget you have. You need the appropriate discipline to allow for maintainability and growth, but not to over-engineer.

Boring CRUD is faster and more sustainable than an abstraction that cannot be modified for new requirements. Or understood by future (perhaps misfortunate) maintainers.

One day your thing will become the tech debt for your organization. Write in a way the custodians of the future won't curse your name.

I've inherited systems where the original authors tried to be "smart": over-use of functional programming, "cute" abstractions, "powerful" mixins, layers of lazily-dispatched decorators. It's almost ways caused nothing but headache and pain.


I agree. And the budget also limits the time you have for thinking about a really good design rather often unfortunately. Choosing the right or sometimes no abstraction is key to making something that is extensible, readable and maintainable.

That said, starting out with the simpler concept, usually results in better composability of parts. This is especially true for pure functions vs classes which are not really classes but namespaces artificially made into classes because "OOP". In the end math wins, if you wanna call it like that.


Having started in functional programming before ending up in OO, I always noticed the web was more functional than object oriented and a great deal of work was expended extrapolating languages to the web though frameworks to often achieve such an effect.

I learned this lesson: focus on mastering the language and understanding the fundamentals of networking instead of chasing new shiny web frameworks.

Web frameworks come and go, but the language and network protocols are here to stay.


Learning the fundamentals does pay off in the long term. I've not worked on web apps for a long time but this week helped some junior colleagues set up a web proxy to do SSL termination and explain there's these things called caching servers that can vary and probably solve a lot of their performance issues. I didn't know or really have to care what frameworks they are using.

Ignore the framework wars, learn:

- data modeling - domain modeling - system design - managing complexity - syncing state - teamwork

Those never go out of style.


So true. Design of systems inherits and overrules in the long run, if there is a long run for a codebase.

The best frameworks are just formalizations of what worked for some people.

The worst are formalizations of what some commitee hopes will work.


Haha.

Understanding software based on it’s origin story is definitely one overlooked aspect.

Most developers could t hold themselves back for a year or two to see how much of a framework boils away or can be generalized more elegantly. It’s one of the best lessons I’ve ever learned.


It is not necessarily best to learn them in that order though. I think you need to model the domain before the data at the very least.

What are you going to master if you don't know your tools?

The things that are the same regardless of the tools like the fundamentals of breaking down the right problem to solve in the right way before seeing what the technology footprint to solve it might Need to look like.

An amateur obsesses over using the best web framework, a master can write a great website n any framework.

Of course whether this is an actionable insight is an entirely different question. The master at least partially has this ability because he has tried lots of different tools. But if you ever phase analysis paralysis over tool choice it's worth remembering that in the end the choice might not matter nearly as much as you think.


If you look at the best photographs of the 20th century, a great deal of them were taken with cheap point and shoot cameras. Then you have the legions of middle aged men with $20k in gear that are incapable of shooting anything other than trite cliches.

You also have out of shape middle aged men noodling along on $10k bikes. It's worth it for an elite cyclist to obsess over their gear, every small optimization is material to them, but until you're pushing against the upper limits of your fitness the gear isn't the thing you should be losing sleep over.


Reminds me of a friend who always goes overboard. $400 in drills and levels to hang a couple pictures in the living room. Doubt he's touched any of it since.

He also spent $1,200 on an DAC, amp, and headphone combo, then bought a $150 pair so he doesn't wear the nice ones out.


QED: "You Need a Stronger Body, Not a Better Bike"

https://www.trainingpeaks.com/blog/you-need-a-stronger-body-...


Amateurs obsess over writing blog posts. Pros over code.

The blog post is not wrong. It's just a tweet-length insight HumanGPT-expanded.


"Pros over code"? Was that deliberate? If so, nicely done!

(For those to whom English is not a first language: "Pros" is one letter away from "prose", and the parent is complaining about people who focus on blog posts. And "over" can be taken as "they are writing prose in preference to writing code". It's a beautiful twist of language, if deliberate. If not, it's a very nice coincidence.)


I dislike these generalizations. There are pros and cons to both approaches. Engineers who have used the same tool for a long time will often fail to admit there may be better tools out there to solve a specific problem.

> We obsess over these tools, treating them like a crush—a fleeting infatuation that momentarily captivates our attention. All of this is wasted effort and delusion.

Amateurs obsess over forcing binary choices. Pros over integrating the best of what is available into the continued mastery of their trade (I actually really dislike this kind of generalization/framing, so my tongue is planted firmly in cheek here).

I think there is some truth in the general message of the post, and agree that complete fixation on tooling is a sign of a lack of focus on what matters.

But I'm curious how the author believes the "tried and true" gained that designation, if not by trying things that don't work and returning to the things that consistently do.

There's a different failure mode involved in a complete dedication to sticking to the tried & true: blindness to the moments when real step changes occur resulting in something that is truly better than what came before.

I'd argue that a pro does spend time obsessing over tools, but is differentiated from an amateur by knowing when to stop. I'd also argue that framing these behaviors as things characteristic of "amateurs" and "pros" is not useful.


I like that specific loment of learning when you are using your usual tool but at one point you ask yourself "is this tool really neccesary? I think I'm using it because habit more than real utility"

> I'd argue that a pro does spend time obsessing over tools, but is differentiated from an amateur by knowing when to stop.

Well put. A more general statement (but less catchy) would be that “pros” navigate the search space more efficiently when evaluating tools.

I’ve noticed with myself that I prefer fewer tools now, and value maturity a lot more. When I was younger, I thought tool makers were near-perfect, and the few imperfections would have no impact on lowly me. Then I realized that tool makers are just regular people and that their tools are often poorly made, or too blunt, or too specific.

Now I know tools come with pain, so “looks nice” or “cool” is no longer good enough. Instead, the tool needs to be more useful than the pain it causes.


Which is considered important by interviewers?

Problem solving and approaches to it is pretty highly valued

Grinding Leetcode, it seems.

False dichotomy and flatly wrong, on both counts. Further, my favorite line: "It is real alpha to ignore the allure of novelty."

Anyone posting amateur vs pro is lost. Playing the same hype game.

This guy is clearly a pro. He quotes Seneca and Bruce Lee.

I bet Seneca could have beaten up Kareem Abdul-Jabbar.

Edit: actually now that Kareem is a writer, it would be neat to read him and Seneca writing together about how to beat up Bruce Lee.


Amateurs post sweeping generalizations about what's right, pros learn the nuances.

Just like the good writers, who hedge and qualify their every statement. It's the amateurs who make the bold claims!

> The true magic lies not in the guitar itself, but in the virtuosity of the musician who brings it to life.

Arguments like these are often used to defend unpopular technology choices, like (insert disliked programming language here). "A true master can use any tool!" And yet, I've never seen a professional guitar player use a cheap shitty guitar.



Not "shitty". I presume it wasn't cheap, either. He custom modified it to be exactly what he wanted, not to save money.

EVH Built it pre-success, when he was poor and the neck was bought as a binned factory second.

> Van Halen bought the body and maple neck (which was a factory reject) for $130 [...]. Van Halen was able to purchase the factory second body at a discount price of $50 due to a knot in the wood. The $80 neck had jumbo fret wire, and its truss rod was adjustable at the heel.

That seems to be pretty cheap. I agree he didn't do it to save money though.


In which setting? The quality of a guitar has an impact on the output. A bad player won't be better by a good instrument.

There are known examples of masters forced to use bad instruments to create great music.

I believe this story has been on HN before

https://www.entrepreneur.com/leadership/when-keith-jarrett-p...


Jack White was famous for using inexpensive guitars in The White Stripes.

https://www.guitarplayer.com/gear/i-always-look-at-playing-g...

Manufacturing is so good these days that even the cheapest guitars are pretty good. Justin Sandercoe is a well known guitar teacher on YouTube and he did a series where he bought the cheapest Amazon guitar ($60 IIRC) and went through a full setup with it. He and the guitar tech. were both impressed with how good the instrument was.

https://www.youtube.com/watch?v=-0SHE_xooyU


I guess that doesn't really contradict the GP, though, no? They said "cheap, shitty guitars". Sounds like Jack White used cheap, but not shitty*, guitars.

The second part of my comment argues that there are cheap guitars, but maybe the era of shitty guitars is over.

Nah, they were categorically "shitty", since they were not well made and a bit difficult to play.

"I’ve been playing the most difficult guitars to play all my life. But with all the changes I had to deal with—people I never played with before, two days of sessions in New York, two in L.A.—I didn’t have time to monkey around with antique guitars in that moment."

https://blog.evhgear.com/2018/06/jack-white/


I'm not playing guitar now, but from what I've heard, the knockoff Les Paul or Strat is almost as good as the real one.

Plus if it's stolen you just buy another.


>Jack White was famous for using inexpensive guitars

Which is pretty good evidence that generally professionals don't use cheap/shitty guitars. You don't usually become famous for doing the completely normal thing.


Parent means he was a famous example of doing that.

Not that White became famous because, or in any part due to, using inexpensive guitars.

And he was a particular prominent example, because he didn't just do it, he advertised doing it as part of his philosophy.

And he is not in any case the only example, tons of famous guitar players use cheap guitars, in stage and on records. They just casually use them, they don't make a point of it, unlike White.


I wouldn't be so sure.

The current nostalgia-driven market of guitars might distort our views of what constitutes a "cheap" guitar, and also what quality really means.

Lots of famous guitars had a "cheap" phase where nobody wanted them and they were left to rot on pawn shops before being rediscovered by some famous musician and becoming coveted again... that happened twice with the Les Paul (first with Clapton, then Slash), and then with the Jazzmaster/Jaguar/Mustang (thanks to hundreds of indie musicians).

Also, there were plenty of famous people playing student models: The Gibson Les Paul Junior/Special/DoubleCut played by Keith Richards, Johnny Thunders, Billie Joe Armstrong, Leslie West. Joan Jett played the even cheaper Melody Maker model. Also Danelectros made of kitchen countertops were played by Jimmy Page, Syd Barret.

Kurt Cobain had a Univox Hi Flyer era, and then a Mustang era. Always played cheap Japanese Stratocasters instead of the more expensive American ones.

Almost all of those guitars above were considered undesirable, antiquated and hard to play sometime in history. Especially in the 80s era of superstrats. Now they're expensive because they were played by rockstars.

This phenomenon still happens with almost every piece of gear. Josh Homme of QOTSA revealed in an AppleTV show that he'd play a cheap low-quality Peavey Amp an now this amp costs 10x what it did.


Bruce Springsteen has used the same 'bitza' guitar which he bought in 1973 for almost the entirety of his career.

[1] https://www.rollingstone.com/music/music-features/bruce-spri...


He's a singer-songwriter though not a virtuoso guitarist.

That wasn't the position of the goalposts.

Which is irrelevant, and wasn't part of the original claim. He still made his livehood singing and playing guitar to tens of thousands of people at a time.

Besides, virtuoso guitarists also use cheap inexensive guitars all the time. Some examples, out of the top of my mind:

Prince, a big virtuoso, favorited his "Madcat", a Tele clone he bought for like $50 dollars.

Eddie Van Halen often used cheap Teisco guitars.

Mike Rutherford (the Genesis guitarist) used mucho-cheapo Squier Bullet guitars (Fender's cheapo line) for Generis 2020 live tours.

Marillion's Steve Rothery also uses a Squire as one of his main axes.

The Beatles were also known for using cheapo guitars like Epiphone Casinos.


The hivemind advice is to use a cheapest tool for learning when you're just getting started.

...and I strongly disagree with it. I think if you are serious about learning, you should get a reasonably good one from day 1 (if it doesn't hurt you financially, ofc).

Shitty tools can sometimes waste a hefty amount of your time. Anyone who ever paint watercolor on papers that are not for watercolor knows what I mean. All the time you could've spent on... guess what, practicing.


I've seen that advice about (electric) guitars too, and it's so wrong. A cheap shitty guitar will feel awful to play, have problems staying in tune, etc.

If you're at all serious about it, I'd go straight for one of the $1000+ flagship guitars. Go to a shop, figure out what you like, but absolutely don't waste your money on garbage.


Genuine question, when did you learn to play? Even 10 years ago entry-level solidbody guitars where quite good, and they keep getting better. Things like CNC manufacturing, tighter tolerances etc. really improved the quality of the average instrument.

I think you’re basically fine with anything $500+ these days tbh. I say this as someone who owns multiple $1000+ guitars. You might get incredibly marginal gains in playability, sound, etc, at that price, but realistically my $500-$1k guitars are all completely capable instruments.

For a beginner a $500 instrument is way overkill. An affinity squier, yamaha pacific, or a variety of epiphones are available for half of that, and are more than capable for beginners.

I can’t really speak to the other brands, but the Epiphones under $500 start to, in my experience, suffer from pretty meaningful playability issues- and I’d argue that’s even more important of a problem for a beginner.

I’d definitely not recommend going below $500 if possible. That’s price as new, btw. Used guitar is a great option.


I agree in spirit, but the $1000 price is wrong.

There are brands like Harley Benton producing amazing €200 guitars.

I have one that I like as much as my two Custom Shop Gibsons... and it is vaaaaaastly superior to my Gibson SG Standard in terms of quality and playability.

Also the $1000 price point is a very awkward price point, IMO. Not that much of a quality jump compared to $400/$500 guitars, and proportionally not as good as more premium instruments starting at $1500 and up.


Due to manufacturing variability, a cheap Squier can be quite good or quite bad.

If you have the ability to tell the difference, you can get a quite good Squier by playing many Squiers in different shops and picking the best one you find. You can save a lot of money this way.


I think a lot of people tend to stick to the cheapest tool for far too long. However, starting cheap is a great idea. I've tried things for a few weeks that didn't stick, and was happy not to have spent the money.

Instruments and art supplies are a good example of this: a $100,000 violin is a lot better for your playing than a $50 one, and a professional miniature painter I watch on YouTube likes brushes that are $50-100 each (over a 40 year career, that can easily mean 6 figure spend as those wear out).

IMO once you can hear/feel the quality difference (or worse, spend time rectifying it), you should switch. For some things, that can take weeks or months, while for others it can take years.


In instruments, going for the absolute cheapest one is almost a recipe for disaster. I don't know about violins, but I had piano classes a decade ago and now I'm with clarinet classes. In both cases, the cheapest option would have push me away from the instrument. In pianos, the cheap electric ones are very crappy, usually don't have the full key range, the weight of the keys is non-existent, and sometimes even the size is wrong, not to mention the sound. For clarinets, you can find ones for less than 100 dollars on Amazon, but they sound like crap, the keyboard is fairly bad and they fight you when you want to make a decent sound. If you buy one of these, the most likely outcome is that learning is so hard and unrewarding that you end up abandoning it after a few months.

Usually the best idea is to start out with the entry level range of established brands. I'm not up to date on pianos, but for clarinets that's $500 minimum. Yes, it's more expensive, but if you have at least a basic commitment to learning it's going to pay off. The other option if you aren't sure is getting a loaned or rental instrument, but please don't buy cheapo instruments because that's just throwing money down the toilet.


I am a pianist, by the way. My current instrument at home is >$50k but I play a lot. My starter instrument years ago was $1000, and was a great starter upright.

If you're learning the piano don't get a keyboard. Just don't.


Depends on your age:) My dad lent me a beat up old car to go to college and I smashed it to bits over the years. I took very good care of my first car when I bought it with my own money.

Regarding tech, it’s good to go with the industry standard, learn why it’s the standard, and go from there.


Jaco Pastorius famously played a Fender Jazz Bass from which he removed the frets with a butter knife, then sanded down and finished with marine epoxy.

Then it got broken so he had it restored and kept playing it.

Many touring or pub musicians play a plain old mass produced guitar, because if anything happens to it (for example, when flying) they can just pop into any music store in whatever city they are and get another for a reasonable price.


Was a Fender Jazz Bass a cheap instrument, or just a non-expensive instrument?

I think there’s the gap between the most overpriced gee-whiz prosumer device that they’ll try to sell somebody with more money than skill, and an actual professional device.

I also think there’s a space far below the actual professional device, the space of brands that the professional might not even think about—stuff that exists to trick people who just stopped by the store or who are shopping for their kids.

Which gap you have to worry about falling into depends on the type of device.


No idea about Fender's quality range in Jaco's time (although to be fair, Fender was the original electric bass and there were fewer options overall in the 70s), but nowadays Fender basses vary quite a bit in price/quality depending on what line you're getting. At the cheapest end you have their Squier line, and then you have MIM/MIJ (made in Mexico/Japan) Fender basses, and at the top of the line are American-made Fender basses, which have their own price variations. But even the most expensive Fender basses pale in cost compared to like, a Wal.

I think what's notable about Jaco is less that it was a Fender and more that (the story goes) he DIY'd his fretboard with a butter knife. So the point of comparison would be between someone today, who feels like they can only get a good fretless tone if they go out and buy a fretless Wal for $10k, versus buying your own Fender for less than a tenth of that modifying the fretboard yourself—just like Jaco did.


Of course it was a good instrument, and it was made in the US with good materials, so it couldn't be the cheapest. It wasn't a Sears or Silvertone bass.

But it was still an off-the-shelf instrument that was mass-produced in order to be less expensive. I bet that virtually every instrument used in a professional orchestra at the time (except the tiny stuff) was more expensive than that bass.


Robert Smith and his Woolworth's Top 20 electric guitar.

I don’t know if you’ve over qualified to the point you can’t lose (“shitty”), or if this[0] counts. I thought Peter Buck (of R.E.M., most associated w Rickenbacker) might have worked w a Sears guitar too (he might have, but I couldn’t find a reference), but he apparently used a Sears Silvertone amp as a regular piece of his gear[1]. Is buying from a Sears catalog good enough to qualify as “use any tool”?

This is also glossing over the garbage and hand-me-down crap that many grow up with on their way to becoming experts.

[0] https://www.guitarworld.com/features/pro-guitar-players-who-...

[1] https://equipboard.com/pros/peter-buck


>And yet, I've never seen a professional guitar player use a cheap shitty guitar.

Professional guitar players use "cheap shitty guitars" all the time. From the Beatles to the biggest stadium bands, not to mention people who make it a point of pride to do so, like Jack White.


Electric guitars (and basses) are pretty simple instruments, there are only 3 things that affect the sound you get out of it: the pickups (and how they're placed), the strings you are using and the setup. Everything else is quality-of-life improvement rather than sound improvement (assuming the instrument is at least mostly competent and doesn't have frets placed incorrectly or some internal signal processing that destroys the sound). However, for acoustic instruments, you certainly get what you pay for. You really don't often see professional violinists or classical guitar players using cheap instruments, as the quality of the instrument affects the sound to a much higher degree.

Most tools are quite similar to this, professionals know what they are looking for and don't need to get the most expensive or advanced tool, except in cases where it is absolutely necessary for optimal performance. They know the key things to look for to get the best performance out of the tool and the other characteristics they choose according to their preference or customize as needed.


https://www.youtube.com/watch?v=n02tImce3AE

If you're interested, this is pretty fascinating - he shows experimentaly that the guitar itself has little to do with tone.

Other than that better made instruments could (no promises!) hold their tuning a little better, but you can cheaply buy locks or spend some money having that re-done.

More than this and I have a hard explaining what a "pro" guitar could do to help an amateur. You get the same tones out of it, pedals and amps have much more impact on sound anyway.

And seriously, unless you have musical training, you'll never hear the difference between epiphone and gibson, or squier and fender.


Kurt Cobain famously played cheap shitty guitars because that’s all he could afford but also the overpowered humbucker helped him develop his famous tone. He wrote some famous songs with them. Univox Hi-flyers to be exact. He went through a ton of them and they were about $100 each. He even played them after he was wealthy.

Theres examples, though. Stephen Hendry, the Snooker professional played with the cheap 40£ cue of his youth for a long time into his professional career and won championships with it. It broke in 2003:

https://www.theguardian.com/sport/2003/sep/02/snooker.clivee...


Yes, think about this when you hear the next discussion about vim vs emacs

It's a bit of a platitude, IMO.

You can find plenty pros that obsess over tools. Like look at Adam Savage's Tested youtube channel, in which he makes videos surrounded by a vast mountain of tools, many of which he made or customized himself. Recently he geeked all over the fractal vise.

The difference I'd say is that pros have a better understanding of what they need, don't expect tools to magically solve problems, and often customize or even make something from scratch.


I think you’re 100% on point here.

As an amateur my experience is that having the exact right tool for a job is way better than having the very best quality of the almost right tool.

Also for tools with consumables, the quality of the consumables matters way more than the tool that you put them in.


>Also for tools with consumables, the quality of the consumables matters way more than the tool that you put them in.

I fully agree. I wasted hours dealing with brad nails that didn't go in all the way, only to bend over when I tried to nail set them. Paying more for Brad nails fixed the issue almost entirely.


I'm not sure I agree. Eventually your garage is totally full of exactly the right tool for some job or other and you can't find anything because there's tools in the way.

It applies to software too. If all of the complexity in your project is placing the perfect tools and configuring them correctly, you end up with a codebase that's 90% tool-specific and even coders that think they're fluent in your language of choice have a steep learning curve if they're gonna work on your project because the complexity is no longer in the project's alleged language, it's now in 15 separate DSL's that they've never heard of.

There's a balance to be struck here.

I see this especially often in python projects with complex pre-commit configurations. It's like we secretly need that compilation step, even if our language doesn't strictly require it, and it just becomes a rug to hide overspecialized complexity under.


> I'm not sure I agree. Eventually your garage is totally full of exactly the right tool for some job or other and you can't find anything because there's tools in the way.

Frequently it means you can do the thing at all.

I will not use my snap ring pliers again this year. Or probably next. But I am never throwing those goddamn things out because trying to do tasks that require them, without them, is impossible. And I will not get a lot of forewarning when my planer decides it's time to blow a bearing.

But they're $10 snap ring pliers from Harbor Freight, not $50 Knipex ones. Get the tool to do the job, worry about the nicest tool if you do it every day.


Having a cluttered garage and having the right tool for the job are completely unrelated.

I’m not 100% following the discussion, though. Most software work can be done with vi and nothing else. Working with your hands, on the other hand, requires snap-ring-plier specific tools.


If your garage has room for 100 tools, and you do 101 jobs, each which requires a niche tool, they become related on the 101st job.

That is, unless you start finding other garages for your tools, but even then you're paying a too-many-tools overhead cost.

With hand tools it's a little harder to sell people on a tool that only does one job, so you'll reach that point more slowly. Maybe it's the 201st job. But if you look at the explosion of languages, libraries, an SaaS offerings for everything under the sun, it seems that the tech world is more than capable of overcomplicating your stack with a 1:1 tool/task mapping.


My solution to this problem was to join a makerspace collective. Now if I lack the perfect tool for a job there's a good chance the makerspace has it. If not, I buy the tool and leave it at the makerspace and my garage contains only the tools I use all the time.

I'd say an expert is the one knowing how to use a tool for multiple jobs, and do wonders with a minimal toolset - not needing "the exact right tool for each job".

Agreed. Pick 4 languages, 1 each for:

    - Front-end (JS)
    - Scritping (Python, Ruby, Perl, PHP)
    - Applications (Java, C#, Kotlin, Scala, Clojure)
    - System (C, C++, Rust)
That is all you need. A true master can do a lot with the 2 "worst" languages - JS and PHP.

Languages are turing-complete.

Tools are not.

Example: there are some shapes you cannot physically create as a single unit with a milling machine; they can only be created by additive deposition methods.

Or more simply, while you _can_ screw in a star drive screw with a very improperly used hex driver, you probably shouldn't.


Even more simply than that: if you need to unscrew a screw, using a hammer probably won't work well. Which is why that saying about a poor craftsman blaming his tools is BS: if you're given the wrong tool, you're not going to be able to do a good job.

I've never heard that saying used in a wrong way like that, about a tool that is just wrong; it's not BS if it's about someone claiming their nails are wonky and the surrounding surface marred because of the 'crap' hammer they used, for example.

Sure, but that's not what the saying literally says. It says "only a poor craftsman blames his tools". It makes no mention of the tools being actually fit for the purpose. They should have specified that.

And even if it is the "right" tool (a hammer for a nail), what if the hammer is a plastic kid's toy?

I think this saying makes far too many implicit assumptions about the type and quality of the craftsman's tools.


It's just to me this seems like taking issue with 'the proof of the pudding is in the eating' because sometimes what I'm eating isn't pudding, and some people don't like pudding at all. All sayings have some implicit context or scenario in which they're applicable.

I suppose so, but for some reason that particular saying rubs me the wrong way. With 'the proof is in the pudding', I can get the meaning, and you could substitute any food. It just means (if I understand correctly) that if someone makes good pudding, you can tell it by eating the pudding. Even if someone doesn't like pudding, they know some pudding is better than others, or can substitute some other food-of-choice here for the same meaning. I don't think the craftsman-tools saying works the same way. For instance, it leaves me with questions like: are the tools actually selected by the craftsman, or were they forced on him by someone else? The pudding saying just doesn't have all these complications as far as I can see.

A lot of pros also enjoy Project Farm's YouTube videos, which compare and rate tools from popular brands.

look at Adam Savage's Tested youtube channel, in which he makes videos surrounded by a vast mountain of tools, many of which he made or customized himself.

While I don't dispute Mr. Savage's acumen, I wonder what the number and complexity of his tools would look like if he worked in private, instead of the glare of internet fandom.


Most of the tools in his shop he had before opening it up to the fandom at large.

Remember: he’d been a pro at this stuff for years even before Mythbusters & the Tested stuff was (mostly) after that ended. He had 25-30 years of professional AND professionally-informed hpbbyist experience to build that collection


youtube is probably not a strong argument but the recent fireball tools video about his welding table and jigs was pretty comvincing, even though it was an undisguised promotional work designed to convince.

(He submits a basic job to 3 diffferent class of pro fabricator shops, and has one of his video producers do the same job with no help (supposedly) but with his tools, and that one is the only one that adhered to the specs.)

I would like to see that same experiment reproduced by other people because if it's true I think that is a very important thing to know which would change how you approach things your whole life. You could obviously chase after awesome tools right now anyway, but it would be huge to know that it's proven to be essentially 'best practice' to do so rather than just your unfounded feeling that no one else, like your boss, is obligated to consider.


I'd say there are two different types of "obsession" here. One is the attitude that that you need to use the best tools possible and by doing that you will get a good result. The other type is old fashion geakery. If you look at Adam, he is two things: a maker, and a tool geek. These aspects certainly intersect, but when he is making things, you do not see him reach for the most sophisticated tool in his toolbox. A great example of this is this video [0] where he geeks outs over his new measurement tool: guage blocks (and corresponding guage). The thing is, I don't think I have ever seen him do a build where he uses them, because they are simply beyond what his work demands.

I'm a similar way with programming languages. I'm a PL geek, and enjoy geeking out about the fine details of various programming languages, and pointing out flaws in langauges. But, at the end of the day, when it comes time to pick a language for a project, I typically reach for a combination of Java/C++/python/m4. There is nothing to geek out about those languages (except for how bad they are), but pragmatically speaking, they are typically the best tool available for very boring reasons.

[0] https://www.youtube.com/watch?v=qE7dYhpI_bI


Meanwhile if you look at someone like Ken Parker ( https://kenparkerarchtops.com/archtoppery#new-page-1 ) you see someone who does obsess over the best tools _and_ the best process.

Now, admittedly, Ken Parker is a lightning rod for disagreement, but you can't deny that he makes a well-made product.


For the uninitiated, could you please tell me more about him being a lightning rod for disagreement? I hadn’t heard of him before.

I had not heard of him either.

> Java/C++/python/m4

One of these things is not like the other. :) I'd love to learn why you included m4 in that list.


Because I've ended up using it in almost every project I'm involved in. By all rights, m4 should not be a good tool for anything. It has no type system, no syntax checking, no debugger, no namespaces, no real notion of atomic literals. But, it just kind of works for a bunch of situations. Basically any text based format you have can utilize m4 as a pre-processor.

Typically it comes up during integration work, where I am dealing with various technologies from various vendors for various clients in a single project. M4 ends up being a glue language for "compiling" configuration files. Where possible I prefer to use a more proper templating engine like python mako, but those are not always a good fit.

I've also used M4 as a way of implementing DSLs, which is great as long as you are fine with your DSL inheriting all of m4's problems. I've also used it to help write bindings and other highly repetitive files.


M4 seems to fit that niche in between gluing strings together and full blown Python string templating that works in a surprising amount of situations. I use it a lot, especially when templating config files in containers.

It’s the best size of machine screw

An overlap of the two obsessions: recreate something historical with only the tools available at the time.

Clickspring's ongoing recreation of the ancient Greek Antikythera mechanism, starting by recreating many of the original tools likely used to build it historically (and contributing to academic research on the details of the system as he goes along!), is an incredible example of this (and altogether an amazing channel): https://www.youtube.com/playlist?list=PLZioPDnFPNsHnyxfygxA0...


You might be interested in https://www.guedelon.fr/fr

Went there a decade ago, it was super interesting to discuss with the people over there!


Adam Savage is also creating content, and you have to nod to the people most likely to be consuming content at times.

> There is nothing to geek out about those languages (except for how bad they are)...

I would go so far as to say that if someone doesn't at least somewhat hate the tools they are using, they probably don't know much about either the tools or how to use them ;P... regardless, at the end of the day, we still use our broken tools anyway; and so like, to me, if I see someone going on and on about how amazing their tool is, I immediately classify them as an amateur: they will eventually hit the limits and become sufficiently jaded to stop praising anything!


it's a great point and looking at various YouTube pros I think it's necessary to add a one more type of "obsession" to the list - a commercial one. Thinking about the way YT works a lot of geekery is either related to attracting sponsors or appealing to audience taste to benefit from the ads.

While I do not disagree in general – things not being black or white is probably correct – I think in Mr Savages case you could argue that knowing how to geek with/over tools is the mastery part.

I think there are two ways to "obsess over tools". One is to obsessively research and build your collection and sort of superficially admire your collection. Another is to bring in and master the tools one by one, driven by the needs of your process, and find meaningful places for each in your process. In essence, the former is cargo-culting the latter and they look similar from a distance.

For me, tools capture the experience of someone else in a way that typically expands my own skills. They include little features/details that I wouldn't think of on my own. That's particularly true with software tools where non-obvious edge cases are abundant.

I want tools that carry mental load for me, so I can focus on delivering maximum value.


This reminds me of a fascinating interview with Trey Anastasio (an absolute master of electric guitar tone and effects and loop pedals). His take was, while quality matters, you don't need the "best" gear -- but it's essential to really truly deeply know the gear you do have inside and out, so it can get out of the way and simply be an extension of your instrument.

I have found Gall's law to be a corollary of "mastery before tools":

"A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system."


i think the main difference is a pro can grab a cheap tool or make one from scratch to complete a task, whereas an amateur will hesitate to do a task unless he has the "best" branded tool

But who focuses on the adage?

From a pianist perspective, when I was in college I played at a restaurant with an old beat up grand piano. I’d constantly complain about how bad it made me sound. Then one day I went to hear one of my mentors play on said piano. He sounded great. It was a pretty vivid demonstration of this principle for me.

One thing though, is that this title doesn’t paint the idea of amateurs with a great tone. Nothing wrong with being an amateur since it really means to do something for the love of it. I think pros need to be careful not to lose their amateur mentality wrt to the love.


All my major successes in life have come from curiosity followed by perseverance.

I heard great name about tool obsession: “tool junkie”. , as I’m too guilty of it.

I suspect that for the brain the dopamine reward for spending time at more or less passive researching and coming to conclusion that zzz is the best is faster that grinding for becoming master


You must choose your tools before you can master using them, it's not an either or.

As an amateur woodworker, I can tell you that the quality of tools can make all the difference in your enjoyment. You absolutely will notice a difference in the quality of your tools. Quality tools feel better in your hand, almost like an extension of your body. They cut cleaner and with greater accuracy. They are less likely to strip screws. They are less likely to break causing you frustration and an unwanted extra trip to the store.

There is a point of vanishing returns. You definitely have to determine what level of quality you actually need, but Makita 18V cordless tools are a massive step up from their no name Walmart equivalents.


As a likewise amateur woodworker, this resonated - up to a point. When I started in the hobby, I spent a lot of time in the accumulation phase which mostly consisted of buying cheap or second-hand tools to unlock specific capabilities. Just having a table saw (even a cheap one) allowed me to build a lot more pieces, more quickly. This is a seductive step, as each new tool (router, bandsaw, jointer, etc.) earned me a whole new capability and new options.

After the initial excitement, I settled down into the optimisation phase where I started learning how to get the best results out of the tools I had. This involved a realisation that just having a tool doesn't automatically confer mastery with it, and that you need to put in the time. IMO this is the step where you learn the value of a "good quality" tool, i.e. you identify any friction or frustrations with the cheaper tools you have. You also identify which ones actually get used, therefore which ones are worth the upgrade.

I feel like the optimisation phase blends slowly into the "mastery" phase over time: you switch over to thinking about design instead of execution, workflow optimisation instead of "how will I build this", shop organisation instead of having as many tools as possible on hand. Mastery is the decision (conscious or otherwise) to get the best out of your tools, rather than having the right brand.


Amateurs don't get paid. Pros do.

Sometimes pros get paid for having automated minions generate content.

Was this short piece AI-written? There are lots of strange artifacts that I'd not expect from a human author. Like the fishing analogy with a goldfish.


It didn't sound like blogspam to me, while most LLM generated text does.

Written by "Adam Singer, Marketing executive, author of a Substack called Hot Takes"

k.


Pros tend to deeply understand the fundamental problem that the tool is solving and are probably capable of either making the tool or deeply informing the process that resulted in the tool. An amateur or beginner is often looking for tools the hide those knowledge and skill gaps that a pro does not have. I wonder if Savage would have that vice if he didn’t generate income by making videos chronicling tools. In my experience, I’ve witnessed many beginner software engineers spend far too much time hunting for a tool or library, I always encourage them to take a step back and consider if they really need that tool. Often they don’t the tool and if they do it’s sometimes a better choice to code it themselves.

> It is real alpha

oh, please.


Well of course every pro was an amateur once. So they would have gotten the right tools to practice with on the way to mastery...

> ADHD-ridden market

> It is real alpha

I have a hard time reading past such phrases.

That put aside, I do agree with the idea that tools are a means to an end. Some are essential (like glasses for vision impaired, or a computer for a software engineer). But using tools also gives us skill and understanding.

Author brought up guitarists - well, many world renowned guitarists have 100+ different guitars at home. To become a master, you need to learn most of the available tools, and learn them well. There is a lot of cross-pollination going on. You learn the sitar and the banjo, you learn flamenco etc and this will greatly influence your understanding and style.

Learning purely from books might work for some people. But I think using good tools in the correct way is essential for many, in order to reach mastery. Writing is a tool. Flash cards are a tool. Learning in groups (or hanging out at the hacker space) could be called a tool.


"many world renowned guitarists have 100+ different guitars at home. To become a master, you need to learn most of the available tools, and learn them well"

Most of those guitar players made their name as a guitar "master" using a small amount of instruments, and only started collecting later. It was not uncommon for songs made with a single guitar to have paid for all the other instruments.

Sure, a lot of them continued breaking new ground after acquiring more instruments, but that was definitely not the source of the mastery, it was already there before the big collection started.


Restricting yourself to even one guitar doesn’t mean you are playing only one instrument.

Use a capo, tune it down, tune it up, remove two strings, play blindfolded, play behind your back, use it for strumming, beating, slapping, switch up picking styles, switch pickups, modify the neck, use different strings etc - these all change the instrument to a degree that you could call it a different one. I‘d wager that people who don’t do this _and_ don’t use different guitars will not reach what people call mastery.


Yeah, that ADHD one was jarring.

I think people that obsess over tools want to do it the 'right' way. Problem is, there is no right way. Most often, people never get started. Diet, work, sports, etc. I've seen it a million times. People research to death to try to figure out what the right thing to do is. The act of doing is the right thing to do. Just eat less and exercise, don't obsess over which new fad diet and exercise program is best. Just pick up the keyboard and type, don't research the best editor and plugins for two months. Go to the driving range / get lessons, don't buy a new driver. I think the root is everyone wants the path of least resistance but there is no shortcut in anything.

The problem is that there is too much garbage and too much consumerism.

Sure, go ahead and buy the cheapest rain coat you can find. You are going to regret it. Need a bookcase? Pick the cheapest Billy from IKEA. You can only put it together and take it apart exactly once.

This has nothing to do with obsessions, but rather avoiding to get fucked over crapware and planned obsolescence.


This is an Anglo-Saxon meme. There's a French proverb "Good tools make good workers".

On tools: "Tools" are sometimes useful for getting a job done.

- "Good" tools don't get in the way of getting a job done, and often make tasks easier or faster to perform.

- "Great" tools can enable entirely new ways of completing tasks, and sometimes enable completely new types of things to be accomplished.

On amateurs vs pros and mastery:

- Amateurs worry about figuring out how to get something done "right," (i.e. typically with one instance in mind) and often blame their tools for poor results.

- Pros worry about figuring out how to manage the outcomes of jobs/tasks/etc to make sure they don't go "wrong." (e.g. considerations of failure modes, maintenance/upkeep/sustainment/etc..)


“Obsess” is a strong word, but keeping an eye out for tools that could make things easier is a no brainer. Things move at a fast pace and whilst the script or hammer from 10 years ago works, why not keep trying new things to see?

I’d say the amateur is the one who mastered the hammer and thinks everything is a nail.

Edit: rather, not realised yet that everything is not a nail


I think mastery is a game of maximizing nuance/compromise and finding solutions in the middle. When you can take something that already kind of works and make it work 10% better, that is important. It is rare to find people who can consistently add incremental value to the same thing over and over. Even if you are "good" at something doesn't mean you are able to deliver it in a professional setting.

I've seen lack of nuance result in the most incredible architectures. I think the #1 offender still is: "It can NEVER EVER go down". This is the definition of amateur hour in my book. Usually results in a system that goes down far more often than a single node cave man approach.

I'd hesitate to imply that pros aren't interested in shiny new tools. The primary difference is that the pros usually go get new tools once every few years and typically wait for market sentiment to shake down first. The amateurs are shopping at Home Depot every weekend.

We are just now looking at building a cloud-native stack in 2023. I made us wait a solid ~decade (lambda launched in 2014) before I was willing to go beyond the safety of our vendor-agnostic VM bubbles. So yeah, we are using some shiny new FaaS/serverless tools, but we are using them in a really dumb & conservative way (i.e. serving old-school SSR HTML forms, etc).

The tooling change is really only to serve our operational convenience and improve compliance/audit stance. Not because it's fun/new/what everyone else is doing/etc. How many developers do you know will go out of their way on points like those? "I picked this technology primarily to make our audits and compliance conversations easier as we scale". Who does that? This is another example of mastery. Paying attention to and caring about all of the auxiliary things around the software/problem/tools.


When I was getting back into recording music I went looking for how other people have their home studios set up. I quickly found http://www.reddit.com/r/musicbattlestations, but people there often hadn't done the basics that would help the most like acoustic treatment, and yet had rooms full of equipment. Whenever someone asked to hear what they'd made it'd be "I'm working on something now..."

At first I was confused but then I realised, their main hobby isn't making music, IT'S COLLECTING TOOLS.


Numbers of instruments sold would be extremely low and as a result the price extremely high if only people who actually use them bought them.

Pros can, in some cases, get to just buy the good stuff without having to agonize over cost. Pro sports photographers are all shooting the best cameras and lenses; when your income depends on the equipment, it can be self defeating to try to thread the needle of cost and performance. Just buy the $4k camera and $4k lens instead of experimenting with low grade stuff and risking a shoot.

There’s nuance to be sure, but at a basic level an amateur has no income offsetting the cost while the pro does.


Pro photographers, including sports, don't like to change gear much, and don't care for over-expensive "best" gear either. The stick to use a knocked out battered old camera they trust rather than rush to get any new "best" model.

But they will pay for stuff that is needed for the job, like expensive fast and light enough teles, or multiple continuous frames (but up to a point).

Youtube "pro photographers" do, because they get their money through gear reviews, peddling cameras, and sponsorship deals.


I wonder what portion of pros have moved to mirrorless since it's been intoduced? It doesn't change much for image quality, and it forces you to change your lens range or run adapters, it's quite annoying but I'm pretty sure a lot of people have jumped anyway.

I'm biased, I'm still on a 5d mark i !


Maybe they are shooting a 5D III instead of a R5, but it’s a once-flagship, not a Rebel.

Anyway, I don’t want to over generalize about a profession I’m not in, so I’m stopping at that. The point is how the purchasing decisions differ when the equipment is a capital asset or pure cost.


Yeah, they wont use a Rebel, but that's because a Rebel doesn't have several things they need to have, burst rate, dual slots, and things like that.

I was thinking of photography because there are endless forum threads and debates about whether camera x is 10% better than camera y, and the same about lenses, when in reality, a lot of interchangeable lens cameras (ILCs) have been so good for so long that, for the majority of people and majority of applications, there are a ton of great choices.

The phrase "gear acquisition syndrome" (GAS) gets thrown around a lot for good reason. A lot of people trying to shoot better photos and videos aren't limited by their gear.


A pro guitar player just has Gibson or Fender do a signature guitar so they can use their name to sell them and then get them for free. I wonder the last time anybody from... say... Metallica has actually had to buy gear. Just get it from the manufacturers so they can say that James Hetfield from Metallica uses it.

"I wonder the last time anybody from... say... Metallica has actually had to buy gear"

Well, Kirk Hammett recently paid 2 million for the Les Paul that belonged to Peter Green, so there. ;)


Reminds me of when an intern told me 'php sucks'. I asked him 'why?'

No response.

Me and another senior giggled.

To him, a programming language was part of his identity. To me, it was just another tool.


It's a sterile discussion. So far all the AI tools that I've seen aimed at reproducing the output faster, which may be correct, but not at contextually processing the incomplete input which is usually a mess.

When you realize that software mastery is mostly thinking about that input, it doesn't matter if the tool for the output is your own written code, an AI prompt, a Google search, or a StackOverflow snippet.


Tools are important. Professionals use tools they understand and use them deliberately to specific ends. Mastering your tools is an important step in mastering any craft and being able to evaluate new tools is an important part of that.

"Tools don't matter" or "caring about tools is for amateurs" is plainly false and anybody who is proficient at any tool based skill knows this.

The actual fallacy of the amateur is thinking that having the tool is what creates the skill, when actually having the skill is what allows you to make use of that tool effectively.

Almost always having a good tool you are deeply familar with beats a great tool you have little understanding of. Regardless of that, bad tools lead to bad results, even if experience can reduce that effect.


>anybody who is proficient at any tool based skill knows this.

I've taught the guitar for a long time and I don't consider it wrong advice at all. Yes, if you can spend 200-300$ on a guitar instead of 80$ go for it, but the amount of amateurs who buy much more expensive instruments is staggering. An amateur does not even understand why the features of expensive instruments are there to begin with, and it doesn't actually take much skill to make a cheap guitar sound great. Don't believe me, just check Youtube.

We live in a culture that is extremely biased towards the notion that you can shortcut your way to proficiency with money, and this kind of article is an important corrective. A few years ago people were scoffing at Macron, the President of France, buying 300$ suits. I can't count how often I've seen ordinary guys spend more on a suit going to events were nobody could even tell the difference.

Tools are sometimes important, but 80-90% it's about the proficiency of the wielder. And this is completely skewed because that kind of reality does not sell, and selling people more stuff is now the primary objective of a lot of televised sports, music what have you. As software developers too we are constantly being bombarded with sales pitches for tools, rather than encouraged to cultivate genuine skills, AI assistants being the best example.


>We live in a culture that is extremely biased towards the notion that you can shortcut your way to proficiency with money

Exactly, that was my point. And if it isn't money it is "that one trick".

Mastery over a tool is what actually matters and makes a professional. The professional understands his tools and knows exactly how to make them work and where the limitations are.

I just do not think it is in any way productive to believe that you shouldn't care about what tools you are using.


[dead]

The problem with all this, is that all those takes are true to an extent.

For instance: I may spend $80 or even $40 to get a guitar to start learning, but my experience across many areas tells me that spending those $100-200 more will buy me a guitar that I won't actively hate. Which is important early on when learning something. Even more important is to avoid confusing tool deficiencies for lack of skill, which is easy if you never get to compare what you have with what is actually good. So basically, there is great value in not having to fight your tools - mechanically, cognitively, or emotionally.

Another thing: tools, in general, have positive "y-intercept" for non-negative amount of skills. That is, even someone with zero experience in a field will produce better results with better tools. In some cases, better results than pros with no tools[0].

Another thing still, though very close to the first case: while "more expensive = better" generally doesn't hold, and especially doesn't when the target customer base isn't known for their reasoning skills, it's still often enough a good heuristic that "more expensive = less bullshit". See also: "I'm too poor to buy cheap".

> A few years ago people were scoffing at Macron, the President of France, buying 300$ suits. I can't count how often I've seen ordinary guys spend more on a suit going to events were nobody could even tell the difference.

Maybe it's you who couldn't? In clothing, there are couple quality/price levels clearly apparent to the eye, though perhaps not if you've never worn anything at that level. And beyond that, the price bracket of someone's suit is something you'll learn indirectly, from random gossip, if you're in the crowd that cares. And that is the reason people spend that money on suits (or expensive cars) - they're in, or trying to break into, a peer group that cares, because those suits/dresses/cars/whatnot are status symbols. Social signals difficult to falsify. Basically, the OG "Proof of Work" scheme.

> Tools are sometimes important, but 80-90% it's about the proficiency of the wielder. And this is completely skewed because that kind of reality does not sell, and selling people more stuff is now the primary objective of a lot of televised sports, music what have you.

OTOH, I came to believe that what you say is also a fake reality - one of "MacGyverism". It's a ego/status trading reality. "A true pro doesn't need to read instructions." "Amateurs obsess over tools, pros obsess over mastery." "A bad ballerina is bothered by the hem of her skirt." Yes, mastery means you can do the job without adequate tools. But it also means you'll instead first try and get the right tools, because there's little point in making the process more difficult and risky.

--

[0] - Such cases are somewhat infrequent and definitely small-scale, because any such case represents money left on the table, which the market quickly captures when it spots it. Some examples, however, include:

- Me beating handymen on a repair job, despite having no relevant skills, by virtue of having right tools on hand (and caring about the outcome).

- People writing complex data processing monstrosities in Excel, because even if you have zero programming skills, Excel can get you much further than you could ever get by asking the IT department for help.

- IANAHistorian, but my high-level understanding of the history of warfare was that rifles, early on, were really really bad, barely above throwing a rock at someone. However, they displaced archers and armored knights because while the latter two roles were much more lethal, they required many years of concentrated training - meanwhile, you could hand a rifle to a random peasant, tell them which end the bullets come out of (and how to put new ones in), and you'd have an effective fighter.

- The elephant in the room: random Internet anon with access to Stable Diffusion > plenty of artists in many contexts. Same with anon + LLM and marketing copywriters.

- EDIT: more historical examples include: reading, writing, numbers, basic maths (of the type kids learn by rote), calculators, measuring tools, precisely manufactured tools. All of which gave huge baseline boost to people who used them, regardless of their experience.


If it isn’t clear, you and the person you’re replying to both suggested buying a guitar around $200. I think they were talking about all the cases of people buying a $2,000 guitar.

This is something I've been told multiple times about power tools and tools from several people: Be ready to spend around $100 - $200 to get something you won't really hate. Drills, wrench sets, tools. Then wear that thing out, or use it long enough to learn why it's not enough. This in turn will teach you what you want from a more expensive thing.

Like, I have a simple battery powered drill in that price range. It's wonderful to use for everything in the flat or putting furniture together. It also taught me what an expensive Makita drill could do and why I won't need it.

In a similar way, I'm fully aware my bass and guitar are on the cheaper end of the spectrum. But hell, watching what Ola or Bernth or Herman Li can do on cheap pieces of crap... And eventually I might outgrow them and figure out what I need next.


I suddenly feel less badly about my ~$200 off the rack suit I wear twice a year. Nearly good enough for a world leader, good enough for me.

> Tools are sometimes important, but 80-90% it's about the proficiency of the wielder.

It probably depends on the domain you're working in. In the motion graphics industry, for example, if you're not using the right tools, you just won't be able to compete. Third-party render engines such as Octane offer near-photorealistic rendering straight out of the box. If you're trying to squeeze the same results out of, say, Cinema4D's standard renderer, then you're playing with both hands tied behind your back.

I do think there are beginners who wrongly emphasize tools over skills, but I also think there are experts who don't realize what an advantage their tools are giving them, and choose instead to pretend that they don't matter, when they do.


Your comment made me think about the book Track Changes. It's about the advent of word processors for creative writers. Apparently Isaac Asimov was an early adopter of the computer. Had one sent to his office and there were computer boxes all around the room while it was getting set up. He was fascinated by it and used it often. But he used it for short pieces like letters or short stories and used his typewriter for long pieces of fiction. I guess that's a good example of "deeply familiar" tools.

Pros obsess over writing their own tools from scratch!

Pros can/will pay so that their time isn't wasted, but ideally know what to spend the money on. Anrej Karpathy hinted at this in his Lex interview and I agree. Tools are not the point, the point is to decrease the time to a quality product and the misery of doing so.

When I was young and didn't realize I had ADHD, I thought getting a great chair and monitor would help me keep going longer and help prevent frustration leading to burnout. They did end up helping eventually, but only if every other environmental thing got out of my way, and the problem I was grinding away on was right.


A bad worker blames his tools right?

I'll share a parable:

When I first got into cycling as a hobby/activity, I didn't know anything other than "get a bike and ride it." I didn't know about clipless pedals or carbon wheels or gear ratios or anything. Nor did I particularly want to know about any of it. I just bought a basic, average, all-around bike and started riding it.

That bike served me extremely well. It didn't do anything particularly great, but it also didn't do anything particularly badly either. It was totally average. I rode it thousands of miles around the Bay Area, and in the course of doing so, got really quite into the sport (which is now, thankfully, a major part of my fitness life). And in getting into the sport, I learned about all the widgets and gadgets and what equipment was better for what situations.

When that bike got stolen (thanks, SF), the timing was such that I was ready to treat myself to a major upgrade. And so I built myself a dream bike. And picking out every component was SUPER fun, because I knew exactly what I needed and why I needed it. I knew I wanted an endurance-optimized frame because I enjoyed long rides with lots of hills. I knew I wanted smaller diameter wheels because it's so darn windy going over the GGB that I'd get tossed around with deep-dish aero wheels. I knew the gear ratios that would be ideal for the type of riding I enjoyed.

And so I remember VERY distinctly when an old friend called me up one day and excitedly told me he too was ready to get into cycling. But oh, was he wracked with indecision, and could I help? Which gears to get? which frame? which brakes? Which indeed.

He was the quintessential amateur obsessed with the tools. And I advised him to take the same path I'd taken: Just buy a bike. Ride it. Learn what you like and what you don't like, and the decisions for the next one will be infinitely easier. Master the basics and then you can focus on mastery with the right tools.

BTW - this wasn't wisdom of foresight here. I lucked into the experience because I was truly an amateur when I started and just didn't care. But I think it worked out well.


Similar experience with mountain biking for me. In college I bought a $600 hardtail because that was my budget. Didn't know or care that it had a coil fork and mechanical disks instead of air fork and hydraulic brakes. And at the time it didn't matter. I rode that thing well beyond its limits, and as I got better at riding and working on the thing I upgraded parts as I could afford and figured out why those parts are better.

After 10+ years on that, I could afford a full suspension bike. I knew what I needed and what parts would fall into the diminishing returns realm. I've been riding it for 5 years and have made some small upgrades (and had to replace a few parts) but I regularly blow the socks off riders on 2-3x more expensive bikes.

My bike does have limitations and if I could afford it I would have maybe 2 more, but as an all around bike and someone who rides all sorts of terrain it gets the job done just fine.

I've also had friends who bought expensive carbon bikes when they're starting out and once they realized that skills are much more important than the bike have regretted spending so much.


A master carpenter might be able to build a house with pointy shards of glass for nails, rotten wood for timber and pumice stones for hammers, but he's going to struggle every minute of the time, hate you for making him do it, probably decide to switch jobs half way through and the house is going to look like total shit (even if the only thing swapped out was the hammer this would likely become true).

In my first job I had to deal with an absolute trash-heap of a proprietary programming language (Clarion, no, don't bother googling it, you will only find misleading marketing material and a bunch of people who only know Clarion, COBOL and FoxPro and will spend all day long telling you how Clarion is the best thing under the sun).

Normally when dealing with a shitty tool, I will spend some time either replacing it or finding some way to modify it to make it less shitty, but in this case, there was nothing I could do but to master its endless quirks.

I wrote anything I didn't absolutely have to write in Clarion secretly in other languages (usually Python) and presented it at the last minute when it was too late for anyone to say no to me doing it (yes it really is much easier to ask for forgiveness than permission). No, it wasn't the most sensible decision to use languages nobody else in the company knew to write important bits (although I tried to keep all my code as straightforward as possible), but at this point there was already another person in the company who had built up an empire of job security through utilizing obscure shit nobody else knew how to maintain (except, joke's on him, I knew how to maintain it!), and also I had to survive the experience without ripping all my hair out.

Due to the frustrations of Clarion, I would often point out some of its major shortcomings and get told: "A bad workman blames his tools." To which I often replied with something along the lines of: "You wouldn't hand a good workman a rock and ask him to frame a house."

Anyone with any experience and mastery will know and be quickly capable of noticing when a tool is trash and should be replaced to avoid turning 5 hours into 5 days of work. Using this reasoning to excuse poor tool choices is a terrible thing and when experienced and inexperienced people alike complain about a tool, it's a good idea to take a step back and consider this proposition seriously. In fact, in my experience, people with less experience are much less likely to know when a tool is shit and instead assume that any shortcomings are actually par for the course and that no better options exist.

Whenever I use a tool and I find something is difficult to do, I try to take short break to find out if the tool I am using is really optimal for the work I am doing. I am pleasantly surprised (in programming and many other areas such as even DIY) when I find out that there is in fact a better tool which is a pareto improvement over what I am currently using. Take, for example, a can opener. Many people use can openers which cut down from the top into the tin. For years now a new type of can opener has been seriously failing to take the can opener market by storm (because not only do can openers not break that often, but they're so deeply standardised that nobody would recognise anything else in a shop if it was sold). This type of can opener cuts in from the side, with a much more precise blade, without creating a ragged edge burr, without requiring you to fish the lid out from the can, while creating a lid for your newly opened can. Yes I'm talking about the can opener from the technology connections video[0].

In summary, don't obsess over tools, the latest over-hyped library/framework/language/editor/IDE will probably not make your life 100 times easier, but DO learn to ask yourself if the tool you are using is really the best. Learn to modify your tools for the better. Learn the important skill of telling when you're making your life more difficult than it could be. It will make your life easier, I promise.

[0]: https://www.youtube.com/watch?v=i_mLxyIXpSY


Many amateurs are easily distracted by "new and shiny", and of course the accompanying marketing of these tools. Pros have realised that most of this is really nothing more than marketing.

I really wish we had a different word than "tool" for the stuff we use to assemble and work with software. These sorts of discussions inevitably devolve into people arguing about physical tools as found in the arts, manufacturing, our other "crafts" with nothing more than vague hand waving to justify why the physical tool analogy even makes sense when applied to the things we call "tools" related to software. It's not that the word "tool" is inappropriate in a raw definitional sense, but it seems to lead to these tortured analogies. At this point as I'm pushing 30 professional years in the computing field, I'm less and less convinced that the analogy is very strong.

Amateurs and dilettantes sure like to argue strongly about it though.


Amateurs obsess over tools.

Is that why I drop a lot of money on a new hobby, hoping the "investment" will keep me motivated?


Amateurs also use exclusive/expensive tools and the discussions about them as a ticket into the pro community. Even though what really ends up happening is that they end up in a community of wealthy amateurs, all arguing about what they know: the prices and feature checklists of tools.


Both of the statements in the title are false. Programming is like the ultimate toybox. Getting started with a new tool can be like Christmas. It doesn't hurt to reward yourself every now and then especially when there is often a real advantage provided by the new tool. Obviously you can't spend all of your energy on that but it doesn't mean it can't be routine to try out and apply new things.

Mastery of tools is also not a useful primary objective. In fact, in the modern era of software development, it's counterproductive. Because it will not leave you time to try any of the new stuff that could be a more more efficient way to make that particular type of software.

I would say that a professional software engineering approach is to focus on delivering business value.

That means you need to emphasize understanding the business problem and iterating on features that solve that. To be effective those things should take some precedence over other activities, like learning new tools or mastering old ones.


Part of mastery is selecting a good tool, or building one if it doesn’t exist.

[dead]

Amateurs obsess over languages as well. Java vs C++. Rust vs Go. This vs that. etc.

Agree that jumping between tools at the expense of focusing on craft won't get you the results you want:

> If we're fixated on acquiring every new tool that comes our way, we risk missing out on developing our fundamental, timeless skills—the abilities that transcend technological trends and persist throughout time

But the tools we use can have a big impact on our behavior.

Each tool makes some behaviors easier and others more difficult. By choosing tooling that aligns with your goals, you make it much easier to achieve those goals.

I'm currently knee-deep in the notes space* so will give an example there. I regularly talk to people who have invested a lot of time in their notes / productivity tooling. Their systems "look" good. But more often than not, they're over-engineered and get in the way of their goals.

When they take a step back and switch to simpler tools that align with their desired behaviors, they find more sustainable productivity and more space to hone their craft.

*working on https://stashpad.com - would love to chat if you've had a similar experience.


Manufacturers depend on this regardless of the product. It is why you find weekend duffers carrying around pro-level clubs and tennis hackers using top-of-line rackets or amateur photographers carrying $3000 cameras with pro lenses. With enough practice and lessons, one can grow into their toys but until then, it's wasted money. It isn't a bad thing to buy a tool that may be for someone above your current skill level but that generally doesn't mean buying the best, most expensive option.

I, myself, am in the market for an acoustic guitar. I'm fortunate enough that I could afford a top-level Martin or Taylor but it would be silly. Instead, I'm focusing more on the mid-level, $500-700. Something that won't fight me, not stay in tune, but a guitar that has enough room to grow into.


I met an incredible texture artist in a game modding community years back, when a typical texture size was 256x256 or maybe 512x522, he did everything in mspaint and it was beautiful.

can you find a master woodworker with a dull scalpel?

“The best camera is the one you have with you” I have extrapolated to a great many tools. What matters is doing the work.

If you have crap tools, you’re going to have a hard time doing the work and a harder time growing your skills (although some adversity can be good for cultivating an appreciation of craftsmanship).

But the better tool does not make the better craftsman. I think that’s easy enough to understand, and not really controversial.

Separately, people just like to pick a team and turn everything into Monday night football. Milwaukee Vs dewalt, mac Vs PC, Ford Vs. Chevy, Google Vs. Microsoft, on and on.

Once you’ve worked with enough to know there are only minor differences at a certain level, the color of your cordless drill is less of a factor in the quality of your work. But that doesn’t mean masters can’t have a little fun with some toys.


Simple binary headlines like this lead to an either-or argument, but as we all know it's a matter of degrees.

There are indeed more powerful tools for some situations, and knowing those more powerful tools can mean the difference between success or failure or at least happiness or drudgery.

I could make so many analogies, but they would be lost on people who don't already understand the concept. So to spare the words, I'll just say that sometimes it is worth fighting for a technology, but it is equally worth debating that technology. Occasionally even the proponent decides it doesn't actually matter for the given situation. Other times management or juniors (who technically are similar) can be swayed, and hopefully the results prove the value of that fight.


Why not both? I've been using vim for ages and I'm very "masterful" with it, but at the same time I try to look for tools to solve unsolved problems I deal with.

It's true that novelty doesn't generally deliver actual results but it's also my job to automate everything that can be automated.


Beginners obsess over tools, intermediates obsess over mastery, seniors don't obsess.

And hiring managers: over whiteboard l33tc0de

I think the opposite is the case:

Give me 24 hours to fell this tree, and I will use 23 to sharpen my axe.


I've found a lot of people obsess over tools to solve something like their personal productivity or management issues, which is like buying better cars to get better at driving.

They'd do better to either find a driving coach, or start riding the train.


The beginner must learn what tools can do in their craft.

The beginner must learn how cheap is too cheap; the beginner must learn where the sweet spot between "affordable" and "breaks halfway through your first project" is.

The beginner must dabble with a few specialized tools. Some of these can be expensive, because the market is small - there are simply not many people who need this tool. The beginner must learn something of which tools truly can transform the way you work and help you focus on the joyous parts of the craft.

The beginner must also spend a ton of time mastering their craft. Spending half a month's rent on a Serious Tool gives it more power; it sits there in the corner, gathering dust, quietly murmuring about how much you paid for it and how little you've spent trying to learn how to use it.

The master has accumulated quite the toolset over the journey from beginner to master. The master has a couple of those half-a-month's rent tools. Maybe they use them regularly. Maybe they get the bulk of their work done with the cheaper stuff. But the master has had multiple occasions to celebrate some milestone in their craft by buying a cool, rare tool. The master may have had the occasional gig that paid a whole year's rent and gone out and bought a coveted tool that cost an appreciable fraction of that payday. The master is at the point where they need some of those more specialized tools. The master may even be at the point where they are making so much money with their work that they can pay a specialist to hand-craft a tool to their precise specifications, and make it a beautiful symbol of their dedication to their craft. Or make their own, depending on how their craft overlaps with what's required to make their tools.

The master may also have a few battered, well-loved tools that they got long ago, and still use. It still works fine, they've tried expensive replacements and haven't found any real difference, why bother?

And somewhere between the beginner and the master is the journeyperson. They make their living with their tools. They just had that whole year's rent gig happen and they just splurged on that pricey, rare tool. And now they have a powerful signifier; when they take out that expensive tool, people who know a little about the craft will ooh and ahh, and revise their expectations of the journeyperson's performance upward. And perhaps revise their willingness to pay for it, as well.

The master and the journeyperson both know that much of the magic is in them, not in their tools. They can do far more with a cheap, shitty, basic tool than a beginner would. But they also know when they need to take out the really specialized tools. And they do this work enough that they have invested in solid tools that sit nicely in their hands, and are balanced so as to leap eagerly to the task at hand. They have Opinions about their tools and they are happy to share them.

And then there is the dilettante. The dilettante has a job that means a lot of those Serious Tools are in the range of an impulse purchase, rather than a half a month's rent. But because it was not bought as a sacrifice of something else, its quiet murmurs about how you never play with it have far less power. Perhaps eventually the dilettante will have accumulated enough Serious Tools that their combined murmurs about how much they cost will motivate the dilettante to blow the dust off of them and start playing. Perhaps not. There are many other things to spend one's precious time upon.

The beginner and the master and the journeyperson are all thankful to the dilettantes of the world, for the dilettantes help bring down the price of the Serious Tools, both by buying new ones, and by letting their dusty, untouched Serious Tools go for a fraction of their price when they clear out their garage.


twitch streamers answer thousands of times a day questions about which keyboard they use.

programmers are no different. tool focus is a way to fool yourself into thinking all you need to do to level up is go shopping.

it’s a comforting delusion.


This is exploration vs exploitation. You want to be trying out different things in your early career.

Bollix, professionals do not obsess but continue to explore

I've met a few truly practical experts and they spend more time talking about what they've just learned than children

A tool in their hands is never the same thing twice in a row

Amateurs are more easily distracted and expect reliability


Inside my head, the Unix philosophy + graph theory + High Output Management have combined into one monstrous beast. It sits on my shoulder and forces me to view all tools as a set of inputs and outputs. Worse, it insists some tools make other tools, and has strong opinions on when they're worth the investment.

For a meta-tool like jq, I put in an initial investment of time and get out a tool to solve your actual problem, in the form of a jq command. I can then use the command again and again on my data set. The size of the initial investment determines when using a command is worth it, but making an investment once reduces the cost of the next, so I am never quite sure when to invest.

The ability to put together pipelines of these tools and meta-tools is more important than any one tool -- after all, jq could be replaced by a python script, json could be replaced by toml, and so on -- but at the same time each tool makes up the pipeline. The path to mastery of manipulating a tree (or using a functional programming language) might be through jq and json for me but through xml and xslt (or F#) for you. Learning the tool, and particularly learning how it fits in the broader pipeline of tools in terms of its inputs and outputs, drives our mastery.


The premise is true enough, but the article didn't really expand on anything meaningful beyond the title.

So true, the number of people who enter analytics forums asking "Should I learn Snowflake or Databricks" when the answer isn't even "learn SQL" (it's "learn set theory via SQL") is bewildering.

Asking about tool comparisons is the technical equivalent of "The mere fact that you call making love "pop pop" tells me you're not ready."

And a sign of why most amateurs fail - they're fad driven rather than purpose driven.


I've seen many a 'pro' not only obsess about tools, but be borderline religiously fanatic about one to the point of not being able to function if they were forced to use an alternative.

An argument somewhat undermined by the example “in an age of synthesizers, the acoustic guitar…” which sounds pretty tool-focused to me, lol.

This seems to be an insinuation that guitar playing is a skill while electronic music is some form of cheating. I’ll grant they’re different, but as someone who can play passable guitar who is interested in getting into electronic music, I’d hardly say the latter requires less skill. On the contrary; I find the number of things to learn (rhythm, drums, bass, string, leads, synthesis principles, sound design, effects, putting all that together, mixing,…) quite overwhelming in comparison.


Legal | privacy