This is a perfect example of people saying something that's just blatantly wrong in order to get a piece published and the accompanying brownie points.<p>Vannini talks about flow as thought it's some woo-woo that he's never experienced (probably hasn't, given the companies that he's worked at all seem to be larger).<p>>Insisting on the glamour and fun of coding is the wrong way to acquaint kids with computer science. It insults their intelligence and plants the pernicious notion in their heads that you don’t need discipline in order to progress.<p>This is true. But it is also true of football, and nobody says football isn't fun. Football players will do crazy things like squat sets of 20 and drink a gallon of milk a day to bulk up, but nobody says football isn't fun. Nobody says jiu jitsu isn't fun even though it's absolutely brutal in a lot of ways. And so why do we say those things are fun? Because they are sporting and build a sense of accomplishment, and provide the things that humans need to feel like they're growing: building skill and testing it against ever-increasing challenges for rewarding outcomes. Programming offers that too, even if people like Vannini fail to see it. There's a reason people have coding challenges and hackathons, and all other sort of competition and comradery surrounding it, because it is often sporting, and fun to do new things with programs, and to stretch what you can do with a computer.
If you want to take away the glamour of programming, telling people it's technically and ethically complex is exactly the wrong way of doing it. Fun does not mean easy. For some people, fun is only possible if it's technically complex, which can help people overlook ethical complexities. As shocking an idea it may be in our very cynical world, there are people out there that do the jobs they do because they enjoy it, and programmers are likely overrepresented in that group.<p>And ethically complex? Oh boy is that fun. Nothing we like more than morally grey grey hat hackers and people just barely toeing the line of what's right, of antiheroes that think the ends justify the means. And if what they're doing is technically complex, then oh yeah that's awesome. Misunderstood geniuses! Something everyone sees themselves as. The title here really just plays up the glamour and glitz that the article says we should be avoiding
Oof. Gate keeping. 'Be serious or you'll fail!' 'The powers that be are just manipulating people!'<p>If being in a hyperfocused flow state isn't fun, Idk what is.
The problematic thing about code is that it spans the <i>entire</i> spectrum between "five-minute fun project that will never affect anyone but me" and "world-shifting force". I don't think anything else humans do can claim such a wide range of scale. And so the trouble is that - in terms of best-practices, ethical considerations, regulation - ideas and constraints that are appropriate at one end of the spectrum are <i>completely inappropriate</i> at the other end. And at the same time, it's hard to draw a particular line in the sand to separate the two. It really is a continuum.<p>This is why, even though some parts of our world would greatly benefit from certifying programmers the way we certify engineers, it's a really hard thing to do. Nobody builds suspension bridges at home in a weekend. People don't really even start small <i>businesses</i> building suspension bridges. It's really hard to firmly distinguish the code that can accidentally ruin hundreds of lives from the code that's completely harmless and, indeed, "fun". Sometimes the latter even turns into the former over time.<p>Thinking about this more: I wonder if we could regulate code based on number of users. That seems like a good proxy for its impact on the world. Not sure how easy it would be to measure reliably (in a way that couldn't be fudged).
It seems that you haven't had the excitement of figuring out the solution to a complicated problem after hours of work and no help from StackOverflow). For me coding is 'fun' exactly because is technically complex (haven't come across ethic issues on my coding career yet).
"Fun" is not the right word; more like "intrinsically rewarding". It's like asking ye olde blacksmith if he had "fun" forging a high-quality broadsword.
Coding is a broad spectrum. I think of the bootcamp crowd as the blue collar version of coders. They're learning a trade to make a living. I doubt many of them end up in roles with much technical complexity the first few years.
Although I disagree with the title of this essay, I think it's very well written and makes many excellent points...<p>Coding could be either fun or work, it could be heaven or it could be hell (note that this is true about just about anything in life) -- what makes it one or the other is a complex set of conditions and circumstances... I have experienced it firsthand being both, just at different times, in different circumstances, under different conditions...<p>Reminds me of some song lyrics:<p>"There she stood in the doorway,<p>I heard the mission bell,<p>And I was thinkin' to myself,<p><i>'This could be heaven or this could be hell...'</i>"<p>-Eagles, "Hotel California"
I'm not sure Formula 1 race car drivers consider racing competitions "fun" because it's physically and mentally exhausting and stressful when you don't win, which is a lot. However, going for a leisurely drive is fun. Rearchitecting a large program is not fun, but hooking up actions to html buttons with JavaScript can be fun. Introducing large numbers of people to this is a way to find the ones with apptitude who get hooked and want to go deeper.
I've always thought the view that "coding is easy" is a bit insulting to those who worked hard to learn to do it well. Sure, there are certain concepts in coding that are easy. But isn't that the case with everything? It depends on what you're building and if the person has a general interest. The idea that was pushed by Facebook and others that its as simple as memorizing multiplication tables I always found deceptive and ridiculous.
My first thought was "Right lets keep this pretentious utter prat far away from coding or management of coding."<p>The "ethical arguements" are frankly complete twaddle and long discredited luddite fallacies. Do you think your laundry should be performed by servants in pointless labor that could easily be subsitited with a washing machine using less water, time, and fossil fuels than transporting the workers? Even if you could afford it would be gratituous waste in the name of a dumb goal of shrinking the labor pool.<p>Involving more people doesn't in itself make a process any more or less ethical than stoning a person to death by a village is more ethical than a single executioner. It is the end goals and the means taken towards them that matter along with the efficiency.<p>The technical complexities are what make it fun akin to a puzzle. That is just a human thing about overcoming achieveable obstacles. Lifting a trivial weight isn't fun nor is straining to lift something beyond your capabilities completely but between the two? Yeah that activity is enjoyable. In all sorts of domains.
Yeah and it annoys me that software is churned out at break-neck speed, leaving the window open for vulnerabilities due to lack of testing or a complete lack of defense-in-depth or formal verification[0]<p>[0] <a href="https://en.wikipedia.org/wiki/Formal_verification" rel="nofollow">https://en.wikipedia.org/wiki/Formal_verification</a>
I don't like the comparison of software engineering to brain surgery and structural engineering. The biggest difference between the professions is how bad the average screw up is: most mistakes in software are completely harmless and can be tracked down and fixed in under an hour with little to no consequences. There are obviously exceptions, especially with business or security critical code, but for the most part mistakes are easy to deal with. With surgery or structural engineering, however, once you make a mistake there may be no good way to fix it, possibly resulting in hundreds, thousands, or millions of dollars in losses and/or death. Very few software bugs have the same implications, and this is why there is more general levity.
The author is correct, when interpreted as speaking about work. A great deal more of code that is written should be done in a less fun way, or not at all, for all our safety.<p>But programming microcontrollers for side projects is pure, rocket-fuelled fun.