Valeu mano! :)
Primeiramente, sobre conceitos fundamentais de programação, muita gente os negligencia. Principalmente os evangelistas de cursinhos de internet que dizem "você não precisa saber isso". Criou-se uma cultura de que esses conceitos fundamentais são descartáveis (só se estuda na faculdade pra passar na prova) ou até que são inúteis no mercado de trabalho. E digo mais, talvez pra uma startup ou uma aplicação simples de CRUD provavelmente não precise mesmo, mas quando você almeja entrar em empresas grandes onde você não só usa tecnologias, você as cria também, aí você vai precisar entender todos os conceitos. Código mal embasado já cheira mal só de falar, imagina rodando em produção.
Sobre analisar o mercado, acredito que você citou os três principais tipos de parâmetros que devemos analisar. Cada um tem um momento certo, tá?
-
Fica de olho no que as vagas da sua stack estão pedindo, principalmente em empresas que você gostaria de trabalhar um dia. De tempos em tempos, a cada semana por exemplo, vai lá e olha se eles anunciaram vagas novas, o que estão cobrando... assim você vai saber o principal, que é o que as empresas estão usando. Assim você consegue se manter atualizado e vai se antecipando a algumas coisas.
-
É sempre bom fazer umas entrevistas, mesmo que você não tenha o intuito de sair da sua empresa atual. Se você se sentir confiante aplica pra vagas nas empresas grandes que você gostaria de trabalhar pra ver como é o processo seletivo, o nível técnico exigido e se rolar uma proposta daí você vê se faz sentido mesmo trocar naquele momento. Lembrando que eu vejo muito sênior de consultoria entrando em Big Tech como pleno hein... por isso tem o ponto salário pra se analisar caso dê tudo certo. Caso não dê, você já sabe como funciona todo o processo e o quanto precisa melhorar, o que precisa estudar, monta um plano de estudos e ataca durante os próximos 6 meses. Depois disso tenta de novo. Eu geralmente aceito conversar com recrutadores a cada 40 ou 60 dias pra sentir como tá o mercado. Nunca se sabe quando sua cabeça vai rodar num desses layoffs.
-
Mantenha na sua rede de contatos profissionais de grandes empresas, geralmente muitos deles compartilham conteúdos e até oportunidades das empresas que às vezes nem saem oficialmente nos perfis das empresas. Na empresa que eu trabalho atualmente estamos com uma vaga assim, não saiu no LinkedIn mas a gente tá com a vaga aberta e estamos analisando somente indicações. Então é sempre bom seguir os caras que trampam em empresas grandes BR e de fora também.
O processo de se atualizar é um pouco relativo. Se atualizar pode ser aprender algo novo pro mercado ou somente novo pra você. Às vezes ce tá numa firma trampando num projetinho fazendo CRUD usando lá seu Node.js e seu TypeORM, mas daí chega uma empresa maior e exige que ce saiba Node.js e TypeORM mas também mensageria com RabbitMQ, conhecimentos de CI/CD, Docker e Kubernetes, mas aí ce tá acostumado a fazer o feijão com arroz e a galera pergunta numa entrevista: quais os tipos de exchange do RabbitMQ? Daí ce num manjo porque as vezes cê já até usou, mas nunca estudou RabbitMQ. E isso foi só um exemplo, indo pros lados de Frontend e Mobile temos o mesmo cenário, obviamente com tecnologias diferentes.
A minha dica é: faça seus projetos! Tenho visto muito dev que acha que vai aprender as coisas só assistindo curso, fazendo projetinho de curso que foi desenvolvido exatamente pra dar certo e aí ainda tem a galera que diz "você não precisa saber mexer, é só saber falar". Aí me fode!
Pega uma VPS na Hostinger ou um Droplet na Digital Ocean, gasta teus 100 a 300 reais por mês com teu servidorzinho e vai entupindo lá de projeto, bota em prod, tenta pegar usuários... não pra ficar rico (se ficar me dá 10% kkk) mas pra aprender a fazer as coisas mesmo. Bota pra fazer tuas aplicações e pegar uns usuários pra livrar o custo do teu server... eu comecei assim e hoje tenho aplicações rendendo entre 2k e 3k cada, e eu já tenho 4 aplicações. Se eu quisesse poderia até largar o emprego, mas elas não me tomam tempo, são meus laboratórios e eu ainda ganho dinheiro extra com isso. Trampando numa empresa grande como senior ce pega um salário de 15k+ CLT e tá tudo certo, construindo seus micro-saas voce vai ter um extra ali e pronto... pra mim é muito melhor que passar a vida inteira trampando em empresas que voce coda feature pra cacete mas no fim do dia quando pedem pra voce dar o file > new project em algum projeto voce não sabe nem configurar a parada toda mesmo tento anos de experiência naquela linguagem/stack. E eu sei bem disso porque trabalho em time de plataforma de uma Bit Tech BR e sei bem que eu crio coisas pra ninguém saber como foram criadas e só usar. Os caras tão tudo usando Kafka e muitos podem nem mesmo saber como o Kafka funciona, porque é só usar as libs que eu criei e inserir o nome do tópico.
Enfim, espero ter esclarecido seus pontos. Desculpa meus textões. Penso demais, falo mais ainda... tô pra criar um canal no YouTube pra economizar tempo kkkkkk brincadeira. Vlw!