Blog/A Programmer's Sorting Hat

"Hagrid," Harry said quietly, "I think you must have made a mistake. I don't think I can be a programmer."

To his surprise, Hagrid chuckled.

"Not a programmer, eh? Never made things happen around computers when you were angry, bored or excited?"

Harry looked into the fire. Now that he thought about it... when he bypassed the school's internet restrictions to play games on the library computer... when he wrote a script to automate his tedious data input ICT homework... when he found his science teacher's mark scheme for the Christmas exam on the intranet. And the last time Dudley copy-pasted his maths homework and printed it out, hadn't it come out in Wingdings?

"You'll be whisked away to a magical place of learning with a state of the art computer lab." said Hagrid, beaming. "However, we shan't need much to learn the fundamentals."

Hagrid withdrew some writing utensils from his tattered overcoat. He scrawled the word 'atom' on a piece of parchment, narrating as he wrote.

"Now, see this sequence of characters I have written... is it true that it is an atom? [1]"

The Sorting Hat Quiz

Have you ever wondered which of the four great magical houses of Hogwarts you would have belonged to? Take this magical quiz to find out!

Scenario I

You have just received the worksheet for a programming homework. It is expected to take a day to complete.

1. You have skimmed the problem outline on the first page and think you can complete it already. Do you:

2. You're stuck on one part of the homework. Do you first:

3. You have completed the homework and have some free time remaining. Do you:

Scenario II

You have just received a programming assignment. It is expected to take a week to complete.

4. After reading the specification, you decide the assignment is straightforward to complete. When choosing a programming language, do you pick:

5. You have hacked out a script to speed up the development process of the assignment. Do you:

6. You have discovered last minute that there's a feature you forgot to implement. The deadline is tomorrow. Do you:

Scenario III

You have just received the assignment for a group software development project. It is expected to take a month to complete.

7. After reading the features your team will have to implement, do you:

8. You are tasked with implementing a feature, but there is a bug in a teammate's function that you rely on. Do you:

9. The core features are completed and there is still some time left. There is a presentation at the end of the assignment, after which your team has agreed to open source the project. Would you rather now be working on:

Scenario IV

You are choosing your individual project assignment, which is expected to take a few months to complete.

10. After identifying the domain you want to contribute to, you decide your project's primary focus is:

11. You find an open source project you can use for part of your project, but find that it no longer maintained and has fallen into disrepair. Do you:

12. Your project's deadline is in a fortnight; you have acquired some technical debt which is slowing down ongoing development. Do you:

Congratulations, you are a Gryffindor!

You enjoy programming as a creative tool and as a means of expressing your individuality. It is important for you to be recognised in your work. You may enjoy making games, founding a startup or creating an ambitious open source project.

Other famous Gryffindors: Richard Stallman, Linus Torvalds

Roads not taken:

Congratulations, you are a Slytherin!

You see programming as a tool to solve specific problems in your domain, or to scratch a personal itch. Perhaps you were trained as an engineer or scientist, but you may also enjoy being a data scientist, a systems engineer or working in security.

Other famous Slytherins: Julian Assange, Andrew Ng

Roads not taken:

Congratulations, you are a Hufflepuff!

You enjoy working with others, establishing conventions and development practices in order to produce maintainable, bug-free software. You may enjoy being an enterprise developer, a software architect, or managing a development team.

Other famous Hufflepuffs: Robert Martin, the Gang of Four

Roads not taken:

Congratulations, you are a Ravenclaw!

You enjoy the theoretical side of programming such as the pondering the nature of computation, type systems, and algorithm design. You may enjoy computer science research in academia, or inventing and implementing your own algorithms or programming languages.

Other famous Ravenclaws: John McCarthy, Edsger Dijkstra

Roads not taken:

Footnotes