University transcripts are no longer trusted because of grade inflation and even bogus degrees. The result is that often people are asked questions that anyone that has taken a 3rd year computer science course (recently) should be able to answer. Personally, I feel these questions are biased for recent graduates and against those that have been in the industry many years. They are theory centric and not practical center.
On Glassdoor, one contributor says it perfectly:
There are many question which will from you university course of Informatics, so worth to renew that knowledge. Many puzzles, and mostly of them you can find in internet. Nothing difficult, just good exam on things which you will never use in real life.
A few examples are:
Differences between Array, Linked List, Heap etc
You could dive into mechanisms of implementation, or cite a table (i.e. rote learning) such as
Indexing | Θ(n) | Θ(1) | Θ(1) | Θ(log n) |
Insert/delete at beginning | Θ(1) | N/A | Θ(n) | Θ(log n) |
Insert/delete at end | Θ(1) | N/A | Θ(1) amortized | Θ(log n) |
Insert/delete in middle | search time + | N/A | Θ(n) | Θ(log n) |
Wasted space (average) | Θ(n) | 0 | Θ(n) | Θ(n) |
And for Heaps
Operation | Pairing^{[2]} | Brodal^{[3]} | |||
findMin | Θ(1) | Θ(log n) or Θ(1) | Θ(1)^{[1]} | O(1)* | Θ(1) |
deleteMin | Θ(log n) | Θ(log n) | O(log n)* | O(log n)* | O(log n) |
insert | Θ(log n) | O(log n) | Θ(1)^{[citation needed]} | O(1)* | Θ(1) |
decreaseKey | Θ(log n) | Θ(log n) | Θ(1)* | O(log n)* | Θ(1) |
merge | Θ(n) | O(log n)** | Θ(1) | O(0)* | Θ(1) |
Linked List:
- Elements added without reorganizing data items
- Finding items means that you must walk the nodes from the head (or tail)
What is Big O and name some sorting algorithms and their performance…
Excuse me, there is rarely a need to ever write a sort in practice unless you are writing languages! In general, those facilities are provided by the language. If you have a photographic memory, just go to Wikipedia’s page on sorting algorithms.
Binary Search Algorithm and Big O for it
For us old timers, we called this approach Newtonian. It’s doing a divide the sorted range in half, check the value and then repeat on which ever interval that the desired value is in.
Data structure Array
Worst case performance O(log n)
Average case performance O(log n)
Worst case space complexity O(1)
Breadth First Search on a binary tree
Again, another question that is testing rote learning (i.e. if you can answer it by referencing a page on Wikipedia – the question really should not be used. You are testing rote ability, if the job requires creative solutions – you have blown it.
Write a method to traverse a Binary Tree
See page on Wikipedia.
Describe Semaphores and Deadlocks
Again, Semaphone and Deadlock are Wiki-questions.
The better solution
Look at issues that you are trying to solve, or solved recently. Recast them as open ended questions and see what the candidate can do with it. If the candidate solves an open question – you know he will be a net positive component to the group, if he comes up with a better solution to a closed question, he clearly is as good or better than existing staff. If he comes up with equivalent to solutions to a closed question, he’s likely the same grade as the current staff.
Rhetorical questions and Rote questions are poor performance indicators compared to the above.
No comments:
Post a Comment