Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Becoming Certified - MageTitansMCR 2018

1,094 views

Published on

The Magento 2 Certified Professional Developer exam is a lot harder than to the Magento 1 equivalent.
Many Magento 1 certified developers who enter the test expecting to pass have been disappointed.
The scenario based questions require the ability to analyze the description, and then relate it to the question and answers.
Generic OOP development principles have to be applied to the Magento 2 context.
This presentation covers the underlying principles and discusses some sample questions from the official study guide as well as some new ones. It also offers the opportunity to ask questions and discuss preparation techniques.
Attendees will get an idea of how ready they are to take the exam and how to prepare to pass the desired certification.

Published in: Software

Becoming Certified - MageTitansMCR 2018

  1. 1. BECOMING CERTIFIEDBecoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  2. 2. Who here has sat in one or more Magento 1 exams? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  3. 3. Who here has sat in one or more Magento 2 exams? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  4. 4. SO LET'S NOT TAKE THIS TOO SERIOUSLY Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  5. 5. Magento 1 Certificaton != Magento 2 Certification Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  6. 6. How so? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  7. 7. Magento 1 & Magento 2: Questions are developed by a Community Advisory Board Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  8. 8. Magento 1 & Magento 2: Each question is written to fit an Exam Blueprint Objective Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  9. 9. Magento 1 != Magento 2: Time frame and Review Process Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  10. 10. Magento 1: Months of online meetings and reviews Magento 2: One week focus group, all in one room Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  11. 11. Magento 1: Rather contrived, memorization friendly Magento 2: Scenario based, real life, more natural Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  12. 12. Magento 1: Questions about Config XML Paths and Class Names. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  13. 13. The Reasoning was: "Magento Developers with experience will have written them countless times and know them by heart." Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  14. 14. This was before Magicento existed... Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  15. 15. Magicento: ▸ Code generation ▸ Autocompletion Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  16. 16. Magento 2: No questions about things with IDE autocompletion Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  17. 17. How do the questions look like? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  18. 18. Each item has 3 Parts: ▸ The Scenario ▸ The Stem ▸ The Options Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  19. 19. ▸ The Scenario Information required to choose the correct answer Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  20. 20. ▸ The Stem The question Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  21. 21. ▸ The Options The possible answers Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  22. 22. Valid answer keys: ▸ Choose 1 out of 4 ▸ Choose 2 out of 4 ▸ Choose 3 out of 5 Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  23. 23. If more than one answer has to be selected, the number of required options is stated like this: "Which three actions do you take? (Choose three)" Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  24. 24. For questions with multiple answers, the right number of options have to be selected and all selected answers have to be correct. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  25. 25. ▸ No trick questions ▸ No “none of the above” ▸ No “all of the above” ▸ No “which of the following are true” ▸ No double negatives Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  26. 26. ACTIONABLE QUESTIONS! Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  27. 27. "How do you fix the issue?" "What actions do you take?" "What is the effect of that code?" Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  28. 28. EXAMPLE QUESTIONBecoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  29. 29. (1/2) You are working for an extensions vendor who protects their intellectual property by validating licenses against a license server. Customers are complaining that running any bin/magento command is very slow after installing one of the companies extensions. The extension adds a command to bin/magento. While investigating, you discover the following code in the command class: public function __construct($license) { $this->isLicenseValid = $this->validateLicense($license); parent::__construct(); } Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  30. 30. (2/2) public function __construct($license) { $this->isLicenseValid = $this->validateLicense($license); parent::__construct(); } How do you resolve the issue? A. Implement local license validation instead of over the internet B. Move the validateLicense() call into the execute() method C. Check the license at random samples instead of every time D. Cache the validation result in the Magento config cache Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  31. 31. Answer: B. Move the validateLicense() call into the execute() method Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  32. 32. Magento Technical Guidelines 2.3. Class constructor can have only dependency assignment operations and/or argument validation operations. No other operations are allowed. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  33. 33. Example Excerpt: Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  34. 34. But why? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  35. 35. Why? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  36. 36. (back to the topic of exam questions) Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  37. 37. SOME QUESTIONS HAVE QUALIFIERS. What are qualifiers? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  38. 38. Qualifiers are part of the Stem: ▸ Keeping simplicity in mind ... ▸ Keeping maintainability in mind ... ▸ Keeping compatibility in mind ... ▸ Keeping testability in mind ... Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  39. 39. WHAT IS THE PURPOSE OF QUALIFIERS? They guide us to the correct answer. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  40. 40. Magento is flexible. There are many ways to accomplish a goal. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  41. 41. We often have to make decisions how to implement a requirement. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  42. 42. For questions with qualifiers often more than one answer is technically correct. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  43. 43. Do we use ... a preference, a type argument configuration or a plugin? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  44. 44. Do we use ... an ORM model or a Api Data model? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  45. 45. Do we inject ... an interface or a concrete implementation? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  46. 46. Depending on the circumstances, every approach could be valid. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  47. 47. Faster development vs. better maintainability More upgradable code vs. more performant code ... Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  48. 48. ▸ lifetime of the project ▸ project budget ▸ developer skill level ▸ security considerations (internal / external access) ▸ use of third party modules ▸ desired code reuse Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  49. 49. Qualifiers tell us which answer to choose for the given scenario. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  50. 50. Maintainability? Probably rules out options where code is copied. Favor answers that make changes and upgrades simpler. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  51. 51. Compatibility? Rule out options with a higher extension conflict probability. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  52. 52. Simplicity? Favor expressive options using the least number of elements. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  53. 53. Testability or Reusability? Favor answers that allow replacing collaborators with test doubles or other classes. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  54. 54. EXAMPLE QUESTIONBecoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  55. 55. You need to customize the Magento_Checkout/js/proceed-to-checkout JavaScript module. How do you do that, keeping compatibility in mind? A. Add a path override configuration to the requirejs-config.js B. Add a global map alias override to the requirejs-config.js C. Copy the file proceed-to-checkout.js to the folder Magento_Checkout/js/ of the active frontend theme D. Add a JavaScript mixin to the requirejs-config.js Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  56. 56. Answer: D. Add a JavaScript mixin to the requirejs-config.js Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  57. 57. GETTING READY Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  58. 58. Study Guide The study guide is based on the exam blueprint. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  59. 59. SWIFT OTTER STUDY GUIDES Based on the Magento U study guide but much expanded.
  60. 60. The Official Technical Developer Guidelines (ask Why?) Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  61. 61. Don't memorize OOP patterns and principles for the exam. Without experience, that does more harm than good. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  62. 62. Better to go from first principles: ▸ What is a source code dependency? ▸ What are the consequences of a dependency? Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  63. 63. Deeper understanding of the principles behind the labels. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  64. 64. ▸ Interfaces and the Liskov Substitution principle ▸ Coupling and Cohesion ▸ Favor Composition over Inheritance Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  65. 65. Familiarize yourself with Kent Beck’s 4 rules of simple design. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  66. 66. 1. Passes all tests 2. Expresses intent 3. No duplication 4. Fewest possible elements Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  67. 67. When a question has the qualifier “Keeping simplicity in mind...” apply these rules. Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  68. 68. SMART GUESSING Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10
  69. 69. And finally... Becoming Certified - (c) @VinaiKopp - #MageTitansMCR - 2018-11-10

×