Comment devenir un grand informaticien et quels cours dois-je suivre pour passer du niveau débutant au niveau avancé

Il y a quelques sujets que chaque programmeur devrait maîtriser. Les autres choix de sujets dépendent de ce sur quoi vous voulez vous concentrer. L’informatique est, après tout, un sujet incroyablement vaste.

Concepts de base: algorithmes, structures de données, théorie de la complexité de base, bases de données, conception orientée objet, programmation parallèle et, si vous voulez vraiment être un programmeur ambitieux, programmation fonctionnelle (Haskell est toujours un bon choix).

Si vous ne l’avez pas déjà fait, vous devez absolument maîtriser le contrôle de version. C’est utile même si vous travaillez vous-même sur un projet. Si possible, entraînez-vous en effectuant vos tâches et vos projets personnels avec une sorte de configuration de contrôle de version. Git est fantastique. La force n’est pas mal.

Si vous souhaitez un axe théorique: algorithmes avancés, théorie de la complexité avancée, théorie des langages de programmation / sémantique, théorie de l’information, théorie des automates. Bien sûr, vous pouvez vous découvrir vous-même au sein de la théorie théorique de la CS théorique, mais ce sont là les bases.

Si vous souhaitez mettre davantage l’accent sur les systèmes: architecture informatique, systèmes d’exploitation, systèmes distribués, implémentation de bases de données, analyse des performances. Je deviendrais aussi expérimenté que possible avec la mise en œuvre et le débogage de programmes parallèles – ces bogues sont difficiles à anticiper et à trouver.

Si vous êtes intéressé par le développement Web: HTML, Javascript, Ruby, SQL, Node.JS et design d’interface utilisateur.

Il existe de nombreuses autres possibilités pour les domaines sur lesquels se concentrer – de nombreuses recherches intéressantes sont en cours dans l’apprentissage automatique, la vision par ordinateur, la cryptographie, le calcul quantique et bien d’autres – mais nous espérons que cela vous donnera des idées.

Pour débuter une carrière en programmation, vous devez d’abord avoir la meilleure idée de base et les bases de la programmation, et savoir penser de manière programmatique et logique, pour pouvoir comprendre la plupart des algorithmes…

Pour commencer, je recommande un cours nommé CS50 par l’Université de Harvard. Il est disponible gratuitement sur edX.

C’est le meilleur cours et le plus idéal qui vous offre le meilleur état d’esprit en matière de programmation… Ce cours devrait durer au maximum 4 mois, mais seulement si vous êtes enthousiaste et déterminé à le terminer… Parce que ce n’est pas un cours court… Ce qui est bien dans ce cours, c’est qu’il vous examine dans les cours que vous avez appris avec un problème réglé à résoudre, avec l’écriture de son code en C, et dans un environnement très pratique: “CS50 Appliance”, un système d’exploitation spécialement conçu pour le cours. avec tous les fichiers et bibliothèques requis, il est installé sur une boîte virtuelle, ce qui vous évite de désinstaller votre système d’exploitation actuel. En plus de tout le plaisir que vous aurez pendant le cours, une belle communauté, des conférences fabuleuses, données par le professeur David J. Malan, et croyez-moi, il a un bon sens de l’humour laugh Vous allez beaucoup rire en apprenant!

Après avoir terminé le cours CS50, vous aurez désormais toutes les capacités nécessaires pour apprendre et commencer une carrière dans un nouveau langage de programmation. Vous serez aussi un professionnel et un ingénieur logiciel hors pair. Je recommande des cours d’Udemy et Treehouse. Ils sont vraiment géniaux, simples et enseignés par des professionnels. Cependant, trouver un cours pour un langage de programmation spécifique ne sera pas un problème, car vous avez déjà adopté l’esprit de CS50. Ce que j’essaie de dire, c’est que même si le cours auquel vous avez assisté n’est pas bon, cela ne vous posera aucun problème. Vous n’aurez besoin que des aspects principaux du langage, de la syntaxe, des parties compliquées et des fonctionnalités spéciales, etc. Vous serez alors prêt.

Vous avez déjà une bonne connaissance de C ++, donc CS50 serait facile, et les autres cours seront un jeu d’enfant pour vous…
Pour améliorer vos performances et votre utilisation de la langue, essayez d’assister à des concours en ligne tels que Google Code Jam, des concours HackerRank, TopCoder, etc.

Bonne chance!
PS Il existe un autre bon cours chez edX presque identique à CS50, il est enseigné dans le MIT… Mais j’ai seulement essayé de CS50 et c’est ça!

Le Big Data arrive à point nommé60% de chaque journée de travail dépensée par les travailleurs du savoir pour rechercher et gérer les données.

  • Le Big Data est accessible – La moitié des cadres supérieurs indiquent qu’il est difficile d’accéder aux bonnes données.
  • Le Big Data est holistique – L’information est actuellement conservée dans des silos au sein de l’organisation. Les données marketing, par exemple, peuvent être trouvées dans l’analyse Web, l’analyse mobile, l’analyse sociale, les CRM, les outils de test A / B, les systèmes de marketing par courrier électronique, etc., chacun se concentrant sur son silo. Vous pouvez visiter ce lien plus d’infos: Cours Big Data sur Intellipaat Données provenant de sources traditionnelles:
  • Le Big Data est digne de confiance29% des entreprises mesurent le coût monétaire d’une mauvaise qualité des données. Des tâches aussi simples que la surveillance de plusieurs systèmes pour les mises à jour des informations de contact client peuvent faire économiser des millions de dollars.
  • Le Big Data est pertinent43% des entreprises ne sont pas satisfaites de la capacité de leurs outils à filtrer les données non pertinentes. Quelque chose d’aussi simple que de filtrer les clients de votre analyse Web peut fournir une foule d’informations sur vos efforts d’acquisition.
  • Le Big Data est sécurisé – L’atteinte moyenne à la sécurité des données coûte 214 USD par client. Les infrastructures sécurisées mises en place par les partenaires d’hébergement de Big Data et de technologie permettent à l’entreprise moyenne d’économiser 1,6% de son chiffre d’affaires annuel.
  • Le Big Data est autoritaire80% des entreprises ont des difficultés avec plusieurs versions de la vérité, en fonction de la source de leurs données. En combinant plusieurs sources vérifiées, davantage de sociétés peuvent produire des sources de renseignements extrêmement précises.
  • Le Big Data est exploitableAvec des données obsolètes ou erronées , 46% des entreprises prennent de mauvaises décisions qui peuvent coûter des milliards.

