This could be because you were told you're a smart kid. Kids who are praised for intelligence over effort have been shown in some studies to pick easier problems and give up quickly if a problem is too hard.
Check out Carol Dweck's research. Here's an early article: [https://www.nytimes.com/1998/07/14/science/praise-children-f...]. Note that there are some criticisms of her work, and like many other studies in psychology, reproducibility is an issue. However, I found this quite useful in diagnosing my own thinking patterns towards effort.
There was an article[0] on HN a couple of days ago about 'accelerated' education for gifted students, and how 'nonaccelerands' appears to have significantly worse outcomes. I suspect that students who are the best in their class can reliably put less effort for the same result as their peers, and then learn to 'coast' their way through life. Until they reach college-level, or the 'real world', where the workload often doesn't permit this.
"Kids who are praised for intelligence over effort have been shown in some studies to pick easier problems and give up quickly if a problem is too hard"
You're implying that praise for intelligence makes people lazy. But if they weren't lazy, then they would likely be praised for effort - it's at least as plausible the causality goes the other way.
Claimed evidence makes me think of the regression to the mean paradox/fallacy, where people predictably do worse after praise and better after criticism.
Maybe I phrased it poorly. Did you read the article? The study involved praise no matter what. The independent variable was the nature of the praise (intelligence vs effort).
Oof, I feel that. Any ideas towards improving focus on more difficult efforts? I end up with a lot of unfinished tasks and it's been notably counterproductive.
Cut down the number of tasks you're working on at once. If you think about it there's probably some that don't need to be done. Personal projects that you'll never see through can be dropped. Narrow down the most important and focus on them. Throwing something away isn't failure, it's a decision to prioritize.
It's an ongoing process which requires practice.
With focus you can practice finishing things, starting small. Finishing tasks feels good and leads to more things being finished.
If you feel lost or are having difficulty taking next steps it's probably a sign that you need to break up a task into smaller pieces. Try picking one small part you can do now and finish that.
Tangentially, you might also be interested in "Time Management for System Administrators" by Limoncelli. It's got a lot of good info about getting things done (in any domain).
Social accountability is the best. Have someone check that you're doing them one at a time, and tell them to praise you for struggling and working hard. Also, enjoy that feeling of being a beginner, of sucking at something, and of having a hard time. The feeling of progress is so rewarding that it motivates you to seek things that are hard, just to feel that sense of improvement.
The problem with hard problems is that its easy to give up. However, just because you gave up doesn't mean you didn't learn anything. Especially beginners write a lot of crap code and it's actually better if that code never makes it to production but when its time for their second or third project their previous experience becomes very valuable.
Check out Carol Dweck's research. Here's an early article: [https://www.nytimes.com/1998/07/14/science/praise-children-f...]. Note that there are some criticisms of her work, and like many other studies in psychology, reproducibility is an issue. However, I found this quite useful in diagnosing my own thinking patterns towards effort.