Est compétitif programmation diminuant l’Innovation pour résoudre les problèmes du monde réel?

J’appartiens à l’Inde et étudiants CS ont commencé à se sentir ici que la seule source de réussite dans ce domaine est de programmation concurrentielle sur plates-formes comme codechef et spoj parce que leur placement insistent beaucoup sur elle tout en ignorant les domaines comme le développement web, AI, science de données, réseaux, etc.. Il vraiment aider plus tard dans leur carrière et leur faire un bon informaticien?

Réponse

Oui et non.

1) Oui, parce que la programmation concurrentielle fournit les candidats ayant des problèmes bien structurés. Ces problèmes ont un ensemble d’entrées / sorties correspondant à ces entrées.

Génie logiciel dans le monde réel ne fonctionne pas comme ça. Les ingénieurs n’obtiennent pas la tâche sous la forme d’un problème bien défini. Le seul moyen par lequel ils peuvent réaliser des systèmes de construction est en créant des systèmes robustes.

L’édification de systèmes robustes nécessite travail d’équipe et une expertise dans beaucoup de domaines. Depuis, la programmation concurrentielle est un solo-sport (sauf quelques exceptions comme ACM-ICPC et IPSC), il ne vous apprendre à travailler en équipe.

Programmation concurrentielle encourage également écrire du code qui est plus difficile à comprendre pour les autres programmeurs. Même si cela se traduit par une connaissance des nombreuses constructions obscures, cela devienne une habitude très

Dans la programmation du monde réel, une construction plus simple choisie plus compliquée car il se traduit par une meilleure maintenabilité et facilite beaucoup la lecture du code.

2) non, car il vous enseigne l’art de la programmation de la méthode et de logique de programmation. Il vous fait pratiquer le noyau codage à tel point qu’il devient une seconde nature pour vous.

La plupart des problèmes de concours traite de la base de la programmation. Vous ne sont pas censés connaître tous les concepts de programmation orientée objet. Même si vous connaissez des constructions conditionnelles, tableaux, chaînes, boucles et avez une connaissance des bibliothèques pertinents (et comment les utiliser), vous pouvez être un pro à ces concours.

Une fois que vous savez comment le code, tous les autres concepts deviennent un moyen d’étendre votre capacité. Par exemple, si vous êtes un pro à des files d’attente, vous pouvez utiliser les concepts de la POO à créer du code réutilisable et générique. Vous pouvez coder un arbre AVL et puis étendez-la afin qu’il accueillir plusieurs types.

Être bon à algorithmes permet également de comprendre les algorithmes des utilisé dans AI, ML, systèmes distribués et bien d’autres régions.

Puisqu’une bonne maîtrise sur des algorithmes permet de comprendre les autres domaines, il est logique d’utiliser les connaissances algorithmiques comme une méthode pour éliminer les programmeurs qui n’ont pas les connaissances de base.

Je ne dis pas que les développeurs web ou les développeurs de logiciels sont moins compétents. Je veux juste dire que, lorsqu’une entreprise a peu de temps sur sa main et à interviewer des centaines d’étudiants, algorithmes fournissent une mesure assez décente.

Toutefois, je tiens à signaler que programmation concurrentielle ne doit pas être prise comme une sorte d’activité qui se faite parce que les écoles n’enseignent pas il. Il est fait pour gagner une présence mondiale. Si on enlève la partie de la renommée, il est juste de problèmes mathématiques et algorithmiques puzzles... ContentFooter {zoom: 1; padding-top : 8px ; police-taille : 13px ; font-family: « Helvetica Neue », Helvetica, Arial, sans-serif}. ContentFooter : avant,. ContentFooter : après {display : table ; content: ""; zoom: 1}. ContentFooter : après {clear : les deux}. ContentFooter. ContentFooter un {couleur: #aaa} .question_text .qtext_para {display : inline ; margin: 0} .logged_out_related_questions_container {frontière-haut: 0} .logged_out_related_questions_container .logged_out_related_questions_heading .more_questions_text un {color: #999} .logged_out_related_questions_container .logged_out_related_questions_heading .related_question un {police-taille : 15px ; ligne-hauteur : 1,4 ; police-poids : 400}. NewGridQuestionPage .header.question_link{font-size:19px;color:#333;letter-spacing:-0.5px;line-height:1.25;font-weight:bold;font-size:28px;letter-spacing:-1px;font-size:24px}. NewGridQuestionPage .header .question_link a.external_link {marge-droit : 2px}. NewGridQuestionPage .header .question_link {couleur: #2b6dad} .logged_out_related_questions_container {border-top : 1px solid #e2e2e2 ; padding : 18px 0} .logged_out_related_questions_container .logged_out_related_questions_heading {police-taille : 15px ; ligne-hauteur : 1,4 ; font-weight: "BOLD"} .logged_out_related_questions_container .logged_out_related_questions_heading .more_questions_text {display : inline ; font-poids : 400 ; color: #999} .logged_out_related_questions_container .related_question {marge-top : 10px} .question_link : hover {text-decoration : none} .question_link:hover .question_text {text-decoration : underline}


Tags: Algorithmes, Innovation +, Programmation concurrentielle, Informatique, Résolution de problèmes, CodeChef, Innovation sociale