Live data from Hacker News

Ask HN: I feel like an 'expert beginner' and I don't know how to get better

news.ycombinator.com

1–10 of 57 posts

Ask HN: I feel like an 'expert beginner' and I don't know how to get better

#1
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.

Re: Ask HN: I feel like an 'expert beginner' and I don't know how to get better

#3
Solve real problems - write programs that "scratch your own itch" - and learn as you need to. It's hard to tell how well you're learning when you don't have actual results to go by.

Honestly though that set of interests doesn't seem like the sort of thing that lends itself to real problems; it sounds to me like you've already got more than enough CS theory. If you're looking to learn the kind of programming that will make you better at doing it professionally, you need to start making practical things. Find a hobby that could do with a website/app or something else in your life that can be automated.

Re: Ask HN: I feel like an 'expert beginner' and I don't know how to get better

#4
1. Keep trying.

2. Books and papers are great, but you should also try to find a mentor / guide / teacher / expert to talk about the issues you're facing and what you're thinking about. Schools are organized the way they are for a reason, even if they often fail at their intended purpose.

Re: Ask HN: I feel like an 'expert beginner' and I don't know how to get better

#6
I'd suggest drilling down into ONE subject area. If you want to become the world's foremost expert on NFA to DFA conversion techniques, go for it!

Forget about trying to learn EVERYTHING. Pick one thing, learn it well, repeat with the next thing.

As mentioned, the more you can do this within the confines of projects you feel passionately about, the easier it will be.

Re: Ask HN: I feel like an 'expert beginner' and I don't know how to get better

#7
post #3

Solve real problems - write programs that "scratch your own itch" - and learn as you need to. It's hard to tell how well you're learning when you don't have actual results to go by. Honestly though that set of interests doesn't seem like the sort of thing that lends itself to real problems; it sounds to me like you've already got more than enough CS theory. If you're looking to learn the kind of programming that will…

Either that or work at a company that provides you a rich enough set of problems where you can apply your disjointed knowledge since it'll force you to synthesize it into a working solution.

Re: Ask HN: I feel like an 'expert beginner' and I don't know how to get better

#8
I'm going to recommend if what you're doing isn't working for you, that you should try a different approach to see if it can get you the momentum you're looking for, in addition to what you've already been doing:

Take a break from focusing on the strategies and tactics of programming. No single algorithm, framework or language is going to unlock the panacea of potential inside of you. Most problems simply aren't that complex in the beginning.

Having the mindset of an innocent beginner always is the toughest thing to maintain to remain a problem-based thinker instead of a solution-based thinker.

The best way I've found is simply to solve problems the best I can, and when I learn what I could have done better, if the need is there, go and refactor it. No matter how great you are, or aren't today, what you write may look bad in 5 years because you have more experience.

Most things we build as developers become obsolete. It's a separate discussion but I'm not sure what you're trying to optimize, your skills, or a result in a project?

No developer is a a factory of churning out code or results at the same speed. Be less focused on the practice of programming alone and look at the results you're creating.

Software is as much a craft, an art, as much as a technical skill, and maybe it's something for you to explore the other fronts.

Re: Ask HN: I feel like an 'expert beginner' and I don't know how to get better

#9
Simply put you have to start practicing. Try to solve problems with the techniques you've learned, and you will get a better understanding of their strengths and their weaknesses. That will help you internalize the theory you have absorbed. It does take time (this annoys most people) but it serves the exact same purpose as homework does in school, moves the understanding from the hippocampus out through the rest of your brain.

Re: Ask HN: I feel like an 'expert beginner' and I don't know how to get better

#10
Maybe try something pretty. Information visualization with http://d3js.org/ Or make a game with cool AI.

Whatever you do, as long as there is a minimum amount of fun in it, you'll get better. And the more you know, the better you can identify what areas you have and/or want to improve in.

Post reply on HN