DEV Community

Discussion on: Experienced developers: What concept have you never gotten around to learning and you've been fine without it?

Collapse
jasongabler profile image
Jason Gabler

Understanding finite state machines, whether you are the consummate computer scientist who remembers that term from her first course in discrete mathematics or the self-taught hacker who gets the idea by slogging through a regex reference, is a fundamental tool for applying logic to data. Actually understanding them is more important than being able to search Google, find a book or ask a friend because not all regex solutions to a given problem are created equal. Any monkey can paste in a handful of passable expressions, glued together with bloated, unsightly, difficult to work with code, that does unnecessary data transformations and I/O to compensate. But someone who knows regex well can often write a single, svelt expression that speeds through all of that. Especially when you're dealing with big data, the cycles and the I/O start to add up. I'd be much happier to find a complex regex in someone else's code, with a concise but poignant comment, rather than an extra fifty lines of unnecessary loops and string manipulations.

I always ask a fairly complicated regex question during interview. You probably shouldn't apply for the open position at my workplace ;)

Collapse
benhemphill profile image
Ben Hemphill

Complicated regex during the interview is no different than complicated code during the interview. It doesn't prove anything because we have tools like IDE and search. I could come up with my own esoteric reasons for wanting someone to be deep in binary logic, or know exactly how DNS works. but at the end of the day these are tools. If someone is aware of the various tools and can use them enough to accomplish the tasks, then really, that is enough. All I want in a recruit is the passion for learning, I don't care if they know any regex, as long as they are willing to learn.

Thread Thread
jasongabler profile image
Jason Gabler

I agree, but not across the board. When I do ask a technical, test-like question during an interview, I expressly refrain from trying to trick or find the limits of a candidates knowledge. While there is a component of wanting to make sure he or she is not lying to me about some skill listed on the resume, and I certainly would be glad to see that the candidate can competently solve the problem, I'm most interested in seeing if he or she can get stuck and ask for help. Anyone who can admit not knowing, and rather than give up with an "I don't know" but instead seek to still accomplish a goal by asking for help in an interview will pique my interest, not only for displaying an excellent work ethic, but also giving me the chance to travel through his or her problem solving and thought process. You want to hire for an entry level devops position, sure, no test questions, and focus on that passion for learning. You want to fill a senior or supervising devops position, that person must be intimately familiar with regex because she will be the person teaching the willing entry level guy.

Thread Thread
benhemphill profile image
Ben Hemphill • Edited on

Yeah, totally get that if you are hiring a senior position then knowing the common tools is a requirement. You are hiring a master of their craft, not a journeyman. I took your original post to mean you do that for all hires :)

Collapse
weswedding profile image
Weston Wedding

Definitely sounds like one I'll avoid, thanks!