Dans l’ancien temps… vous savez… il y a quelques années, nous utilisions des systèmes pour extraire, transformer et charger des données (ETL) dans des entrepôts de données géants sur lesquels reposaient des solutions de veille stratégique. Périodiquement, tous les systèmes sauvegardaient et combinaient les données dans une base de données où les rapports pouvaient être générés et où tout le monde pouvait avoir un aperçu de ce qui se passait.

Le problème était que la technologie de base de données ne pouvait tout simplement pas gérer plusieurs flux de données continus. Il ne pouvait pas gérer le volume de données. Il ne pouvait pas modifier les données entrantes en temps réel. Et il manquait des outils de reporting qui ne pouvaient rien gérer d’autre qu’une requête relationnelle sur le back-end. Les solutions Big Data offrent un hébergement en nuage, des structures de données hautement indexées et optimisées, des fonctionnalités d’archivage et d’extraction automatiques, et des interfaces de reporting ont été conçues pour fournir des analyses plus précises permettant aux entreprises de prendre de meilleures décisions.

De meilleures décisions commerciales signifient que les entreprises peuvent réduire les risques liés à leurs décisions et prendre de meilleures décisions qui réduisent les coûts et augmentent l’efficacité du marketing et des ventes.

Il est très difficile d’apprendre le Big Data. Et de nombreuses entreprises l’utilisent dans son organisation. Le concept même de Big Data, ou de données globales, et la manière de le collecter et de le transférer dans le lac de données peuvent sembler effrayants, mais cela devient moins le cas si vous divisez le problème de collecte de données en sous-ensembles. Votre comptabilité des systèmes transactionnels, vos systèmes RH, etc. sont déjà utilisés comme sources de données pour l’analyse. Les processus ETL sont déjà en place pour collecter ces données. Vous vous retrouvez essentiellement avec deux options. Vous pouvez soit dupliquer ces processus ETL, en permutant la cible d’EDW vers le lac de données, soit répliquer votre EDW dans le lac de données – en copiant les données, ou virtuellement en englobant l’architecture de lac de données virtuel (une variante de l’entrepôt de données virtuel). .

Données structurées issues de l’Internet des objets: La principale complexité des données de capteur et autres données de la machine est le volume et le débit requis pour une ingestion correcte en temps voulu. Mais ces données sont généralement très standardisées et les exigences de transformation des données en amont ne sont pas immenses.

Données non structurées: la collecte de fichiers multimédias, de données textuelles, est facilitée par les plateformes de données volumineuses telles que Hadoop. Parce que leur stockage est sans schéma, il suffit de “vider” ces données dans le lac de données et de les comprendre plus tard. Donnez les outils ETL et les connecteurs / API appropriés, ainsi que le bon débit, la collecte de données vol La partie la plus difficile de l’équation Big Data.

Stockage des données: les grandes plates-formes de données sont multi-morph – elles peuvent stocker toutes sortes de données. Ces données peuvent être représentées et accessibles via différents prismes. Du simple stockage de fichiers aux bases de données relationnelles No-SQL à la cohérence assouplie en passant par les bases de données relationnelles Third-Normal-Form et même Fifth-Norm-Form, de la lecture directe à l’accès de type colonne au SQL transactionnel, il existe une réponse à chaque accès au stockage et aux données En raison de ses concepts de conception fondamentaux, la plate-forme est vendable à l’infini. Provisionnez-le dans le nuage, et il devient élastique. Du point de vue conceptuel au moins, le stockage des données volumineuses est la partie la plus facile de l’équation des données volumineuses. Là où il devient délicat, c’est comment le faire fonctionner en réalité. De la plate-forme Hadoop principale aux distributions commerciales aux plates-formes hybrides proposées par les fournisseurs de bases de données, il existe de nombreuses options, de nombreux niveaux de prix, de nombreuses variantes du concept et de nombreux niveaux de compétence requis.

Utilisation des données: une fois que vous avez toutes ces données dans le Data Lake, comment les rassemblez-vous? Transformer et réconcilier les données, assurer la cohérence entre les sources, vérifier la qualité des données – voilà la partie la plus difficile de l’histoire des Big Data et où le moins d’automatisation et d’aide sont disponibles. Si vous devez créer une application à partir de données spécifiques source ou pour créer des rapports sur un ensemble de données cohérent, il existe de nombreuses solutions qui automatiseront le processus et le rendront transparent. Mais franchissez les frontières des sources, explorez et exploitez des données hétérogènes, c’est là que vous êtes. Et c’est là que les fournisseurs qui prétendent faciliter le big data doivent intervenir et apporter leur aide.

Cette liste est longue et très complète.

