After my first contact with a computer in the 1980's, I taught myself to program in BASIC and Z80 assembler. I went on to study Computer Science and have enjoyed a long career in Software Engineering.
I agree, but. Although it is important to know they exist and their purpose, very few of the CS concepts and algorithms learned at university are employed daily. They might be fresh in the mind of new graduates but those of us who graduated more than a decade ago have to look things up to recall the detail.
I have found that interview panels seldom take this into account, expecting candidates to be able to recant something like Dijkstra algorithm verbatim, as if it were memorised only weeks before. Those of us with a few years experience, might have to delve deeper into our memory to recall the exact details. But why do that in the day job when we have the internet or, dare I say it, find a book to look things up.
Any company that asks Dijkstra, Kruskal's, or A* during interviews will have trouble filling open positions. These algorithms are useful to solve only a narrow set of problems. However, tree traversal or backtracking are far more common, and knowing them can pay off.
I think it's by design. CS fundamentals are a gatekeeping device to surface young, fresh minds. it doesn't have much to do with your ability to apply the CS fundamentals. it has more to do with what you alluded to: a new graduate will be more familiar with CS fundamentals.
think of it this way: if CS fundamentals were employed daily in real world business, then interview panels wouldn't even bother with CS fundamentals. they only bother with them because it shows you recently graduated, and they would rather hire new, impressionable graduates. those with battle scars and real-world experience (beyond just writing code) are wise, worldly, and refuse to put up with the nonsense.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
I agree, but. Although it is important to know they exist and their purpose, very few of the CS concepts and algorithms learned at university are employed daily. They might be fresh in the mind of new graduates but those of us who graduated more than a decade ago have to look things up to recall the detail.
I have found that interview panels seldom take this into account, expecting candidates to be able to recant something like Dijkstra algorithm verbatim, as if it were memorised only weeks before. Those of us with a few years experience, might have to delve deeper into our memory to recall the exact details. But why do that in the day job when we have the internet or, dare I say it, find a book to look things up.
Any company that asks Dijkstra, Kruskal's, or A* during interviews will have trouble filling open positions. These algorithms are useful to solve only a narrow set of problems. However, tree traversal or backtracking are far more common, and knowing them can pay off.
I think it's by design. CS fundamentals are a gatekeeping device to surface young, fresh minds. it doesn't have much to do with your ability to apply the CS fundamentals. it has more to do with what you alluded to: a new graduate will be more familiar with CS fundamentals.
think of it this way: if CS fundamentals were employed daily in real world business, then interview panels wouldn't even bother with CS fundamentals. they only bother with them because it shows you recently graduated, and they would rather hire new, impressionable graduates. those with battle scars and real-world experience (beyond just writing code) are wise, worldly, and refuse to put up with the nonsense.