Every evening after dinner my partner and I sit on the sofa for hours, well past midnight and often into the wee small hours. But we're not watching television. No.
I'm crocheting of course, while Mr N is programming, or watching lectures about programming, gaming or viewing game analysis. Mr N sits on the right. I sit on the left. Complete opposites you would think.
And yet.
As we crochet/program respectively we sometimes glance over and smile. We remark on how similar our two professions are, and Mr N, because he loves me and only imagines the best, tells me I'd make a great programmer. Looking down at my patterns and charts, you know I think he might be right.
Example of tessellation |
Motifs vs Modular Design
Programmers use motifs the same way we crocheters do except in a programmer's world they're known as modules. I love using motifs because you can build them individually, then work out how best to join them later. You can be creative using small amounts of yarn. Or you can make them when you're short on time. They're also very portable.
Programmers can create small modules which can be shared all around the world for other programmers to hack on while the rest of the program remains intact. Or they can change one part of the program without having to do a complete rewrite. Like taking out a couple of squares to set in a sleeve.
Tension Squares vs Prototyping
As much as we crocheters claim never to do a tension square, in my case this is not strictly true. When I'm looking at a pattern for the first time, I try to get a feel for the stitches in a small swatch before getting jiggy with Ch294. I do this because I might not like the end result, or find it too difficult, find a mistake in the pattern or decide my choice of yarn is not right for this pattern.
Programmers also begin with a swatch which they call a prototype. They do this to identify potential problems, to test the workability of an idea and to be able to share initial ideas with their team, to be clear on what they envisage as the end result and how best to proceed.
Can you imagine if a programmer was given a brief, spent six months developing it, only to discover it was not what the client had in mind or that it couldn't function? That'd be like spending £80 and two months of your life crocheting a sweater that would only really fit the family horse.
Pattern Design vs Program Design
When designing a pattern you have to take into consideration things like size, function, final customer. The pattern has to be clear and easy to read and it's best if the resulting product is simple and easy to wear/use without the customer having to open an instruction manual to figure out where the sleeves are.
Programmers have to make sure their code is readable and properly documented so that other programmers can understand it and work with it.
Repetition
While he's typing, Mr N's hands stretch out over the keyboard like a master pianist, CTRL F9 (I made that up) and SHIFT-ALT-CTRL F9 (I made that up too). He doesn't look down. Lines of code gallop across the screen while he plays the board, error free.
He says the same of me. He looks across at my hands, a blur of steel and flesh and colour as a perfect strip of intricate lace is formed on my lap.
When we wonder how we can bear to repeat ourselves over and over without much complaint about eye strain or backache, we only have to acknowledge that there is a definite satisfaction in the process. We keep the final product in mind. I can't wait to see the pattern form a star within a flower within a spiral, while he can't wait to press the RUN key and watch the universe kaleide into place.
Mistakes vs Debugging
As a crochet teacher, I spend quite a bit of time finding mistakes in people's work. Sometimes we can gloss over it and fix it on the next row, but often it's a deal breaker for the student who feels it's pointless to go on as the work will now “never be right”.
It's a tough call for a beginner because there will inevitably be lots of mistakes but if you keep ripping out you'll never learn how to fix them or make good progress. On the other hand, if you ignore mistakes completely the work will lose it's shape and structure and it may eventually hit the scrap heap.
The same with debugging. A programmer may spend hours and hours looking for a colon where there should have been a semi-colon through a million lines of code. When I hear Mr N say, “Found it!” I know it's like me getting to the end of the row after the tenth rip back and I'm finally ending on dc, yay! Mr N says that at least he's got tools to help him search whereas I've only got my mince pies.
We all know the fun to be had when you join a Crochet-a-Long (those Mystery ones were a blast). You feel a sense of urgency because you're part of a group and you don't want to be the slow one, or the one who did it wrong. You can't wait to see the end result, to raise your hand in the air for the last group photograph, to have taken part in something colossal.
In the coding world, they call it a Game Jam. Mr N does it for fun with his work colleagues. They'll come up with a sketchy plan for a game. One will work out the game logic, one will produce the graphics while someone else (mainly my Mr N whose keyboard skills translate well onto other musical instruments) takes care of the audio. They give themselves the weekend. As an aside I should add that a coder's day has approx 39 hours in it when you take into account they don't seem to need to sleep or eat that much. There are communities for the Game Jam as well as international events such as Ludum Dare video game competition.
As strange as this may sound, I've never actually partaken in a Crochet-a-long myself. I suppose I don't like the idea of someone knowing something I don't!
Graphic Design
When I'm working on tapestry crochet, or cross stitching onto my work, Mr N will look over and say, “Pixel Art!” Calling it pixel art makes it sound easy, which is isn't always and it gives me a funny feeling to think that Mr N could probably write a program which could write me out of business. Having said that, I know I should take his advice and work more with graph paper and colouring pencils to make life a bit simpler.
We recently searched online for “tessellations” and “fractals”, both of us enjoying the pattern formations and their potential application. We talked about colour choices, using a limited palette and deciding and naming the colours in advance.
Example of fractals |
Exasperatingly tricky tapestry crochet (or simple Pixel Art as Mr N calls it) |