Live data from Hacker News

Domain expertise has always been the real moat

brethorsting.com

491–500 of 592 posts

Re: Domain expertise has always been the real moat

#491

While I agree that domain expertise has always been a moat, I believe the author is missing something critical: there is a big difference between being able to verify the output of a system is correct, and being able to tell a system how to generate the correct output to begin with. Personal example: I had a software engineering colleague who was the best coder of financial management systems I've ever encountered. H…

That is why coders who learn problem domains are where the money is at.

Works for me.

Already learned two or three problem domains well enough and now it is starting to compound.

Re: Domain expertise has always been the real moat

#492

Earlier quoted context omitted.

Anybody who has ever done programming professionally in the small scale knows this. Refining the requirements is the job. In fact, I've never known an industry so keen on levelling its own moats as the software industry. We regularly invent things like 4GL, graphical programming and frameworks and engines such as Unity just to enable more people to do programming. People will happily teach programming for free in out…

I think you are underestimating how hard it is for average joe to learn programming basics. I remember a fellow in high school that just could not accept that = in programming is assignment not an equation (like in high school math)

This is one of the few mistakes K&R made going from BCPL to C.

Re: Domain expertise has always been the real moat

#493
post #96

Earlier quoted context omitted.

I've studied how pre-NNUE stockfish worked and the principles of static position evaluation are accessible to a 500 rated player. The rest is writing an efficient search algorithm, which is purely an endeavor in computer science, not chess playing. So your expertise in programming gave you the leg up here, and predictably your opponents experience in chess doesn't help. Your point only serves to bolster TFA's argumen…

You can say that about any domain. I'm done with this. What I'm hearing from people is that AI is only for programmers and is useless for everyone else. And it honestly seems to be that way.

>AI is only for programmers

As we now know it, AI pretty much means a language model and the product of programming so many times is thought to be completely represented by the output of a language alone.

On top of that programming languages are more structured and logical than average, so impact on other less-logical efforts (having more scarce clear-cut examples in the same huge training set) can be expected to be less drastic even if they are language-centric also.

It really is working so well for some programmers so far that that's got to be a big one, and possible to push closer to the finish line than lots of other things. And it really is huge "software" companies that are putting up all the big bucks, dwarfing anybody else who's focusing on non-programming languages, or even more rare, non-language AI.

Almost all the money is being put into their own domain, how else would they have the decades of domain experience to best gauge progress which is still needed, plus get the most positive reinforcement from the underlying math & logic.

There's plenty of momentum and critical mass of people already where if AI does turn out to only be for programmers, they'll be just fine with that if they can just make it more true than it is already. That's enough work to keep them busy for the foreseeable future right there.

Doesn't look like any comparable momentum otherwise, it's like a snowball vs an avalanche.

Re: Domain expertise has always been the real moat

#494

While I agree that domain expertise has always been a moat, I believe the author is missing something critical: there is a big difference between being able to verify the output of a system is correct, and being able to tell a system how to generate the correct output to begin with. Personal example: I had a software engineering colleague who was the best coder of financial management systems I've ever encountered. H…

WRT the native grammar, consider adjective order. Few native english speakers (me included) can off the cuff name the proper order, but everyone knows the "right" order. https://dictionary.cambridge.org/us/grammar/british-grammar/...

Excellent example.

Re: Domain expertise has always been the real moat

#495
post #266

Earlier quoted context omitted.

> Try asking a non-developer in your life what their dream software would be for their work, or their hobby. If they don't have what Nilay Patel calls "software brain" I'd be surprised if they came up with something actionable. I've posted this in numerous comments because I think it bears repeating: there are tech-savvy non-developers who are actually building and shipping stuff with AI. I personally know a few who…

> there are tech-savvy non-developers who are actually building and shipping stuff with AI I absolutely believe that. I think those are people with "software brain" who are on their way to becoming real developers. By the point they can write apps that are secure and scale... they'll have learned enough about software development to be employable as software developers. They'll be part of a new breed of developer who…

I agree, and I want to add that 'better' doesn't necessarily mean 'creates more robust, elegant, resilient software'. Better means from a business perspective. If we (I'm one of the people you're discussing) end up cheaper or more fungible, for example, we still might be worth hiring from a business perspective even if the code we create is shit.

I've also seen an assumption that you've made here that I think is worth drawing attention to and questioning: that the tech-savvy non-developers are starting from zero or near zero when it comes to programming and software development. Right now, that's probably mostly true, but I'm not sure that will continue to be the case. I'm not a developer (depending on how fuzzy we want the boundaries around the idea to be, anyway). I do understand the building blocks of programming languages (e.g. I can answer all the questions fragmede posed in a sister comment), the trade-offs between rolling your own and using existing libraries, the need to evaluate tools, frameworks, and languages to determine which is best for your use case, why version control matters, why access rights matter, why backups and a test environment are necessary, why it matters to write code another human can read, etc.

Do I understand as much as an active working developer? Absolutely not and I'd never claim to, but I'm far from starting at zero.

