Snip
|
I interviewed a lot of people recently, and ...
|
---|
Categories |
|
---|
For Snip |
loading snip actions ... |
---|---|
For Page |
loading url actions ... |
This was a "proper" programming job with a back-end database and a (non-Java) o-o language as a base.
We asked some *basic* questions about databases (stuff like "what is a primary key") and also o-o (advantages of inheritance, "is-a" vs "has-a").
Most of the graduates didn't have a clue - this is basic stuff, what on earth are they being taught? I felt that they'd been let down very badly by their tutors, who either didn't know this stuff either or thought that their students wouldn't understand it.
It appears that degrees concentrate on a "task-based" approach, e.g. training people to assemble Java components, rather than a "model-based" approach, training people to *understand* what's going on and giving them the tools to grow and develop after leaving. Task-based is easier, but as soon as the thing you're working on develops or changes you're in trouble, as soon as the fixed pattern of behaviour doesn't give results because the platform has changed you need to be shown the new magic spell, instead of being able to work it out. Task based also gets people who are unfortunately unable to understand things through exams, which helps nobody in the end.
One guy (with the ink still wet on an MSc from one of the London colleges) kept saying "I don't know the theory bit I can work it out". So what the hell did they teach you for the two years then? He had top marks in the database module and couldn't explain any of the classic questions like inner and outer joins.
Process seems to be get stuck, go to google, cut and paste something in without understanding it, do some desultory tests, move on. This is also known as "programming by coincidence".
I wrote a bit about my experiences here http://www.francisfish.com/tumbleweed_interview_ca
ndidates.htm
By fjfish on 3 Jul 2010
HTML |
<h4 class="noMargin">I interviewed a lot of people recently, and ...</h4> <p>This was a "proper" programming job with a back-end database and a (non-Java) o-o language as a base.<br> <br> We asked some *basic* questions about databases (stuff like "what is a primary key") and also o-o (advantages of inheritance, "is-a" vs "has-a").<br> <br> Most of the graduates didn't have a clue - this is basic stuff, what on earth are they being taught? I felt that they'd been let down very badly by their tutors, who either didn't know this stuff either or thought that their students wouldn't understand it.<br> <br> It appears that degrees concentrate on a "task-based" approach, e.g. training people to assemble Java components, rather than a "model-based" approach, training people to *understand* what's going on and giving them the tools to grow and develop after leaving. Task-based is easier, but as soon as the thing you're working on develops or changes you're in trouble, as soon as the fixed pattern of behaviour doesn't give results because the platform has changed you need to be shown the new magic spell, instead of being able to work it out. Task based also gets people who are unfortunately unable to understand things through exams, which helps nobody in the end.<br> <br> One guy (with the ink still wet on an MSc from one of the London colleges) kept saying "I don't know the theory bit I can work it out". So what the hell did they teach you for the two years then? He had top marks in the database module and couldn't explain any of the classic questions like inner and outer joins.<br> <br> Process seems to be get stuck, go to google, cut and paste something in without understanding it, do some desultory tests, move on. This is also known as "programming by coincidence". <br> <br> I wrote a bit about my experiences here http://www.francisfish.com/tumbleweed_interview_ca<br> ndidates.htm</p> <p>By <span class="bold">fjfish</span> on 3 Jul 2010</p> |
---|