Você está PRONTO para se destacar em programação competitiva e brilhar em entrevistas de codificação , como as do Google, mas não sabe por onde começar?
Esta postagem do blog irá guiá-lo através do PROCESSO e ajudá-lo a evitar erros comuns de iniciante .
Começando com o básico
1. Proficiência linguística
Antes de começar a programar, certifique-se de estar confortável com o inglês , pois a maioria dos recursos online usa esse idioma.
2. Habilidades matemáticas
Ao contrário do que você imagina, MATEMÁTICA é crucial na ciência da computação (CS). Você precisará de um bom conhecimento de ÁLGEBRA e COMBINATÓRIA , equivalente ao nível de 8ª a 10ª série dos EUA .
Não se preocupe com geometry
, trigonometry
, ou calculus
por enquanto.
A aritmética modular básica e a teoria dos números também são importantes. Se você participou de concursos de matemática como MathCounts ou AMC, você já está na frente !
Se você precisar se atualizar sobre esses tópicos, a seção de matemática do HackerRank oferece excelentes problemas práticos em teoria dos números, combinatória, álgebra e probabilidade .
3. Toque em Digitação
Aumente sua velocidade de digitação dominando o TOUCH TYPING, onde você digita sem olhar para o teclado. Sites como keybr.com podem ajudá-lo a melhorar. Visar 50-60 palavras por minuto é um BOM começo.
Aprendendo uma linguagem de programação
1. Escolha do idioma
Muitos dos principais programadores competitivos usam C++. É rápido e ideal para resolver problemas complexos .
Porém, se você já conhece um idioma , persista nele até atingir um NÍVEL SUPERIOR. Por exemplo, Java também pode levar você longe.
Se você é um iniciante, começar com C++ é uma boa ideia. Confira tutoriais on-line para o básico.
2. Pratique
Quando estiver familiarizado com o básico, pratique em plataformas como HackerRank para SOLIDIFICAR sua compreensão.
Mergulhando na programação competitiva
1. Resolução de problemas, algoritmos e estruturas de dados
Agora é hora de focar no CORE da programação competitiva.
Recursos como o Manual do Programador Competitivo e a página de algoritmos do GeeksForGeeks são ÓTIMOS. O Google também pode ajudá-lo a encontrar artigos sobre temas específicos .
2. Plataformas de prática
HackerRank é ótimo para PRÁTICA, especialmente sua seção de algoritmos. As escadas A2OJ e a planilha de Mostafa Saad oferecem listas de problemas bem estruturadas para TODOS OS NÍVEIS.
3. Concursos para Iniciantes
Comece com concursos para iniciantes, como concursos semanais LeetCode , concursos para iniciantes AtCoder e três rodadas da divisão Codeforces .
Erros comuns a evitar
- Contar apenas com cursos universitários : Os cursos universitários são mais voltados para a pesquisa de ciência da computação, e não para a programação competitiva.
- Ler demais : CP trata de resolução ativa de problemas, não de leitura passiva. Gaste menos tempo lendo e mais tempo PRATICANDO .
- Aprendendo técnicas avançadas prematuramente : Domine o básico antes de passar para estruturas de dados e algoritmos complexos.
- Comparando-se com os outros : cada um progride em seu próprio ritmo. Concentre-se na sua jornada , não na dos outros .
Pensamentos finais
A programação competitiva é uma maratona. A melhoria leva tempo e prática CONSISTENTE.