Pra mim a principal dica é a 4: no fundo tudo isso passa pelos fundamentos da computação (que aliás, não mudam há décadas). E que infelizmente, muitos acabam menosprezando, por considerar "um monte de teoria chata e inútil". Vemos até gente com muitos anos de carreira enchendo a boca pra falar que nunca precisou, o que é triste. Ela não sabe o que não sabe, não vê utilidade porque ela nem sabe que aquilo existe, e portanto não percebe como seria benéfico saber.
Os problemas mais comuns (e até muitos dos incomuns) já foram resolvidos, com algoritmos testados e melhorados ao longo do tempo, em situações reais. Se as pessoas estudassem mais esses fundamentos, não gastariam tanto tempo pra resolver tais problemas (e nem chegariam a gambiarras horríveis que se vê por aí).
Mais ainda, muitas vezes a pessoa não consegue aplicar tais algoritmos porque não consegue reconhecer que o problema se encaixa nos casos que o algoritmo resolve, porque faltou outro fundamento: a capacidade de abstração (que vc adquire estudando outra coisa que muita gente considera inútil, uma tal de matemática).
Pra mim, a falta dos fundamentos (seja por desprezo, ou pela má qualidade de muitos cursos) é um dos principais problemas da nossa área.