
Ask HN: Do you get impatient when learning new things? - csbro
I get really impatient when learning new things. I tend to want to finish reading the book as fast as possible, which means I end up not doing the practice exercises. Sometimes I just give up because the book is too long.
Also, because I&#x27;m always thinking of the million other things I need to learn, I can&#x27;t really focus on what I&#x27;m learning.
Every time that happens it makes me depressed.
How would you deal with this issue?
======
OrangeTux
TL;DR: Just start.

I've this too. When I learn something new like a language I often want to do
it right, like be "pythonic" when learning Python. It can take long for me to
write some simple piece of code because I'm constantly doubting if my code is
pythonic. And when it takes to long I lose focus and I stop.

The same thing applies when I started a little Go web app, Go was rather new
for me. I decided to use Docker and wanted to have a perfect solution with 3
containers(Nginx as reverse proxy , web app and API), auto rebuild and
autoreload in developement mode etc. Than I started with writing in Go and
everyone had to be tested perfectly, so I was looking for how to test things
and how to run tests automatically after saving a file.

These things slowed me down to a point I where stopped. What did I want? I
wanted to learn Go. What did I achieve? I learned how to create have
production setup for a web app and api in Docker, I learned something about
test suites in Go and I was frustrated because another learning project
failed.

My advice, just start your project. You can't do it perfect because you want
to learn it!

~~~
JuanSoto
> I've this too. When I learn something new like a language I often want to do
> it right, like be "pythonic" when learning Python. It can take long for me
> to write some simple piece of code because I'm constantly doubting if my
> code is pythonic. And when it takes to long I lose focus and I stop.

Exactly my current situation with Clojure.

~~~
insamniac
Mine as well.

------
onion2k
Stop thinking of learning as something you do _before_ you can do what you
want to be able to do. Think of it as a range of things you practise over and
over again in order to develop a skill. For some skills that learning process
is something you might do _forever_ (in my opinion coding is firmly in that
category).

For example, if the skill you want to learn is mountain climbing it's useful
to read a few books before you climb a mountain - but what you get from a book
is information to think about, not the skill to actually go out and do it. You
learn mountain climbing by practising climbing mountains over and over again
(preferably with a mentor). Every skill is like that - if you want to be good
at it, keep doing it.

One more thing: If you _really_ enjoy something you'll enjoy the process of
getting better more than the end result, so if you don't enjoy it while you're
rubbish at it you won't enjoy it when you're good at it either. Don't struggle
with learning something hoping that you'll love it later. You probably won't.

------
robotnoises
All the time. I deal with almost constant anxiety over how my time is spent,
even to the point where I can't always enjoy leisure activities. I don't know
what drives this. I am not an overly competitive person and already have a
decent job where people respect me and my abilities as a programmer, yet I
rarely spend a waking moment not thinking about all the things I could be
grokking.

I guess what it boils down to is that a lot of my self esteem is derived from
being knowledgable and resourceful. It really embarrasses me when I don't even
have a shallow depth of knowledge about a subject matter that could be
potentially useful.

I don't really have much advice for you because I haven't really solved this
one for myself, but one thing I try to do is concentrate on very short term
goals. For example, when I was learning Angular a few years ago, I knew going
into it that I wouldn't "get it" right away. After a few frustrating days I
decided to break-up my learning into small goals, e.g. "what are promises and
how do they work?" "What is the syntax?" "When should they be used?" I tried
to avoid unrelated documentation and stack overflow posts because I knew that
it would lead me into rabbit-hole after rabbit-hole. I wasn't 100% successful,
but it did help me block out some of the cognitive dissonance.

The only other thing I'd say is that even though this is frustrating, I like
to think that your anxiety is actually a good thing if you learn to channel it
constructively. It's a good thing to want to know about a lot of stuff!

~~~
serverholic
I'm right there with you. My motivation comes from a combination of self-
esteem and a large amount of curiosity.

I've found that constant progress is key to keeping engaged with learning.
It's tempting to try and learn multiple things at once but each new thing
slows down progress exponentially. It's much easier to focus on one thing and
get a constant stream of little victories.

