Hey! "Computer" jobs have nothing to do with computers! by Adam Luoranen March 25, 2007 This is going to be a weird combination of acerbic rant, computer industry commentary, and personal journal entry. I've written several of all of these for Internet consumption in the past, but I don't think I've ever written something that's all of them at once. I suspect it's going to turn out a bit disjointed, but that's okay. I'm writing this just because somebody might find it insightful or interesting; I have no friends, and even if I did, if I had something I wanted to communicate to them, I would just tell them personally instead of writing it up in a textfile on the web. I'm writing this just because maybe, at some point in the future, some random person will stumble upon this text file and feel like they might gain some real inspiration or insight from it. If you did, this file served its purpose. If not, hopefully it didn't waste too much of your time. The root inspiration for this file, as the title suggests, comes from a rather sudden realization I came to that most jobs in the computer field have nothing to do with computers. I should probably qualify this statement up front by acknowledging that this is a huge generalization, and that yes, it's not true of every single job that exists in the world. Of course there are still jobs which require you to actually do computery things all day, but such jobs are becoming increasingly scarce, and the ones that do exist are for incredibly lame things. This isn't a sudden trend; it's been developing for some time now. I've been aware of it for a long time, but it was only recently that I had a serious personal revelation regarding it. I'll explain this in more detail later, but first, let's review what a real computer job is, as performed by a real computer person (a label which I've applied to myself in the past). A "computer person" is someone who likes computers and knows a lot about them. To my mind, a *real* "computer person" will know how all the basic parts of a real computer works; that is to say, the person could construct an actual, working computer from 7400-series logic ICs. For example, a true computer person is familiar and comfortable with: - Electronic components (resistors, capacitors, inductors, etc.) - Transistors (BJTs, JFETs, and MOSFETs) - Flip-flops (S/R, D, and JK types) - Multiplexers, demultiplexers, encoders, and decoders - Arithmetic logic units (ALUs) - Control matrices and microcode - DRAM and SRAM - Instruction decoders - Memory controllers - CPU interrupts, and how to invoke them through hardware and software - Memory management in machine language - Using bare wires and rows of toggle switches as input devices Obviously, this is just a brief list of the most important principles a computer person must know; a comprehensive list would be much longer, but the general idea should be made clear here. This is what my generation knew growing up; this was what we learned about to prepare us for rewarding, highly-skilled, well-paying jobs in the blossoming computer industry. The only problem was, when we grew up, there weren't any jobs requiring this skill set anymore. Some commentators might read this sentence and think "Well, that's because computer technology keeps advancing, and you have to learn new skills to keep up with the latest technology". However, that's not the case at all; computers still use all of these same principles that they used in the 1970s. Everything in the list above is still thoroughly applicable to computers of today; it's just that nobody wants to hire people with those skills anymore. I've read multiple articles in computer-industry magazines that have noted the changing face of "Information Technology" as a company department. These articles all note that the corporate computer person's skill set no longer consists of pure computer knowledge; today, the people in the so-called IT department are actually more like businesspeople who just happen to know how to use a computer. To illustrate this point, I went looking through some current job postings on online job boards for IT people. Here are some of my favorite phrases from actual job postings: - "Perform detailed class-level and data model design" - "Defining and implementing software development lifecycle process" - "Assisting clients in developing "best practices" in accounting procedures" - "Execute strategic Web site re-architecture programs" - "Spearhead initiatives to develop next generation market opportunities" (Bear in mind that all of these are taken from job postings for IT positions, not executive positions.) What? What the heck? Where are the D flip-flops and the N-channel MOSFETs and the control matrices? Where did all this beaureaucratic non-information about "accounting procedures" and the "software development lifecycle process" come from? If you want to hire a suit who'll just spout meaningless drivel like this, just say so, but don't couch this in the guise of a position relating to computers. There's a time and a place for business procedures, but a businessperson is not a computer engineer, and vice-versa. The computer-illiterate "Information Technology" people who actually do this kind of thing for a living, then pretend they work with computers, can place their strategic website programs up their wazoo. Once again, I realize that this is a generalization; of course there are still jobs with less of a business focus and more of a technical one, but even these jobs tend to have very little to do with computers. Most of them are about websites or web development (which has nothing to do with computers; a website is not a computer component) or programming in abominable high-level languages like Java, which also has nothing to do with computers. Almost by definition, portable programming languages require (and indeed, expect) little computer knowledge from the programmer. Real computer people program in languages that require knowledge of the computer's architecture, which pretty much boils down to machine or assembly language. Today, assembler or machine-language programmers in the computer field are so rare as to be almost non-existant; for a while, such programmers had a niche in the embedded-systems market, since embedded systems are basically tiny computers which are too small to support a high-level language, but today, even very tiny embedded processors have complete development environments that allow you to program them in C or some other HLL. This presumably makes it easier for people to program them, but also means that programming in assembler is, essentially, a thing of the past for virtually all professional computer programmers. The result is that there's no longer any such thing as a computer programmer, because people who write in C, Java, or Perl aren't really programming a computer; they're programming a development environment (either a compiler or interpreter). When I entered the working world, I still believed that there was room for someone who could work with computers. I encountered some setbacks, but I expected those in the beginning. I kept at it, believing that at some point, there would be light at the end of the tunnel. I've always believed that if you really believe in something and stick to it, you can achieve anything. Most people seem to believe this, too, but there's a catch: It's not really true. Once again, it's a huge generalization, and while it certainly has some kernel of truth to it, it cannot be taken literally. As a simple example, suppose that your personal goal is to grow enough food to feed a meal to everybody in the world. Further suppose that you have enough land and time to grow food for 1 million meals in a year (this is already a superhuman stretch). At that rate, given the current world population of about 6 billion people, it will take you 6,000 years to grow a meal for every person. And that's just one meal; by the time you finished feeding everybody, most of the world would be hungry again. Yes, of course you can fudge this goal by getting other people to help you, or scaling down your goal so that perhaps you're only feeding everybody in your neighborhood or city instead of the whole world, but doing this fundamentally changes the goal; the original goal was to personally make a meal for the world, and if you don't do that, you're not achieving that goal. You can say the goal is unrealistic, but this only proves my point that you must take the adage "You can do anything you set your mind to" with a grain of salt. For a long time, I believed that I could tough it out. Computers were what I wanted to do, and I wasn't going to let an industry slowdown get in the way. Everybody insisted that the jobs were coming back; the economy goes up and down, like a roller coaster, and it inevitably hits low periods where job growth is slow (or even negative) and everybody just has to hold on tight until it's over. So I did; I weathered the storm as best I could. As I write this, it's early 2007. I've been waiting for 7 years now, and things aren't getting better. I'm still looking for a job designing flip-flops for CPUs or front-panel displays for switch-programmed PCs. I haven't seen a single job posting for one yet, let alone actually landed one for myself. Some people say that this kind of job stagnation comes from focusing on too narrow a niche in your field, but this is absolutely not the case: I can do everything relating to computers, from laying out silicon to poking boot kernel code into a boot RAM. I was still waiting for such a job when, one day, while going to my non-computer-related job that I was holding down while trying to weather out the storm, I became almost blinded by a sudden flash of understanding: Such a job probably never will materialize, because of the way business works. For a company to remain in business, it needs to market and sell products or services that actually make a profit. This means that companies won't necessarily make computers or computer-related products; they'll do whatever makes money, and computers don't make much money these days. This was one of the strongest epiphanies I've had since the loss of the computer. It sounds terribly obvious when you read it, but to tie it to what you've been pursuing as a livelihood for decades is a rather jarring experience. It became clear to me that if I was going to remain active in the computer field, the best way to do it would probably not be as an employee; the actual computer industry has turned its back on computing, and for me to be able to continue doing great things with computers, it would be best for me to actually leave the industry and continue doing computery things as a non-commercial pursuit. I could better serve the computer scene as a not-for-profit amateur, rather than an employed professional. Unfortunately, as I began making motions to bow out of the industry and become a full-time amateur hacker, I came to realize that the problem runs deeper than that. There was a specific reason why computers weren't making much money: Companies only stop making money off things when nobody buys those things anymore. The reason computers don't make a lot of money is because nobody is too interested in putting money into them anymore. Industry hasn't just turned its back on computers; even the computer enthusiasts and hobbyists have turned their backs on computers. The days when people hand-soldered their computers seem hardly remembered, even by the people who did it decades ago. I know many people who claim to be computer enthusiasts, but not a single one of them has written their own operating system or designed their own CPU. Very few of them own real Apple IIs or Commodore Amigas, and only one of them has so much as a logic analyzer at home. For years, I consoled myself with the solemn understanding that even if, someday, for whatever reason, the computer person became totally unneeded in actual industry, there would still be a thriving non-commercial scene of people who got involved in such things for the sheer love of doing them. Today, I actually feel betrayed by these people, because even those who seem to like computers for non-business reasons talk mostly about using computers to listen to music and watch videos. I keep asking myself: What kind of mentally-disturbed individual wants to do boring crap like listen to music and watch videos? Who wants to do something like that, where you just sit and watch or listen passively, when you can do exciting, awesome things like hand-solder an adventure game on a circuit board where every solder blob is a 1 or a 0? Yet I have actually met people with computers at home who would rather watch a movie than solder. In fact, the people who would pick the video actually seem to be a majority. I sincerely cannot understand this phenomenon at all; it's like the whole world forgot there was ever such a thing as a computer, and turned the clock back 100 years. For decades, even the media (often blind to important developments in society) caught on to the computer revolution, and talked about how computers could and would change how we lived. Yet today, this potential is gone, and people have reverted to using computers as simple music players and televisions. Amazingly enough, despite all the techno-talk about how "The future is now", even the computer pundits buried their heads in the sand; they weren't ready for the computer revolution. They didn't have the vision to understand that 8-bit CPUs and floppy disks are the future. Instead, they pretend that a cell phone which plays video is revolutionary, even though it actually does nothing useful or innovative. People in positions of respect and trust actually have the gall to claim that obsolete, useless technology is cutting-edge and changing lives. In recent years, we've endured fears and actual occurrences of terrorist attacks, outbreaks of disease and war, financial hard times, and global climate change, but no single event has shaken me and destroyed my hope for the future of humanity so much as the loss of computers. Computers have always been something social for me. Even in the 1980s, before home Internet connections became common, the computer was, in my mind, a place for people to gather to do things like play games or write programs together. These activities are fun individually, but like sex, they become even more fun when you do them with someone else. BBSes (the predecessor to the Internet) were strong in the 1980s, and I met many people on BBSes as well, and shared a great deal of sentiments and files with them, the memories of which will last me a lifetime. Today, however, most people on the Internet are not interested in writing a game from scratch using 16 colors and drawing all the graphics through direct memory writes; they'd rather use a GUI-based program to create all their graphics, which isn't much fun and defeats the purpose of having assembly language (the only computer language worth writing in). As a result, my community has slowly collapsed around me, until I no longer can find anyone who shares my interests. Growing up, I was never the socially withdrawn, friendless nerd that computer people are often portrayed as. I had friends who shared my interests. Ironically, today, in the age of the Internet, which was supposed to be a great connector that brought people from all over the world together, I feel alone and abandoned for the first time in my life. Once when I was about 10 years old, I engaged another boy who was about my age. I was in an excitable mood, because the previous night, I had begun playing a new car-racing game on my computer. I did not know this boy particularly well, but we at least knew each other by name, so I felt I knew him well enough to share my wonderful news with him. Running to meet him, I fairly exploded with my revelation: "Hey! I got a new racing game on my computer!" He looked at me for a moment and said "Uh, that's great." In that moment, I truly understood what it feels like to tell somebody something they are genuinely not interested in. I had surprisingly few such instances growing up. I think I had a pretty good sense for recognizing who would actually care about my computer games and who wouldn't; this particular incident was a comparatively rare error in my judgement. Most of my friends were into games growing up, and they thought it was cool to write computer programs that wrote directly to I/O addresses, but I did run into the occasional person who still clung to their old-fashioned beliefs that computer people are uncool. My point with all this is that I know what it feels like to have someone look at you like you are an entirely bizarre freak, and while I never got this look from other computer enthusiasts growing up, today I do. I AM SO DORKY THAT I AM ACTUALLY TOO NERDY FOR COMPUTER NERDS. I am not bitter about the existence of non-computer people; I swear to you, I am not. Not everybody in the world has to like computers, and I have many friends who honestly don't care about them at all. What I am bitter about is the proliferance of so-called "computer people" who actually know nothing about computers, and furthermore, actually look down upon those who do. It seems that if someone owns a pocket MP3 player, they are too good for someone who knows how to write machine language for 3 different CPUs. Even more than the collapse of the computer industry, this is something that has begun to steer me away from computers. For a while, I believed that after dropping out of the computer field and becoming something boring and useless like an accountant, lawyer, or physician, I would continue to keep the computer scene alive in my spare time. There are still countless projects that I want to do. I want to hand-build an Amiga 500 clone from discrete transistors. I want to create a virtual replica of Babbage's difference engine using a software physics engine. I want to hand-etch my own 65-micron full-adder over my kitchen sink. (Or better yet, someone else's kitchen sink, since mine is already too full of electronics to have much room for such a project.) I want to make a computer that runs on music. All of these are projects which I would undertake partly for my own learning and interest, but also because I'd want to share them with other people who would find them as fascinating as I do. But I cannot find such people anymore. I could do these projects all on my own, but doing so would seem somehow... Empty. I hate to give up on something so meaningful to me. If I really thought there was any hope at all, I would fight tooth and nail to keep the scene alive. But I can't do it alone, and I lack the support of anyone at all. There seems to be little point in continuing these projects just to amuse myself. The human being is meant to be connected, linked socially and spiritually to other human beings. This leads me to another epiphany that I had about a week ago. During a conversation with a co-worker at my boring non-computer-related job, my co-worker (who knows that I am into computers) remarked that I seem to talk a lot for a computer person. I was momentarily floored by this realization, but it was true: Lately I've been talking a lot to almost everyone who'll talk to me. I hadn't even noticed this until it was pointed out to me, but when I sat down and thought about it and tried to figure out why I've become so chatty, I began to see in myself an impetus to get closer to people. This is probably partly because of a certain loneliness (which I shouldn't complain too much about, since loneliness is almost absurdly common), but also because I just want to learn more about people. For most of my life, I've deliberately spent most of my time talking to other computer people, and now that those computer people are essentially abandoning me, it seems like I am subconsciously trying to figure out just what the rest of the population is like. I don't have to ask other computer people what they're like; I already know. They're like me. They like to talk about computers, they read a lot, they play a lot of games, and they enjoy learning new things. I intuitively tend to understand these people, because I am one of them. But when I am with non-computer people, I lack this same intuitive sense of a person, and so I try to find out more. Real computer people are insatiably curious, and I am probably just highly curious about people. The problem is that people are not as forthcoming as computers. If you ask a computer what value is stored in memory address 3587, it will immediately tell you without any apprehension. You can open up a computer, look at everything inside it, and move around its innards however you like, and the computer will not complain. (Though it might stop working if you do this wrong.) But humans do not immediately answer all queries to the best of their abilities. In fact, if you sit down and ask a person perhaps 10 questions about themselves, they may begin to be visibly uncomfortable before you are finished. It is generally supposed to be true that people enjoy talking about themselves and appreciate it when others take a genuine interest in them, but just try examining someone without arousing suspicion or unease. If you ask somebody where and when they were born, where they grew up, what school they went to, what music they like, what sort of car they drive (if any), where they live, and whether they prefer paper towel coming forth from the front of the roll or emerging from the back of the roll, they may go so far as to ask (perhaps semi-jokingly) if you are "interrogating" them. For a computer, such a standard status check is routine procedure; to a person, it almost seems to constitute some sort of invasion of privacy, especially when you ask all of these questions at once and without any obvious reason, even though any one of these questions, asked alone, would probably pass as innocent and mundane. These are only simple questions, too; we haven't even begun to get to questions like whether you would consider a Bachian fugue or a Megadeth song more appropriate for a medium-budget movie about western European undertakers. The problem is compounded in those who have various forms of autism, such as Asperger's Syndrome. One of the hallmark symptons of Asperger's Syndrome is the inability to recognize socially inappropriate speech or actions; people with this form of autism may (with the best of intentions, mind you) say or do things that are considered socially inappropriate, without realizing that they have offended or irked someone else by doing so. Alas, people heavily interested in computers often have this condition; I actually wonder if I have some form of Asperger's Syndrome, based on the number of times I seem to have unknowingly said something that someone else considers inappropriate. This doesn't seem to happen too terribly often (I do seem to have some ability to read others' facial expressions, which classical autists are unable to do), but it still becomes quite annoying when attempts to be friendly result in soured feelings, restraining orders, and sexual-harrassment lawsuits. Like the lack of interest in the computer community, these consequences are discouraging, compelling the person who is not naturally social to withdraw into their own little shell. I'm not particularly interested in being utterly isolated from everyone, but trying to reach out to people does involve some pitfalls. Increasingly, however, I feel like I may simply have to. I'm starting to realize that if I'm going to lead a normal life, I'm going to need some help from other people to do it; I've always had friends, but they've always been a rather specific type of friend, and it seems like I haven't been leading a balanced human life. If I actually end up trying to make "normal" friends, this may be the single biggest shift in my attitude towards life I've ever made; it will likely be more life-altering than graduating from college or getting married (both of which I've already done). Then again, who knows? Old habits die hard. Maybe I'll get tired of trying to interface with people and go back to computers. For now, however, it looks like making a career out of building flip-flops might not work out, no matter how hard I try, and if there is truly nobody who wants to collaborate on making a Commodore 64-compatible from Slinkys, then I'm not interested in creating a whole bunch of computing material that no one will ever read. I'm tired of trying to convince a global industry and hobbyist community that toggle switches are a superior input device to mice. You people can have your ringtones and music videos; I'm off to live a real life. Cheers.