
Ask HN: What's Wrong with Me? - toop43
In college I studied ME and graduated with a C average.  I struggled.<p>After college, I taught myself programming.  I started with web - PHP, JS, etc.  Landed a job, and eventually learned backend Java.  Did that for a few years, and then jumped into Android Dev.  Been doing full stack web&#x2F;android&#x2F;backend now for ~9 years.<p>I lost my job (company downsizing) 2 months ago and I&#x27;m in the biggest rut of my life.  I FEEL DUMB.<p>Every job nowadays requires solving algorithms.  So I set out as a goal, to get better at algorithms.  My progress has been absolutely dismal.  After 1 month of trying to solve problems on leetcode.com, while taking a coursera course ... I am NO BETTER at solving these problems.<p>Every problem seems different from the last.  Even if I can find the &#x27;common thread&#x27; ... the solution is still generally quite different enough that I can&#x27;t solve it completely.  It seems I&#x27;m a &quot;C Average&quot; person, and that&#x27;s just how it&#x27;s going to be for the rest of my life.<p>My memory sucks.  I forget solutions within hours of learning them.<p>Every day I sit down to study.  I struggle.  I get frustrated.  The frustration causes me to get distracted, and want to quit.  An entire day goes by and I will have only struggled through 2 problems.  TWO PROBLEMS in 1 day.<p>Please, HN, what can I do?  I&#x27;m desperate at this point to not keep sucking at this.  I need to see improvement, but it&#x27;s just not happening.
======
mindcrime
_An entire day goes by and I will have only struggled through 2 problems. TWO
PROBLEMS in 1 day._

There's nothing bad about that, especially if you haven't spent half your life
focusing on those leetcode type problems. Consider that a typical
undergraduate "data structures and algorithms" course runs for a whole
semester and doesn't actually (usually) cover that many individual algorithms.
You might study one DS / algorithm in one lecture session and then have a few
days to spend working on homework involving it.

 _I forget solutions within hours of learning them._

Fine. You don't really memorize the specific solutions to these things. You
internalize the concepts to where you can recreate the solution when you need
it. You don't have to remember _all_ of the details, just enough. And that
takes practice.

 _After 1 month of trying to solve problems on leetcode.com, while taking a
coursera course ... I am NO BETTER at solving these problems._

A month really isn't that long to spend on this stuff. Give it six months, and
if you don't see any improvement, then maybe that tells you something
meaningful. But right now, this seems like the equivalent of going to the gym
for a couple of weeks and then complaining that you aren't a world class
power-lifter yet. It takes time to achieve results.

 _I need to see improvement, but it 's just not happening._

Two things:

1\. I'd encourage you to give yourself more time (but keep working hard)