------
yankoff
The trick that helps me is to do a iterative deepening learning. For example
when you are reading a long book on a complicated topic, don't try to study
every chapter perfectly before you move on to the next chapter. Things will
fall off your head pretty quickly anyway. Instead, I would quickly skim
through the book, get familiar with the main ideas and concepts (but not too
deep into the details). Then on the next iteration I'd go deeper. You'll find
that some chapters will require more iterations and some not. Also try to
identify the important parts of knowledge that you need to learn and focus on
that.

~~~
klez
I don't know, this somehow seems to ignore the case when chapters rely on
something that should be clear from previous chapters. It happened to me a lot
when I was at University that I'd think to just skim over a chapter, poorly
understand the following one and that would snowball as soon as I reached the
end of the book.

~~~
yankoff
That would mean you went deeper in this chapter than in the previous one. The
first fast iteration is really to get familiar with the main ideas and
terminology. For example if it's a book on algorithms, you skim through it and
understand what is linkedlist, what is tree, what is graph, their running time
but _not_ the details of implementation and certainly not exercises. Then on
the next one you try to understand basic implementation, but still not doing
any exercises. Then on the next one you try to implement them and do some
exercises. That's fun, keep you moving, refreshing your memory and it doesn't
feel like you've been reading this book forever and still on the 3 chapter.

------
drivers99
Progress is made by consistently working at a thing every day. If I were you,
I would choose one topic (for example, a specific programming book) and keep
track of what that one thing is that you make progress on every day. Have a
good reason for choosing that book so that you can be motivated; remember why
you started that book or whatever it is. If you try to learn other things
besides that the rest of the day, and those things change with your mood,
that's fine. Just have that one topic you're learning be something that you
don't change, or at least change consciously when it's the right time
(finished book, or your reason for starting it is no longer true). Spend at
least 1 minute every day on that. (I mention only 1 minute because it builds
the habit, and you'll usually end up doing more. But if you don't do at least
1 minute, you could go years without doing it, or not do it at all.) You might
want to make that 1 thing something you do first thing in the morning, if
you're a morning person. There is less chance that something will disrupt your
routine that way.

I should start following this advice myself.

------
nicky0
Find a little project you want to do using the technology. For example if you
are learning Python, come up with a little program/website idea you want to
make, and do it in Python. It's always easier to learn "as you go" rather than
just reading a book in isolation.

~~~
bluetomcat
For a skilled programmer who is fluent in a couple of other languages, I
actually think that is counter-productive. Better take your time to learn that
new technology properly in its entirety and then start playing with it. This
way you will have a complete mental model of that technology in your head and
you will be more likely to do stuff properly from the first try.

~~~
camperman
No man. The OP has it dead right: find a small project, write it in your new
language, struggle a bit but get it finished. Then go back and see where you
could be more idiomatic and improve those parts. Or do another small project
but with more knowledge behind you this time around. This is the philosophy
behind for example, SICP: "you don't learn Scheme, you use it."

~~~
zelos
In my experience, a combination is best. Reading gives you the broad scope,
doing gives you detail, repetition and context.

------
logicallee
I get incredibly frustrated with 1) people who "design" (and I use the term
very, very loosely) the actual tools you're learning, and 2) then even more so
for the people who teach the tools, as though it's the only thing that existed
- even though any member of the target audience _has_ to know a thousand very
closely related things, so that honestly you could just point out the 5 tricky
things.

For point 1 - things should be like Python, not like resolving dependency hell
in the 90's. Installation should be a double-click. Errors should not be easy
to make, it should be obvious what things do, and error messages should be
obvious. The people who design tools don't care about any of this stuff.

