Remove duplicates in linear time

Interviews which ask ‘do you know the trick’ questions are bullshit. At least I got bonus honesty points for saying “I could probably look it up”. It’s too bad most of my computer science knowledge is transactive.

My next post will be better.

http://xn--7od.net/notes/19236620391/2DMjRviu2
Maths and “the theoretical” is generally the part I hate about computer science. This stuff is something that I spend a lot of time on last year, but still got a crap TOC mark anyway. If I can’t picture what I’m doing, I don’t understand concepts well at all, but I think the worst part is that even from where I’m standing, the applications are still too far away.

So Formal Methods… I’m just taking this class because I have to. I can’t see myself being good enough to use any of this in real software development (I’ll be slower and it’ll probably be just as buggy). Right now, it’s so low on my priority list that I left the 12.5% grade homework until the very last minute, handing in something embarrassingly unfinished — you can tell - I didn’t even use a pathing tool for my arrows.

Something [lecturer] said about her dream being that software engineering would become a real engineering field has stuck with me: programs all being verified and bug free… real standards for coding… EULAs that didn’t absolve all responsibility… I get that, but I don’t think it’ll happen any time soon. Numericals, probabilities and “good enough” (ie, the 3x safety margin) work fine for those other engineering fields… and this shit is really hard.

Maths and “the theoretical” is generally the part I hate about computer science. This stuff is something that I spend a lot of time on last year, but still got a crap TOC mark anyway. If I can’t picture what I’m doing, I don’t understand concepts well at all, but I think the worst part is that even from where I’m standing, the applications are still too far away.

So Formal Methods… I’m just taking this class because I have to. I can’t see myself being good enough to use any of this in real software development (I’ll be slower and it’ll probably be just as buggy). Right now, it’s so low on my priority list that I left the 12.5% grade homework until the very last minute, handing in something embarrassingly unfinished — you can tell - I didn’t even use a pathing tool for my arrows.

Something [lecturer] said about her dream being that software engineering would become a real engineering field has stuck with me: programs all being verified and bug free… real standards for coding… EULAs that didn’t absolve all responsibility… I get that, but I don’t think it’ll happen any time soon. Numericals, probabilities and “good enough” (ie, the 3x safety margin) work fine for those other engineering fields… and this shit is really hard.

My next post will be better.

http://xn--7od.net/notes/18058323536/2DMjRviu2
And while the top five university cities to find love are:

Oxford (35%)
York (29%)
Durham (25%)
Liverpool (23%)
Manchester (21%)
I don’t know if that’s counteracted by computer science being the least likely to lead to love. Tried to find the actual source or numbers which meant anything, but gave up after about 10 minutes. I’d make a shit journalist.

And while the top five university cities to find love are:

  1. Oxford (35%)
  2. York (29%)
  3. Durham (25%)
  4. Liverpool (23%)
  5. Manchester (21%)

I don’t know if that’s counteracted by computer science being the least likely to lead to love. Tried to find the actual source or numbers which meant anything, but gave up after about 10 minutes. I’d make a shit journalist.

My next post will be better.

http://xn--7od.net/notes/17689042850/2DMjRviu2
The heap allocation exercise is essentially what I love about computer science here. It’s a contest to see who can build the best memory allocator in terms of speed and space efficiency. On committing code, the server runs your allocator on a set of test programs and your results go up on the homepage for everyone to see. It’s a big effort for the instructor and TAs to maintain, but goddamn, it really pays off.

This is the kind of thing that I’d love to see at York. I guess it works better with the American system - being graded on a curve and the general informalness of assessments - but I can’t see why more classes don’t incorporate some form of competition. I think competition is one of the only things that drives me, but I guess it might have the opposite effect on anyone that’s not on top of things. I can’t agree that it’s unfair in any way, though.

I don’t really want to go into the peculiarities of memory management, especially since my allocator is really slow and not that efficient, (but I bet it’d perform better in a real life situations because of the way it’s suited for ephemeral garbage collection, though). I probably could’ve cheated and designed my program to just demolish the benchmarks, or just copied the libc implementation, but that goes against my principles (but evidently not my peers).

I’m pretty stubborn as a programmer. I think I probably could’ve won this thing if instead of trying to tweak variables all night, I’d just sat down and rewritten it to use segregated sizes or whatever. Recently, I handed in some code with a really awkward array implementation that is probably going to be hell to debug later. Lazy… that’s what it is.

The heap allocation exercise is essentially what I love about computer science here. It’s a contest to see who can build the best memory allocator in terms of speed and space efficiency. On committing code, the server runs your allocator on a set of test programs and your results go up on the homepage for everyone to see. It’s a big effort for the instructor and TAs to maintain, but goddamn, it really pays off.

This is the kind of thing that I’d love to see at York. I guess it works better with the American system - being graded on a curve and the general informalness of assessments - but I can’t see why more classes don’t incorporate some form of competition. I think competition is one of the only things that drives me, but I guess it might have the opposite effect on anyone that’s not on top of things. I can’t agree that it’s unfair in any way, though.

I don’t really want to go into the peculiarities of memory management, especially since my allocator is really slow and not that efficient, (but I bet it’d perform better in a real life situations because of the way it’s suited for ephemeral garbage collection, though). I probably could’ve cheated and designed my program to just demolish the benchmarks, or just copied the libc implementation, but that goes against my principles (but evidently not my peers).

I’m pretty stubborn as a programmer. I think I probably could’ve won this thing if instead of trying to tweak variables all night, I’d just sat down and rewritten it to use segregated sizes or whatever. Recently, I handed in some code with a really awkward array implementation that is probably going to be hell to debug later. Lazy… that’s what it is.

My next post will be better.

http://xn--7od.net/notes/17605112654/2DMjRviu2
I know… I know you’re only a small printed circuit board, but you have something really important to do. I need you to reshape Britain.

I know… I know you’re only a small printed circuit board, but you have something really important to do. I need you to reshape Britain.

My next post will be better.

http://xn--7od.net/notes/14309215482/2DMjRviu2
There’s that idea that I’ll never be good at anything. That I probably would make more of a difference having studied crop sciences rather than become a underskilled computer scientist. Once in a while something comes along that reinforces this idea, like a procedurally generated city.

Also, some murmur about the bundle, although I paid my entire $5 to Introversion. Not sure if they’re actually good business for everyone, and more games is the last thing that I need.

There’s that idea that I’ll never be good at anything. That I probably would make more of a difference having studied crop sciences rather than become a underskilled computer scientist. Once in a while something comes along that reinforces this idea, like a procedurally generated city.

Also, some murmur about the bundle, although I paid my entire $5 to Introversion. Not sure if they’re actually good business for everyone, and more games is the last thing that I need.

My next post will be better.

http://xn--7od.net/notes/13815458425/2DMjRviu2

I describe Computer Science as three broad branches: theory, science and engineering.

Theory is understanding the logic and fundamentals that make computers possible (and what is impossible), science is everything about the way computers are designed… how a processor works or networks run… about algorithms and techniques that we use, and engineering covers how to program properly, design complex systems, and actually use computing.

My next post will be better.

http://xn--7od.net/notes/21186502761/2DMjRviu2
Computer science is no more about computers than astronomy is about telescopes.

My next post will be better.

http://xn--7od.net/notes/21186138003/2DMjRviu2