Teaching

Another IRC conversation. alaric is Alaric Snell-Pym.

20:27 <@alaric> I am a dark master at taking a bespoke requirement, and coming up with a generic yet easily-implemented solution to it, that can be resold in future
20:27 <@DRMacIver> Teach me your ways, master alaric
20:27 <@alaric> I’ve been wondering how to do that, actually
20:28 <@alaric> Most of my software design-fu is intuition, but I know it should be extractable into a series of principles
20:28 <@alaric> So I’ve been wondering what they are…
20:29 <@DRMacIver> Extracting things into a set of principles is the wrong way to teach something anyway.
20:30 <@DRMacIver> You’re taking a thought process, creating a set of steps that you don’t actually use in that thought process, and then expecting people on the other end to somehow recreate the original process
20:31 <@alaric> Agreed, but in order to teach something, you need to know what it is
20:31 <@DRMacIver> Disagreed.
20:31 <@alaric> And my issue right now is that I have these Intuitions, which aren’t very communicable
20:31 <@DRMacIver> Knowledge is a very overrated feature for teaching and learning.
20:31 <@alaric> The best I could do right now is to set people a design exercise, look at their solutions, and point out how they could be done better
20:32 <@alaric> Which would get the point across eventually, but it’d take a while
20:32 <@alaric> Or I could list examples from my past
20:34 <@DRMacIver> Both of those sound more useful than a set of principles.
20:35 <@DRMacIver> I think interactive learning is really the best way though. Either set someone a problem or have them work on their own ones and interact with them as they do – ask and answer questions, point out alternatives, etc.
20:35 <@DRMacIver> Of course this is very time consuming.
20:36 <@DRMacIver> Which is why no one is never taught anything properly and has to learn it for themselves.
20:37 <@DRMacIver> There might be good ways to parallelise this though: e.g. give twopeople two different lessons, stick them in a room together and tell them to solve the problem together.
20:38 <@DRMacIver> This of course only works on motivated students.
20:38 <@DRMacIver> But unmotivated students can fuck off as far as I’m concerned :)
21:39 <@alaric> I’d like to figure out what principles I use, though, even if only to make sure that exercises I set end up covering them all
21:42 <@DRMacIver> Teaching people is also a good way to codify your knowledge I think.
21:42 <@DRMacIver> i have a friend who refers to my rules of interviewing.
21:42 <@DRMacIver> Thing is… I don’t *have* any rules of interviewing. I have a general body of advice and knowledge, which upon relating has become slightly more formalised.
21:43 <@alaric> Yes
21:43 <@alaric> That is a valid process, IMHO
21:43 <@DRMacIver> Agreed.

This entry was posted in life on by .

The role of a CTO

IRC conversation with Al Davidson

< DRMacIver> I must admit to only having a relatively vague idea of what a CTO job involves (and a much stronger conviction that I don’t want one any time soon).
< DRMacIver> As I’m fairly sure that craig isn’t typical of the role.
< al_> i think you’re right on that score
< DRMacIver> My impression is that it seems to be somewhere more in the realm of “You’re supposed to get to work on the fun stuff but so much of your time is taken up by boring administrative crap that you don’t get to, but it’s still your fault if it goes wrong”
< al_> bingo
< DRMacIver> I see the old chestnut of “take rosy eyed view of the world and apply cynicism until it starts to weep” still works.
< al_> david, i think you just described the human experience in a nutshell

This entry was posted in life, programming on by .

Sweet and spicy roast aubergine

This was a very simple recipe, but it produced really good results.

How to make it: Take the aubergine, slice it in half lengthways and then cut the halves into strips so you you end up with long strips of aubergine each with some of the peel on them. Lay them out in a small roasting tin (you should basically be covering the bottom of the tin with the aubergine), cover in the marinade and roast for abotu an hour until the marinade has all evaporated leaving only goo and auberinge.

How to make the marinade: Adjust quantities to amount of aubergine. For one smallish auberigne I used about half a cup of water, two tea spoons of white sugar, one tea spoon of salt, one tea spoon of chipotle chiles in adobo, a dash of balsamic vinegar and liberal amounts of olive oil (probably a couple table spoons – roughly the amount you’d normally roast this much aubergine).

The time to evaporate the water and then roast the aubergine basically obliterates it, but in a very good way – you end up with very soft aubergine still just sticking to the peel. It’s sweet, spicy, slightly smoky from the chipotle in adobo, and very very tasty. I ate this served with corn bread, but it would probably work slightly better as a side dish to something else.

This entry was posted in Food on by .

What did you study?

Most of the time when I tell people I did mathematics at university they reply with something along the lines of “Oh, I really hated that at school”.

My brother (who did philosophy) apparently often hears “So can you read my mind?”. I don’t quite get it.

Apparently musicians often hear “Oh, I played the X a while ago but stopped when I left school”. Sometimes suffixed with “Apparently I was good enough to do it professionally, but I didn’t want to”.

Beyond that, I don’t know. I’m sure most subjects have a wealth of stereotypical answers, but I’ve no idea what they are!

So… lets find out. I’ve created a site to gather all those answers which annoy you so much when you get them. It’s pretty limited so far: You just get to add answers and see other peoples’. If it goes well there are all sorts of cool things I can do with the data, but right now we’re at just the basics.

Have fun

This entry was posted in programming, Uncategorized on by .

Irrelevant alternatives aren’t

Every now and then someone discovers Arrow’s Impossibility Theorem and gets all excited. “Democracy is impossible! Let’s have a dictator!” they declare from the rooftops, or words to that effect. I certainly found this fascinating when I first discovered it.

Eventually they calm down. There are a lot of commonly mentioned reasons why Arrow’s impossibility theorem doesn’t have massive real world consequences – it’s not like anyone thought they were using a perfectly fair voting system in the first place, and the mechanism described in the theorem doesn’t actually correspond that closely with real world votes, which are mostly just trying to elect a single winner and don’t require nearly so strong consistency.

One reason I haven’t seen mentioned is the following: If it were possible to create a voting system which satisfied the criteria of Arrow’s impossibility theorem, it would be a bad idea. Independence of irrelevant alternatives, that the ordering of A and B doesn’t depend on the introduction of C, is an appealing condition on the face of it, but it turns out that you don’t actually want real world voting systems to have it. Consider the following set of opinions:

A > B > C
B > C > A
C > A > B
B > C > A

The numbers work out as follows:

There is a 50-50 split on A > B.
75% of people think that B > C
75% of people think that C > A.

Therefore even though there is a tie between A and B, the only fair combined ordering is that B > C > A – any other ordering would make a lot more people unhappy. So the introduction of an apparently irrelevant alternative has taken a tie between A and B and broken it decisively.

This entry was posted in Uncategorized on by .