For point 2 - honestly, 99% of people - as in, 99 out of 100 people, who pick
up a Rust tutorial have programmed _literally_ 4 other languages - they have
written working lines of code in 4 other languages. Look at this shit:
[https://doc.rust-lang.org/book/](https://doc.rust-lang.org/book/) (open the
menu at top-left) - Guessing Game! The Dining Philosophers! "Let’s set up a
new project. Go to your projects directory. Remember how we had to create our
directory structure and a Cargo.toml for hello_world?" in just as many words
that your poor audience has to read through you could have said: "semicolons
terminate statements; blocks in curly braces; module import is use
module::submodule::symbol; comment with // or /* */ which can nest." Look very
very closely at my two strings in this paragraph: they contain literally just
as many characters.

You could start by summarizing go in a sentence and get people going, not
trace it back to the ENIAC. I hate this GOBS and GOBS of time people assume we
have.

And back to point 1, tool writers assume we have like infinite time to follow
27-point directions that could be 100% automated. And tutorial writers assume
we have infinite time to read all about the history of the world. I have to
watch YouTube videos at 2x speed so that they're sounding like they're
rapping, just so I can get to all the stuff I don't need.

Get to the point, people. Not everyone has a picnic following directions that
shouldn't even exist.

~~~
maxerickson
_1, tool writers assume we have like infinite time to follow 27-point
directions that could be 100% automated. And tutorial writers assume we have
infinite time to read all about the history of the world._

An alternative explanation is that their audience is wider than your stated
99%.

Somewhat ironically, if you scroll down ~20 lines on the Rust book page you
linked there is the deep water you are demanding.

~~~
logicallee
I don't think, for example, "semicolons terminate statements; blocks in curly
braces; module import is use module::submodule::symbol; comment with // or /*
*/ which can nest." is deep water. The tutorial has to make a decision: does
its audience know what a loop is, or how to even think about an algorithm that
would use it? If the audience doesn't, then it's not a Rust programming
language book, it's a Beginning Programming with Rust book. If the audience
does, then they just need to be told the syntax.

