THE PUZZLE OF PUZZLES I don't think I was ever very interested in puzzles as a child, by which I include things like crosswords and Sudoku when I was older. I was vaguely interested in creating them, but I doubt I ever got anyone to actually try and solve one I'd made, so that wasn't very rewarding either. Lately in some evenings, which are now too cold to abandon my spot on the couch under the heater, I've been slowly drawing up a revised copy of the messy schematic for my mother's late-delivered Christmas present, eventually destined for my website if I ever get that far. It occurred to me, not for the first time, that designing electronic circuits really is a puzzle (if you don't just copy example circuits from datasheets anyway), and one I do enjoy. Equally designing circuit board layouts is something I really get into, trying to crack the task of cramming all the components into the smallest area while connecting them all correctly with one or two layers of copper tracks. I guess some people feel like this about computer programming too, and I sometimes feel a hint of that, but it wears thin much too quickly for me. In particular the chore of learning and remembering all the rules of the programming language quickly brings me down. People who try to learn new programming languages for fun are a mystery to me, it pains me just to switch between the few I do use and inevitably struggle to reignite my memories of their syntax. Also there's the different technical aspiration in programming to make things clear and readable. Circuits are often a battle of optimisation over clarity and I take some special glee at mapping out a combination of connections which is bizarre to the eye yet balances itself in a perfect rhythum of operation. Machine language programming is more like that, and I tried some of that once, but of course to make things that are really useful it soon grows to be too much to handle, and in the case of that particular project I gave up trying to debug it in the end. Of course you have to know the rules of some libraries in order to run a useful machine language program on an OS or using modern microcrontroller hardware peripherals anyway, lest every project becomes a life's work reimplementing the deep dark complexities of modern computer hardware and software, which are only more obscure rules to follow in the end. I guess what I enjoy is more of a creative puzzle, without the drearily fixed rules of computer programming and hardware. Yet still to achieve a practical outcome, not just a pointless artwork. Of course there are rules to electronics, the laws of physics itself, but they're a challenge to tease and exploit rather than an ideal of order imposed onto you by others. It's just a shame that, much as I've tried, that sort of electronics isn't really marketable in isolation anymore. Everything in electronics is going into and/or coming out of a computer these days. The computer itself usually being a layer cake of complexity that can hardly be untangled completely by anyone alone. The computer puzzles always leave with a question mark still here or there, sometimes impossible to answer, even when it might be the cause of a problem. Then even at the end there's new hardware and/or software to be compatible with - it's not done, even when it does everything it needs to at that moment in time, nothing's ever permanently solved. Perhaps AI code generators are an expression that I'm not alone with this frustration for a system that expresses code without such rules. But AI is not like the laws of physics in electronics, its behaviour can't really be pinned down, and the attempts to do so have apparantly already birthed a new field of "prompt engineering" describing rules effectively for a new, endlessly evolving, programming language that your new AI pre-compiler might or might not actually obey or interpret consistently. That's really the worst of programming as it already existed. As an aside, I do think there's a way for a sort of AI to be helpful in another way. You could have a sort of fuzzy probabilistic code execution where one writes a program manually but an AI constructs test conditions around it then runs adaptive probabilistically-weighted random variations upon it, endlessly varying the code and reducing it to a near-perfect optimisation still fitting the broader logic of the original code. A super optimiser really, which doesn't just optimise the code itself, but the idea behind it, while automatically testing behaviour alongside the original code to ensure conformity. But that's another software puzzle, so I don't really want the big, tedious, (not to mention endless) task of trying to work on it myself. I'd sooner try that "big website idea", which I can't bring myself to really start work on either. Alternatively I've got some ideas around analogue computing that I'd really like to play around with, but there'd never be any money in that, so I don't get around to it either. Instead I now pick most of my puzzles from the in-between zone, from where I don't really enjoy most of the work on them, and they don't really make me enough money in return. Then when I find some spare mental energy I tinker with some project done "my way" (often similar to everyone's way, circa 1970/80s, complete with graph paper and pencil), like someone with a hobby just working a normal 9 to 5 passionless job for a faceless corporation, and making ten times my income. Yet in that role my creative frustrations would be accompanied by my usual social ones. In the end whether to take that as a hint about a necessary lifestyle change is another puzzle I don't like to try and solve... - The Free Thinker