what makes a great automation engineer?
This is a question that has been on my mind for quite some time.
While discussing with a bunch of interns at our campus there came a question as to how can one become the best Automation Engineers.
A fundamental understanding of how things work is sorely missing in among aspiring Test Engineers. When we understand the fundamentals it becomes easier to work with any software, code in any programming language, and solve problems quicker.
Computers are simply logical. The constructs of how things work are what matters.
Here are a few tips that I shared with the interns' team on how to get better at programming be it automation or development. Hope it helps you too:
1. Before you learn to code, understand how computers work
2. Understand how an operating system works
3. Understand how compilers work
4. Understand the fundamentals of a programming language. What is a data type, data structures, where to apply what...
4a. the building blocks of an application
4b. How to write code
4c. How to write clean code
4d. How to write reusable code
4e. Learn to unit-test code
5. Understand how browsers work
6a. The building blocks of mobile application
6b. How servers and application services work
6c. What is an API, the constructs of an API
6d. Understand how API works
7. Understand how a UI function on a Web, Desktop, Mobile Web or a Mobile native application
9. Understand business
10. Understand use cases, understand the context
11. Learn to identify problems, solve them
To conclude: The website http://www.diveintopython3.net/ is a classic example of how a programming language can be taught. This should help deep dive into any language with a short learning curve and a deeper understanding of how things work.