Il existe une tonne d’excellentes vidéos et ressources en ligne pour vous permettre d’apprendre la programmation. Je vais essayer de vous donner la réponse la plus complète possible pour vous aider à démarrer. Je pense que vous devriez être en mesure d’obtenir une très bonne compréhension en utilisant ces cours. Cela dit, cela dépend grandement du type de programmation que vous voulez faire. Je vais essayer de vous donner un peu de tous les mondes afin que vous ayez des endroits où aller pour aller de l’avant.

Voici ce dont je pense avoir besoin pour réussir:

  • Bon cours, cours, livres, etc.
  • Mentor / tuteur
  • Préparez pour les entrevues. Découvrez ce livre: (Entrevue sur le codage: 150 questions sur la programmation et solutions: Gayle Laakmann McDowell: 9780984782802: Amazon.com: Livres) Cela devrait vraiment vous aider à être prêt à passer des interviews. Ils sont tous différents, mais c’est un bon endroit pour commencer.

Je pense que c’est essentiel pour vous d’apprendre comment penser afin de programmer. La programmation consiste simplement à résoudre des problèmes. Donc, apprendre à résoudre ces problèmes et ensuite connaître la syntaxe / comment écrire le code. L’apprentissage de la programmation est sans fin.

1. Stanford sur iTunes U – Cours gratuit de Stanford sur iTunes U
Ce cours n’a pas encore été mis à jour pour iOS 9, mais constitue une bonne ressource pour commencer à vous salir les mains ET c’est gratuit! Ils ont fait un excellent travail et ont publié un parcours célèbre. Il est facilement accessible et donne l’impression que vous participez à un cours collégial en développement iOS.

2. Université de Harvard – Informatique
Ils ont de nombreux cours à choisir, ce qui devrait vous donner le meilleur endroit pour commencer à choisir le langage de programmation que vous souhaitez apprendre.

3. Udemy – Udemy: Cours en ligne à tout moment, n’importe où
Udemy propose une large gamme de cours pour tous les types de programmation. Les vidéos peuvent être téléchargées pour une visualisation hors ligne, les forums pour recevoir de l’aide sont merveilleux et vous obtenez un accès à vie. Ils ont une tonne de cours et d’autres sont lancés jour après jour. Ce site Web fait une énorme chute dans l’industrie de l’apprentissage en ligne.

Disclaimer: J’ai un cours sur Udemy. Je crois que c’est le meilleur cours sur Internet pour apprendre à programmer. En plus de l’accès à vie, nous offrons personnellement une aide à la vie et un tutorat qui sont essentiels lors de l’apprentissage. Souvent, les gens restent bloqués et n’arrivent pas à comprendre. Nous avons résolu ce problème en vous aidant à passer du niveau débutant à la construction de vos propres projets. iOS 9 et Swift 2: du débutant au professionnel rémunéré

4. Khan Academy – Khan Academy
La Khan academy a fait un travail formidable. En recherchant simplement la langue que vous souhaitez apprendre, vous aurez des tonnes de cours à l’écran.

5. Lynda – Tutoriels vidéo et formation en ligne
Ils ont un large éventail de cours et des tonnes de cours de programmation. Ceci est une entreprise LinkedIn et est très bien mis en place. Vous recevez un essai et devez ensuite payer un abonnement mensuel pour y avoir accès. Si vous avez l’argent, c’est dans mon top 3 des sites Web pour apprendre à peu près n’importe quoi.

6. Team Treehouse – Apprenez la conception de sites Web, le développement de sites Web, etc. | Cabane dans les arbres
Cette plate-forme très abordable a un impact considérable sur le monde de la programmation. Les vidéos sont complètes, vous pouvez dire qu’elles sont écrites. Cela coûte de l’argent, mais ils ont un programme de référence génial pour obtenir un abonnement gratuit.

7. http://Code.org
Ces gars ont également un large éventail de classes / tutoriels. Très amusant, interactif et bien mis en place. Je n’ai encore eu à payer pour rien sur ce site. Si vous n’avez jamais programmé auparavant, ils ont une application géniale pour vous permettre de coder pendant une heure pour mettre les pieds dans la porte.

8. Udacity – Catalogue des cours – Udacity
Ces gars-là ont un ensemble assez solide de cours qui vous aideront à démarrer.

9. Coursera – Page sur coursera.org
Coursera a une tonne de cours et ils brillent en rendant l’expérience plus collégiale avec des cours donnés par des universités et des professeurs. C’est un endroit merveilleux où aller.

10. Livre – Programmation iOS: Le guide du Big Nerd Ranch
Ce n’est pas un site Web ou un cours, mais l’un des meilleurs livres sur le marché. Je recommande fortement d’avoir cela à vos côtés pendant que vous apprenez.

11. Documentation sur les pommes – Introduction
Si vous voulez devenir un peu sauvage, vous pouvez plonger dans Apples Documentation et commencer à décomposer les choses.

12. NShipster – NSHipster
Grand site Web en ligne pour approfondir le développement iOS.

13. Javascript Books –
Encore une fois, ce n’est pas en ligne, mais il peut être bon d’avoir ce type de programmation si vous décidez de prendre quelques livres.

  • Livre: Les secrets du ninja JavaScript
  • Livre: Eloquent JavaScript
  • Livre: JavaScript: Le guide définitif

14. Tutoriel AppleTV
Ceci est un tutoriel que nous avons mis en place pour aider ceux qui sont intéressés à creuser dans l’AppleTV.

15. Résolution de problèmes – À propos de – Project Euler
La programmation est une question de résolution de problèmes. Il s’agit de l’un des sites Web les plus populaires pour consulter certains problèmes et faire réfléchir votre esprit d’une certaine manière.

