Trabalhar na Google é um sonho de vários engenheiros/futuros engenheiros, com destaque para os engenheiros de software. A Google possui a fama de ter ótimos escritórios (há dois no Brasil, um em Belo Horizonte e outro em São Paulo) e os salários são absurdamente motivadores, fatores que justificam a concorrência altíssima . Se você é um engenheiro/futuro engenheiro de software, então precisa conferir essas dicas que a empresa divulgou sobre como se tornar um bom engenheiro de software.
1. Faça cursos de introdução à Ciência da Computação: eles fornecem instruções básicas sobre programação.
Recomendações: Udacity - intro to CS course, Coursera - Computer Science 101
2. Saiba programar em pelo menos uma linguagem orientada a objetos, como C++, Java ou Python.
Recomendações (nível iniciante): Coursera - Learn to Program: The Fundamentals, MIT Intro to Programming in Java, Google's Python Class, Coursera - Introduction to Python, Python Open Source E-Book
Recomendações (nível intermediário): Udacity's Design of Computer Programs, Coursera - Learn to Program: Crafting Quality Code, Coursera - Programming Languages, Brown University - Introduction to Programming Languages
3. Aprenda outras linguagens de programação: adicione outras linguagens de programação em seu repertório, como Java Script, CSS, HTML, Ruby, PHP, C, Perl, Shell.
Recomendações: w3school.com - HTML Tutorial, CodeAcademy.com, Udacity - Mobile Web Development, Udacity - HTML5 Game Development
Veja Também: Como funciona o sistema de buscas do Google?
4. Teste seu código: aprenda a identificar erros, crie testes e hackeie seu próprio software.
Online Resources: Udacity - Software Testing Methods, Udacity - Software Debugging
PUBLICIDADE
CONTINUE LENDO ABAIXO
LEIA MAIS
5. Desenvolva raciocínio lógico e conhecimentos em matemática discreta.
Recomendações: MIT Mathematics for Computer Science, Coursera - Introduction to Logic, Coursera - Linear and Discrete Optimization, Coursera - Probabilistic Graphical Models, Coursera - Game Theory
6. Compreenda bem algoritmos e estruturas de dados.
Recomendações: MIT Introduction to Algorithms, Coursera Introduction to Algorithms Part 1 & Part 2, List of Algorithms, List of Data Structures, Book: The Algorithm Design Manual
7. Compreenda bem sistemas operacionais.
Recomendações: UC Berkeley Computer Science 162
8. Aprenda UX Design.
Recomendações: Udacity - UX Design for Mobile Developers
PUBLICIDADE
CONTINUE LENDO ABAIXO
9. Aprenda sobre Inteligência Artificial.
Recomendações: Stanford University - Introduction to Robotics, Natural Language Processing, Machine Learning
10. Aprenda a criar compiladores.
Recomendações: Coursera - Compilers
11. Aprenda a criptografar.
Recomendações: Coursera - Cryptography, Udacity - Applied Cryptography
Veja Também: Os cargos com maiores salários na gigante Google Tem até estagiário ganhando R$16 mil
12. Aprenda programação paralela.
Recomendações: Coursera - Heterogeneous Parallel Programming
13.Trabalhe em projetos fora de sala de aula: crie e mantenha um site, faça seu próprio servidor ou construa um robô.
Recomendações: Apache List of Projects, Google Summer of Code, Google Developer Group
14. Trabalhe em uma parte pequena de um grande sistema, leia e entenda o código e encontre erros.
Recomendações: Github, Kiln
15. Trabalhe em projetos com outros programadores: irá ajudá-lo a melhorar sua capacidade de trabalhar em equipe e permite aprender com os outros.
16. Pratique seu conhecimento em algoritmos e capacidade de programação: pratique por meio de competições ou concursos.
Recomendações: CodeJam, ACM ICPC
17. Seja um monitor: ensinar os outros estudantes te ajuda a melhorar seu conhecimento no assunto.
18. Faça estágio na área de engenharia de software
Mas, o guia alerta: seguir todos os itens não garante um emprego na Google. As recomendações servem para introduzir ou complementar seu conhecimento. Então, você precisa se esforçar em outras tarefas para conseguir um emprego nesta gigante empresa.
Fontes: Google: Guide for Technical Development
Comentários
Larissa Fereguetti
Cientista e Engenheira de Saúde Pública, com mestrado, também doutorado em Modelagem Matemática e Computacional; com conhecimento em Sistemas Complexos, Redes e Epidemiologia; fascinada por tecnologia.