Hacker News new | ask | show | jobs
by jldugger 2106 days ago
Maybe not a try harder situation, but a "try smarter" one. Many people are quite bad at learning because the process is counterintuitive. People mistake the feeling of mastery for learning, and it's not at all a productive feeling (if you want to learn; it's great at building self-confidence). My advice:

1. Focus. Acknowledge that you have surface level familiarity in many things, but that nobody can or should go deep in everything. Pick a language you're using professionally, and focus on that. If you don't currently have a job, try to pick something with broad applicability like Python or Golang. Also eliminate distractions: email popups, SMS, facebook, HN/reddit, Slack, all must go while you focus.

2. Study. Now that you have a language you want to build expertise on, study it methodically. Start an Anki[1] deck for it (and run through reviews daily) -- this is your tool to "try smarter". Get a set of beginner books from the library/amazon. Run through a codecademy or similar online course series. Make new Anki cards as you go. When you've finished a book, start working on the easiest online problems you can find online. Sort Leetcode[2] by acceptance rate -- many make the mistake of trying them in order, or by difficulty tag, and get frustrated when they hit a stumbling block. Learn from their failures. Once you solve a problem, review how others solved it and try to understand their code: did they use arrays or objects? did they use recursion? obscure syntax you need to look up? Which code base is cleaner, and easier to read?

3. Pace yourself. This is a marathon not a sprint. Improvement will be slow, and it will not feel good. If you have a job, I'd limit myself to 1 hour a day on professional improvement. If you're searching for work, I'd still limit myself to 4h daily. I try to spend about 10 minutes a day on Anki, just to retain what I've learned. People spend 4 years of their life on this stuff, after all.

4. Advanced study. As you advance beyond the material in step 2, look for conference talks at your level. Read through the official documentation. Start browsing StackOverflow or similar for your language tag[3]. Keep making Anki cards and reviewing them. Maybe pick up a CS textbook to shore up theoretical shortcomings and study 10 pages a day (textbooks tend to be denser reads than other reading material, so again, pace yourself.). Start with freshman undergrad stuff like Data Structures -- nearly universal in application and immediately useful. Or since you feel anxious about it, a book on OOP.

[1]: https://ankiweb.net/about [2]: https://leetcode.com [3]: Little known secret: the most viewed questions aren't the ones with the most votes, they're the ones that novices google the most. Top viewed question is like 'how to quit vim,' but those people don't vote up the question or answer. Unfortunately, SO doesn't make it easy to find the most viewed questions, presumably because cream skimming their 100 most viewed pages is an existential threat.