O que eu acho que você entendeu mal é conhecimento prático versus conhecimento livro . Quando alguém diz "Você conhece (insira um idioma) bem?" , ele não quer dizer "Você memorizou cada pedaço da documentação, conhece todas as sobrecargas de cada função etc." . Eles geralmente significam "Você pode olhar para o código e facilmente (identificar falhas / introduzir alterações / corrigir bugs / refatorar / etc.)? Você pode tomar uma decisão informada sobre quais ferramentas usar para um determinado cenário? Você pode descrever as vantagens e desvantagens das soluções propostas? ".
Muitas linguagens são quase idênticas na ideia geral: a sintaxe pode ser diferente, alguns conceitos feitos de maneira diferente e algumas das advertências são exclusivas de uma linguagem, mas se você conhece bem, por exemplo, C #, pouco problema se alguém lhe pedir para fazer algo em Java.
Você precisa manter seu conhecimento atualizado: novamente, isso não significa que se um novo framework for lançado, você precisa saber de cor em na próxima semana - mas o conhecimento de que tal estrutura existe , quais são suas vantagens sobre soluções concorrentes, qual cenário seria essa estrutura ser usado e em quais cenários não deve ser usado etc. Isso, no meu entendimento , é manter seu conhecimento atualizado. Se além disso você pode digitar o código sem o uso de nenhum auxílio como documentação, mais poder para você - mas lembre-se de que não é o principal.
Saber uma solução está ok. Saber que existem 10 soluções possíveis, seus pontos fortes e fracos, onde encontrar sua implementação - isso é ainda melhor.
É possível encontrar um emprego com o que você sabe até agora - embora provavelmente não será um trabalho dos seus sonhos. No entanto, você deve se esforçar para encontrar um emprego que lhe ofereça:
- uma oportunidade de aplicar suas habilidades atuais em um cenário do mundo real
- Uma oportunidade de aprender o uso de outras habilidades, de preferência com alguém mais experiente do que você. E não me refiro apenas a habilidades técnicas estritas - as chamadas "habilidades pessoais" são tão importantes . Muitos desenvolvedores em início de carreira descartam a ideia de que comunicação, compreensão dos requisitos de negócios, negociação, avaliação dos investimentos de tempo e dinheiro necessários e similares são necessários para o crescimento de sua carreira. Não cometa esse erro.
Quero terminar com uma afirmação que pode ser verdadeira apenas na minha região (Europa Oriental):
Quando se trata de trabalho oferecer a seção "requisitos", muitas vezes você pode encontrar postagens que parecem exigir que você seja uma combinação de programador incorporado, web designer, arquiteto de aplicativo, desenvolvedor móvel, administrador de banco de dados e não faria mal se você também fosse um administrador de sistema. Não desanime com essas ofertas, muitas vezes as pessoas que as escrevem apenas copiam e colam o que o Google retornou como "palavras de programação que soam inteligentes". Se a descrição da vaga parece interessante para você, inscreva-se e avalie a oferta de emprego pessoalmente - de preferência após uma entrevista com alguém "técnico"