Writing time: 2 hours
Learning time 3 – 6 months with 4h/day effort.
TL;DR
As I menthor excellent student to learn browser automation, I realized that I should share with community learning resources.
So let’s start from the beginning.
Mind map
What mind mapping has to do with programming!? Well, you need to create a lot of cheat sheets for concepts that will overwhelmed you. Mind maps are great way to do this.
Tutorial
https://www.lucidchart.com/pages/how-to-make-a-mind-map
Tools
Mindmup
xmind
vim
Yes, you will use vim, from now on. Why? Because it will enable you to write code fast, and write it on any platform.
Install http://vim.spf13.com/, out of the box vim with all needed plugins that transform vim into development environment.
What you will master? You will understand what is real editor and list of editor features that every editor should have.
http://www.openvim.com/ is basic vim tutorial. Basic stuff that you will use on daily basis.
Explorer plugin https://shapeshed.com/vim-netrw/
Note: It is very tempting to give up on this step. Remember, vim is what makes you great software tester.
Unix basics
The truth, you will be more productive in unix terminal. Fullstop. Tips and tricks, you can transform Windows to unix. Install gitbash.
Tutorials
http://www.ee.surrey.ac.uk/Teaching/Unix/
https://www.codecademy.com/courses/learn-the-command-line
Reality check
But this is a lot of work, and I have not wrote a single line of browser automatization!? Elementary (and patient) my dear Watson. Or even better explanation, Wax on, Wax off!
[embedyt] https://www.youtube.com/watch?v=Bg21M2zwG9Q[/embedyt]
These are basics for any programming (automation is clumsy term). For example, you will be able to learn how to use rest api framework, for example github rest api, on your own.
git
If you are in programming business, without git nobody (maybe just your neighbours) will be able to see your progress.
Create github or bitbucket account.
Start with this tutorial https://try.github.io/levels/1/challenges/1
Ruby
You will learn to do browser automation in Ruby. Why? Great community, great resources, great language, excellent interactive console for debugging tasks.
Tutorials
http://www.codecademy.com/tracks/ruby
http://rubykoans.com/
https://www.digitalocean.com/community/tutorials/how-to-use-irb-to-explore-ruby
rvm
Ruby enVironment (Version) Manager (RVM) will help you to manage different ruby versions with different sets of ruby libraries (gems).
Tutorials
https://rvm.io/rvm
https://rvm.io/gemsets
curl
Excellent command line tool that will help you to debug rest api.
Tutorial
https://curl.haxx.se/docs/httpscripting.html
Chrome devtools
They help you to look under the hood of web application
Tutorial
https://developer.chrome.com/devtools
Cucumber and Cheese by Jeff Morgan
This will cost you 15 us$ on leanpub. You will learn cucumber and PageObjects gem, ruby gems for creating test data, how to organize your code.
Part about mobile automation is deprecated, because Brazenhead driver is outdated. You should use appium for that part.
Mentoring
You need a mentor that will help you in this process. You can find it on your own, or you can contact me here. First question is free.