16. Code Wars – Page sur codewars.com
C’est un site web tellement amusant. Cela vous donne un petit essai où vous devez passer quelques questions de programmation pour vous inscrire. Endroit amusant pour aller pratiquer.

17. Code School – Apprendre à coder en faisant – Code School
Un autre endroit merveilleux où aller. C’est une entreprise de Pluralsight et une bonne ressource pour un large éventail de cours.

18. Pluralsight – Développeur, Formation en informatique et création par des professionnels
La plupart de ces cours sont orientés un peu plus loin dans le code d’apprentissage et sont dispensés par des professionnels du secteur. C’est peut-être un peu cher, mais c’est un bon endroit où consolider votre apprentissage.

19. Skillcrush – Les compétences numériques sont des compétences professionnelles
Cela ressemble beaucoup à une salle de classe et serait très bénéfique pour l’apprentissage.

20. Code Avengers – CodeAvengers
CodeAvengers vous guide à travers chaque étape d’un processus très facile à suivre. Les tâches ne sont pas si difficiles que vous allez ressentir le besoin de “tricher” mais elles ne sont pas non plus si faciles que vous voulez simplement copier rapidement la réponse.

21. Tuts Plus – Tuts +
Ils ont des cours pour toutes sortes de choses, de la conception Web aux graphiques, etc. Même les professionnels de leur secteur devraient pouvoir y suivre des cours pour approfondir leur apprentissage et leurs connaissances.

22. Skillshare – Maîtrisez des compétences réelles avec des projets pratiques.
Ceci est un autre site Web pour toutes sortes de compétences basées sur la créativité. Ils ont d’excellents endroits pour commencer en ce qui concerne la programmation.

23. Mijingo – Apprendre le développement et la conception Web – Mijingo
Ressource en ligne proposant des didacticiels vidéo détaillés.

24. SitePoint – SitePoint
Ceci offre une base de données toujours croissante de cours et de livres pour ceux qui veulent apprendre.

25. CodeMarina – Apprenez à coder | CoderMania
Ceci est supposé être l’une des meilleures ressources disponibles. Il est toujours en version bêta cependant.

26. Alison – Cours en ligne gratuits et apprentissage en ligne d’ALISON
Cela ressemble beaucoup à Coursera et propose une multitude de cours en ligne destinés à vous faire vivre une expérience de type universitaire.

Globalement, cela devrait vous donner des tonnes de ressources et d’endroits où aller. Je suis plus qu’heureux de vous aider de toutes les manières possibles. S’il vous plaît consulter mon cours, nous offrons l’aide en direct et le tutorat qui peut être un changeur de jeu que vous apprenez à programmer.

************************************************* **********************

Kevin Flint est un spécialiste du marketing, un mentor, un programmeur et un coach chevronné qui dispense un des cours iOS les plus vendus pour aider les gens à devenir des développeurs iOS professionnels:

iOS 9 et Swift 2: du débutant au professionnel rémunéré

Kevin Flint (@ kflint2) | Gazouillement

************************************************* **********************

Si vous avez déjà suivi vos cours de base en informatique et satisfait à vos exigences en matière d’obtention du diplôme, envisagez un cours aussi éloigné que possible de l’informatique. Il vous reste un an dans vos études de premier cycle. Il ne serait pas inhabituel que votre vie après l’obtention du diplôme soit très concentrée sur des détails. Si vous allez aux études supérieures, vous acquerrez une expertise dans un sous-domaine spécifique. Si vous travaillez dans l’industrie, vous pourrez acquérir des connaissances sur le domaine lié à ce que vous construisez, mais votre objectif principal sera de perfectionner votre métier: construire des logiciels.

Deux des cours dont je me souviens le mieux de mon niveau CS sont ceux des départements d’histoire et de loisirs, de sports et de tourisme de mon école. Ces deux cours ont eu lieu au cours de ma dernière année et sont des cours que j’ai décidé de suivre parce qu’ils répondaient à des exigences mineures et qu’ils avaient un horaire hebdomadaire pratique pour moi. J’étais sceptique pour le moins. J’étais confiant que j’allais perdre mon temps. Mieux encore, parce que j’étais paranoïaque à propos de mon GPA plutôt que par intérêt réel, j’ai pris le travail de cours au sérieux, complété les montagnes de lectures, mis du temps et réfléchi dans les tâches assignées. À la fin des deux cours, je les appréciais. J’apprenais de nouvelles choses. Je ne crois pas que j’aurais appris ces choses moi-même après l’obtention de mon diplôme.

Il est important de se rappeler que, que vous fassiez des recherches, rejoignez une entreprise ou créiez une entreprise, vous travaillerez avec d’autres personnes. Vous serez d’accord et pas d’accord avec eux pour des raisons que vous ne pouvez pas comprendre analytiquement. Vous allez rencontrer des situations dans lesquelles la connaissance de CS ne peut vous aider. L’objectif final de travailler dans un domaine lié à l’informatique est presque toujours autre chose . Même si vous finissez par faire de la recherche en fouille de données, quelqu’un d’autre appliquera votre travail pour rendre les propriétaires d’animaux domestiques plus heureux, aider les consommateurs à éviter les frais de transport aérien ou à créer une application mobile qui diffuse anonymement vos fautes de frappe à un groupe aléatoire de personnes que vous ne connaissez pas. . Au-delà de votre majeure, vous découvrirez de nouvelles façons de voir les choses. Cela vous aidera à approfondir votre compréhension des gens. Et vous en apprendrez davantage sur les problèmes dans lesquels l’informatique peut, mais n’a pas encore été appliquée. Ça va payer.

