Programming For Humans

Resurrected from in it’s 2005 incarnation. Enjoy 🙂

For a computer programmer, I don’t really have a techie-focused website. Most programmers write about their passion for Spectrums/PowerPCs/FreeBSD and focus on little else. Maybe it’s because I came to programming later than usual, or maybe it’s because I’m a girl 🙂 , but I just don’t have that overwhelming desire to talk about computer stuff on the web all day.

I think part of this stems from the fact that no one else in my life (OK, apart from my boyfriend), gives a monkey’s ass about it (and on a bad day, even he doesn’t), so even though I have a couple of friends who indulge in a bit of gaming, once I mention the word ‘computer’ to anyone I know, I can see that fearful look in their eyes that I’m going to start trying to involve them in something horrible.

Also, the other thing is, I spend all day, every day, commanding computers to do what I want and trying to understand their little cries for help when they don’t behave properly, and not only that but I also can’t help tinkering in my spare time, whether it’s experimenting with something new, or learning more about concepts I’m already familiar with, so after all that the LAST thing I want to do is start writing posts about it. However, it seems somehow wrong to have a website that has no real indication that my life pretty much revolves around my laptop, so first of all I’ve written a little summary of what I love and hate about programming, and secondly, to satisfy the criteria of having something IT related on the site, I’ve added a quick run down of my favourite resources.

Why I hate programming

  1. I will never know everything I want to know.
  2. Sometimes you have to deal with horrible code, architectured and written by someone who seemed to have a part of their brain missing.
  3. Sometimes it takes enormous amounts of time to solve a problem someone, somewhere, has undoubtably solved before, but you can’t find the answer on google.
  4. Sometimes my left eye hurts when I stare at monitors for too long.

Why I love programming

  1. Programming keeps my brain sharp, even though I often feel stupid until I figure out what the problem is.
  2. My line of work means that all non-programming related, everyday computer tasks and electronic interactions are incredibly easy and stress-free (usually).
  3. Programming gives me the power to make a piece of electronic equipment do the work for me, whatever that work may be.
  4. I can fantasise that I am one step closer to a non-programmer in creating the first nobel-prize winning, self-aware, artificially intelligent life form.
  5. Computers take on their own little personalities. You can row with them when they don’t do what you think you’ve told them to do because you’ve actually told them to do something very similar but not quite the same without realising it. It’s humbling always losing to a machine.
  6. The potential of what I could do with computers (with enough time, money, brains and inclination) is endless, even if not realistic.
  7. Other programmers are usually eccentric, sometimes mad, but almost always interesting to work with.
  8. I can wear Clarks shoes and no one will laugh at me, because all other programmers wear them too (survey conducted 2004, Dept 624).
  9. Programming jokes are funny.
  10. What I do makes me feel like I have found what I was meant to do.

Programming resources worth a butchers

Obviously this is a very personal thing, and also dependent on what kind of programming you do…

As a C++ programmer this is just my opinion, and by no means a comprehensive guide.

Online – For C and C++. Sometimes not as detailed as it could be, but generally always helpful and readable. – I’m never sure exactly where to go from the home page, but I get a lot of results on here from google searches for information, so I think the content is pretty good.

The Code Project – The only complaint I have about this site is it always takes about 3 times as long as any other site to load. Once you’re in its fine though. It’s deliberately very Microsoft oriented, but the articles submitted by other developers are occasionally brilliant and usually insightful. I like this so much I once got a review of it published in the British Computer Society journal – Really handy C++ reference guide, dealing with slightly more interesting (and useful in the real world) topics than the usual basic reference guides. – Intro and – Intermediate guide to C programming. Excellent, really comprehensive material – particularly useful if like me you are a C++ person and your C knowledge is less than perfect.

Linux Questions – For the unavoidable millions of questions you have about Linux. – More handy linux info. – If Windows annoys you. – Everyone knows it, the only place for open source software. You can get programs for everything imaginable here.

How to be a Hacker– Eric S. Raymond’s definitve work. Read it here.

How to be a Programmer – A good summary of the technical and soft skills that you should acquire to get and give the most out of your career. No longer available. – Although I am not convinced that the site is mapped out properly (I have found stuff by searching in google that I can’t navigate to), the tutorials are very good. – A programming blog I just like.

Safari Bookshelf – Thousands of technical books searchable and readable online. It’s a subscription only service, but if you need to look up lots of bits and pieces (or if you can get your company to get a corporate account), it is unbelievably handy.

The Register – Tech news. I don’t really use this because I think the interface is pants (ex-web-developer snobbery), but Steve insists it’s brilliant. You can make up your own mind. – Probably the geekiest link in my favourites list (I even get the newsletter), but in my borderline embedded world its just one of those places its good to know about.

Fun stuff

Shooting yourself in the foot – This is genius. There are various lengths and versions – this one seems to encompass pretty much everything. You might want to read the link before you read the next bit…

There’s one in particular I really like, after working with a programmer who was evangelical about Smalltalk and never seemed to deliver anything on time:

You spend so much time playing with the graphics and windowing system that your boss shoots you in the foot, takes away your workstation and makes you develop in COBOL on a character terminal.

But the one that for some reason makes me laugh ridiculously every time I read it is:

370 JCL
You send your foot down to MIS with a 4000-page document explaining how you want it to be shot. Three years later, your foot comes back deep-fried.

Cooking for Engineers – A recipe site… for engineers. Logical cooking instructions for all. – Addictive. But be warned – my work colleague ended up with a trashed hard drive looking for answers to this. Not everyone out there is nice. – Stuff for geeks.

LifeHacker – Just heaps of really useful stuff.

Books – Not strictly a book in itself, but just about the best collection of reviews on technical books ever (ok, so I’ve only read the C++ section, but if you’re starting out, you can’t go wrong by reading this).

I really like the C++ in-depth series – these books are small and light, so it doesn’t feel like an overwhelming chore to read them. Similar to these are the excellent books by C++ expert Scott Meyers.

For something you can actually read (rather than read at a computer), try Microserfs by Douglas Coupland You don’t have to know anything about computers to enjoy it. Sadly I haven’t enjoyed a single other book of his that I’ve read, even though this is great.

The Cuckoo’s Egg by Cliff Stoll This is a true story and a great read. Thankfully it’s been reprinted – I read this in 2001 after waiting 6 weeks on the local library reservation list for them to locate the only copy they had.

The Mythical Man Month, Frederick P Brooks I have to admit I have actually only read an extract from this, but I know I should have read it so I’m including it anyway.