3 ms·
I'm still not convinced by those examples. My reasoning is opportunity cost. If you have to learn to code to write some software, and then write it yourself, y
by kimdouglasmason 12y ago
I'm still not convinced by those examples. My reasoning is opportunity cost.
If you have to learn to code to write some software, and then write it yourself, you will generally be less efficient at it than contracting someone else to do so. Furthermore, the contractor has a chance of potentially reselling the software to other clients (thus increasing efficiency even more), which you do not.
If it was cheaper for your father to write his own software in this case, then to me this indicates one of several things:
1. That he had already learned to code for some other reason (possibly a hobby).
2. That there was no opportunity cost because his business was operating way below capacity. If this is the case, his time is best spent fixing that problem first.
3. That there is an under-developed market for software services.
Your fathers' example also ignores some potential problems. A novice rolling their own DB code is likely to make novice mistakes, increasing the chance of (expensive) data loss or corruption.
I remain unconvinced that for a busy non-software specialist (such as a physical therapist, a welder, and many other professions) writing any software more complicated than a spreadsheet formula or macro is worth the opportunity cost. That doesn't mean that these people will never configure existing software, or write small scripts in DSLs, but I don't consider that 'knowing how to code' any more than I consider being able to remove one of my own teeth 'knowing how to dentist'.
- angersock 12y agoThings you're not taking into account: 1. Basic knowledge of programming gives you better odds of successfully interacting with specialists. 2. Specialists are not always available. 3. Specialists are not always affordable. Just because there's somebody who's out there that can do it better doesn't mean that's the one true answer--I can damn well try to stop the bleeding before I seek a trauma doctor, to use an example. In day-to-day life, learning just enough Ruby or Python or Perl to scratch an itch or Access to make a (terrible) DB is quite acceptable.
- zAy0LfpBZLC8mAC 12y agoWell, I agree that non-professionals probably should avoid writing anything complicated, as there is a high risk that they will make bad mistakes. However, that IMO does not mean that it's not good for essentially everyone to have at least some basic knowledge of programming and CS basics. For one, communicating your needs to a professional is also pretty costly, especially so when the task at hand also needs specialized knowledge from your own field (be it that communicating the requirements is a lot of work upfront or that the project in the first (few) round(s) doesn't end up doing what you expected it to do - not exactly unheard of in the software world), and secondly, even if the problem that you need to solve is too difficult for you to solve with your basic knowledge, that basic knowledge might still be very helpful in communicating the problem to the professional, as you might be able to see what kind of information the professional needs in order to help you. Plus, it might allow you to better select a good professional - the risk of hiring someone who isn't actually all that much of a professional is pretty real, after all, so adding to the costs of not learning and doing it yourself.