Une fois que vous aurez obtenu votre diplôme, le temps que vous devrez consacrer à l’acquisition de connaissances supplémentaires sera limité. Profitez de l’occasion que vous avez maintenant. Apprendre quelque chose de nouveau. Laissez-vous surprendre Et en profiter.

Vous faites de la programmation votre passe-temps.

1. Recherchez les blogs et les listes de diffusion Big Data / Data Mining et commencez à les suivre. Cela vous permettra de comprendre ce que la communauté considère comme des problèmes non résolus.

2. Recherchez un outil de Big Data / Data Open Source open source et commencez à le maîtriser. Alors trouvez-en un autre.

3. Avec votre connaissance des problèmes et des outils, trouvez un jeu de données open source et commencez à faire de la science.

Maintenant, quand vous allez en entretien, vous n’êtes plus un candidat sans visage dans une école médiocre. Au lieu de cela, vous êtes le mec (non-spécifique au genre) qui a téléchargé Wikipedia et a mis au point un nouvel algorithme de détection de boudins, ou le mec qui est revenu sur les enquêtes de ciel de la NASA et a découvert une demi-douzaine d’astéroïdes inconnus auparavant. Ou vous avez cloné 10k projets GitHub et effectué une enquête sur les erreurs de codage.

tl; dr: Si vous voulez un travail de data mining, vous devriez le faire maintenant. Pour s’amuser. Parce que c’est vraiment cool. Ainsi, lorsque vous vous présenterez à l’entrevue, vous pourrez dire “Je fais ça pour le plaisir, et laissez-moi vous montrer certains de mes récents résultats”. Cela vous facilite grandement la décision d’embauche par rapport à une personne qui a passé trois semaines sur un projet de classe d’exploration de données.

Rappel des faits: Le MIT est l’une des écoles les plus compétitives de la planète. Ils n’acceptent que le meilleur des meilleurs et il faut plus de 4 ans à un étudiant pour obtenir son diplôme (s’il ne se lave pas). Vous vous attendez sérieusement à atteindre le même niveau de compétence par vous-même en 1 an? Cela pourrait être théoriquement possible, mais si vous êtes aussi malin, vous devriez pouvoir obtenir une bourse complète pour aller au MIT.

Même si vous allez au MIT, vous ne pouvez pas devenir un bon programmeur en un an. L’ensemble du programme Comp Sci du MIT est disponible en ligne gratuitement. Complétez le plus possible en une année et voyez où vous en êtes à la fin de cette période. Si vous êtes réaliste et que vous vous appliquez vous-même, vous pourrez peut-être acquérir les compétences nécessaires pour décrocher un poste de programmeur de premier échelon, qui est essentiellement un apprentissage. Ensuite, si vous vous appliquez et que vous choisissez les cerveaux de vos collègues, et que vous faites beaucoup d’efforts pour perfectionner votre art, vous pourrez peut-être vous qualifier de bon programmeur dans 5 ans.

En tant qu’interview et embauche de programmeurs de tous niveaux, je recherche deux aptitudes principales dans un entretien d’embauche:

  1. La capacité d’appliquer la connaissance des algorithmes, des structures de données et surtout des bibliothèques standard pour résoudre des problèmes réels. Peu importe si vous savez écrire une table de hachage, une liste chaînée ou un b-tree à partir de rien… ce sont des problèmes résolus. Si je vous pose un problème, je m’attends à ce que vous puissiez choisir un ensemble d’outils raisonnable et adopter une approche raisonnable pour le résoudre. Si je vous pose un problème qui est mieux résolu avec une table de hachage et que votre solution implique la mise en oeuvre d’une table de hachage à partir de zéro, vous échouerez. Je ne vous teste pas sur votre capacité à écrire une table de hachage. Je vous teste sur votre capacité à reconnaître que vous devez utiliser une implémentation de table de hachage existante.
  2. La capacité de penser de manière analytique, de casser un problème et d’expliquer votre approche pour le résoudre.

Je suis constamment étonné par le peu de diplômés en sciences de la compile qui peut effectuer une tâche de programmation de base telle que le test Fizz Buzz dans un contexte d’entretien.

Ma tâche est un peu plus difficile que FizzBuzz, mais pas beaucoup… elle peut être résolue en 6 lignes de code dans un langage dynamique comme Python, Perl ou Ruby; vous pouvez le faire en Java ou C ++ en 20-30 lignes environ. J’ai reçu des réponses avec des solutions à moitié correctes qui ont nécessité plus de 100 lignes de code.

Les diplômes en génie logiciel accompagnent un jugement peu judicieux, qui décourage souvent les étudiants de chercher un diplôme: ils vous transformeront en un déchiffreur de code déconnecté. Ce n’est pas tellement le cas.

DiplômésLes diplômés en sciences informatiques s’adaptent à une vaste gamme de postes et de vocations. Dans tous les cas, pour vous assurer que vous avez le bon mélange de capacités et de compréhension pratique pour en obtenir un, effectuer votre travail et choisir une voie de vocation avant de choisir une revendication spécialisée de renommée ou de programme.

Quels conseils pour réussir pourriez-vous donner à ceux qui recherchent un diplôme en génie logiciel? Dites-nous dans les remarques ci-dessous.

«La crevasse entre la classe et le milieu de travail est un problème», reconnaît le Dr HE Dunsmore, professeur d’informatique, siège du Comité des politiques et du curriculum de formation de premier cycle du Collège des sciences de l’Université Purdue.

Le bureau d’informatique de Purdue a trouvé un moyen de faire prendre conscience à davantage de doublés de l’adaptabilité des diplômes de CS. Ses étudiants ont la possibilité d’enquêter sur différentes professions et de choisir un parcours instructif qui convient à leurs penchants.

