Hi there ladies and gentlemen,
recently I've made a programming drill for a robotics company (I'm a master student in robotics with a b.s. in cs). For the last 3 years optimization for me were always related to data transfer, efficient computation (using threads or CUDA) and creating algorithms that would take advantage of the problem structure (meaning mainly seeing if matrices are sparse or not). Then the drill suddenly came with how to manage strings (split, turn to a numeric value, etc), vector sorting, different containers usage, using stl stuff. The last time I used these was in 2014 and I took literally one hour to remember how they worked and also had to spend time looking into documentation to get the code done because: one, the test web drill environment didn't have autocomplete for methods inside an object; two, I didn't know the methods complexity by heart. I had 4 exercises for 6 hours, made 3 meeting the requirements and I left in black, the pseudocode I wrote in a paper in a matter of 20 minutes for each exercise but what took me time was the writing of the correct syntax.
The question is, should I really have to know from heart and be evaluated for this kind of stuff if the position I've applied for is for robotics backend development?