Even when they ostensibly do that, "The main concept that makes Rust unique is
called ‘ownership’. Consider this small example:" could be better-stated as a
difference between Rust and (list the languages that don't have it.)

Tutorial authors and tool authors also waste INCREDIBLE amounts of time
through dishonesty. For example, Functional Programming like Haskell is
largely defined by the hoops you have to jump through syntactically and in
program structure due to what it avoids. But a Haskell tutorial will NEVER
make it obvious within the first two minutes that you are doing something
fundamental different from C, Java, Python, C#, Perl, whatever - and that it
has a whole concept, monads, just to get around this artificially imposed
self-limitation.

They're just dishonest, waste incredible gobs of time, and don't get to the
point.

When was the last time you picked up a language book that made it completely
obvious in the first minute what it was and wasn't suited for, how many hours
you would need to practice it before you made progress, and what the absolute
bare minimum number of minutes you would need to invest before you could start
doing anything in it was? It's a guessing game. "Wow, this only took me two
minutes!" (json). "Wow this took me two weeks and I still can't do shit!"
(haskell)

I Googled "I tried learning haskell for" to report on what I found. There
happens to be one hit on that exact syntax. Guess how long the guy "tried"
learning haskell for? A few months.

~~~
maxerickson
This gets back to the thing where the author (probably necessarily) has to
write for a wide audience.

Someone who enjoyed math in various school classes will probably understand
the basics of functional programming faster than someone who only worked their
way through it. So one of them might be just as angry as you are at the bad
advice in the front matter of the book.

------
imron
I get impatient with learning materials in video rather than text form.

I can read considerably faster than you can speak. Please just give me written
materials.

------
ajuc
I have sth similar. Only noticed after I've seen how my wife learns. She does
it depth-first (won't move to another subject till she knows every little
detail from the first subject), I learn breadth-first (a little of everything,
skimming the books, then I try to do sth and look up the details as needed).

I think for IT breadth-first is better at the beggining, but you can stay
half-competent for too long if you never bother to look up the detais that
weren't needed so far (my main problem).

------
Davetron
I did a great course earlier this year on Coursera called "Learning How To
Learn"

It's pretty short but covers some good strategies for learning that are backed
up by current Neurobiology research.

[https://www.coursera.org/learn/learning-how-to-
learn](https://www.coursera.org/learn/learning-how-to-learn)

~~~
bmay
Could you share some of those strategies?

~~~
Davetron
Sure. There are loads of things to cover but I'll outline the ones I found
most useful. Some of them are common sense but sometimes that ain't so common
;)

 _Avoid procrastination_ 1 - Set aside time to study a little and often rather
than trying to do huge sessions. Cramming doesn't work, your brain doesn't
like it. 2 - Turn off your phone, shut down those facebook/email/reddit/imgur
tabs so they're not tempting you. 3 - Don't get disheartened by thinking about
the whole topic at once. How do you eat an elephant? One little bite at a
time. 4 - Just get started, even for a few mins. You'll get into the flow
after just a few mins.

 _Take your breaks_ 1 - Recall is greatly improved by taking a short breaks to
let your brain digest the material you're learning. 2 - Try the pomodoro
technique. Focussed work with zero distractions for 25 mins, then a 5 min
break, repeat. For coding I prefer a longer work period to load the problem
into my noggin but YMMV.

As part of the course we had to do up a few small blog entries explaining the
material. Another good point: re-explaining the subject cements your
understanding of it. Feel free to take a look at mine, I go into a bit more
detail on the above items
[http://learnsmarternotharder.blogspot.ie/2015/01/so-much-
to-...](http://learnsmarternotharder.blogspot.ie/2015/01/so-much-to-learn-so-
little-time.html)

------
erja7050
I have the same problem. What I do when learning new techniques by studing a
book I progress a project in the same pace as I read the book. For example
right now i'm learning about the MEAN-stack, so I picked up a book that seemed
good and read the first chapter about setting up and creating a dynamic site
with express and node and I didn't continue reading before I was done with my
own site for my project. This forces you to really studie each chapter and
it's more fun then just reading the book!

When studying more general subjects it's not always easy to come up with a fun
project and the books are usually not structured in a way that this techniques
works. In those cases I try to find a good course online with a lot of reading
material or a recommended course book because just watching videos and doing
exercises is usually not enough to really learn the subject for me.

------
tokenadult
I am surprised that no one has mentioned ADD/ADHD yet in this thread, but
maybe that takes patience. If all the ADD/ADHD self-rating scales were boiled
down to just one question, that question would be "Are you easily distracted?"
If you are easily distracted, focus your attention long enough to see if a
medical appointment might be helpful for you.

How I come to give this advice here is that years ago, a participant here on
HN described how his programming career struggled until he got medical
treatment for adult ADD. Now he can learn more effectively on the job, and he
makes a lot more money with a much more stable employment history. You owe it
yourself and to anyone else who has helped you develop as much as you have so
far to check your attention regulation so that you can be as healthy and happy
as possible.

------
serverholic
Maybe try a more iterative approach to your learning? Try to skim a chapter
and then start on the practice problems. When you get stuck go back to the
chapter and find the relevant passage.

It might not be as efficient as reading the chapter all at once but I think
you'll feel like you're making continual progress by tackling the practice
problems sooner.

As someone who has an extremely low attention span I've found that continual
progress is the key to sticking with something. This is also why I try to only
learn one thing at a time since you progress much faster than trying to learn
multiple things at once.

------
paulrpotts
I have this trouble with mathematical topics in isolation. It bit me in school
as I was very good in most of my classes, but when I had to learn (for
example) trig identities, and various rules in calculus in order to slog
through problem sets, free of visualizations or some kind of real-world
problem, my eyes would tend to glaze over. It has hit me in Haskell because I
have tried very hard to understand some of the mathematical formalisms
associated with monads, etc. but learning those in the abstract, from a page,
without actually writing code to solve a specific problem, was very difficult
for me. It's frustrating because I'd _like_ to be the kind of guy who can and
does work through a pure math textbook on category theory or linear algebra or
whatever, just for fun. But apparently I'm not. I learn best by actively
beating my head against a real programming problem. If this is a programming
thing you're trying to learn, my suggestion is to keep it tied to a real
program.

If it is really severe, consider being evaluated for adult ADD. I probably
have this in mild form and also what might be considered the opposite,
obsessive compulsive personality disorder, which results in me veering between
wanting to understand _everything_ and working obsessively on _one_ thing
trying to get it textbook-perfect and understand it completely. This
combination often intersects well with the requirements for my work but
sometimes... not so much, as I either insist on solving a problem better that
is already working well enough, or considering a whole range of possible
approaches when I really just need to complete one, and quickly.

~~~
ZeroMcMuffin
I struggle with this as well. I have difficulty maintaining high arousal and
curiosity with mathematical topics in isolation. I think it is harder because
I can't always see a path to applying the concepts to interesting problems.

------
eddd
I had the same problem. How did I solve it? First of all, I don't learn new
stuff just for sake of learning new things - I am always trying to solve a
problem, even the simplest one. Create simple requirements and keep trying to
achieve your goal as soon as possible. Once your tests (even ugly ones) pass,
you can start refactoring and make your code idiomatic for a given
technology/language. At least it's my way of doing things.

------
fsloth
Sounds familiar. Nowadays when I really want to learn something I write
everything down to a notebook, sometimes copying paragraphs verbatim. Seems to
work for me.

------
gdubs
Have you heard of mindfulness, or Zen meditation? It's the practice of
sitting, quietly, without thought, focused on your breathing. The general idea
is to quiet the mind and to be focused on the moment we're in.

I've found that when I meditate for even just a few minutes a day, I'm much
more focused and less distracted -- more focused on what I'm presently doing,
right now.

------
batou
Sounds like you're broken. I was once too. Couldn't focus on anything. This is
a good cure from experience:

[http://www.open.edu/openlearn/education/learning-how-
learn/c...](http://www.open.edu/openlearn/education/learning-how-
learn/content-section-0)

------
herghost
I used to be exactly like that. As a consequence I never really picked up any
in-depth knowledge through school because hitting the basics was usually
enough to "get the grade" and there was precious little "reward" (of whatever
form) for pushing it further.

When I was 18 a tutor - who I didn't really know well - said to me in passing,
and seemingly pretty randomly, "Your problem is that you want to run before
you can walk with everything."

I had an epiphany over that and slowed down my "gets" for small, insignificant
objectives and spent the time trying to really understand things.

From that point on I actually learned how to program properly rather than just
doing enough to get by, for example.

As I've gotten older I've learned that my chasing the "gets" was a self-
imposed restriction because there was always a small but sufficient reward for
the accumulating of praise, etc. I've taught myself to very stringently
prioritise (recent book suggestion: Procrastinate on Purpose) and categorise
the things I "have to" do and instead of doing a hundred things that don't
really matter (but they were easy and I get a "thanks") I work out which
things I "have to" do will actually add value and make a difference, even if
achieving them will take much more effort.

As my career has developed I've moved into being a specialist and now find
myself coming back out into being a generalist but the "real" grounding in my
skills sets me apart from "career generalists" and "credential whores" that my
industry is plagued with nowadays.

EDIT: thinking about it, this "get" behaviour started when I was in junior
school. I used to read encyclopaedias for facts and tell people. My parents
used to praise me for what I knew, and my friends jokingly called me an
"information magnet". I liked my cursory knowledge of "everything" and I guess
I became addicted to it.

------
utefan001
It really helps me when I am learning something that is a ton of fun to learn.
The OSCP cert may not be exactly your area of interest, but I guarantee you
will have fun and gain a ton of confidence in your technical skills. OSCP
teaches you how to do security pen testing. It has been so much fun and so
addicting that I often struggle to pull myself away from the computer until
3AM. Many of the tools I use are written in python and ruby. It will also
teach you to take the responsibility to write secure code very seriously.

[https://www.offensive-security.com/information-security-
cert...](https://www.offensive-security.com/information-security-
certifications/oscp-offensive-security-certified-professional/)

------
angdis
Why are you thinking of "a million other things" you need to learn?

That's the core obstacle these days to picking up new skills and knowledge.

Mastery of any subject-matter ALWAYS takes practice and repetition. Simple,
but those things require sustained repeated investments of your time and
attention.

------
clayh
Here's what I do... I have a relatively-simple pet project that I understand
thoroughly. When I decide to learn a new language, I do so by reimplementing
the project in the new language. That way, I have a structure to the learning
based on the project I fully understand. I then read/skip-through/hop-around
books and other learning resources as I need to understand various components
of the language to implement the features on the project. Here's one example
implementation of it, which I need to write anew to learn Swift:
[https://itunes.apple.com/us/app/pyramids/id589550650?mt=12](https://itunes.apple.com/us/app/pyramids/id589550650?mt=12)

------
nexus9
My strategy is more or less to start by figuring out the structure of a text.
This may be in the table of contents, introduction, index, chapter sections,
or subsections. I generally scan the text as fast as possible to find all the
essential points of interest, marking them down for future reference. What I
do after this point is likely different than most. As every text I read is
digitally formatted, I don't actually try to remember or deeply understand
much at all on my second pass through the material. Instead, I will open a
text editor and copy and paste the passages that strike me as most essential,
retaining as much context as necessary to retain the original meaning. On my
third pass, I will restructure the extracted content, cutting out the
redundant parts, re-mixing, or re-expressing them until each chunk I want to
remember is accessible and concise. This completes what I'd call the
conceptual phase of my reading, which takes a fraction of the time it would
take if I were attempting to understand the work using a more linear or
comprehensive approach.

There is still much I don't understand at this point. This is natural since I
haven't had an opportunity to apply the information to a personally meaningful
context. This is the point at which I begin the practical phase. As most of
what I need to know is documented in my notes, I will keep it on hand as a
memory queue as I engage with specific questions or problems that interest me.
And so when an issue comes up that I can't settle, I refer to the notes and
also search around online to find out how I should apply the content in that
particular problem situation. It's over the course of this process that I
internalize the most vital details. That's where the learning happens, at
least for me.

Another advantage to this approach is that you will have a type of mnemonic
device to reboot your knowledge. As most people forget practically everything
shortly after moving on to new subjects, it's critical to have a way to index
the information you don't want to forget in the future. Something along the
lines of a "memex" (or external memory system) is a good metaphor for what I'm
talking about.

------
arc_of_descent
I'm currently learning Clojure by reading the Clojure Programming book. Its
really been a struggle. You're right about the impatience part. I think
everyone goes through it at one point or another.

Especially with learning a Lisp language, you can be really frustrated by
having to read so much before you can actually create something.

But slowly and surely I'm learning. I just re-read the chapter(s) I don't
understand over and over again.

So my advice is don't try to skim over a whole book. Try reading as slow as
possible, and if you don't understand something, take a break and then get
back to that same shit once more. And of course, write some code as soon as
possible.

------
amelius
Just pretend that you are back in school and have exams at the end of the
semester.

------
ninjakeyboard
my 2c - I'm a very passionate learner - a softtop engineer (eg no education)
who got where I am through the blood sweat and tears of personal drive and
learning on the go. I'm a decent engineer now, and have really figured out
what works for me so this is my current perspective on approaching learning.

The practice is important. I plow through books too but you need a project to
become proficient. I bought a laptop and started working on some small scala
projects on my laptop and reading books. That was enough to let me submit some
janky scala for an interview and land a job as a scala engineer.

Some material is harder to learn, some of it is easy. I think it's better to
defer reading books for a bit and get some familiarity with the basics so you
have a point of reference while reading. The other day I was assigned a pretty
big feature with a piece of the domain I wasn't too familiar with. I spent a
few days writing a parser to get closer to the spec before starting to work on
design docs etc. Having the familiarity then allows me to make sense of the
research and existing design documentation so I think having a point of
reference is a really important part of the reading/learning. If it's too far
away from my current experience, I can't draw new pathways so it just falls
out of my head. If I have that basic seed, I can grow some new pathways and
expand my position with reading etc.

Ultimately, I think the best way to learn is to actually present the
information again to other people. This is the culmination of practice and
research together. To write a detailed article on a topic, you'll have to both
write the code and also do a lot of reading. Any gaps in your knowledge you'll
identify while you're writing and then it's a simple bit of google-fu to get a
really solid level of understanding on a topic as you fill out your article.

Re-implementing things is also a terrific way to expand your knowledge. If you
read a pattern book, you'll have some high level understanding of how the
patterns fit together. Once you apply the pattern once, though, you'll never
forget it and you'll see how it works at a very different level. So couple
that with writing an article, etc, and it's a super effective approach to
learning.

------
happyhippo
Same problem here. I want to read so many things that i come to learn nothing
:(

------
__m
I would try to reduce the pressure. Are you genuinely interested in the things
you _need_ to learn? Doing the exercises will significantly increase the
things you'll be able to recall. Maybe Mindfulness meditation can help you
[https://www.youtube.com/watch?v=3nwwKbM_vJc](https://www.youtube.com/watch?v=3nwwKbM_vJc)

[https://www.youtube.com/watch?v=ITTxTCz4Ums&t=21m30s](https://www.youtube.com/watch?v=ITTxTCz4Ums&t=21m30s)

------
lourinaldi
Maybe book learning isn't for you? Try an online resource such as Code Academy
or Coursera. You might enjoy the immediate feedback from each lesson as you
make progress.

~~~
dotdi
While being able to learn from books, I find that online courses with
_deadlines_ are a tremendous help to stay on track. I think I just need a
little pressure. Maybe OP needs the same.

------
ssantic
I have a problem with doing the exercises, either in a textbook, or for an
online course. I always expect to have the right answer straight away (whether
a quiz or a coding problem), and get really frustrated if I don't. I guess 16
years of school conditions you to think like that. I also get a lot of anxiety
when learning new stuff, wondering "what if I just can't understand this
subject matter, period".

~~~
odonnellryan
I think the "just can't" part can be mitigated by remembering your past
successes. I don't think there was a time where I could never understand
something (if I really tried) no matter how hard I tried. Might take a long
time, but, eventually at least _kinda_ got it. Now, understand some things in
depth... definitely not, but get familiar, sure.

------
drcross
I'm studying for the CCIE exam at the moment. A solution I have found is- if
you are in flow state keep working until you burn out. That can be at 2 at
night or 7 in the morning. Also try to take on information from different
media types- video, books, notes, practice questions, reading blogs. I think
the various approaches to problems is what forms the cross networks in your
head.

------
hguillermo
Take some challenges. Maybe 2 hours to write some specific piece of code and
try hard. Fix your errors. Learn another part. Repeat.

------
prakharmohan
Just calm down, sit your butt down and read (pertinent to a book). I can
understand a million other ideas bouncing up and down constantly but then to
make other million ideas happen, you've got to do this.

Why?

Well, logically, if you've started learning something I'm guessing its because
you want to do something with it? So have some patience.

------
ThrustVectoring
Break the thing you want to learn into the smallest possible pieces, and set
mini-goals of mastering each one.

The fastest way to learn, say, Python, isn't to read a Python book as fast as
possible. It's a lot of little steps in the form of "be able to write an if
statement without referencing the documentation."

------
drwl
First off I just wanted to say that there's a lot of great advice from lots of
people. My own story is that I've tried, failed and given up, and tried again
many times on many things. Learning to first code, finishing a project, etc.

------
intrasight
I get impatient reading about people who get impatient learning new things :)
But honestly, if you suffer such impatience, try learning something more
tactile like playing the guitar. You'll learn patience as well as learning the
guitar.

------
zhte415
Turn what you're doing into an applied project. Lines in a book are that, in a
book. Run a mini-project using the skills you want to learn, and discover much
deeper knowledge and understanding.

------
adamc
I don't necessarily do the practice exercises, but I'm not impatient. For me,
the only good way to learn something is to start playing with it, using it. I
learn from struggling.

------
falcolas
If this is a common pattern in your life, a doctor or counselor might be able
to help provide a plan of action tailored to your more precise needs.

Somewhat expensive, but worth it, I've found.

------
damcedami
I guess you need to watch Scott Hanselman talk "It's not what you read, it's
what you ignore" very good description about your situation.

------
2color
It has a lot to do with the wide choice you have. A lot of research has
covered this topic. Look up "The Paradox of Choice".

------
danielweber
If I have a deadline I get impatient.

If I'm just cruising through things at my own pace, it's all good.

------
maqbool
i have the same problems rather than reading i start thinking i will finished
first 5 chapter than next days another x chapters and i end up reading and
learning nothing.

------
pw
Sometimes.

------
netcan
This is a pretty big question. Learning has many flavours of frustrations that
go with it. Here's one:

Learning itself is pleasant. I think we're wire to enjoy it. If you had a judo
lesson now and learned a simple trip, you would have fun. Give most people
their first programming lesson and they'll enjoy jumbling up letters or
whatever you do.

Not knowing is unpleasant. In your first lesson you have no expectation. In
the second, you _double_ your knowledge. On the 20th, you are dealing with
forgetting and you've accumulated bits you find difficult. You are still a
beginner, but now you have expectations.

You can trip or throw a cooperative opponent but you keep repeating mistakes,
frustration. There is still a gulf between where you are and scoring on an
uncooperative opponent. You can jumble words, add numbers or record form data
in your db. But, the gulf between doing that and writing your spaced learning
iWatch app is big. Basically, you suck and you are judging your performance by
the standards of a programmer, judo player or whatnot. Sucking.. sucks.

I'm about 5 weeks into learning a language and I'm in this spot right now.
week one was really fun. Every lesson meaningfully improved my vocal, grammar,
etc. I know about 1200 words and a decent amount of the basic grammar. You
need about 2500 words before you can understand a simple paragraph or video
snippet. I'm nearly useless outside of the context f a lesson translating
single sentences. I can't think in the language (I translate) which means (A)
it's difficult and frustrating and (B) I might understand your first sentence
as you wrap up your third…even if I know all the words. None of the gammer is
natural to me. etc. etc.

Basically, there's a massive gap between where I am and where it felt like I
would now after the first lesson. Massive. Even if I conjure up discipline I
didn't need in week 1 and push hard this week, I'll still suck. My vocal might
go up to 1500, but I'll regress on something. It's whack-a-mole time where
revision is 75% of the work and 50 new words is a drop in the ocean.

Thinking of it, I realize I might have taken the wrong side of the debate.
Learnings sucks. I hate it.

But, for the sake of it I'll keep arguing this point. This expectation/reality
gap is as irrational as it is inevitable. You know it how long it will to
learn things in advance. I know I can't get fluent in a language in 25 hours
of practice, but it does create frustration.

Since I'm not going with the "learning sucks, I hate it" conclusion, lets wrap
up with stoicism. Good as any, ne? Do thy duty though the the skies fall down
upon thee. Seek not vain pleasures of the moment. Rather, take comfort each
day knowing that thou hath done thy work. Focusing on your goals to much can
make learning emotionally hard (frustrating, etc.), unless your goal can be
achieved very quick. If your goal requires 100 hours over 2 months, when you
are 46 hours deep, you feel like you aren't making any progress. You are
probably wrong, but it doesn't feel like it. Don't focus on the end goal, just
do your 2 hours and pat yourself on the head. Good stoic. Nice stoic. Here's a
Senecan biscuit. Well done.

------
h_o
Yeah I get that daily too. I find reading is just a difficult task for me, so
I try and watch lectures when I can (e.g. on my lunch break in work).

At home, I just try to work on my own projects as much as possible, but I
don't have much time every day. It is hard. I exercise (gym) religiously as I
find it helps to keep my mind somewhat in check.

Time is my biggest problem really, so this leads to the frustration you have
described.

I also like to play challenging games (LoL) - and that is a HUGE time warp...
:(

------
smegel
Do, or do not - there is no "learn".

