
The Biggest Lies About Learning to Code - awyu
https://medium.com/london-app-brewery/the-biggest-lies-about-learning-to-code-4c7e202a2c78
======
6stringmerc
Useful, and gets under the surface of 'chatter' to some of the guiding
principles that are less than obvious (perhaps) to those interested. I say
this having started in QBASIC and getting to C++ before losing my chops, and
thinking of getting back into it, but not into any rah-rah fantasy about how
learning to write modern code is a ticket to fortune. It's access to different
tool sets, in my view, which is interesting because tools don't make the
product, the person using them does.

------
bunnymancer

        Not everyone should learn to code, just as not everyone should become a chef. 
        Not everyone will need to program, 
        not everyone will be inclined to learn it and not everyone will enjoy it.
    

This bothers me a lot.

I see it quite frequently that "Not everyone should learn to code". Especially
with comparisons to other professions...

As if "Knowing how to code" is the same as "Being a chef"...

"Not everyone will need to program", in the same sense the not everyone will
need to know how to cook?

It's true, you don't have to in this day and age. But for it's bloody helpful
if you do...

Don't get me wrong, not everyone should be a software developer.

But the considering that you use things that run on code every single day, for
the majority of your waking time, it'd probably be a decent idea to know the
basics.

In the same sense that if you are a car driver, having some basic knowledge of
the rules of the road and a basic understanding of physics, while not
necessary to drive, is still bloody helpful.

Now, to comment, as a developer, on the article, it's still good and the part
about tutorials is so very true it hits almost a bit too close to home.

Find a tutorial that assumes you're 5. Learn conditionals, understand them.
Learn loops, understand them. One. Step. At. A. Time.

Also, the first point just isn't true. I've spent quite some time teaching
kids code and Everyone can learn how to code. Even that dyslexic kid with ADD
that's chasing the squirrel during class.

Not everyone can get GOOD at writing code. And being a developer isn't for
everyone. But LEARNING HOW TO CODE, is something Everyone can do.

~~~
danso
Every time a post like this comes up, I make the following points:

\- Learning to code does not mean that everyone should work as a programmer,
just like learning to read and write does not mean that everyone should end up
as a professional writer (or even blogger).

\- For millennia, human societies have done just fine without the literacy we
take for granted today. Rulers could rule without it. And commoners didn't
really have time for it. Plus, no one could afford Kindles.

\- Before mass literacy, the ability to read and write was necessary to be a
scholar or historian. Or part of the clergy. If you didn't want to be any of
those things, you'd be well-justified in not spending a third of your lifespan
(or whatever 12 years is to a pre-industrial-age lifespan) learning how to
read and write, nevermind math.

\- Fast forward to today. Western societies have 95%+ literacy. I don't think
I need to enumerate all the ways we benefit from everyone being able to read
and write, despite the vast majority of people being bad at writing (if
Facebook posts are a loose measurement).

I agree with most of what the OP says but am disappointed that she still has a
too narrow view about the scope of programming. Writing is, on the surface,
the ability to record thoughts on a relatively permanent and highly
distributable medium (compared to oral storytelling). It's a nice skill to
have if you like being able to disseminate your ideas without literally having
to tell it to each person, in person. But literacy's power goes deeper than
that. A poet 500 years ago is able to write about love, and today, those of us
who are literate can know his thoughts and perspectives, even though we don't
know his (physical) voice or even his exact identity, nevermind his place in
society.

The OP is completely right that people underestimate how hard it is for
beginners to learn how to code. I've always thought that once a novice learns
how to use a for-loop, they'll have enough of the power of programming to make
their lives better. I still think that way, though I'm happy if that epiphany
is reached after 10 weeks.

A for-loop turns out not to be that simple when you really think about what it
represents, and there's a lack of easy real-life analogies for defining a
stored block of code to be evaluated _out of your control_. But that's why
programming is so much more than what the OP seems to believe. Someone who can
write well can communicate their ideas to a yet-unknown human audience.
Someone who can program can communicate their ideas to a machine with
absolutely no brains of its own, but with limitless mechanical power.

How is that _not_ a universally beneficial skill?

~~~
Nadya
I consider programming to be on the same level as "knows how to properly
phrase Google searches". It won't make or break your life but it will make it
a degree easier. For better or worse, Google has become a means of finding
information - and finding accurate information quickly is a bonus. Programming
allows you to automate many trivial but time consuming tasks. Even being able
to write a few functions in an Excel sheet can save you _hours_ at your job
(and yes, FWIW I consider functions in excel sheets to be a form of
programming). Everyone should be able to read and write basic programs, and as
you said, people can still leave software engineering to software engineers.

