I really want to improve at programming but I feel I'm kinda of stuck
in this 'expert beginner' phase. I'm familiar with basic data structures
and their complexity (linked lists, arrays, hash tables, queues,
trees), some basic theory (DFA, NFA, CFGs, TMs, lambda calculus etc),
and elementary math (calc I, II, III, linear algebra, ODEs, discrete).
I don't feel particularly confident in any of these areas of study,
knowing the minimum amount to get me by. Sure I know what a NFA is,
but ask me convert it to a DFA and I'm lost.
I lack 'deep', real knowledge and am desperate to acquire this
mythical stuff before it's too late.
In terms of areas of interest, I am interested in type theory, FP,
compilers, machine learning, expert systems and AI.
So knowing this, how would I best use say 8-12 hours a day, every day,
to learn this stuff? Should I be reading papers all day? Should I be
writing code? Should I be doing exercises in books? There's just so
much material I need to get through that I am lost on how to actually
spend my time getting better.
I don't feel particularly confident in any of these areas of study, knowing the minimum amount to get me by. Sure I know what a NFA is, but ask me convert it to a DFA and I'm lost. I lack 'deep', real knowledge and am desperate to acquire this mythical stuff before it's too late.
In terms of areas of interest, I am interested in type theory, FP, compilers, machine learning, expert systems and AI.
So knowing this, how would I best use say 8-12 hours a day, every day, to learn this stuff? Should I be reading papers all day? Should I be writing code? Should I be doing exercises in books? There's just so much material I need to get through that I am lost on how to actually spend my time getting better.