Writing

Feed Software, technology, sysadmin war stories, and more.

Monday, June 10, 2013

Teaching, learning, and the annoyance of arbitrary data

I was the teacher's assistant (TA) for a computer lab once upon a time. When this started, I acquired responsibility for about 30 machines of varying compositions. Some had been purchased to be classroom machines, and others were donated. Some were older, some were newer. Many of them were on the network. All of it needed maintenance, adjusting, repair, and reinstallations from time to time.

Nobody sat me down and said "this is TCP/IP, this is Ethernet, this is a packet driver, and this is an interrupt service routine". If they had, I probably would have been annoyed by their attempt to cram seemingly arbitrary data into my head. Likewise, the school never did that with DOS or how parallel printers and A/B switches work, or what "CTTY" meant, and what a batch file did.

Instead, I was given an existing network and lab and was expected to figure it out. I could ask questions to receive answers, and ask I did. I asked many questions about things as necessary, and built my own model of how things seemed to work. They were specific questions which came about from real problems I encountered from time to time.

So, you could say that the school taught me about networking and certain aspects of system administration, but that seems like an unfair use of the word. They also "teach" people math and science and things like that by spewing large quantities of arbitrary data at the kids and expecting them to make sense of it. Sure, some teachers connect it to meaningful life activities and actually accomplish something, but they seem to be hard to find.

It might be better to say that I learned about networking and system administration as a result of having that TA gig and some other related tasks I did in the following years. The teaching happened in small, manageable, useful chunks as situations warranted. That information became a part of who I am, and I can now repurpose it to accomplish my own goals now, years later.

They provided a rich environment loaded with problems which needed to be solved. The best way to solve those problems was to figure out what was going on and acquire some knowledge in the process. The problems went away, the users were happy, and I coincidentally ended up slightly more useful. Repeat over the course of a year and it starts adding up.

I think this same pattern applies to anything which comes down the pipe. There was a point in my life when some of the topics in math class seemed to be related to problems I had already encountered. For instance, by the time we got around to variables in the first Algebra class I ever had, it wasn't that much of a stretch to imagine A meaning 5 and B meaning 10 or whatever. Why? Easy. I had been using BASIC for a few years prior to that point, and variable assignment is just one of the things you do.

I remember one of the more brave kids in my class asked an honest question based on the (incorrect) model she had up to that point: "A is 1, B is 2, C is 3, what happens after Z?". She had assumed it was a straight mapping of letters to numbers, perhaps because of a flawed lesson somewhere along the line.

I now consider myself lucky to have encountered a programming language well before encountering any kind of algebra, if only because I had my own little well-worn paths through some of the problem space. It was like the math class just showed up much later and planted a few official-looking signs so as to seem important.

Perhaps this is why math stopped working for me at some point. It eventually got to where everything was arbitrary and esoteric and didn't map onto anything I had ever seen or used before. I was doing plenty of things with numbers by that point in my life, but none of my things showed up in class, and nothing from class showed up in my life. Math class became a black spot on my schedules.

I mean, when they were talking about integrals and derivatives, I was already doing sysadmin work where I had to deal with subnets and other binary math issues. Not once did those classes talk about the ANDs and ORs and other bitwise operations which were essential for understanding how an host figures out who's local and who needs to go through a gateway.

Those topics were probably useful for some and possibly even enjoyable for anyone who liked math for the sake of math, but that's just not me.

Why the sudden rant? Allow me to present exhibit A and the associated HN comments.

That whole post strikes me as "this arbitrary person isn't accepting my attempts to force-load volumes of arbitrary data", and in that light, what do you expect? If that is in fact what's going on, what's the point? The subject matter isn't even important. If it seems arbitrary, then I imagine the same resistance will be encountered no matter what.

Go on. Try to tell me that you would go learn about the finer points of configuring Hibernate or 32/16 bit thunking or the lifecycle of the clapper rail or whatever else just because it exists. Maybe you are in fact one of those "because it's there" people, and don't need a reason.

Just realize not everyone is like that. That's the one lesson which seems the hardest to learn.