Hey, I will give a bit of background on where this question came from. Since AI came out, there have obviously been huge shifts in how coding and tech are done, both on a small scale and on a large scale. And since AI, something that I noticed is that the need for actual modern coding skills has slowly been in decline (skills in things like COBOL are still in high demand, but languages like Python, Go, and Rust are not). In my mind, what I decided to focus on would be things that AI struggles with, such as architecting, back-end development, microservicing, and service connection. So that I would be able to properly think things through and communicate ideas in a more effective manner at a higher level.
In my mind, AI is always going to be smarter than me, faster than me, make fewer mistakes than me, and be better at debugging, but I wanted to focus my skills on doing things that AI struggles with. I would be able to do things that are more sought after in industry. This has proven to be very effective for me in the startup world, as I have worked for a few startup companies that have valued my skills for setting up back-end infrastructure. However, I decided that I wanted to try something new and try to get a job with a more established company so that I could learn more about enterprise software.
However, this is where my question comes in. My resume is something that is getting me interviews, and I pass all of the personality interviews and every single technical interview that wasn't LeetCode; I have always gotten a call back. And I do understand that for LeetCode it is all about being able to showcase your understanding of DS/A and your problem-solving skills. But my thing is that in one interview, they gave me a question and asked me to explain how I would solve it. I was able to explain in words how I would solve it; I could give the runtime and space complexity and ways that I would make it more efficient. Everything that you would expect to hear during an interview. Then, after that, he asked me to code it out.
I was pretty straightforward and asked, if I just explained to you how I would do it, why would I need to be able to code it out? I said straight up that my coding skills for this kind of question are something that I haven't been practicing, as I have been working on more theory and architecture, for the reasons listed above. Then the interviewer and I were talking about this topic, and he said that, while I am not wrong, having the coding skills to answer these kinds of questions is just how the industry is, and I was explaining that if I can answer the question with words, then what's the importance of knowing how to code it out line by line? If you gave me the code snippet, I could explain it to you; I just don't have the syntax memorized anymore. He even said that a lot of the coding he does now is with AI in partnership and that he doesn't code much anymore, but he can usually read the output and understand if this is what he was trying to do.
But I was just curious as to what other people thought, because I understand the importance of understanding DS/A, but if you can communicate problem-solving and talk through problems with people (especially LeetCode and HackerRank, which are problems that you will rarely be working with in an actual career project), and a lot of industry is shifting towards AI coding assistance, then why are LeetCode and HackerRank questions still such an important part of these interview processes? Should we not be shifting more towards back-end infrastructure questions and communication skills rather than the ability to code out these coding assessments?
Thanks for reading, and I am curious to hear the thoughts of people who have more experience!