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.
Cours d’introduction a l’ingénierie logiciel
Prenez des instructions de base sur le codage.
Les ressources en ligne:
- Udacity – Introduction au cours CS ,
- Coursera – Informatique 101
Coder dans au moins un langage de programmation orienté Objet: C ++, Java, ou Python
Débutant Ressources en ligne:
- Coursera – apprendre à programmer: Les fondamentaux ,
- MIT Intro à la programmation en Java ,
- Python classe de Google ,
- Coursera – Introduction à Python ,
- Python Open Source E-Book
Intermédiaires Ressources en ligne:
- Design Udacity des programmes informatiques ,
- Coursera – Apprenez à programme: Crafting Code de qualité ,
- Coursera – Langages de programmation ,
- l’Université Brown – Introduction à Programming Languages
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:
- MIT Introduction aux algorithmes ,
- Coursera Introduction aux algorithmes partie 1 & partie 2 ,
- liste des algorithmes ,
- liste des structures de donnees ,
- livre: Le Manuel Conception d’algorithmes
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:
- Coursera – Cryptographie ,
- Udacity – Cryptographie appliquée
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:
- Github ,
- Kiln
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