Some of the best experiences I've had programming is when I thought of something I'd like to make, but it seemed impossible. Then I went and made it.
You do that enough times and coding becomes like real-world magic. You know you can do it, you don't know how yet.
Yes, there are places you can get stuck. Rules-processing, unstructured data, Markov Chains, ML, and so forth. But even that's a win. You start understanding the various classes of problems to be solved and how best to approach each one of them. That kind of meta-knowledge is really difficult to get without wading into things.
At the end of the day, you realize that there's no such thing as impossible problems in coding. There's just problems that people can't figure out how to produce optimum results. A lot of the ML stuff we're seeing now is more like "make the best of things" and less like math.
I agree so much! It's good to remember that many things seem impossible until you do them! After all, if they were easy, someone would have done them already.
It's rosy, but there are actual theoretical limits (like the halting problem) which act as a bedrock in that magic. Eventually we might find a way around, but we cant be sure of it now.
Even something like the Halting Problem does not rule out as much as people impute it to. It just proves you can't write a program that can analyze all programs, but doesn't mean you can't analyze some programs. However I disagree with your concluding sentence - the whole point of a proof is that we are sure of it now, there is no way around. I would instead phrase it as, we may in the future find that the things we're interested in doing need not run into this barrier, because we refine the notion of what we actually want to accomplish.
I thought the comment was both interesting and illustrative. Sure, in CS there's a ton of things still to do. But my comment wasn't about CS, it was about programming -- making things for people. The programs don't have to be provably correct or even consistent. That kind of stuff is the science part of programming which is completely different from the applied philosophy that is programming computers to make stuff people want.
You do that enough times and coding becomes like real-world magic. You know you can do it, you don't know how yet.
Yes, there are places you can get stuck. Rules-processing, unstructured data, Markov Chains, ML, and so forth. But even that's a win. You start understanding the various classes of problems to be solved and how best to approach each one of them. That kind of meta-knowledge is really difficult to get without wading into things.
At the end of the day, you realize that there's no such thing as impossible problems in coding. There's just problems that people can't figure out how to produce optimum results. A lot of the ML stuff we're seeing now is more like "make the best of things" and less like math.
Programming is a hoot.