I consider myself a strong engineer. I have 14 years of experience, I'm mostly autodidact, and I can learn new stacks/technologies pretty easily.
Being an autodidact, I don't possess a degree, however I know about basic algorithms such as binary sort, quick sort, graphs etc.
Recently, I started to interview again, and some interviews require HackerRank test. Some tests are designed to evaluate a specific knowledge, say SQL or multithreaded programming, while other questions are purely algorithmic (in the style of: "find if a string is an anagram").
I don't have a problem with specific domain knowledge questions, such as SQL or multithreading. I do have a problem with purely algorithmic questions. I never used binary search, or needed to reverse a string as fast as possible, in my career.
And, sadly, I start to question my career. Do I suck at those questions because I never worked with something algorithmically hard? Do I suck at them, simply because I'm not used to solving them? Are they even good evaluation tools to understand if the candidate is suitable for the work he/she is going to perform?
So my questions is: do you think that being able to solve LeetCode/HackerRank questions (not brute forcing them, but rather understanding the underlying algorithm) help you become a better developer (rather than better at solving these types of questions), or are they, mostly, useless and it's better to build and ship software?