As an automation developer, I've been focusing on browser testing with Selenium WebDriver and Java, being able to draw from my decades of experience testing web applications. When it comes to various data structures, I use arrays, lists, arraylists, and the occasional hashmap in my day-to-day work, but that is about it.
A Software Developer in Test (SDET) isn't that far removed from a Software Development Engineer (SDE), relying on data structures and algorithms I once studied as a Computer Sci major back at Bridgewater State. Note: Each link below goes to the respective Harvard University CS50 video, if any.
- Data Structures: Arrays, Singly Linked Lists, Doubly Linked Lists, Binary Trees, Stacks, Queues, ArrayLists, and Hash Tables
- Algorithms: Breadth First Search and Depth First Search (not on CS50), Binary Search, Insertion Sort, Merge Sort, Quicksort.
- Concepts such as Recursion, Bit Manipulation (not on CS50), Pointers, Dynamic Memory Allocation and Structures
- Design Patterns like: Singleton Design Pattern, Factory Design Pattern
- Storing Memory in Stack vs. Heap
If you are a manual tester or automated tester and want to shift to software development, Gayle Laakmann McDowell's Cracking the Coding Interview is an excellent summation of all terms listed above. It seems to be a good resource for even Senior developers, who may be far removed from college.