What I think you misunderstand is working knowledge versus book knowledge. When someone says "Do you know (insert a language) well?" he doesn't mean "Have you memorized every bit of documentation, know all the overloads of every function etc.". They usually mean "Can you look at the code and easily (identify flaws/introduce changes/fix bugs/refactor/etc.)? Can you make an informed decision on what tools to use for a given scenario? Can you outline the advantages and disadvantages of proposed solutions?".

Many languages are nearly identical in the general idea: syntax may be different, a few concepts done differently and some of the caveats are unique to a language, but if you know for example C# well, you would have little trouble if someone asked you to do something in Java.

You need to keep your knowledge current: again, it doesn't mean that if a new framework comes out, you need to know it by heart in the next week - but the knowledge that such a framework exists, what are it's advantages over competing solutions, what scenario would that framework be used in and in what scenarios it shouldn't be used etc. That's, in my understanding, keeping your knowledge current. If on top of that you can type the code without the use of any aid such as documentation, more power to you - but do remember that it's not the main thing.

Knowing a solution is ok. Knowing there are 10 possible solutions, their strengths and weaknesses, where to find their implementation - that's even better.

It is possible to find a job with what you know so far - albeit it will probably will not be a job of your dreams. You should however strive to find a job that offers you:

An opportunity to apply your current skills in a real-world scenario An opportunity to learn the use of other skills, preferably from someone more senior than you. And i don't mean only strict technical abilities - so called "soft-skills" are just as important. Many developers starting their careers dismiss the idea that communication, understanding of business requirements, negotiation, assessing time-and-money investments required and simillar are necessary for their career growth. Don't make that mistake.

I want to end with a statement that may be true only in my region (Eastern Europe):

When it comes to job offer "requirements" section, you can often come across postings that seems to require you to be a combination of embedded programmer, web designer, application architect, mobile developer, database administrator and it wouldn't hurt if you would be a sysadmin also. Don't be disheartened by those offers, many times people writing them just copy-paste whatever google returned as "smart sounding programming words". If the job description sounds interesting to you, apply and assess the job-offer personally - ideally after an interview with someone "technical"