The reason for this is that I was raised by programmers. There are far, far more programmers and general tech nerds now than there were in 1988 (when I was born). Which means that in 10-20 years, there are going to be a lot more children, grandchildren, nieces, nephews, and so on of developers, and a lot of them are not going to be starting at zero. For pretty much of all computing history, there's been a substantial opportunity cost to developing a deep understanding of coding and software development: either a person has to be so into the domain that they devote a lot of their waking hours to it (usually in adolescence or young adulthood, when that trade off closes the most doors and makes developing certain other time intensive skills difficult), or they have to obtain a CS degree, which means not getting a different kind of degree and often incurring significant front-loaded financial costs. The opportunity cost for people born into programming or tech families is much lower. You can start younger and spread out the hours needed to learn across a greater amount of years, you can acquire knowledge in less time-intensive ways and while practicing other skills (e.g. my cousins also have 'software brain' and we could all hang out and develop those skills while also developing in person social skills), and you have a built in network of experienced people who want to help you + that can give you extremely individualized, personalized attention.

If what you suggest comes to pass, I think that one of the greatest threats to SDE as a career is going to be your own children and grandchildren.

Re: Domain expertise has always been the real moat

#496
post #432

While I agree that domain expertise has always been a moat, I believe the author is missing something critical: there is a big difference between being able to verify the output of a system is correct, and being able to tell a system how to generate the correct output to begin with. Personal example: I had a software engineering colleague who was the best coder of financial management systems I've ever encountered. H…

I think the answer is in the second sentence of the article. The most valuable person in this new world (using the author's own phrasing from the penultimate paragraph) is the one who is good at "building a working model of the domain in [their] head". Depending on the domain, this may either be the domain expert themselves, or someone else trained in formal logic, data structures and organizing information into cohe…

Working model suitable for an electronic computer.

Re: Domain expertise has always been the real moat

#497
A non technical domain expert might usually lack thought clarity. They might know what is right once they see it but they seldom know how to reach there, even with AI. They will write themselves into slop in 3 days.

The real moat I believe is the ability to hold the the problem in the head, isolate it and mentally design a way to structurally solve it iteratively.

Very few people have it. Much less common with domain experts.

I would rather bet on educating domain to the engineer than teaching a domain expert to architect software.

Re: Domain expertise has always been the real moat

#498

While I agree that domain expertise has always been a moat, I believe the author is missing something critical: there is a big difference between being able to verify the output of a system is correct, and being able to tell a system how to generate the correct output to begin with. Personal example: I had a software engineering colleague who was the best coder of financial management systems I've ever encountered. H…

I agree with your point that people “from” the domain aren’t automatically equipped to start AI-building software in the domain, exactly because they often lack one of the most crucial software development skills — being able to (and having the desire to) describe a complex system with a finite set of deterministic rules. But I don’t think we should be calling these people “domain experts”. I think we should reserve…

> But I don’t think we should be calling these people “domain experts”. I think we should reserve that name for the other group, for the people who truly and deeply understand the domain, the whys and whats and why nots.

I've spent a lot of time in my career extracting info from the business and I think most do understand the whys/why nots but aren't practiced at organizing all of those decades of experience into a higher level abstract model that can easily be communicated.

It's typically layers and layers of information with dependencies in many directions littered with exceptions. Just like our software design+dev experience, it takes a lot of practice to try to organize all of that info into a coherent presentable model.

Re: Domain expertise has always been the real moat

#499
post #444

Earlier quoted context omitted.

The programmer skill is how to abstract the specs from all the examples. And then to formalize it. Actual coding is merely translation. And only beginners tend to focus on that.

Sounds very similar to what AI is good at.

I've yet to see AI be good at extracting good abstractions. More often than not it jumps to creating a battery of special case checks.

Re: Domain expertise has always been the real moat

#500

Earlier quoted context omitted.

> ...if any idiot can do it with a few prompts? With all due respect, this sounds like just another version of the arrogant, scared attitude that seems to be more and more prevalent among software folks these days. Is it really hard to imagine that there are tech-savvy people who are smart and motivated but don't have training as software developers, who are now capable of using AI to build and ship things? In other…

It just feels like I’m trying to nail spaghetti to the wall talking to you because you can’t make up your mind what your argument is. Either it still requires learning and skill to do it —- in which case these are self-taught software developers, which is not a new phenomenon —- or it’s so easy now that the work is completely deskilled, in which case we shouldn’t expect anyone to be able to charge for their work for…

It seems to me you're more interested in semantics than the substance of the discussion. Why not consider the possibility that AI is creating something new?

I would argue that the non-developers who are able to use AI to build, ship and sell software aren't "self-taught software developers". The biggest reason is that they're effectively not learning how to code in any meaningful way. They don't need to. AI is getting "so good" that they can prompt their way to functional software without the same level of knowledge and skill that was required previously to do the same.

We can discuss the limits and risks of this, and you can criticize AI's output, but the reality is that people are actually doing this and having some success. First hand, I've seen a former colleague who is a skilled digital marketer with no development experience launch a web app for a niche market and sell it to a number of customers.

I don't understand why you're so interested in extremes (your skilled versus deskilled hyperbole). Is it really so hard to contemplate that AI is disrupting the market for software development? It's not that it has eliminated the need for intelligence and skill; it's that it is allowing a larger number of people to do something that previously required a different set of skills that was much more difficult and time-consuming to acquire.

To use Silicon Valley speak, AI is democratizing software development. That doesn't mean every idiot can build and deploy a functioning web application; it does mean that a growing number of intelligent, motivated non-developers can.

Post reply on HN