“Les majors en génie logiciel suivent un cours au cours de leur première année qui clarifie les différents choix de professions et ce qu’ils vont vraiment faire tout au long de la journée”, précise Dunsmore. “Ils ont également la chance de se mêler à nos complices d’entreprise, de prendre connaissance de diverses possibilités de travail et ensuite de choisir parmi une vaste exposition de pistes instructives allant des illustrations à la sécurité, qui peuvent nécessiter moins de calculs ou de programmation.”

Si vous êtes intéressé par CS, tenez compte des cinq points suivants:

Connais-toi toi-même: aimes-tu travailler en solo ou en groupe? Souhaitez-vous travailler avec une innovation de pointe ou renforcer une unité spécialisée dans une organisation du secteur privé? En fait, vous pouvez être un administrateur de base de données, un enquêteur professionnel, un concepteur de programmation, un spécialiste ou un expert des cadres informatiques. Dans tous les cas, vous devez choisir une vocation et des modules éducatifs qui utilisent vos qualités académiques. À l’heure actuelle, moins de 40% des projets de premier cycle en sciences, en innovation, en conception et en mathématiques aux États-Unis sont sanctionnés par un diplôme. “Si vous devez rechercher une vocation dans la construction de programmes, vous devez terminer des cours approfondis en mathématiques et en programmation.” », déclare le docteur Larry Davis, éducateur à l’Institute for Advanced Computer Studies et siège du département d’informatique de l’Université du Maryland.

Choisissez une carrière durable: l’emploi dans toutes les professions liées à l’informatique augmentera de 22% jusqu’en 2020, mais certains domaines de la technologie de l’information factureront davantage que d’autres, conformément à la mise à jour biennale des prévisions d’activité du Bureau of Labor Statistics. Les programmes d’assistance technique et d’écriture sont encore envoyés vers le large, alors choisissez soigneusement. “Essayez de ne pas tenir jusqu’à ce que votre classement soit inférieur ou supérieur à celui des foires des travaux publics”, suggère Davis. “Allez quand vous êtes une recrue de première année afin de pouvoir rencontrer des entreprises et avoir vent de leurs futures ouvertures.

Acquérir des compétences commercialisables: il peut être idéal pour les étudiants en administration des affaires et en informatique si vous devez travailler dans le secteur privé, compte tenu du fait que le nuage modifie l’informatique et crée des parties croisées au fil de l’entreprise, selon Gartner. La plupart des ingénieurs en génie logiciel investissent de l’énergie dans l’assemblage de leurs propres applications et cadres, mais les entreprises n’ont pas vraiment besoin de cette maîtrise. Les capacités avancées intègrent une combinaison de frameworks, de connaissances métier, de calcul distribué, SQL, .Net, C, dialectes polyvalents et Java.

Obtenez une expérience pratique: Vous ne pouvez pas apprendre les bases de la collaboration ou des affaires en parcourant un support de lecture. Intéressez-vous aux projets de doublure, aux efforts humanitaires, aux panels de terrain et aux postes temporaires afin de pouvoir vous procurer une compréhension spécialisée pratique, une intuition commerciale, une initiative et des capacités relationnelles.

Continuez: Il faut six ans à la plupart des étudiants en sciences de la traduction pour obtenir un diplôme, car bon nombre d’entre eux abandonnent leurs cours de mathématiques et de programmation, mais ils savent cependant comment réussir leur deuxième fois.

Un informaticien est quelqu’un qui a une connaissance avancée de l’informatique. Vous pouvez être un informaticien en adoptant la programmation comme un passe-temps. Pour débuter votre carrière dans le domaine de la programmation, vous avez la capacité de penser de manière logique et de comprendre un autre type d’algorithme.

Cours que vous devriez suivre

Donc, au début, je vous recommande d’étudier dans une école de programmation, par exemple la Holberton School of Software Engineering de San Francisco, où vous pouvez obtenir une assistance experte en matière de programmation. Ils proposent des cours complets de langages de programmation allant des langages de bas niveau aux langages de haut niveau tels que C ++, Java, C #, etc. Après avoir suivi ce cours, vous avez la possibilité d’apprendre un nouveau langage et de commencer votre carrière en tant qu’ingénieur logiciel. Vous avez maintenant une idée de ce que vous devez étudier pour une nouvelle langue.

Après cela, je recommande des cours d’Udemy, Lynda et Team Treehouse. Udemy a apporté une grande révolution dans l’apprentissage en ligne. Il propose des centaines de cours et lance de nouveaux cours jour après jour. Vous pouvez également télécharger des vidéos d’Udemy pour apprendre. Team Treehouse est également une plate-forme d’apprentissage dans laquelle vous pouvez obtenir de nombreux cours pour différentes langues. Cela vous coûte, mais si vous avez un système de référence, vous obtenez un abonnement gratuit.

Vous devez améliorer votre langue en participant à des concours en ligne tels que Google Code Jam, un concours de classement de hackers, etc. Si vous souhaitez écrire un code de programmation complexe, vous devez être plus expérimenté pour le faire. Une de mes recommandations est d’apprendre des livres et de faire de l’exercice avec ces livres. C’est très utile dans votre carrière. En tant qu’ingénieur, vous ne devez pas avoir peur du travail. Construire et développer de nouveaux systèmes et reconnaître leurs valeurs.

sur le plan technique si vous n’avez pas déjà pris:

  1. théorie relationnelle DB
  2. algorithmes et structures de données
  3. programmation fonctionnelle
  4. oo conception et programmation (programmation extrême si offerte)
  5. l’administration du système
  6. administration réseau