2\. Your entire premise might be wrong. Not all jobs require doing
leetcode/hackerrank style problems. Now if you're in the SV area, and you're
focused on working for trendy startups it might seem that way. But jobs in
other areas (the East Coast of the US is where I'm most familiar) don't
always, especially if you're willing to work for a company doing something a
bit mundane, like retailing auto parts, or life insurance, or something.

~~~
toop43
Maybe I am being too critical of myself. It's certainly a trait of myself that
I'm familiar with.

The problem is often that I don't know what's an acceptable expectation of
myself. I've tried to be reasonable when it comes to approaching the study of
algorithms, but maybe I've missed the mark?

Two problems in 1 day seems like pretty dismal progress, especially when I'm
not exactly memorizing / absorbing these problems as well as I'd like to. Most
of that day, is spent distracted out of frustration that I didn't / couldn't
solve the first, or second problem, and had to resort to the solution.

I know that there are jobs out there which don't do this style of
interviewing, but I have noticed that most of the companies doing interesting
work, that pay really well, do. I kind of rationalize it like this: If I'm
going to work a job (shit, I'd rather not)... Then it damn well better be
maximized for interesting work, and pay:

Job = Max(jobs,[Interesting,Pay]);

~~~
mindcrime
Fair enough. I'd also rather not work a traditional job, but I take a slightly
different approach... I try to go for a $DAYJOB that's as boring and stress-
free as possible, while paying enough to pay the bills, and then use my side-
project as my outlet for doing stuff I find actually interesting. But I
understand that that approach isn't for everyone.

------
doctorshady
I can't offer any advice to your situation beyond trying to avoid being
discouraged. There's a balance to confidence; too much or too little can be
offputting, and it seems like you're hitting a low point that might make
things harder for yourself.

I would suggest not hanging yourself with your academic performance though.
Some people work better with different methods of learning for example, and
not all teachers recognize them, particularly if they learn differently - it
doesn't necessarily make you dumber. In retrospect, you should ask yourself
what specifically caused you to be a C average student.

~~~
toop43
> In retrospect, you should ask yourself what specifically caused you to be a
> C average student.

I appreciate your response.

I'm 32 now, and I've had a long time to think about this question. Here's what
I think is the answer:

I lack the focus over time which is required to build a deep knowledge or
skill.

In other words, I get bored or frustrated quickly. Once bored, or frustrated,
learning tapers off VERY quickly. I'm not a child prodigy, so learning
anything takes focussed effort over time. The second it gets hard, or boring,
my ability to stay on task diminishes rapidly.

It's not as simple as "grin and bear it", trust me I've tried. In college
that's all I did. Grin, and bear the struggle. That's no way to learn. I need
to be able to sit, fail, learn, sit, fail, learn, succeed, over and over and
over. But for every sit, fail ... a frustration builds. Even the slightest
frustration / anger, saps you of focus.

If it's not frustration/anger from struggling that derails me... It's sheer
boredom. I can sit and read a boring book, for example. But after a few pages,
I'll straight up forget what I was even reading. It's like my brain just goes
offline whenever I encounter something boring. I have to stop, and re-read
whatever it was I was reading.

That's truly what it comes down to. I can't sustain focus on something long
enough (hours, days, weeks) to become really good at it.

For what it's worth - I've been prescribed and have taken adderal. It's a
miracle for focus, but I HATE how it makes me feel. My heart rate jumps 10-15
bpm (from ~50 resting, to 60, or 65). I FEEL my heart beating harder, which is
not pleasant. Then, hours later once the drug has worn off, I feel down...
Depressed, and still my heart feels 'heavy'. Oh and that's on a "small" dose
(5-10mg). I can't take the stuff.

~~~
derrick_jensen
What do you do after you get bored? My Achilles heel has always been too much
internet and distractions, and actively removing those has helped increase
concentration.

Not specifically related, but I personally find that having too many options
for what to do generally makes me hop between things too much. I have a theme
for every day of the week, and I don't allow myself to work on anything under
a theme for another day. MWF are three courses respectively, TH is backend for
a side project, weekend is frontend for a side project.

~~~
toop43
> What do you do after you get bored?

Anything else.

I'm not sure it matters. The boredom is the problem, not having options.

You could lock me in a room with nothing to do but read a book about
thermodynamics, or study algorithms, and as soon as my interest starts to
fade... my progress slows DRAMATICALLY.

What am I doing in this locked room, other than reading?? I don't know,
probably just staring at the wall thinking about something else. Then
realizing I'm wasting time. Start reading again... Lose track, get bored....
Stare at the wall and think about something else... Realize I'm distracted,
start reading again... rinse, repeat.

Will get through an entire chapter, and barely remember what I actually read.

~~~
mindcrime
Have you tried the Pomodoro technique[1] by any chance? If not, it might be
worth a shot.

[1]:
[https://en.wikipedia.org/wiki/Pomodoro_Technique](https://en.wikipedia.org/wiki/Pomodoro_Technique)

------
ParkerContent
Have you considered working with a tutor? Have you had any evaluations to
determine if ADHD, processing speed (the human kind) or other issues play a
role? A tutor would be able to tell you if your expectations are too high. An
evaluation would be able to tell you if you need to adjust your learning
methods.

------
rasta
> TWO PROBLEMS in 1 day

One of the dirty little secrets of studying CS and math is that truly
understanding 2 problems of the kind you've never seen before in 1 day is OK
and expected. Hell, sometimes mere understanding of one single solution to a
problem can take a week or longer. Most anyone who does better has either
studied the (adjacent) material before or just trudging along half-
understanding this bit and that piece hoping that sometime in the future it
might all come together. And that's exactly what happens after you stick with
it for awhile (often several years). Your job is to understand the thought
process and philosophy of math. It's usually called "math maturity". Math/CS
people reuse the same tips and tricks over and over again under many different
guises and after a while you'll start seeing this repetition and even start
using them yourself. It's very similar to how you learned your own native
tongue. Luckily, math folk have methods to rein in this madness.

Check out [0]. It's free and teaches you some basics of structured thought.
Then check out [1], [2], [3] to expand on what you've learned.

One really good unpretentious algo book that shows you how to do problems is
[4].

[0] BOOK OF PROOF by Richard Hammach

[https://www.people.vcu.edu/~rhammack/BookOfProof/](https://www.people.vcu.edu/~rhammack/BookOfProof/)

[1] Discrete Mathematics with Applications by Susanna Epp

[https://www.amazon.com/Discrete-Mathematics-Applications-
Sus...](https://www.amazon.com/Discrete-Mathematics-Applications-Susanna-
Epp/dp/1337694193/ref=dp_ob_title_bk#reader_1337694193)

[2] Pure Mathematics for Beginners by Steve Warner

[https://www.amazon.com/Pure-Mathematics-Beginners-
Rigorous-I...](https://www.amazon.com/Pure-Mathematics-Beginners-Rigorous-
Introduction/dp/0999811754/ref=sr_1_16?keywords=math+steve+warner&qid=1570065886&s=books&sr=1-16)

[3] Mathematical Proofs by Gary Chartrand et al

[https://www.amazon.com/Mathematical-Proofs-Transition-
Advanc...](https://www.amazon.com/Mathematical-Proofs-Transition-Advanced-
Mathematics/dp/0134746759/ref=sr_1_3?crid=2U4Q1U11MF8SQ&keywords=transition+to+advanced+mathematics&qid=1570065962&s=books&sprefix=transition+to+a%2Cstripbooks%2C206&sr=1-3)

[4] Data Structures and Algorithms: Concepts, Techniques and Applications by
G.A.V. Pai

[https://www.amazon.com/gp/product/0070699577/ref=ppx_yo_dt_b...](https://www.amazon.com/gp/product/0070699577/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&psc=1)

Good Luck and don't f*ck it up!

~~~
toop43
I appreciate the thoughtful post, with links. Definitely one of the feelings
I've had as I've approached these algorithms is that I MUST certainly be
lacking in either experience, or a way of thinking, or both.

I'm certainly lacking in the experience boat. But, I've figured the "way of
thinking" is likely that I am not thinking in an algorithmic / math fashion. I
don't "see" the solutions in the same way that someone with a mind for math
would. Instead I just see the brute force, "obvious" solution.

I'll definitely take a look at these resources.

