This excellent XKCD comic is pretty much the story of my life:
Yep, once you leave academia no one will actually understand what you do. Unless you are working for a geek friendly company that was funded and is currently managed by geeks, people will be more impressed with your “Outlook configuration” skills than with your programming. People will assume that you actually went to school to learn “computers” – ie. how to fix and configure them. Programming being just a small but intricate case of “computer configuration” process.
Case in point, have you ever notice how people tend to use words configure and program interchangeably? Hey can you program this address into my Outlook? Can you program my excel to open those Office 2007 documents? Can you program my laptop to work with your wifi connection?
Of course this language quirk probably stems from the fact that we commonly say “program” when we mean configure when working with other electronic devices – like VCR’s or DVR’s for example.
Oh, and the only time you will be praised on your programming is when your GUI is actually visually impressive. Yeah, GUI – that most insignificant part of the software most of us throw together the last minute – that’s the only part people in the real word actually notice:
Ah… Real world is a funny place. If you love to program, love solving difficult problems, love being challenged and want people to appreciate your skill, and knowledge and you want to do actual computer science for living then you should really consider getting a PHD, becoming a professor and staying in the academia.
That’s really the only place you can actually interact with other people who understand, appreciate and perhaps even admire your work. Your real work that is. Not just praise you on a well designed GUI but look at that meticulously crafted algorithm, and really, really get how much work you put into it. Academia is also the only place you can get paid for hacking away on really obscure, abstract projects that really interest you but have no real world applications (yet). Things that only you and a select group of other PHD’s in the same field will actually find use for. You know, applications that will have no retarded users who will complain about trivialities, and ruin everything all the time.
The only problem of course is that these people who understand you will be few and far in between. Most of them will work at different universities. Likely most of your fellow faculty members who you will see every day will have no clue about your field of research. They will politely nod and try to hide their yawns when you talk to them about your craft. Hell, most people in your field will likely be bored to death by the stuff that fascinates you. Unless of course you pick a popular research area, in which case you will have to deal with a lot of competition. Obscure stuff is much more convenient.
Oh, and you will probably need to teach bunch of classes to young impressionable people who will do everything in their power to actually fail your course, and not retain any information you are giving them, no matter how hard you try.
So yeah… You’re screwed either way.
I guess, what I’m trying to say here is that ours is a lonely, thankless craft. But someone has to do it, eh?
“Yeah, GUI – that most insignificant part of the software most of us throw together the last minute” – that’s the problem with most software interfaces done by programmers :)
Anyways, on the topic of thankless job – our development team has been reduced drastically (with top programmers just allowed to leave, no trying to keep them despite the fact that they were the only ones who really knew the system core). So basically we have now more QA guys and MORE project managers then developers. And somehow those QAs and PMs find something to do, they appear to be constantly busy. When the bug is found, it’s always dev fault. Even when it’s a clear requirement omission – it still turns into ‘developer should have thought about that’. When I insisted on pushing the CSS upgrade project because the system threatened to become unmaintainable, it became the scapegoat of the year – nobody knew what CSS upgrade meant so they assumed it was what broke everything. When system calculations turned out wrong, it still was the CSS project fault :) and that’s not fine programming I’m talking about :) so I guess the only gratifying thing is to talk to people like you – when I do something I’m proud of, I’m boasting about it.
P.S. I used to work in the IT department of the bank and hated Outlook ever since :)
Victoria wrote:
Yep. I’m not going to deny this. I do tend to churn out crappy GUI’s when I’m preoccupied with other stuff. But I do know that that GUI is important. It is what makes or breaks the app usually. It’s what shapes user experience.
Also, this is why it is good to have a professional designer do these things. Or at least to spec them out. I may read up on composition, user experience, and best practices in GUI design but this is not necessarily what I do every day. So when I’m making a GUI I’m either:
a) winging it
b) going with the “path of the least resistance” route
Photoshop is something I use sporadically, and each time I do I learn a new thing. Like: oh, I didn’t know you could use a mask to do that. :O
I still don’t exactly know how to do all them Web 2.0 effects. If I need them, I usually steal them from some other website. :P
Victoria wrote:
I still do work in IT capacity on some days (small company == wearing many hats… Way to many hats… ) and Outlook is not my friend. For example, I love how in some versions the PST files can’t be bigger than 2GB. And if they get that big, Outlook just stops working completely. :)
Yup, that is pretty much my dream. After about a decade fixing electronics and another as a network manager, I realized that the only place I would be happy is in academia. (Should I spell that with a capital A?) I’m more into standards design than pure computer science, myself but I still think I can make a contribution. I think a lot of problems in computing could be solved by a well designed standard for communicating information between systems or platforms.
But I also really enjoy teaching people things and helping people learn and figure out things. So I think it will be a good move on my part.