Sites Web avec des tâches pour les programmeurs
Presque toutes les ressources de la collection sont en anglais, vous aurez donc l'occasion non seulement de vous entraîner à résoudre des problèmes et des énigmes de codage, mais également de vous entraîner davantage à utiliser l'anglais en programmation.-
L'une des ressources en anglais les plus populaires avec des tâches pour les programmeurs. Vous y trouverez plus de 200 tâches de différents niveaux de complexité, qui peuvent être résolues directement sur le site en ligne à l'aide de l'un des 10 langages de programmation disponibles (dont Java).
-
Programming Praxis est un blog populaire qui publie régulièrement diverses tâches intéressantes et, surtout, pertinentes pour les programmeurs. Commun à une gamme de langages de programmation. Les défis sont conçus pour aider les codeurs à se mettre au courant des dernières évolutions technologiques et des approches de programmation dans la pratique.
-
TopCoder est une communauté active de programmeurs qui aiment développer et résoudre divers problèmes. De nouvelles tâches sont régulièrement publiées, dont la solution réussie vous permettra non seulement de pratiquer et d'augmenter vos ressources humaines, mais également de recevoir des prix en espèces.
-
CodeKata est un blog avec de nombreux problèmes assez originaux et pleins d'esprit pour les programmeurs, inventé par Dave Thomas, l'un des auteurs du célèbre livre Pragmatic Programmer (« Le programmeur pragmatique. Le chemin de l'apprenti au maître »). Les problèmes sur le site Web CodeKata sont divers et les solutions sont pertinentes pour le travail de programmation réel.
-
Juge en ligne de l'Université de Pékin pour l'ACIP/ICPC
Peking University JudgeOnline pour ACIP/ICPC est une page de l'Université de Pékin qui contient des tâches pour les programmeurs de divers concours et compétitions. Le site est régulièrement mis à jour, les problèmes peuvent être résolus en temps réel et les solutions sont évaluées par une commission d'experts de l'Université de Pékin.
-
Encore un vieux site bien connu avec des tâches sérieuses et non triviales. « Le projet Euler est un ensemble de problèmes mathématiques et de programmation complexes qui nécessitent plus que de simples connaissances mathématiques pour être résolus. Les problèmes varient en complexité et l’approche est basée sur l’apprentissage en chaîne inductif. Autrement dit, après avoir résolu un problème, vous découvrirez un nouveau concept qui vous permettra de résoudre d'autres problèmes auparavant inaccessibles à la compréhension », expliquent les créateurs de la ressource.
-
Le Daily WTF est une autre communauté de programmation populaire qui fonctionne selon le principe Bring Your Own Code (BYOC), ce qui signifie que les développeurs partagent leur propre code source pour résoudre divers problèmes originaux. "Le but du BYOC est simple : vous offrir, en tant que développeur de logiciels, la possibilité d'améliorer vos compétences en programmation en résolvant un problème un peu plus intéressant que les choses habituelles et ennuyeuses", indique le site.
-
Un excellent site en russe avec des tâches algorithmiques qui permettent de tester les compétences de spécialistes lors d'entretiens techniques dans des entreprises telles que Google, Facebook et autres. De nombreux problèmes sont présentés, y compris des problèmes originaux, de différents niveaux de difficulté.
-
Concours de programmation d'Al Zimmermann
Un site Web d'auteur bien connu où « des programmeurs fous rivalisent pour la gloire et des prix sympas ». Des concours ont lieu une à deux fois par an et les noms de programmeurs distingués sont publiés sur la page principale de la ressource, ce qui suscite certainement l'intérêt des employeurs prometteurs.
-
L'une des plus grandes archives en langue russe de problèmes de programmation avec un système de vérification automatique. La principale source de tâches pour les archives sont les compétitions de l'Université fédérale de l'Oural, les championnats de l'Oural et d'autres événements de programmation régionale. Timus Online Judge vous permet également de participer aux versions en ligne de la plupart des compétitions qui se déroulent régulièrement à l'Université fédérale de l'Oural.
5 tâches intéressantes
Voici quelques énigmes intéressantes pour ceux qui ont hâte de commencer.-
L'énigme du mixeur de Steve Jobs
Défi : Vous êtes réduit à la taille d'une pièce de cinq cents et jeté dans un mixeur. Votre poids a diminué pour que votre densité corporelle reste la même. Les lames commenceront à tourner après 60 secondes. Vos actions?
Il s’agit d’une tâche classique généralement associée à Steve Jobs, le fondateur d’Apple. Lorsque Jobs est revenu chez Apple en 1997, il a personnellement interviewé chaque employé de l'entreprise et a utilisé cette tâche comme l'un de ses premiers tests.
Solution:
У данной задачи больше одного решения, так How она служит для того, чтобы оценить креативность сотрудника, умение быстро находить выход из стрессовой ситуации и неординарно мыслить. Вот наиболее классический вариант решения: лечь How можно плотнее к днищу блендера, чтобы его лезвия крутorсь над вами.
-
Сколько людей было на конференции?
Задача: На конференции каждый гость пожал руку всем остальным. Было 66 рукопожатий. Сколько человек было на научной конференции?
Другая классическая программистская задача из тех, которые часто дают на первых этапах технических собеседований.
Классическое решение:
Допустим, на конференции было n человек. Первый человек пожимает руку всем остальным: n-1 раз (n-1 человек). Второй человек пожимает руку всем остальным (но не первому, так How это уже было сделано): n-2 раза. 3-й человек пожимает руку всем остальным: n-3.
Таким образом, общее количество рукопожатий будет = (n-1) + (n-2) + (n-3) + …… 0;
= (n-1) * (n-1 + 1) / 2 = (n-1) * n / 2 = 66
= n ^ 2 -n = 132
= (n-12) (n + 11) = 0;
= n = 12 ИЛИ n = -11Вариант -11 исключен, поэтому ответ: 12 человек.
-
Бар и 25 стульев.
Еще одна классическая и весьма остроумная задачка, на этот раз посложнее.
Задача: Есть бар с 25-ю стульями, которые расположены в линию. Посетители этого бара — антисоциальные личности, поэтому, когда они заходят в бар, то всегда стараются найти место How можно дальше от остальных. Если постоянный посетитель заходит в бар и обнаруживает, что свободного места без соседства с кем-либо нет, он разворачивается и уходит. Владелец бара, естественно, хочет видеть можно больше посетителей. Владелец может указать место, на которое нужно сесть, только первому клиенту, тогда How все остальные сами выберут себе самое дальнее место от других. Предположим, что места пронумерованы от 1 до 25. Какое место должно быть занято первым?
Решение:
Первый человек должен сесть на стул 9 or 17 (из-за симметрии, не имеет значения, Howое именно из двух мест). Предположим, он выбирает место 9. Следующий человек выберет место 25, так How оно самое дальнее от места 9. Следующие два человека займут места 1 и 17. Следующие три займут 5, 13 и 21. Следующие шесть будут занимать стулья 3, 7, 11, 15, 19 и 23. Таким образом, в баре разместится максимум 13 человек, и никто не будет сидеть рядом с другим человеком. Если место, отличное от 9 or 17, будет выбрано первым, общее количество посетителей бара будет меньше 13.
-
Деньги в карманах и религия.
Интересно составленная задача на нахождение алгоритма.
Problème : Un homme a de l'argent en poche dont le montant total est de 90 à 95 dollars. En chemin, il visite plusieurs temples. Dès qu’il entre dans un temple, son argent est doublé et il finit par donner 100 $ à chaque temple. En conséquence, sa poche se vide après avoir visité le dernier temple. Maintenant, la question est : de combien d’argent disposait-il au départ et combien de temples a-t-il visité ?
Solution:
On commence à compter à partir du dernier temple :
Après avoir visité le dernier temple (1) il lui restait 0 argent, donc => (0 + 100) / 2 = 50. Il lui restait 50 dollars avant de visiter le dernier temple
Avant de visiter le temple précédent (2), il avait (50 + 100) / 2 = 75.
Avant de visiter le temple précédent (3), il avait (75 + 100) / 2 = 87,5.
Avant de visiter le temple précédent (4), il avait (87,5 + 100) / 2 = 93,75.
Avant de visiter le temple précédent (5), il a (93,75 + 100) / 2 = 96,875 - le montant dépasse les conditions initiales.
Réponse : La personne disposait initialement de 93,75 $ et a visité 4 temples. -
Un incident sur le terrain.
Et enfin, un autre vieux problème de pensée logique classique, on pourrait même dire en accordéon.
Problème : Un homme mort a été retrouvé dans un champ de blé. Il tenait fermement le match entre ses mains. Pourquoi la personne est-elle décédée ?
Solution:
L'homme volait dans un avion avec trois autres passagers. Le moteur a calé et l'avion a commencé à tomber. Les hommes ont découvert qu'il n'y avait que trois parachutes pour quatre d'entre eux et ont commencé à tirer des allumettes. L'un d'eux en a tiré un court et a été contraint de sauter sans parachute.
GO TO FULL VERSION