Il y a deux semaines j’ai passé une série de tests pour évaluer mes compétences dans divers domaines. L’un des tests portait sur Java 1.6 sur la matière suivante (liste tirée du site Brainbench).
Les classes
- Access modifiers (public, private…)
- Generics
- L’héritage
- Méthodes et champs
- Le polymorphisme
Les bibliothèques Core
- Les entrées/sorties
- Javabeans
- Langues et utilitaires
- La classe Math
L’intégration
- JDBC
- JNDI
- Le scripting
- Web Services
Conception
- Meilleures pratiques
- Design objet
- Les patterns
- Le refactoring
- Les tests
Les bibliothèques support
- Internationalisation
- Réseau
- La sécurité
- XML
La syntaxe
- Commentaires et l’outil Javadoc
- Les types de données
- Les expréssions
- Structures de controle de flux
Outils
- Le traitement des annotations
- La compilation
- Le débogage
- Le déploiement
La machine virtuelle
- Gestion mémoire
- Gestion des threads
- Le fonctionnement interne de la VM
Les bibliothèques virtuelles
- Composantes
- Entrée/sorties image
- Le Java 2D
- L’intégration OS
En gros, il s’agirait de tester votre culture générale par rapport aux bibliothèques de base de Java. Les questions que l’on rencontre sont de type choix multiple avec des morceaux de code, la syntaxe, les déclarations ainsi que des notions théoriques.
Le genre de question que vous pourriez rencontrer sont dans la veine suivante:
Parmi les propositions suivantes, quelle déclaration est valable à l’intérieur d’une interface?
- static final int brainbench=3;
- protected int getBrainbench();
- public static int getBrainbench();
- public abstract static int getBrainbench();
- public static transient int brainbench = 3;
public static void main( String[] args ){
StringBuffer messages[] = new StringBuffer[5];
messages[0].append("Hello World!");
System.out.println("First message is" + message[0]);
}
}
Quel est le résultat d’exécution parmi les choix suivants?
- « First message is null »
- Le code ne compile pas
- « First message is Hello, World! »
- Lancement d’une exception ArrayIndexOutOfBounds
- Lancement d’un NullPointerException
Quel outil est utilisé pour générer des artéfacts portables avec les Web services?
- wsgen
- soap
- javac
- jws
- rmic
Parmi les layout manager suivants lequel produit le résultat dans l’image affichée ci-dessus?
- BorderLayout
- ViewportLayout
- FlowLayout
- GridLayout
- BoxLayout
Ce que je conseillerais pour passer ce genre de test est de procéder par élimination pour avancer le plus rapidement. Selon votre savoir-faire certains choix paraîtront comme des intrus évidents. Chaque question est chronométrée sur un maximum de 3 minutes mais la durée est sans doute utilisée comme poids au niveau du résultat final.
Pour survoler la matière sur le web, un minimum serait trois jours avec un idéal d’une semaine voire un mois pour une préparation sérieuse comme pour le SCJP. Comme ce genre de test pourrait être demandé à l’improviste autant vous y préparer maintenant. Il y a possibilité de s’entrainer sur des sites comme blackbeltfactory.com.
Bien qu’il s’agisse d’évaluer votre niveau à un moment donné je suis d’avis qu’il vaille mieux se préparer pour atteindre un maximum car ce test est le plus souvent utilisé pour faciliter le traitement au niveau des ressources humaines.
Si vous allez passer ce genre de test je vous souhaite bonne chance ou bonne M**** selon vos convictions.
– James Poulson.
Voila, j’ai placé une image trouvée sur Google pour complété la questions sur les layout.
Pour ce qui est de BlackBeltFactory le but premier aurait été de créer une plateforme d’évaluation selon un modèle collaboratif. Certaines questions contiennent effectivemment des pièges comme dans le SCJP. D’ailleurs Mughal Rasmussen, l’auteur de « A Programmer’s Guide to Java SCJP Certification », y a contribué un test spécialement pour s’y préparer. Le site propose également des cours en ligne allant du Java de base jusqu’au frameworks les plus populaires.
Uther: je viens (hier) d’en passer un chez blackbelt pour rigoler. Je confirme, ils sont sournois, sans parler de quelques questions suspectes
@David: En effet. L’un des disques dans ma configuration RAID0 a lâché. Si je n’arrive pas à récupérer les captures d’écran j’improviserais avec un éditeur d’images. De mémoire, l’image ressemblait à l’ascii art ci-dessous. Le lien de BBF a été corrigé.
Et je rajoute que ton lien sur blackbelt ne marche pas
L’image n’est toujours pas présente
Je rajouterai sur la deuxième question que soit le rédacteur du test est un vrai vicieux et la réponse est « Le code ne compile pas », soit tu as fait une faute de frappe.
Il manque le « s » dans le second « messages[0] ».
Merci pour ton commentaire Uther. Effectivement, la question sur les interfaces a été mal traduite. Je vais rectifier ça tout de suite et j’ajouterais une capture d’écran pour la question sur les Layout.
Merci de nous faire partager ça.
Bon je ne spoilerai pas les résultats mais j’ai noté quelque remarques:
>Parmi les propositions suivantes, quel est la déclaration valable d’une interface?
Aucune de ces lignes ne déclare d’interface.
Je suppose que la bonne question est « Parmi les déclarations suivantes, laquelle est valable à l’intérieur d’une interface? »
Vu que dans ce cas la en effet une seule des lignes est valable.
Il manque aussi l’image de la question sur le Layout, ce qui pour le coup rend la réponse difficile.