Coding is not ‘fun’ – it’s technically and ethically complex
thenextweb.com
thenextweb.com
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).
>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.
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.
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
If being in a hyperfocused flow state isn't fun, Idk what is.
As you age, other life aspects come into play - life partners, kids, taking care of your health, your parents' health, etc...
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 businesses 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.
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).
"Software Engineering" is technically and ethically complex.
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...
Reminds me of some song lyrics:
"There she stood in the doorway,
I heard the mission bell,
And I was thinkin' to myself,
'This could be heaven or this could be hell...'"
-Eagles, "Hotel California"
I think the equivalent here is something like:
stuff = requests.get(“example.com”).json()
print(stuff[“thing”][“I”][“want”])
It’s technically coding, is pretty easy, and potentially beneficial to your life.Same with Excel macros or whatever.
Maybe that person will have a fire lit in them and pursue a software engineering career. Maybe it’ll just be a script on their desktop that cleans up screenshots.
I don’t find that implication insulting even though I’ve spent (now) the majority of my life honing “coding” as a skill.
It’s a mountain to climb, but the first few miles have some pretty nice vistas.
If I memorize one word in a foreign language, am I bilingual?
Here's some rocket science too: t - 10s
I like words to hold clear meanings. If everything is easy because there's one easy thing about it, the word has no meaning. If a coder is anyone who can do Hello World, it's pointless even calling yourself one. It means nothing.
Programming has never had a problem of people thinking it's easy. There are many people who never attempt it because they think it's some impossibly difficult thing that they'll never learn.
Facebook had a commercial where they said something like "we'll hire anyone who can code, it's as easy as learning multiplication tables!" I don't remember the exact quote but those outreach programs but it felt a bit ridiculous at the time.
If you say something is easy and a person fails at it, they'll feel worse when they fail. If you acknowledge it's challenging at first they're better fit to handle it with grit and keep trying. Programming is something you're going to have to fail at continuously before you get it. And if afterwards you say, "see wasn't that easy?" there's no sense of accomplishment.
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.
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.
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.
A month after the code went through reviews and more testing, and was put into production.
Another month later, more than half a million dollars is missing.
After figuring out what went wrong, the issue was quickly fixed and corrected invoices were sent out.
My point is: While it's not like brain surgery, in that every mistake is deadly, some mistakes can have devastating consequences.
But programming microcontrollers for side projects is pure, rocket-fuelled fun.