
Effective Learning Strategies for Programmers - nicholasjbs
http://akaptur.com/blog/2015/10/10/effective-learning-strategies-for-programmers
======
xiaoma
The research promoting a growth mindset hasn't proven to be nearly as robust
as many had hoped. It's starting to look like there's a very real possibility
it's spread so far merely because it's something people _want_ to be true.

Psychology research has had a pretty dismal track record in terms of
reproducibility ([http://www.vox.com/2015/8/27/9216383/irreproducibility-
resea...](http://www.vox.com/2015/8/27/9216383/irreproducibility-research))
and the growth mindset dogma in particular has been facing more and more
robust criticism. Carol Dweck's work is far from the final word on the matter
that this blog post portrays it to be.

[http://slatestarcodex.com/2015/04/08/no-clarity-around-
growt...](http://slatestarcodex.com/2015/04/08/no-clarity-around-growth-
mindset-yet/) [http://www.amren.com/news/2014/04/yes-iq-really-
matters/](http://www.amren.com/news/2014/04/yes-iq-really-matters/)
[http://www.amazon.co.uk/Intelligence-That-Matters-Stuart-
Rit...](http://www.amazon.co.uk/Intelligence-That-Matters-Stuart-
Ritchie/dp/1444791877/)

Ironically, focus on a growth mindset may actually distract people from doing
things that actually _do_ have reproducible research showing they lead to more
mental horsepower (e.g. regular aerobic exercise).

~~~
KurtMueller
> Ironically, focus on a growth mindset may actually distract people from
> doing things that actually do have reproducible research showing they lead
> to more mental horsepower (e.g. regular aerobic exercise).

Can you point me to you resources regarding research-backed
activities/exercises? Thanks!

~~~
xiaoma
[https://scholar.google.com/scholar?q=google+scholar+exercise...](https://scholar.google.com/scholar?q=google+scholar+exercise+neurogenesis)

------
hacker_9
_If you have a fixed mindset – you believe that people are either smart or
they’re not, and they can’t really change that – then you also tend to believe
that if you’re good at something, it should be easy for you, and if something
is hard for you than you must not be good at it. That’s a fixed-mindset view.
People who have a growth mindset believe that you need to exert effort and
work hard at something to become better at it._

I fully agree with this, and I think the problem is schools too easily trap
people into fixed mindsets. There are so many exams in school that if you
constantly get medium to low scores it's easy to think you just aren't smart.

I learnt programming as a hobby outside of school and fast forward to today
and I am a software developer with a 1st degree in compsci. When I look back
and wonder why I found programming so much easier than school subjects like
math/geography I realise I hated the system more than the subject. The
constant dull drills, working through equation after equation. All to pass the
next exam and then forget. As I wasn't good at them I just decided that I
never would be.

Now that I am older I realise that mindset is ridiculous. So as a test, about
a year ago, I started practicing memorising all the countries in the world
(using Anki[1] flash cards, which I flick through at work whenever I am
waiting for a build to finish!), and these days I can literally zoom over the
world in my mind and name 90% of the countries. I also started using an abacus
to see if I could get my brain to instantly solve math equations just by
looking at them [2] and am having some success. I sometimes wish I could go
and tell my younger self to skip school but there you go hindsight is 20/20.

[1] [http://ankisrs.net/](http://ankisrs.net/)

[2] [http://www.theguardian.com/science/alexs-adventures-in-
numbe...](http://www.theguardian.com/science/alexs-adventures-in-
numberland/2012/oct/29/mathematics)

~~~
lfowles
> I fully agree with this, and I think the problem is schools too easily trap
> people into fixed mindsets. There are so many exams in school that if you
> constantly get medium to low scores it's easy to think you just aren't
> smart.

Heh. Not related to there being too many exams, but the second part. Almost
changed majors from EE/CmpE to something... softer after the first Calc test
in my first semester. Got a 60% on it because I didn't know how to study from
highschool. (Freaked me out enough that I studied well enough for a 100% on
the next test.)

For continuing education, I attempted doing an online program offered through
my alma mater for an EE masters. The course format didn't really fit me or the
online format well, but I've found the textbooks themselves incredibly useful
for self paced study.

Does anyone have any Computer Science, Electrical Engineering, Computer
Engineering textbook recommendations? I'm working through Microelectronics by
Sedra/Smith right now, to be followed by Art of Electronics 3e, but I don't
know what I don't know. Any textbooks that will change my fundamental view on
electronics and/or programming?

~~~
natdempk
Could you go into more detail about how you actually learned to study and what
your technique is now for studying? I'm always curious how other people go
about learning things, specifically about how they test mastery of knowledge.

~~~
lfowles
I sit down and read through the textbook, taking notes on anything that seems
remotely important, doing every exercise and problem set (preferably those
with answers). I try to really grok the material and integrate it with
existing knowledge before moving on. Much slower pace than any of my college
courses, but I'm really starting to pick this up.

When I get bored of this, I play some games :) Or switch to another topic
briefly.

As far as testing mastery, my only test is if the material in the book starts
to become more intuitive. If I can do the calculations in my head or figure
out the relevant formulas and equations without referring to old notes. I've
also thought about setting up Anki, but for circuits it seems like a lot of
work to figure out how to make usable cards.

------
tunesmith
A lot of this advice seems mental/emotional, but as far as tactical approaches
go, I think it's important to actually practice, like how a musician does.
Like when you're not at work, actually practice doing things like set up a git
repo, create a random silly MVP from scratch, solve a one-hour problem in a
new language, practice a new programming technique, etc. Or, practice while
pretending you have an audience, and if you get hung up on something, learn it
until you wouldn't get hung up the next time.

~~~
danieltillett
Yes practice is the key, but don’t just spend your time doing the software
equivalent of scales, actually try and build something that is difficult and
complex. I have always learnt the most when I am trying to solve real problems
rather than toy problems, plus I am more motivated when I know the effort is
going to result in something useful.

~~~
clay_to_n
I mostly agree, but for some types of projects I think the initial setup phase
can be worth doing as a scale, because it's important and often under-
practiced.

Server deployment, setting up a build system, wiring up some system that you
know you'll do again, etc - there are benefits to knowing a process that
works, rather than stumbling through it each time and thinking it's magic.
Another thing that helps is just writing down all the steps you did, after
going down a windy path that eventually worked.

~~~
danieltillett
I agree 100% with documenting what you did when setting up a system/server. I
do this (most of the time) and the ability to go back and look at what was
done is invaluable. I just wish I did it more often - I something think
something is so obvious that I don’t need to write it down and 6 months later
I kick myself for being so lazy!

------
tbrownaw
Fixed vs growth mindset is BS. It completely misses the point. Find a way to
_play_ with whatever it is that you want to learn. The more fun you have, the
more you'll almost-magically get better at it. No need to have personal pep
talks to convince yourself to go bash your head against the wall one more
time.

Whether you _can_ learn isn't the issue, whether you _do_ learn -- and how
much time and annoyance you have to put in -- is what matters.

~~~
euske
I think the problem is that what you want to learn is not always fun all the
time. At some point you'll hit the wall and you have to overcome it (I admit,
however, it never happened to me in programming, but for example I hate
driving while I have to get better at it). It's tempting to make an excuse
like you're simply "not built for it" \- so that you can give up without
feeling bad. That is a harm of the fixed mindset as far as I understand. I'm
not saying that people should feel bad all the time, but the "nature" excuse
is sometimes a slippery slope.

~~~
agumonkey
There should be more research in meta-learning. How to learn things that
eludes you far too much. Rewire your views deeply. And how to perceive
'progress' while interacting with blind spots.

------
ryancox
I've found Richard M. Felder's [1] research in this area useful. He makes a
compelling argument [2] that one size does not fit all and describes a
taxonomy of learning styles. Understanding my own learning style [3] has
helped me optimize the way I go about coming up to speed on new topics.

[1]
[http://www4.ncsu.edu/unity/lockers/users/f/felder/public/](http://www4.ncsu.edu/unity/lockers/users/f/felder/public/)

[2]
[http://www4.ncsu.edu/unity/lockers/users/f/felder/public/Pap...](http://www4.ncsu.edu/unity/lockers/users/f/felder/public/Papers/LS-1988.pdf)

[3]
[https://www.engr.ncsu.edu/learningstyles/ilsweb.html](https://www.engr.ncsu.edu/learningstyles/ilsweb.html)

------
quietplatypus
Also, I find that being able to read code is super important. The faster you
can read code and get it, the faster you understand new ways of doing things
that actually are backed up under the hood by things that run.

This kills the incompetence.

------
quietplatypus
That's especially true about the 10x programmer---I don't see people talking
about how they saw a 10x programmer doing <X>, and how that factored into the
10x, I just see admiration, envy, disdain, etc.

------
voltagex_
_If you’re on the lookout for places where your mindset might be fixed, you
should be listening for sentences that start like this. Things like “I’ve
never been good at CSS” or “I’m not a people person” or “Some programmers are
just faster than others.” Anything that starts with “I am …” is a candidate.
The word “just” is often present._

Oh my. I've never really been able to quantify this kind of thinking.
Fantastic article!

------
icpmacdo
This is up there with some of the best conference talks I have watched online

[https://www.youtube.com/watch?v=Mcc6JEhDSpo](https://www.youtube.com/watch?v=Mcc6JEhDSpo)

------
invisible_dust
I doubt very many people on this site need to be told how to study
effectively.

~~~
detaro
I wouldn't be surprised if many people here did mostly things that felt
relatively easy for them (because it fit their talents and/or was fun to
learn) and can achieve a lot just off that.

