Skip to main content

The Time of Computers

Hello, all! I'm back after another nice, long, refreshing hiatus because for the nth time, my parents have put their feet down and insisted I compose a blog post. I MAY HAVE TO DO IT, BUT YOU'LL NEVER MAKE ME DO IT WITH GOOD GRACE, MOM!

I was thinking about my school computer science class (I wasn't really, I just need a way to introduce the topic) and about the kind of programs we have to write. They're not very complex programs, they do pretty simple things like adding up numbers or sorting things. They also aren't very long. A program that I'm asked to write in class will scarcely take me ten minutes to finish, and be around fifteen lines long. The Google home page has more lines of code than that, for crying out loud!

Now, there's nothing wrong with short programs. A lot of the most efficient programs are quite short, and I'm always thrilled to be able to write one line instead of two. However, the problem with writing only 15-line programs is that it doesn't really give you a sense for how much work really goes into building a software product. It leaves people with the impression that an entire operating system, say, can be built with around 30 lines of code. Now, while I hope that that may be the case in the future, none of the tool sets currently available to us are that good. Windows XP, for instance, is around 45 million lines of code in size.

The usual explanation is that a computer science course is supposed to teach you the concepts required to build a program, not actually have you build a program. While it's very good for me to know what I'm doing with while-loops and for-loops, I think I'd also like to know the amount of work that goes into developing a functional product. I wrote an app a couple of months ago - a pretty simple app by today's standards - that took me several weeks to finish. Of course, it probably didn't help that I was only putting in one hour every day, and even then not every day of the week. The point is, though, our computer science course implies that building the next great piece of software is something that I can accomplish with half an hour and a computer.

It also strikes me that people who have been taught programming by writing fifteen-line programs in visual basic are rather more liable than everyone else to break down and weep after their computer tells them, for the fifth time, that it "could not locate aeinv.dll" or whatever. I'm not saying that I don't feel the urge to chuck my computer out the window and go out for a walk every time my code doesn't work. I'm just saying that I'll probably sit down after the third failure and reboot the computer (and that's what every overpaid repair engineer doesn't tell you - if your computer isn't working properly, you should probably just turn it off and on. If that doesn't work, ditch Windows and use Linux like a real programmer.)

The obvious solution, of course, would be to set up computer science courses to be more like a team working towards a goal. The current format seems to be to throw a bunch of problems at you which use all the features of a given programming language. I wish I had a less obvious, well thought out solution to offer you, but I never have, and I'm far too lazy to come up with one. Instead, I'll leave you to hope that you never, ever have to learn to use Linux.

Comments

Post a Comment

Popular posts from this blog

Exam Fever

As anyone currently in the twelfth will tell you, with varying levels of dismay, the final exams are right around the corner. Parents everywhere are seizing their children's phones and taking time off from work. Panicked screaming ensues at intervals. I don't believe there's a person on the planet who genuinely enjoys exam season. Actually, I take that back - there's no one in India  who enjoys exam season. Partially, I think this is our own fault. Exams are the most important things in an Indian student's life, so parents seem bent on bottling up all the worry and concern they have about their kid's education and allowing it to spew forth in a torrent of "No more video games!" and "Delete WhatsApp!" commands during the two months surrounding the exams. Small wonder, then, that at 17, I believe the purpose of exams is to seasonally blot the sunshine from otherwise happy lives. This whole exam fever thing does have some upsides. Okay,

The Game

I've a bit of a confession to make: I still play Minecraft off and on (I can hear all the hardcore gamers laughing from here). I even quite enjoy playing it. For those of you who don't know, Minecraft is a game about placing blocks to build structures in an infinite, 3D world. Basically, it's a discount LEGO set for computer-literate people. Much like legos, if you play it after you turn twelve, people assume that you're mentally incapable of dealing with anything more complex. I hate the idea that you become to old to play a certain video game. Unless something involves physical activity that'd be impossible to perform once you cross a certain age, I don't see why it should be age-restricted. I'm seventeen years old, and if I want to spend a night binge-watching Tom and Jerry and consuming obscene quantities of potato chips, that's my god-given right! I think people tend to assume that Minecraft is a simple game. Once you've built a squattish,

Learning to Learn

There's an interesting concept that's gotten a lot of traction over the past couple of years called "meta learning".  It's a term coined by one Donald B. Maudsley, who defined it as "the process by which learners become aware of and increasingly in control of habits of perception, inquiry, learning, and growth that they have internalized". Translated from Sciencese, Maudsley is talking about how we figure out ways to become more efficient at learning new information. HR managers (you know, those overpaid dimwits you complain to about your coworker stealing your lunch?) like to call it "learnability". Most people with real jobs don't call it anything at all. In reality, though, it's an extremely useful thing to understand, together with the techniques you would use to get good at it. Myself, I'm a decent-ish learner. Mostly, that's because I've had to learn things on my own quite often - I had to teach myself web design,