4 ms·
I don't think programming - in the sense of what 99% of programmers do - is as difficult as programmers love to blog about. Most professional programmers write
by ksk 11y ago
I don't think programming - in the sense of what 99% of programmers do - is as difficult as programmers love to blog about. Most professional programmers write stuff that is not all that hard, and most of it has been done by others countless number of times. All the "hard" cutting edge stuff is done by a tiny tiny fraction of programmers. Heck even the things people think are cutting edge now, just taking a random example - VR, have been explored decades ago. Seriously, go read some SigGraph papers.
However, programmers more than other professionals love blogging about their work, which is great - because it helps spread ideas (more so than any other field I've seen), but also creates this illusion that programming is this super hard thing. I mean people complain about going to interviews and being asked about algorithms and stuff that you could "just google" when, if you were to ask an average scientist, the amount of active working knowledge they have at any given time is simply astounding.
- kris-s 11y agoMy pet theory is that even relatively simple programming problems drain a very limited daily resource of programming time (something on the order of 2-4 hours of real work per day). Because a programmer can be drained of programming ability so quickly we just compensate by blogging, posting, talking about it incessantly as a backfill.
- mei0Iesh 11y agoThere used to be a difference between scripters and programmers. I'm a scripter, and it feels similar to learning a natural language and writing essays in it. In other words, it's easy and doesn't require any mathematical skill. There are low-level programmers who do things similar to other sciences involving math, and my brain wouldn't be able to do that. So if you're talking about scripting, which I think most people do, then I agree it isn't difficult.
- sklogic 11y agoNot sure what do you mean by "scripting", but there is an awful lot of complexity on any level, all the way up. Mathematics and algorithms aside, there are vague requirements and tight deadlines. There is a need to estimate how long will it take (know of anything else harder than this?). There are maintenance considerations which complicate everything, even a one-line script: documenting, packaging, future-proofing against platform updates, etc.
- Roboprog 11y agoSure. We can get 80% of the effect with 20% of the effort. Then the last 20% of the program takes the other 80% of the time :-) As an example, I started doing Angular development about a year ago. At first, it's really easy - little more than templating output expressions in double curly braces; binding input fields with ng-model attributes; and adding ng-click callbacks to a few buttons. Then you start making tag libraries, er, excuse me, "directives". Now you start to find out where the monster lives. The complexity of the definition object you make for a directive mushrooms out from the other work you have been doing. Is the directive just an attribute (for existing HTML tags), or does it need to be a custom element with multiple attributes? Is the template part just a string literal, or a function? Do I need to make a "link" function (what does that name even mean, anyway?), and how did all these magic parameters get passed to it? Does this directive get its own controller function? (why do we need "link" and a controller?) Do I give the directive its own "scope" (data model and event-handler/callback function object) instance, or just reuse the scope from the app? How do I pass data between 2 directives? I'm not faulting Angular (other than maybe for better docs) - I think every framework has that issue of making 80% (if it's a good framework) of some problem easy, but sweeping a real mess into some corner for other work.
- leeoniya 11y ago"All problems in computer science can be solved by another level of abstraction...except for the problem of too many levels of abstraction." [1] I'm waiting for all these custom syntax and conceptually burdened frameworks to implode :) If you like pure js, but declarative templates, check out domvm [2]. I wrote it to improve on Mithril and domchanger. Feedback welcome! [1] https://en.wikipedia.org/wiki/Indirection https://en.wikipedia.org/wiki/Indirection [2] https://github.com/leeoniya/domvm https://github.com/leeoniya/domvm
- mbrock 11y agoThere is another kind of "hard" though, which involves managing growing code bases, doing programming within a business setting, and so on. We mostly let the scientists work on well-defined problems in isolation, so they can really focus on those deeply intellectually challenging things, but even if those scientists are very clever I don't think they are necessarily good at larger-scale system development. There are lots of jobs that are harder than mine in some sense, but if you look at the objective of building high-quality complex software in the minimum amount of time, keeping it running correctly, and then being able to change that software as effectively as possible, then that in itself is pretty much an infinite problem. Maybe there is lots of scientific work to be done to help us struggling coders, and maybe we need to get our shit together more as a profession... It's not all easy.
- rpgmaker 11y ago> but if you look at the objective of building high-quality complex software in the minimum amount of time, keeping it running correctly, and then being able to change that software as effectively as possible, then that in itself is pretty much an infinite problem. The same can be said of almost any "high-quality complex" project in any other profession.
- mbrock 11y agoAgreed. It's interesting to compare software with other "intellectual labor" like law, government, writing, architecture, philosophy, accounting, and so on. Many of the same problems seem to come up. Programming as a profession is very young, though.
- marincounty 11y agoYou should write a blog.(hate that word, but we're stuck with it I guess?). I think it's human nature to overstate the difficulty of one's profession? I know my father felt being a union electrician was on par with--strike that; he felt electricians were the boy profession worth talking about. As a electrician, I can state it's basically knowing 40 important codes, the right training, and a strong back. It's funny how some fields get the difficult label, and some fields get the easy label. I've always felt a good mechanic, whom can work on any aspect of pre obd2 vechicles, and has a good grasp on today's computers on wheels, don't get enough respect. I belive it comes down to how a subject is taught, and complete honesty. I'll pass this along. Watch repair is not that difficult. In about a year's work of time, and the right tools; the average person could repair watches. Yes, there are odd balls out there, but most high end watches are still using the basic escapement to regulate that train of gears. You open one, and the next one looks familiar. I do find programming difficult though. My front end work, I don't find that difficult. I've noticed each year Programming tutorials just get better. The books get better. I guess I gave the Internet to thank, and honest/benevolent folks who don't mind spreading information?
- rifung 11y ago> I think it's human nature to overstate the difficulty of one's profession? I think there's actually some speculation it's the opposite. I realize there is a lot that's not yet understood, but it seems to point in that direction. See: https://hbr.org/2015/10/its-harder-to-empathize-with-people-if-youve-been-in-their-shoes https://hbr.org/2015/10/its-harder-to-empathize-with-people-... " First, people generally have difficulty accurately recalling just how difficult a past aversive experience was. Though we may remember that a past experience was painful, stressful, or emotionally trying, we tend to underestimate just how painful that experience felt in the moment. This phenomenon is called an “empathy gap.” "