côté non technique :

  1. tout cours qui vous aide à cultiver votre créativité: dessin, peinture, photographie (ces cours aident également à la gestion des critiques et des commentaires)
  2. tout cours qui vous aide à naviguer et à prospérer dans des environnements de travail collaboratifs: comment donner et recevoir des commentaires critiques, organiser des réunions efficaces (révision de code, programmation par paires, rétrospectives, etc.), présenter vos idées verbalement / par écrit, capacité d’écoute active, empathie
  3. cours ayant trait au leadership efficace ou aux équipes de haut niveau: comment motiver les autres, être proactif, faire preuve de compassion, être concentré, gérer ses émotions, avoir des conversations difficiles

avoir des compétences cognitives plus élevées n’est pas nécessairement le point critique. Certaines études suggèrent que les compétences sociales et émotionnelles sont des différenciateurs clés.

“Lorsque j’ai comparé les artistes vedettes aux personnes moyennes occupant des postes de direction, près de 90% de la différence de profils était attribuable à des facteurs d’intelligence émotionnelle plutôt qu’à des capacités cognitives.” ~ Daniel Goleman de What Makes a Leader? publié dans le Harvard Business Review.

J’espère que ça aide. excellente question. J’ai hâte de lire ce que les autres ont à dire.

prendre plaisir

Vous pourriez aussi bien reformuler votre question de la manière suivante: “Merci de me montrer comment atteindre une décennie d’apprentissage et d’expérience en seulement un an”. .

Différentes personnes apprendront à des rythmes différents, et certaines personnes deviendront beaucoup plus conscientes de “l’art caché” de l’ingénierie logicielle que d’autres… Cependant, il est tout à fait irréaliste de s’attendre à devenir encore meilleur en ingénierie logicielle en un an seulement. Non pas que cela ne puisse pas être réalisé par un certain nombre de personnes… mais 1 an passe très vite. Bien sûr, toute expérience que vous avez des années avant de commencer le processus d’apprentissage formel peut faire la différence.

Une grande partie de ce que vous pouvez apprendre sur le génie logiciel se passe de l’autre côté de la manière dont vous apprenez extrêmement bien les bases. Et comme l’apprentissage des bases est extrêmement bon, cela prend généralement 4 ans au lieu de 1… cela vous laisse un sacré défi.

Un facteur important de l’ingénierie logicielle fonctionne bien de concert avec d’autres personnes sur le même projet et espérer obtenir l’équivalent de plusieurs années d’expérience en une seule année est également très irréaliste.

Vous devez vous poser cette question: est-ce que je veux écrire du code ou si je veux faire avancer la science? Ceux-ci ne sont pas nécessairement mutuellement exclusifs, mais vous devez en choisir un comme principal intérêt.

Si vous voulez écrire beaucoup de bon code, il vous faut fondamentalement beaucoup de pratique. Ma recommandation standard ici en termes d’apprentissage de livre est de faire tous (tous!) Les exercices dans un livre d’algorithmes de poids moyen. J’aime les algorithmes de Sedgewick parce que ce n’est pas trop long et je dirais que 90% de celui-ci est devenu utile au cours de ma carrière. Le Big White Tome de Cormen est la référence préférée de beaucoup de gens, mais en réalité c’est trop, comme Knuth. En tant qu’ingénieur, être capable de construire des systèmes avec habileté est une exigence de base, pas un objectif. Il est difficile, à l’OMI, d’acquérir des connaissances autres que la lecture sur la gestion des risques, des coûts et des besoins des clients, et de l’apprendre dans les essais au feu.

La science est également importante mais très différente. Vous pouvez écrire du code, comme un physicien peut avoir à construire des choses pour mener une expérience, mais votre objectif est différent. Personnellement, je n’ai pas choisi cette voie, alors je n’ai pas beaucoup d’autres choses à dire à ce sujet. Si votre véritable intérêt consiste principalement à faire progresser le domaine, vous devez vous en tenir à l’aspect scientifique pour ne pas vous perdre en ingénierie.

Pour les postes d’ingénieur, j’ai du mal à recommander ou à exiger des cours, car j’ai personnellement trouvé les livres et la vie réelle plus efficaces pour acquérir des connaissances que de suivre des cours. Je pense que si vous preniez le même temps et contribuiez de manière significative à quelques projets open source et / ou à la construction d’outils ou de sites Web destinés aux personnes, ce serait une meilleure utilisation de votre temps. Votre difficile tâche va attirer l’attention des grandes entreprises comme Google, qui reçoivent un si grand nombre de CV. Je suis assez convaincu que les contributeurs open source aux projets de Google, Facebook et Microsoft sont reconnus et qu’après une longue période de contribution significative, cela peut être un meilleur vecteur que de soumettre votre CV ou d’espérer trouver un recruteur lors d’un salon de la carrière.

Enfin, même en tant qu’ingénieur, n’ayez pas peur du travail difficile. Les systèmes de construction, les systèmes de déploiement, les compilateurs, etc. sont au cœur de notre pratique et des ingénieurs expérimentés reconnaissent leur valeur, même si certaines personnes ont tendance à penser que vous ne faites que mettre le fichier makefile en interne.

J’espère que cela t’aides,
Mike

Je prévois une année d’apprentissage et une vie à maîtriser. 🙂

Si vous étiez mon fils et que je vous enseignais, je commencerais par:

Langage de programmation C
Algorithmes et structures de données
Systèmes d’exploitation

Nous allions à Microcenter, construisions un PC, installions Linux dessus et commençions par apprendre les choses essentielles.

