28 mars 2015

Le guide du développement technique selon Google

Par Jean-Marc Amon

Avoir une base solide en informatique est important pour devenir un Ingénieur Logiciel. Ce guide est un chemin suggéré(Par Google) pour les étudiants de l’Université dans le but de développer leurs compétences techniques académiques et non-académique a travers l’Auto-formation.

Vous pouvez utiliser ce guide pour déterminer les cours à prendre, mais assurez-vous que vous prenez des cours requis pour obtenir votre diplôme. Les ressources en ligne fournies dans ce guide ne sont pas destinés à remplacer les cours disponibles dans votre école. Toutefois, ils peuvent aider à compléter votre apprentissage ou de fournir une introduction à un sujet.

google0-665x300

Cours d’introduction a l’ingénierie logiciel

Prenez  des instructions de base sur le codage.

Les ressources en ligne:

Coder dans au moins un langage de programmation orienté Objet: C ++, Java, ou Python

Débutant Ressources en ligne:

Intermédiaires Ressources en ligne:

Apprendre d’autres langages de programmation

Remarques: Ajouter à votre répertoire – JavaScript, CSS, HTML, Ruby, PHP, C, Perl, Shell, Lisp et Scheme.

Ressources en ligne:

  • w3school.com – Tutoriel HTML ,
  • CodeAcademy.com ,
  • Udacity – développement du Web mobile ,
  • Udacity – développement de jeux HTML5

Testez votre code

Notes: savoir comment reperer des bugs, créer des tests, et  hacker votre propre logiciel

Ressources en ligne:

  • Udacity – Logiciels Méthodes de Test , Udacity – Logiciel de débogage

Développer le raisonnement et la connaissance des mathématiques discrètes logique

Ressources en ligne:

  • MIT Computer Science Mathématiques pour 
  • Coursera – Introduction à la logique,
  • Coursera – linéaires et discrets Optimisation,
  • Coursera – Modèles probabilistes graphiques,
  • Coursera – Théorie des jeux

Développer une forte compréhension des algorithmes et structures de données

Notes: En savoir plus sur les types de données fondamentales (pile, files d’attente et des sacs), des algorithmes de tri (tri rapide, mergesort, Heapsort), structures de données (arbres binaires de recherche, arbres rouge-noir, tables de hachage), et Big O.

Ressources en ligne:

Développer une solide connaissance des systèmes d’exploitation

Ressources en ligne:

  • UC Berkeley Computer Science 162

En savoir UX design

Ressources en ligne:

  • Udacity – UX design pour Mobile

Apprenez Intelligence Artificielle

Ressources en ligne:

  • Université de Stanford
  • introduction à la robotique ,
  • traitement du langage naturel ,
  • Machine Learning

Apprenez à construire des compilateurs

Ressources en ligne:

Apprenez la cryptographie

Ressources en ligne:

Apprendre la programmation parallèle

Ressources en ligne:

Travailler sur le projet en dehors de la classe

Notes: Créer et maintenir un site Web, mettre en place votre propre serveur, ou construire un robot.

Ressources en ligne:

Travailler sur un petit morceau d’un grand système (base de code), lire et comprendre le code existant, traquer la documentation, et les choses de débogage

Notes: Github est une excellente façon de lire d’autres publique populaire du code € ™ s ou de contribuer à un projet.

Ressources en ligne:

Travailler sur le projet avec d’autres programmeurs

Notes: Cela vous aidera à améliorer votre capacité à travailler en équipe et vous permettra d’apprendre des autres.

Pratiquez vos connaissances et compétences de codage algorithmique

Notes: Pratiquez vos connaissances algorithmique par voie de concours comme CodeJam ou Collegiate international de concours de programmation de l’ACMA € ™ codage.

Ressources en ligne:

  • CodeJam ,
  • ACM ICPC

Devenir Assistant d’enseignement

Aider à enseigner à d’autres étudiants aidera à améliorer vos connaissances dans le sujet.

L’expérience de stages en génie logiciel

Remarques: Postulez pour des stages

 

 

Sources : Google Careers