I love doing TCS in my spare time. Lately I have been trying to do some research as a hobby. I'm looking for some extra input from people who do this full-time: - Do you think it is possible to do this "just for fun"? I have no intention to ever get a PhD. - What resources would you recommend?
I could be off-base, but in my view some of the better topics to focus on if you only wish to pursue problems as an amateur are in discrete mathematics: combinatorics, graph theory, and even combinatorial geometry. This is because the problems in these realms are quite accessible and easy to state and ponder without too much background.
That doesn't mean you can solve them without background: that will take a lot more time. But it's a good place to start. Also, what might limit you is access to literature: papers, books etc if you don't have access to a university library - in that case, working on problems that are more "current" means that you'll be more likely to find papers off researcher websites.
It's possible that the days of Fermat-style amateur mathematicians are over, but I really doubt it. I've known people who started doing research as a side hobby and enjoyed it so much they are now full-time researchers. And even if you don't, you'll at least enjoy yourself. As Alessandro points out in comments, this website is a great resource for you to use as well.
If you intend to publish it is essential that you learn how to write academic papers. Even if you can already write well, it still takes effort to get the style, focus, and, in particular, the quality right. Academic writing is highly compressed, rather formal, and precise. Theorems and so forth must be written in a particular way. Writing proofs is an art. There are even (implicit) standards for referencing the literature. Get any of these wrong and your article looks amateurish, which lends itself to rejection irrespective of the quality of the contents.
Here are some general tips that will help in this direction:
Use LaTeX. Papers, especially formal papers, written with Word look like crap.
Read a book on academic writing (and do the exercises). We use Academic Writing: A Handbook for International Students, mostly because our students are non-native English speakers.
Read Writing for Computer Science: The Art of Effective Communication by Justin Zobel.
Learn how to write theorems and proofs correctly. One way of doing this is to find a high quality book in the area and mimic its style, even if it comes down to copying the text word for word to get the feel for how things are written. Then when you write your own results, consult the book regularly so that you can mimic the style. I know people who have used Relation Algebras by Games by Hisrch and Hodkinson as an exemplary model of mathematical writing. Undoubtedly there is such a text in your area.
Learn the conventions of the venues/communities where you plan to publish. Most papers have an abstract and introduction, body, discussion, related work, conclusions and future work sections, but different venues/communities may vary the ordering or have different expectations about how much attention goes into which part of the document. Issues such as how much background information is added to your paper depend very much on the expected audience, and it always pays to know the background of the average reader in the community. Critically reading many papers from the target community and trying to comprehend the stylistic expectations, is the only way to address this issue (without a supervisor in the area).
It's hard to answer without knowing, as Jukka says, your background. However I think it is perfectly feasible to do some research without being a professional researcher.
First, I think you should do as any researcher an extensive study of the bibliography until you find a problem or technique you want to deeply analyse. The second step is then to start working on a small and feasible problem. This is where most amateurs have troubles. Indeed, finding an interesting but not too hard problem is a difficult task, which is most of the time achieved by the supervisor (I mean for grad student). At that point you probably should find somebody to mentor you. For that purpose use your personal network if possible (for instance, if you work in a high tech company you can ask around for a connection to academy), or go to some conferences and discuss with people. The rest is usual: hard work, frustration and sometime success!
All publishable research problems should have these three properties: 1) open. 2) interesting. 3) challenging. For recreational research, you can drop the third condition (or vary it based on your own abilities and energies).
There are mountains of problems in combinatorics and graph theory that are wide open, but are not "core" or "fundamental" enough to have lots of people working on them. Frequently, these problems can have algorithmic interpretations. Also, some can be turned into communication complexity problems ("How many bits are required to determine if property X is true?") but these are usually either trivial or very difficult.