I've easily saved more hours automating small tasks with Javascript (w/
JQuery) then I ever spent learning Javascript & JQuery...

Now on a completely unrelated tangent, please forgive me.

 _> you'd be well-justified in not spending a third of your lifespan (or
whatever 12 years is to a pre-industrial-age lifespan) _

Average lifespan was so much lower back in the day because children dying very
young was relatively common (winters and illnesses, infections from injuries,
etc.). If you made it into adulthood your life span looked to be much of what
it is today (living to be 60-70+ years of age). But you didn't need to be able
to read and write to farm, smith, or tailor. From a young age, your time was
better spent doing minor tasks like gathering eggs from the hens and helping
feed the pigs. So what fraction of your lifetime depends if you mean "average
lifespan" or "typical lifespan assuming you made it through the early years".
:P

~~~
cLeEOGPw
Only a small portion of population would personally benefit from programming
skills without doing it as a job. That means for absolute majority learning to
code would be wasteful.

~~~
Nadya
_> Only a small portion of population would personally benefit from
programming skills without doing it as a job._

I disagree entirely on this premise. Not because it is wrong, but because it
has become less and less true over the past few decades.

Anyone who performs any trivial or repetitive task on a computer benefits from
being able to set up a small (think 3-5 lines thrown in a for loop) script to
automate the task for them and there is an increasing amount of people who
perform trivial and/or repetitive tasks on computers. If it is only an hour
once a week and they can have a small program turn that into a few seconds -
they save 52 hours of doing a mindless, boring task each year. Having 52 hours
to do literally anything else is a personal benefit. Minus time spent on
automating the task of course. [0]

It's death by a thousand papercuts - except most people are failing to see the
papercuts because they don't have an education enough to see what they could
be automating with little effort. They go through their daily routine doing
the same trivial tasks hundreds of times because the possibility of automating
those tasks never crosses their minds.

Are the benefits minor? In most cases, yes. Just like the benefits of being
able to properly phrase your Google searches is also minor.

Leave programming a photo-recognition app to the professionals. The average
person won't need to know how to program that. Creating a small AHK macro that
writes today's date? "Life changing"; actual quote from a coworker. The "life
changing" program?

    
    
        :R*?:mdyy::
        FormatTime, CurrentDateTime,, MM/dd/yy
        SendInput %CurrentDateTime%
        return
    

_> It won't make or break your life but it will make it a degree easier._

[0] [https://xkcd.com/1205/](https://xkcd.com/1205/)

~~~
Jtsummers
> Anyone who performs any trivial or repetitive task on a computer benefits
> from being able to set up a small (think 3-5 lines thrown in a for loop)
> script to automate the task for them and there is an increasing amount of
> people who perform trivial and/or repetitive tasks on computers.

I agree, this is the main reason (nearly) everyone should be taught to
program. I often draw parallels between levels of programming and levels of
mathematics. Not in a sense of understanding, but of complexity, and often
when describing languages.

But I think that's a useful comparison here. Few people would say that
teaching _everyone_ arithmetic is a bad idea. Because being able to count is
essential to surviving in our society (just from handling your own basic
finances). More, but still few, people would argue against teaching everyone
algebra (the high school sort, not the abstract sort). Because it enables
people to take their understanding of arithmetic and extend it with variables,
create more complex expressions and solve them for common problems. Same with
geometry. Trig and calculus are where the "everyone should learn" part stops,
those topics are for everyone who's going into STEM fields, and other (non-
STEM focused) students that are sufficiently advanced and interested.

The parallel to programming:

Everyone should learn basic algorithmic thinking. Writing out a series of
steps and understanding looping and conditional expressions and subroutines.
These are the things that BASIC, shell scripts, and other (relatively) simple
languages provide. These are the skills needed for automating many office
jobs.

Fewer people need to know low-level bit twiddling, network code (to the point
of implementation of protocols rather than application of libraries that
implement protocols).

Fewer still need to understand more complex data structures, more complex
algorithms, and full-blown application development (whether it's server-side,
mobile, web-app, desktop, doesn't matter).

------
thinkMOAR
My boss years back, when he said that the book 'learn C in 24 hours' was all i
needed to learn to code c properly... was the biggest.. for me (now many times
24 hours times days since later, and i still don't master it like how i want
to)

------
josh_carterPDX
Great read. Thanks for posting this.

