This draft of a Selenium WebDriver MindMap was drawn with the wonderful https://bubbl.us/. The goal of this draft is to propose an overview of the main subjects while working with Selenium WebDriver and where it make sense to acquire knowledge sooner or later.
WebDriver is developed for the real world and therefore it depends on real projects with real setups. So a Selenium developer needs knowledge of these environments.
Web Browser Automation is an important part of agile development http://en.wikipedia.org/wiki/Agile_software_development
Maven, Ant, …
The shorter the test cycles, the more Web Browser Automation pay off. CI-Server: Jenkins
It’s the core of the Selenium engagement: http://selenium.googlecode.com/svn/trunk/docs/api/java/index.html
Knowing the history (Selenium 1 -> Selenium 2 = WebDriver), knowing the key players (e.g. Simon Stewart), knowing the knowledge base (http://seleniumhq.org/), knowing support ressources (https://groups.google.com/forum/?fromgroups#!forum/selenium-users), …
There are design patterns, like Page Object-Pattern.
And there are recipes for recurrend problems, like „check if an element exists“ (http://stackoverflow.com/questions/6521270/webdriver-check-if-an-element-exists)
Knowing the internals isn’t needed in straight forward problems. But it’s very helpful with complex problems and to develop sophisticated solutions.
Long time the rendering engines of browsers have been black boxes. Tali Garsiel helped a lot to reveal these internals: http://taligarsiel.com/Projects/howbrowserswork1.htm
Except for stumbeling with Selenium IDE, skills in programming are fundamental for Web Browser Automation with Selenium.
All programming languages with bindings to WebDriver API: http://seleniumhq.org/docs/03_webdriver.html#setting-up-a-selenium-webdriver-project
NetBeans, Eclipse, …
target of all the efforts
TestNG, junit, …
in the MindMap you find addons for my favorite development browser: Firefox.