====== Programming is NOT like woodworking ====== Software is unique in that it is easy. Complicated math algorithms, web scale, or client demands, or any number of other things make it hard, but coding itself is not difficult. Woodworking, like drawing, painting, driving a car, sports, musical instruments, and everything else a person might see value in, are not easy, unless you're like, using CAD and CNC tools. There's no process to follow. At some point it comes down to you alone, and your skill with your own hands, and there's no methodology that can save you, no copy and paste from GitHub, nothing like that. There's no easy hello world. That's why people get so up in arms about the minimum wage. I have no doubt in my mind that every fry cook has a harder job than me. Software is absolutely hands off. If you're doing things right you might never touch anything that matters directly. You'll write the code, trying as many times as needed, and never run it till it's tested. Software is full of cheats and hacks and shortcuts, and most of the time, the more you "cheat", by reusing libraries, patterns, etc, the better the product. The more you put the load on the plan and architecture rather than your own skill, the better. The less beautiful, less amazing, and less clever the code, the more it's going to work reliably. And the more you encapsulate and hide things so people only have to see the world through a toilet paper tube, one part at a time, the better. Building things with wood has cheats and hacks too, in the design stage. And they're great. You can make stuff easy to build and repairable if you're willing to use some tricks and hide screw holes and skip the "real joinery". You can use rustic elements(which I love), that are very aesthetically forgiving even if you don't cut the board straight. But that's design. The actual hands on part is as far away from coding as it gets. That's the real challenge of life, the actual doing of things, yourself. And that's what makes coding different from everything else people do. It has almost no element of "actually doing it" that affects the product, with the exception of math heavy stuff that takes some real talent because math can't be broken down into steps as tiny as basic coding can. Equating programming to anything else does both a disservice. Why is there a stereotype of coding at work, coding at home, coding in your dreams, and then dying at the computer? Basically eerything else worth doing is hard, unless you were born with exceptional talent. Many programmers enjoy other pursuits, or want to, and they deserve the truth. There will be no stack overflow to copy from when it's just your hand and the pencil. You practice for a hundred or ten thousand hours as the case may be, and be sure to actually practice, not just do whatever your hobby's equivalent of noodling is. The fundamentals that in programming seem like useless excercises to build sorting algorithms that already exist, really ARE fundamental everywhere else. In programming you think you know it all because you can use pip3 install. And it works. The client are happy. Maybe you're more reliable that the smart guys and traditionalists who insist you start with all the CS. Tech constantly changes, so maybe you do better just by keeping up with new stuff than they do by mastering the science. But I don't know any woodworkers who use an algorithm to know how fast to cut something. Trying to compare the two makes software worse, and analog pursuits just plain impossible.