Après cela, nous passons aux technologies et aux langages utilisés pour créer le Web. HTML, JavaScript, Node.JS, SQL, etc.

Ensuite, nous aborderions des problèmes tels que OO, Ruby, RoR, Python, etc.

Juste mes deux cents.

Bonne chance!!

Vous devez être un génie de l’ordre de +5 sigma (1 sur 2 millions). Ensuite, il suffit de lire quelques livres.

Il n’ya aucun moyen de devenir un bon CS / SE en 1 an, tout comme il n’existe aucun moyen de devenir un violoniste de classe mondiale en 1 an.

Avec beaucoup de travail, vous pouvez probablement atteindre le niveau “Google-hirable” dans 2-3 ans. Si les cours que vous suivez sont vraiment mauvais, pourquoi avez-vous attendu la dernière année pour faire quelque chose?

Si vous êtes prêt à passer 2 à 3 ans, vous trouverez de nombreuses suggestions merveilleuses sur ce que vous devriez apprendre dans d’autres réponses.

  1. Calcul
  2. Mathématiques discrètes
  3. Algèbre linéaire
  4. Algorithmes et structures de données
  5. Langues formelles
  6. Théorie de la complexité
  7. Théorie des probabilités
  8. Physique de première année
  9. Électromagnétisme
  10. Mécanique quantique

Notez que vous avez spécifiquement demandé ce que vous deviez faire pour être un grand informaticien, et non un bon développeur de logiciels, d’où l’importance particulière accordée à ce qui serait utile pour la recherche plutôt que pour le codage.

Je n’ai certes pas tous ces cours et je n’ai peut-être même pas été en mesure de les réussir, mais il s’agit du genre de choses dont vous auriez probablement besoin pour être un grand informaticien, par opposition à un excellent développeur ou entrepreneur.

Vous pouvez ne pas avoir besoin de tous. Par exemple, si vous ne vous intéressez pas à l’informatique quantique, vous n’aurez peut-être pas besoin de la mécanique quantique et, comme la physique est là pour fournir une base à cette étude ou à d’autres études plus techniques, vous n’en aurez peut-être pas besoin.

Dans votre domaine d’étude, vous pourriez finir par suivre plusieurs fois un cours du même nom, les cours avancés couvrant ce sujet à des niveaux plus détaillés et plus abstraits, en répondant, espérons-le, aux questions sur les lacunes conceptuelles des cours plus fondamentaux. . Vous aurez aussi certainement besoin de plus de cours.

Aucun. Votre question suppose que vous pouvez devenir un bon informaticien ou un bon ingénieur en logiciel (qui ne sont pas la même chose) en un an.

Vous ne pouvez pas, c’est tout ce qu’il y a à dire.

En fait, vous ne pouvez même pas devenir un bon programmeur en un an ou deux, peut-être en cinq ans.

Il n’est pas nécessaire d’être programmeur pour être informaticien, mais cela aide certainement. Vous devez être un programmeur pour être un ingénieur en logiciel.

La véritable expertise vient avec le temps et, dans une très grande mesure, les titres classiques d’apprenti, de compagnon et d’artisan s’appliquent au bytesmithing comme au forgeron. Le temps requis pour progresser d’un poste à l’autre varie beaucoup d’un individu à l’autre, mais une année n’est pas une valeur réaliste pour l’un des éléments ci-dessus, car la carrière ne se limite pas à l’apprentissage d’un langage de programmation. pour résoudre les EOD, ou comment équilibrer une équation chimique.

Programmation Embarquée / Appareil / Scientifique / Jeux Sérieux :
C ++, C, Java, C #, Objective C, Programmation avancée orientée objet
Développement de logiciels d’entreprise : JAVA ou .NET C #
Développement Web : JavaScript et (JAVA ou ASP.NET ou Ruby On Rails)
ERP : SAP ou PeopleSoft ou Mcirosoft Dynamics
Intelligence d’affaires : méthodes Web / Biztalk / MSMQ, etc.
Développement d’applications mobiles : Objective C avec XCode ou JAVA avec Android SDK ou .NET ou Unity 3d, JavaScript Apache Cordova, etc.

Sont certains qui sont venus à mon esprit.

Tous.


Ce type vient de s’asseoir à son bureau et de parcourir en un an exactement le cursus de premier cycle en informatique du MIT, en passant tous les examens. C’est totalement gratuit en ligne, pour ceux qui sont prêts à s’asseoir et à faire le travail. S’il peut le faire, vous pouvez le faire.

Vous ne pouvez pas devenir professionnel en un an…
Tous les enseignements tirés des cours ne vous donneront pas l’expérience du monde réel.

Oui, bien sûr, vous pouvez devenir un universitaire assez rapidement, mais en construisant des systèmes non triviaux du monde réel, vous apprenez uniquement en le faisant, et non en étudiant.

Rien ne vaut la peine, rien de facile – Une année, c’est terriblement peu de temps pour vraiment apprendre suffisamment pour être “bon”. Vous pouvez probablement apprendre à faire des programmes simples et peut-être des sites Web.

Certains d’entre nous sont dans cette situation depuis des décennies et n’étions toujours pas aussi «bons» que nous le voulions.

Bonjour les amis, je suis Abhijit, un passionné de data science et d’apprentissage automatique.

S’il vous plaît aller à la chaîne.Si vous aimez les vidéos, s’il vous plaît ne pas oublier de vous abonner

Je travaille sur une idée, j’aime vraiment partager mes connaissances, aider le nouveau à s’épanouir. Par profession, je suis analyste de données. Je possède également une chaîne YouTube – « ANALYTICS MANTRA » – dédiée à tous les enseignements et tutoriels sur la science des données.