I do enjoy coding. A friend asked me to create a little website for him and instead of telling him to check out WordPress, I sat down and coded a CMS, complete with authentication and multi-user options etc. But that was years ago. Now it feels like I WANT to do it but I just can't. Which language? Which DB? Which tutorial? Which whatever? I get tired just thinking about the questions...
Your problem resonates well with me. I used to be able to code 24 hours straight, forgetting to sleep, when I was just out of high school. I dreamt about code. Now I'm a grown man, professional developer, but I have a hard time accomplishing my (code) goals. I want to learn Clojure, I want to build some side projects, study SICP, and become an expert in one language. But I don't. I play bf4 and watch bad TV shows ("The 100" iirc). I'm a great heli pilot, though...
On to my advice:
Decide on a project to build. Set a deadline you want to build it by.
All those other questions will fall into place.
Don't pick a project that is the next-big-whatever. Just pick something you can accomplish within, say, a week. If you want a list of ideas, I have a couple of links or I'd even be willing to share my list of (mostly non-trivial, hopefully profitable) ideas.
Doing a few projects small projects has turned me around more than once, and made me focused and proud of myself.
Just pick something that seems sane and run with it. One thing you learn when you've worked with a bunch of frameworks is that they all rely on the same fundamental concepts, and it's basically just window-dressing. The framework you choose will determine what sort of jobs you get and which community you follow, so make sure you're happy with those, but it won't ultimately determine your success as a programmer.
Your description resonates with me - physical exercise (a lot of it - back then, it was running 5-10Km 4-5 times a week, in addition to other gym visits and martial arts practice) seemed to be the cure. (Or, it was just coincidence ... who knows).
And I wasn't a sporty person back then, by a long shot - before I took that up (around age 20), I couldn't finish a 2Km run to save my life.
In this world there are 2 kinds of languages. The kind people like, and the kind people use. You'll find pro's and con's everywhere. Just sit down and do something, it doesn't matter how fast it is, how bad it looks. You'll have finished something.
I followed my subconscious and pursued CS without formal education on the subject, and I did well! I know it's not much but now I have a master's degree! Some of the courses I did better than the ones who had a BSc in CS. I wouldn't have invested so much time and money if I wasn't interested.
For example; now I'm kind of curious about chemistry. I want to learn more about it, but I can't study forever, I need a job.
I DO want to code. I want to code so well that one day maybe I want to contribute to the Linux kernel! But I want to ask you: HOW do you go on about doing that? The degree I have doesn't mean much. I think I might learn more from books than I did at the university, actually.
(Found via Google search on [linux kernel development].)
Start with a small project, maybe just learning how to compile and install your own custom kernel. Then go look for bugs that other people would like fixed but don't have time to fix, and see if you can fix them. There're a bunch of guidelines (that I'm not too familiar with...I don't personally do kernel hacking) to getting your patch accepted, but I think there's pretty substantive mentoring available for new developers. Good luck.
Start small. There are tons of open-source projects that would appreciate help fixing small issues. For example, I've found Mozilla to be very helpful in mentoring developers who are earnest about trying to contribute to Firefox.
And if none of the large projects have any tasks that strike your fancy, pick something on GitHub, fork it, fix a bug or improve some documentation, and submit a pull request. Worst case is you'll run into a jerk or someone who doesn't want outside help, but at least you'll get some experience with the process, and with learning to read other people's code.
Yeah, that's what I was trying to do. During my dissertation, I _had_ to write code and I enjoyed it. And now I want to learn more, but not sure where I'd start.
The other problem is that I couldn't approach a charitable organisation and say "hey, I suck at coding and know almost nothing but I'd like to do your website". I lack self-confidence. Not sure how I build that up?
I work for a nonprofit medical research foundation in a lab that does bioinformatics, including some research on text mining information from biomedical journal articles, which might relate to your interest in linguistics.
If you're simply looking to learn, we could certainly use a volunteer, although I don't make hiring decisions for paid positions. It is possible but would be hard without practical experience. There is also a possibility to become a graduate student, although this is a health sciences center so the PhDs are in things like biochemistry, cell biology, etc, even though our lab's research is very computational.
EDIT: Just to add a little more detail about the kinds of work and technologies. Broadly speaking, we try to mine information out of large biology-related datasets, including text and more numeric kinds of data, using machine learning technologies. Sometimes we put a web-based front end on things, but it is not our primary focus. So if you are more interested in web dev, there is a need for it, or if you'd rather get more into what is now called "data science", there is a lot of that as well. We primarily use Linux, Python, and some bash scripting.
I compare myself because I want to see progress. If I can do 1% of what some of the guys here can do, then I am onto something, or at least that's what I'd like to think!
When you see a role model you see the finished product, but not all the hard work involved nor those embarrassing mistakes that turned in valuable lessons.
Progress is a fiction. And self actualization is non-linear. If you see what you have done in one year and declare that it is less than 1%, you will think it's going to take more than 100 years and quit. Then you will fail to realize the 5% hike that was waiting for you 6 months down the road.
p.s. And cold quit the WoW thing. It is crack for the soul. (I had to scratch my Diablo II CDs and avoid any other game for 2-3 years. I just could not have helped it otherwise... so, been there)
Sorry, I might have been not clear enough.
I didn't mean "compare yourself because you enjoy comparing".
I meant "just do what you like without comparing yourself to anyone". Or, compare your current self to your past self. That is the only reliable way to measure progress.