Wow. That was really excessive. I can't imagine why Joel felt the question merited that kind of response.
My feelings mirror one of the other comments in the thread: most software jobs suck. Not everyone can work at Google or Fog Creek, and outside of the protected bubbles of the major tech centers, software work tends to be a tedious grind. (Even in the protected bubbles, I know a lot of dissatisfied techies -- free soda remains charming for only so long when you're working insane hours in a cube, on death-march projects, taking all of your creative orders from the MBA with the corner office.)
The sad thing is, I think that Joel and the guy posing the question are both partly correct: the software industry does pay really well for new grads, and yet it does discriminate against older techies. Programming is a questionable long-term career choice. Instead of insulting the guy for asking a question, why not have a discussion about the problems he perceives? Software may be better than ditch digging, but that doesn't mean that programmers should be eternally complacent and unquestioning minions of code.
It's a DAILY question on the Joel on Software discussion forum; there's a group of people there that have turned it into a mutual self-confirmation club where they all try to make each other depressed about how bad their jobs are.
"Just looking for something that will have the best chance of keeping steady employment until retirement (in my early 30s now)"
That's a pretty lame depressing question to ask though. IMHO he should try and find some ounce of passion in himself, and find something he enjoys, or ideally loves.
The insistence for people to be so blithely money-oriented enrages me more than any sort of weaknesses on his part. He didn't even qualify it with "with interesting work". It bothers me just how many people like this I've met, but I'm hoping it's just a misunderstanding; I integrate my work life with my personal life, I feel it's just the way I understand my being, whereas I'm betting these people shut down when they punch the clock and go on to enjoy interesting and fulfilling hobbies at home.
My brother quit being a body piercer not because of the job itself, but because he felt that interacting with people solely for the purpose of a material transaction was banal and ingenuine. He still does piercings, for money, but only if he already knows the person. If you include work that indirectly achieves this goal (working behind the scenes for a company that impersonally sells goods or services to anyone) you have cut out almost every job imaginable in a modern industrial economy. Imagine living your life like that.
My coworker, a mechanical engineer doing product design, sighs every time someone goes to him with another issue to add to his list. One time I jokingly said, "Wow, does it suck that much?" He said to me, "Don't ever get good at doing something you hate."
I suppose he considers bringing a good income to his family as being more important than his enjoyment of his job.
That's certainly true of my parents, who did blue collar work for most of their working lives in order to provide for the family. I remember my mother having such bad joint pain from working all day that she had me pound on her with a baseball until she bruised, for a little pain relief. My parents found the best paying jobs they could, and did not qualify it with "with interesting work," because success of the family meant sacrifice.
My friend's friend Pete is a father of two, a four year old girl and an adorable 14 month old boy, and when he gets drunk he starts giving out life advice. He says that once the kids come, all your priorities change. They are the last thing you think about every night, and you will find yourself working harder and doing what it takes to see that they are taken care of.
I believe "interesting work" is a luxury, and we are the spoiled of the spoiled.
Not too long in the past, marriages were arranged in order to strengthen family power, and not for love. Like the song lyrics said, "if you can’t be with the one you love, love the one you’re with."
I didn't get that implication, but I did get the implication that it was a lesser priority. Granted, it is very hard to get inflection from text, and this strikes me as one of those emotional appeals where inflection matters, but his saying that he just wants a stable until retirement job suggests that he is willing to kick enjoyability (and possibly a number of other things) to the curb for the sake of that. He wants it, but he's willing to accept that he can't always have it. It is here that I think he goes horribly wrong. As you mention in another comment, it is worthwhile to pursue more desirable situations and not get stuck in a local maximum. Accepting and/or work just to work, without enjoyment or fulfillment, is one of those places where I think your advice is worth following.
I can't imagine why Joel felt the question merited that kind of response.
This isn't exactly the first time the question has been asked over there. Once you've read it for the 100,000th time I'm sure your patience tends to wear thin.
Meanwhile, though it's conventional wisdom that "programming is a questionable long-term career choice": compared to what? Banking?
I think he meant it along the lines of how many successful (however you define that) 50 year old programmers do you run into? Most people who start out their careers doing code eventually migrate into management or something more lucrative by that point.
You find them at big companies. I knew some great coders in their 40s and 50s at SAP. They mostly weren't the "I could rewrite this whole subsystem this weekend" sorts, more "I've solved variations on this problem since before you could write your name. If you'll shut up for a second I'll show you how it's done."
I think there are plenty of places where coding wisdom is valued. They're just not the same places, generally, that thrive on geek bravado.
One problem with discussions like this is that "programming" has an absurdly narrow definition. If you aren't actually spending the majority of your day typing code into emacs and fixing Javascript bugs, you are not a "programmer": you have "migrated into management".
A senior law partner who never personally argues a case or drafts a contract, but does nothing but attend meetings all day and supervise younger partners and paralegals, is still "practicing law". The chiefs of large hospital departments are still "doctors" even when they don't pick up a stethoscope for days at a time. Late in Beethoven's career, when he was almost completely deaf, no longer able to perform or even to critique other performers, he was still a "musician".
Whereas (e.g.) Joel Spolsky is now a "manager". Except when he's working on Arc, PG is more likely to be called a "manager" or an "angel investor" or a "venture capitalist" or a "technology pundit" or a "marketer" or a "writer" or a "teacher" or a "designer" or a "strategic consultant" or an "executive chef" (I think he does all of these things!) than a mere programmer. But just because these guys somehow don't fit our hyper-narrow definition of "programmer" doesn't necessarily mean that they had a problem with their software careers. It might just mean that there are many opportunities in software -- some quite rewarding or lucrative; many of which are best performed by someone who also knows how to program -- that aren't captured in the scope of the term programmer.
Part of the reason why there seem to be so few "programmers" in their forties and fifties is that by that time many of them have dreamed up a better job title for themselves, like "senior member of the technical staff" or "chief of QA" or "Java architecture consultant" or even "co-founder" or "CEO". Spolsky loves to tell the story about his Bill Gates review:
At the time of that review, Bill Gates had not been called a programmer for years and years. He was a CEO and a co-founder, and was paid accordingly (and then some). But what was he doing when he reviewed a spec in gory, technical detail? He was programming. At a higher level than the average college intern, yes, but just because you're not touching a keyboard or dealing with individual calls to malloc doesn't mean you're not programming.
Unless we decide that it does. But then we shouldn't be surprised to find that programming as a career is something that many people eventually grow out of. We've defined it that way -- as a term to describe an activity that doesn't scale well and that usually represents only a portion of a well-balanced intellectual or economic diet.
The conventional definition of "programmer" may be narrowly defined, but under no circumstances would I expand it to include the careers of Bill Gates, Joel Spolsky or your average "technology pundit". Those people may have written software at one point (and may still occasionally write code), but programming didn't make them famous.
To define people like Steve Jobs as "programmers" is to so absurdly broaden the definition of the word, as to make it meaningless. After all, Steve Jobs once studied calligraphy (and even credited his studies for the development of the Macintosh!) -- should we label him a calligrapher? He makes music industry deals -- is he a musician? He buys rights to feature films -- is he a producer? He headed up Pixar -- is he an animator?
I think there are good career opportunities in the technology industry, but for the most part, these careers don't involve programming. Your examples are telling: if you want to become a venture capitalist or a CEO or a "technology pundit", then you're far better off knowing a little bit about code, and a lot about money, business or journalism (respectively), than vice-versa. Coding is assembly line work -- which is why our society tried to outsource it to cheaper labor as soon as it became feasible to do so. We don't outsource the jobs that we value.
you're far better off knowing a little bit about code, and a lot about money, business or journalism, than vice-versa.
Has anybody else actually read a biography of Bill Gates? [1] Bill Gates was a hacker before he knew anything about money or business. Wikipedia:
After his [high school] administrators became aware of his programming abilities, Gates wrote the school's computer program to schedule students in classes. He modified the code so that he was placed in classes with mostly female students. He later stated that "it was hard to tear myself away from a machine at which I could so unambiguously demonstrate success." At age 17, Gates formed a venture with Allen, called Traf-O-Data, to make traffic counters based on the Intel 8008 processor...
...Gates and Allen did not have an Altair and had not written code for it... MITS president Ed Roberts agreed to meet them for a demo, and over the course of a few weeks they developed an Altair emulator that ran on a minicomputer, and then the BASIC interpreter. The demonstration, held at MITS's offices in Albuquerque, was a success...
...During Microsoft's early years, all employees had broad responsibility for the company's business. Gates oversaw the business details, but continued to write code as well. In the first five years, he personally reviewed every line of code the company shipped, and often rewrote parts of it as he saw fit.
Gates is not an isolated example. Who founded Apple Computer? Hackers. (Yes, Steve Jobs may be more famous as a manager than as a hacker, but in the early days he built stuff, too.) Google: Founded by computer scientists. Yahoo, ditto. eBay: founded by a programmer. Jeff Bezos of Amazon: comp sci degree.
You're better off knowing more journalism than programming? That's funny. Journalism is in flames, with senior reporters losing jobs by the score. One of the big reasons for this is that a lot of the money in newspaper publishing came from classified ads, and this money has been sucked away by a tiny company called Craigslist, founded by... a software engineer and comp sci major from my alma mater, Craig Newmark, a man with no background in journalism!
You are correct, though: Most people would agree that these folks are no longer best described as programmers. Society agrees that "programmer" is a word for assembly-line workers with no demonstrated creative powers, just as "hacker" is a word for 13-year-old script kiddies with criminal intent. Which is why many programmers are smart enough to come up with a new job title and/or a broader skill set after a few years on the job.
---
[1] Recommended: Hackers: Heroes of the Computer Revolution. Somewhat dated, but the dated bits are some of the most fun.
I've read about three different biographies about Bill Gates. But, again: Bill Gates, Jeff Bezos et al. did not become famous from writing code. They may have written code at some point, but it isn't what made them successful. They made their fortunes by doing other things that occasionally drew on their technical skills.
The difference between you and I, is that you look at these successful people, and want to expand the definition of "programmer" to include them, because they once did some programming. I think that's silly. Programmers are the guys who work for these successful businessmen, cranking out code from 9 to 5. Guys like Gates and Bezos have job descriptions that are far more expansive and influential than that of even the most senior software engineers.
(Oh...for the record? Knowledge of journalism would serve a lot of startups well in their eternal search for PR. The industry of print journalism may be dying, but the craft is alive and well.)
They may have written code at some point, but it isn't what made them successful. They made their fortunes by doing other things that occasionally drew on their technical skills.
Like what? Raising horses and starting a petting zoo? The people you mentioned (Gates, Bezos, and others) became successful because they were technical, and not just occasionally.
"Society agrees that "programmer" is a word for assembly-line workers with no demonstrated creative powers, just as "hacker" is a word for 13-year-old script kiddies with criminal intent. Which is why many programmers are smart enough to come up with a new job title and/or a broader skill set after a few years on the job."
So, maybe a more productive discussion than "what should i do for a career instead of programming?" would be "how can i get a more respectable job title?"
Well, you can found your own company and give yourself whichever title you want. But that won't fool anyone for long. ;)
The tricks for improving your resume are well known and are covered in all the books. Learn something about the business you're in, whether that's design or publishing or manufacturing or finance or retail sales, so that you aren't just mindlessly doing what the "domain experts" tell you to do. Do work that demonstrably adds value to the business and be able to describe how it does so. Learn the fundamentals of accounting so that you know how people keep score when evaluating a company -- that will help you to articulately describe how your everyday activities lead to higher revenues or lower costs. Learn to write and speak so that you can better sell your stuff. Learn to teach and hire and manage and direct so that you can improve your leverage: Why settle for being a better programmer when you can command a small platoon of better programmers?
Or you could always take the (ahem) short cut: Found a company, make scads of money, cash out, and change your title to "mogul" or perhaps "playboy". ;)
Of course, doctors and lawyers and accountants and architects and graphic designers may do all of these things while retaining their job titles. But once a programmer starts doing these things she will probably be referred to by some other title [1], no matter what fraction of her day is composed of software work or how much her programming education informs her day-to-day decisions. That's my point.
---
[1] She will probably want another title. I've chatted with designers who are experts in Drupal and who are heavily invested in the notion that, until you actually type an original PHP function definition into a text editor, you are "not a programmer". They'll sit there, constructing the equivalent of enormous SQL queries with the GUI-based query builder, building mind-blowing spiderwebs of relational structure with the GUI-based model builder, copying and pasting and modifying PHP, typing in custom CSS and even writing original jQuery code, yet all the while maintaining that they are not programmers and that what they are doing is not programming. To suggest otherwise is to commit a serious faux pas. It's like accusing them of being day laborers.
Also Recommended: Gates, by Manes and Andrews. It doesn't score high on a literary scale but it really captures the thrill of starting a company. It also covers the partnerships between MS and Apple without passing judgment.
Don't suppose being born into a family with self-created wealth (lawyer father, board member mother, bank president grandaddy) had anything to do with developing the business acumen required to make money from "hacking."
Anyway, we all know it was the exclusivity agreements Microsoft managed that made them rich, not the quality of their hackerdom.
As Malcolm Gladwell has recently highlighted: Of course Gates' family wealth helped him become a better hacker. That's how he got all that computing experience in high school. Before the invention of the microcomputer, far fewer high school students had access to computers. (I'm younger than Gates, but I do remember computer scarcity: I was among the last generation to experience it. In middle school, having gotten bored with BASIC, I taught myself Pascal from books, but I didn't get ahold of a compiler until three years later.)
But Microsoft's early success in dominating the microcomputer language market was not built on "exclusivity agreements" -- it was built on Gates and Allen's software skills, which allowed them to hit the microcomputer market early (before the Altair even shipped, in fact!) and then to hold their market position by porting their products to a lot of different systems as they came out. And if Microsoft hadn't cornered the language market on a range of early microcomputer systems, there would have been no reason for IBM to approach Bill Gates with that fateful agreement that brought the company into the OS business.
I recall it all too well, and it seriously damaged my development. I mastered BASIC during the Commodore Christmas of 85. Years later in 11th grade, my high school was teaching...BASIC...on Trash-80s. I thought for a while, what is the fuss about computers for? They haven't moved forward in years and speak a crap language. I'm done with these toys.
That's true for all industries. That 50 year-old banker is not the guy who's running around on the trading floor all day - he's probably a manager of some sort as well.
Similarly, if you go into other engineering fields (electrical, mechanical, civil, etc) nearly all the 50 year-olds are managers also.
But how does that scale? What's the ratio of managers to workers? For every 10 20-something new CS graduates, there's maybe 1 50-something manager. What happened to the other 9? This isn't a new problem, after all the Army needs only 1 Colonel for every 12-16 Lieutenants... The option to stay on as a junior officer until retirement doesn't exist, it's "up or out".
I know a couple - just had lunch with one of them a couple days ago. One does contracting + part time teaching at a college. Another just cashed out of a startup with enough money to never work again (after having previously gone public with a startup with enough money to never work again, but kept it in the company's stock, which tanked along with the company).
Both of them have held managerial positions up to VP-Eng, yet decided it was not what they wanted to do and downgraded themselves to rank & file software engineers, albeit very good ones.
How many people born 50 years ago realistically had access to computers, though? It's considerably easier to learn programming when you can test things, and PCs weren't readily available until the late 70s. (Anyone in their 50s now would have already been in their 20s in 1978...)
I was lucky enough to get a Commodore 64 when I was six or so, and taught myself simple programming stuff with library books. That's probably more or less true of several other people here. Imagine not even using a computer until after college, or learning by submitting code on punch cards, one batch per day.
> that doesn't mean that programmers should be eternally complacent and unquestioning minions of code
Yes, but it would do many of us good to consider the options from time to time. It's not just digging ditches - you rarely get anything like the compensation and freedom that many software gigs offer even in fields like architecture or medicine, where you need years of training and education just to get to the starting line.
It's definitely not all roses, but as someone who got into software relatively late in life (28) I'm still surprised at times how easy we have it.
(I suppose it's like growing up in a Western country - life don't seem that great to you, until you compare it with how most of the world lives)
There is something strange about the notion that programmer's ability declines with age. I am a bit over 30 now and I've only become better, as long as I'm motivated (it was easier to stay motivated when I was younger). It seems to me that as long as you don't stop learning, you will only get better, and the experience of people like Steve Yegge seems to confirm it.
I don't understand the whining about the workplaces either. At the end of the day, what makes Google a great place to work: the free soda and perks or the options to work on interesting things? If you choose the former, probably you are not really wired to enjoy programming as much as some of us are.
I agree. I'm getting better by leaps and bounds every month ( I have been programming full time for about 3 years). I'm excited by how much I will know in 10 years. It is weird that you don't see a lot of really good programmers in their 40's and 50's I could see how, if I continue growing like I am now, most programming jobs I know of would be an easy coast. Why don't people do that.
This is going to come off as pompous, but I wonder if its just that you don't see a lot of nerdy hackers continuing into their 40's. I can think of a bunch of programmers from DC who were in their 40's and 50's , they were mostly government workers and enterprise type programmers, I doubt those types continue pushing and exploring.
Keep in mind that with most things the rate of improvement is much faster in the beginning and slows down as a greater level of mastery is acquired.
I've been doing this for about 4 years. I'd program at work, and then I'd come home and read books on programming, architecture, etc. When I didn't feel like that, I'd be learning a new language. When I didn't feel like doing that, I'd be writing some software to do this or that.
I want to continue to get better as much as ever, but now most of what I see, I've already seen. New things to learn come by less frequently than they did before. It's not that people in their 40's and 50's give up and just coast, it's that it's a case of diminishing returns.
Once you know a decent amount of languages, you see the commonalities and the point of it begins to fade, and how many books can you read on OOP or functional programming? Good coding style? Project management? When you're at the phase when every sentence in the book is a worthwhile lesson it's easy to learn fast. When lessons come through slow experience, like lessons from maintaining a project for 15 years, things go more slowly.
I'm well into my 30s as well and I am currently learning faster than ever. At some point I went from believing that I knew everything about programming to realizing that I actually know almost nothing. That's when the real learning process begins.
I would like to work at Google or such. Not because of the free soda but because I feel managers in those companies are very smart and technically oriented.
Not everyone can work at Google or Fog Creek, and outside of the protected bubbles of the major tech centers, software work tends to be a tedious grind.
My experience is that it doesn't matter where you work; 90% of programming isn't on the "cool" parts, the parts that other people see. It's on the bread and butter, the nuts and bolts. Working on a trading system at a bank probably isn't so different from working on AdSense at Google, or on a telco switch at Ericcson or WoW at Blizzard.
Joel is right. Software is a great industry and programmers, as a fundamental part of that industry, enjoy great benefits as a result. Professional, clean, safe work environment, good salaries, benefits, smart peers, growth opportunities.
But it's everyone responsibility, including programmers, to take ownership of their career. They need to work on their craft, grow in their roles, learn other parts of the business, and take responsibilities that are aligned with their long-term goals. My gut feeling is that the people who feel stuck in "sucky jobs" are treating their jobs as just that -- jobs, rather than opportunities to grow, learn, and eventually be better than their boss is. The latter requires significantly more time, of course, far beyond the average 9-5'ers habits.
Have you ever had a job outside of software development? Most office workers are in the same boat that we are. A great deal of the population is worse off. As a software developer you have ample opportunity to better yourself and improve your situation.
In some ways your comparison proves his point. As a developer with a degree and over 15 years of varied and international experience, I'd rather be regarded as a professional than just another office worker. Most of my friends are in professions where their experience is both respected and rewarded with steadily improving pay and conditions. Taking just 3 examples - how many skilled civil engineers, optometrists and hydrogeologists have to deal with new graduates or having their work outsourced to India?
The low barriers to entry in IT are both a blessing and a curse. It's great in your 20s, but by your 30s the gap with most other technical professions that require similar levels of intelligence and skill becomes obvious. That decade of experience doesn't count for as much as a lot of it is now outdated and irrelevant. For those of us who love the technical, creative side of developing and don't desire moving "up" into management, I can understand the sentiment.
Suck? Maybe they suck, but working as a programmer is better than not working. Believe me, I'm being laid off at a mortage company (that was once a thriving internet startup -- don't ask), and watching these loan people deal with the fact that they may not work for years is harsh.
Tedious grind? You can create your own opportunities, but in software you're more likely to find a job in rough times than most other industries. Don't spit that fortune in the eye.
Not to mention software is one of the rare industries where, if you're not happy taking orders from the MBA PHB, you can leave and start your own thing. No other industry requires less capital to start your own business. The amount you can accomplish with spare time and your personal laptop is insane compared to the kind of capital other industries demand for their startups.
Anything where the business owner can create intangible products himself/herself (e.g. writing, design, wedding planning, whatever) has just as low starting capital required.
The argument "X is better than being unemployed" can be made for many values of X. It isn't spitting on fortune to suggest that some values of X are more desirable than others, and should be pursued strategically over the course of a career.
Was it really necessary to treat this as a binary choice? This comment and the one above it seem latent with severe blowhard sentiment, where one declares that x sucks, and the other declares things other than x that suck more. It takes some of the wind out of the argument they are trying to make, which maybe are worth exploring further.
Is there age discrimination in programming? Probably, although I've had at least one manager assert to me, with some plausible evidence, that reverse age discrimination also exists.
But, unfortunately, that conversation gets drowned out in cynicism and hyperbole, and oneupsmanship by additional cynicism. It is tiring, because all it succeeds in doing is creating additional angst and frustration.
In the people who believe what is being said, they now believe they are now facing down a life consisting of death marches and idiocy, with the other option being indefinite unemployment. It creates a self-fulfilling prophecy, where they will engender that kind of attitude in the places they work and live; with some regularity, what they expect a place to be like is what it will become.
For the people who try to fight against that sentiment but find their thoughts, however reasonable, drowned out in the sea of people who claim that they lack sufficient context simply because they lack the requisite cynicism, they'll eventually give up and either succumb to the prophecy or just leave the community to its own misery.
To this I ask, do we really need more cynicism, and is it really deserved? Are we certain this hasn't gone past discussing things reasonably, into the realm where people attempt to out-gloom one another in hopes that it justifies them tolerating their own plight? When do we stop admitting the inevitability of this and start taking action to change that, or at least investigating deeper what action can be taken? How are we so certain that all of these crappy programming jobs that we look at with disdain aren't the product of the cynicism of people, perhaps like us, who currently work in them and make them and the rest of the culture that way? It is, to me, increasingly hard to tell where things honestly suck, and where people make them suck for the sake of producing drama and fulfilling their own expectations of misery.
I agree with Joel; this is the textbook definition (if there were a textbook) of a mutual self-confirmation club, and I worry that it exists even here on HN.
If you're worried about your job being endangered by entry level graduates(1) or outsourcing you should then equip yourself with skills that an entry level graduate or an outsourcing shop won't have. That means you should strive to do something beyond just byte shuffling: as someone else pointed out in another story, acquire some background knowledge - be it in physics or electrical engineering, physics, mathematics or even psychology or philosophy.
Or acquire deep domain specific expertise: in security, in distributed systems or in networks, in data mining/ extraction or even in systems administration (you'd be surprised how hard it is to find excellent coders who are also good sysadmins and/or excellent sysadmins who are also good coders and how many jobs demand both).
My mother is in her sixties, isn't a native English speaker and programs in C (which some may look upon as "outdated" compared to C++ and Java), Scheme and OCaml (which aren't mainstream languages). However, she's got a very strong background in mathematics and domain specific knowledge in hardware design automation.
If you're starting out, learning the latest APIs/buzzword right now may be worse for your career later even if it brings higher pay now -- it would be a case of premature optimization.
(1) One exception is that I've heard (from a manager at IBM) is big companies (e.g. IBM) prefer to only hire for entry-level positions and then open up the more senior positions only to internal hires (the idea being is that entry-level employees grow while being trained on internal tools/methodologies/best practices and as they advance, have a track record that can easily be examined); but with the industry shifting more and more to innovation occurring in start-ups and SMEs that shouldn't be much of a burden.
Although I mostly agree with Joel, there's no pride in going down with a sinking ship (if applicable).
If you're in the american auto industry or newspaper industry get out as soon as you can. Or start a business that capitalizes on their failures; it's how Toyota has thrived.
I'm starting to wonder if, in this day and age, there really is such a thing as a "career job." The system which predominated in the 50's of spending your entire career working for a big corporation and then living off of a retirement pension seems to be faltering. The auto industry is just one example...
To me, programming offers a challenging, generally fun activity with more potential for innovation than nearly any other "job." I didn't get into software to be the modern day equivalent of an assembly line worker. Though I can sympathize to some extent with the position of the "rank and file" engineers (i.e. that many software engineering jobs are a means of putting food on the table), I'm also optimistic that the opportunity to build great things finds those who have a desire to do so.
'I'm starting to wonder if, in this day and age, there really is such a thing as a "career job."'
Stop wondering. There is not.
In fact, arguably, there almost never was. I live in Michigan, and a lot of "career" people are currently staring down losing their retirement in the last 5 years of their expected productive life, or losing their pension after retirement, or similar things. Some "career", some "guarantee". Even many of those "careers" may turn out not to have been, post facto. (Yikes!)
In my opinion, anyone under 40 (conservatively) should be planning on there being no pension for them and no social security.
Good luck with that last bit. Remember that the closer you get to it, the greater the concentration of scumbags (check my profile if you don't believe me).
My kid brother went to work for the phone company straight out of high school('68), back when it was the phone company. He hasn't changed employers since, although he's changed divisions, and his employer has changed names a few times ;-) Of course, he started out as a lineman/installer, and he's now a senior consultant racking up 100K international frequent flyer miles per year.
Anyone who works any kind of assembly line job can't just leave for a few minutes without causing problems. Bio breaks are usually taken at scheduled breaks.
I worked a couple entry-level (i.e., menial minimum wage shit) jobs and I never had to ask permission (even when I was a cashier during lunch hour at a popular local fast food restaurant) so I have no idea where that came from.
> I think these days 'gay' is just used to mean 'lame'.
and that doesn't seem wrong?
'lame' is at worst light namecalling (and at best it is just funny jabbing; verbal teasing is a fine part of socializing).
on the other hand, if gays are always confronted with the lame stereotype it isn't exactly welcoming. it's easy to imagine group-think moving from self-aware funny stereotyping to habitual discrimination.
ditto for 'girls are whinier'. it's a funny comment, which I personally up-voted. ultimately, the whole context of joel's quote was comedic and not directed at a person.
writing this response has made me a little more thoughtful than goofy, so bear with this idea in the case of dealing directly with other people (eit):
trivializing someone else's concerns is kind of antisocial. most disagreements between people, from nerd flame wars to crimes against humanity, at heart stem from an inability to see someone else's perspective. do you really want to be that person?
the internet spreads information, but does it really help us connect with varied individuals and walk in other people's shoes? the least we can do is try.
"'lame' is at worst light namecalling (and at best it is just funny jabbing; verbal teasing is a fine part of socializing)."
So... the handicapped are fair game, but certain other groups shouldn't ever be used as pejoratives? :) Lots of words we use to show disapproval used to be merely descriptive, but became slurs, like "moron"; that might be a reason not to use them, for you, but at least be consistent.
I feel the same but then I'm an educated, middle-class, straight, white male. It's always easy to disregard discrimination when one is part of the group currently having most of the money/power/prestige.
I'm a glasses wearing skinny geek with a big head, who is rubbish at sport. I'd say that's not the position of power in school anyway, and not really in society as a whole.
maybe you see no reason to be angered or annoyed when someone calls you names, but handling words maturely does not mean that you haven't been insulted.
let's suppose there is an objective truth out there. some people are lame and some people are not. calling someone "lame" who is not lame is wrong as in false. stereotypes allow for such falsehoods.
the world is also more complicated than this simple logic. beyond (mythical) objective truth are the social interactions and even economic, political and medical disparities that are wrong and result from seeing only one's own perspective and whatever culture/habits/stereotypes we end up believing.
in the case of "whining like emo girls" the goal was likely entertainment. was that worth the small but nonetheless derogatory slight against emo girls* ? we call our own shots.
the rest of the article is somewhat angsty and desperate itself. joel tends towards entertainment and one-sidedness rather than well spoken and well thought out ideas. that's fine. i'm standing by my argument out of some larger principle.
* funny, but "girls" probably means "non-macho guys".
[edit: fixed formatting so footnote didn't italicize everything]
>> "some people are lame and some people are not. calling someone "lame" who is not lame is wrong as in false. stereotypes allow for such falsehoods."
It's false,..... which makes it funny....
Next you'll be analyzing why drag queens are funny :/
I don't believe that derogatory words exist, no. I get offended by actions, not words. It's also in the context. If someone calls me a "crazy brain dead retard" that's fine if I already know them, but if it's a stranger, I'd think them rude. I wouldn't be offended though... just surprised.
I guess the same could be said of "Emo," but programming has more of a history of (blithely) excluding females. I'm happy to see I'm not the only one who did a double take.
These "speech macros" are an interesting phenomenon.
How many people who have no problem with homosexuality still use "gay" as a derogatory term: "Oh man, that's so gay."
If they were raised in the US or Canada in the last 30 years, it's just probably something they heard in the school-yard and now don't examine at all.
I've said such things, and the subsequent introspection has given me a new insight into those old fogies who say things like "Nigger brown", without meaning to be racist.
They were socialized in a racist culture, and although their individual views may be different, they can't fully shake the legacy.
They were socialized in a racist culture, and although their individual views may be different, they can't fully shake the legacy.
---------------------
So true, mod that one up.
If you ever travel in the Balkans and parts of Central Europe you will be amazed how cruel the language still is to gypsies. "Lying gypsy", "stupid gypsy", "lazy gypsy", "dirty/shaggy like a gypsy"; also gypsy women are stereotyped as highway whores. In these parts of the world PC doesn't exist. There are adverts on television and billboards which make fun of the way gypsies speak. The PC straw man argument exists, but not actual political correctness. This kind of language is so mainstream you look weird when you speak against it.
Most people who use the awful racist language aren't really racist. They don't know what eugenics is, they don't have any ideologies that systematize or justify gypsy-bashing: there aren't any "Protocols..", or the "International Gypsy" books. There aren't any lynchings. They might be nice to gypsies and treat them as equals. To most people the anger those gypsies from the stereotypes are just a generalization and it is widely acknowledged that "there are good gypsies".
People actually think they are tolerant: they sometimes begin their sentences with "I am not a racist, but.." before they bash gypsies. In the old commie days people were taught that America was the place where they beat the black people.
There isn't any official discrimination in the countries gypsies live, but there is no PC. The unofficial discrimination still takes its toll. Most gypsies are poor, ill-educated, have short life-spans and trouble with the law. There isn't anything that provides deterrence against discrimination, which manifests itself in "common-sense": you aren't racist, but you don't want to take risks. When faced with such "common-sense" and prejudice you lose enthusiasm for trying. It happens in usually in high-school. And of course there are those bad-apples - the "nationalists" and the neo-nazis. Most people disapprove of them, but the extremists are not a problem when you have the rule of law.
Its the racist culture.
So please be careful with the language. Its does matter how much you mean it, but any amount of prejudice does harm.
Yes, you're right. It's high time someone blew the whistle on all the silly prattle about revamping our language to suit the purposes of certain political fanatics.
The word gay is an interesting example mainly because it originally meant happy or carefree then also meant homosexual and now also means stupid/dumb (for some people).
That's overly simplistic. It overlooks two relevant facts.
1) I use your words to judge what you think, or how you might act. I can reasonably expect people who use certain words in grossly inappropriate circumstances (context is important) to be a threat to me or my aims.
2) For people with a living memory of oppression or injustice, words associated with those events are not simply neutral -- they're highly charged. It's not that the words "nigger" or "faggot" are somehow offensive in their glyphs. It's that there are people who are alive who have been humiliated or injured while having to listen to these words.
Now, none of this should be viewed as a defense of people who freak out at the slightest mention of an objectionable word, or people who want to ban any possibly offensive speech.
It's true that choosing not to be offended is easier to control than forcing everyone else not to offend you, but this "they're just words" argument is hollow.
Words are the result of intentional speech or writing actions. On hearing or reading words that we attribute to a conscious speaker or writer, we're naturally interested in their intentions, and possible future actions.
You make some interesting points, but the biggest casualty in "being offended" is comedy.
In this case it was being used in a comedic tone, as is most often the case. Some people just see the word, and not the context/back story, and assume it's offensive.
If the joke is just being rude for the sake of shocking the audience, then yes, that's cheap humor. What about satire though. There's some classic comedy that was 'offensive' to people who had no idea what the joke was.
For instance the Brasseye pedophilia special is some of the funniest, cleverest TV ever.
That fact the OP wrote such a post/question suggests to me that maybe he should leave the industry, since he's obviously not very passionate about programming.
Times are tough now for everyone, software engineers are not immune.
In engineering there isn't any discipline that can guarantee a steady cool job for the next 40 years. An engineer needs to adopt all the time, that's part of the game.
And I'm sitting here, re-reading this to tell me why I'm not walking out the door of my office right now. Yes, I have a kickass salary. Big frakking whoop. Instead of working, I am required to complete some BS corporate "education package" about "upcoming products from marketing" or whatever. Its always like this. We have a retarded parent company(Monster) that keeps making us do this retarded bullshit. They have 4 files we're supposed to read and complete for our internal reviews which download as an unknown octet stream without even a file extension to tell us what to do with them. We have a horrible "time tracking" system we're supposed to use, and the biggest thing is the system automatically changes our passwords every 3 - 12 days at random. We can't even reset them via the web, we have to call the internal helpdesk.
Then in the company I'm actually working in, I'm surrounded by smart people but they just seem to consistently make bad technology choices. I'm really getting to the point where I'd rather dig ditches for $5/hour. At least #1) my tools always work(its hard to foul up a shovel), #2) I get fresh air and physical exercise, #3) and at the end of the day I can feel proud of doing something useful with my time, like digging a big hole. At least I can bury myself in that someday.
The post Joel answered posed a good question even if Joel is tired of hearing it. He does ask:
"What is a good industry to get into where your programming skills would put you at an advantage?"
How about IT work (maybe less programming), but for one of the green energy companies that will see easy access to cash over the next few years.
And Joel, I don't care if entry level jobs for you in NYC do start at $75k a year. Its still a tough job in an expensive city with an uncertain career path.
"Sturgeon's law applies - 90% of programming jobs are crap."
100% true when this is applied to my country - India. All I find everywhere is another job ad that reads "C/C++/Java developer wanted. or ASP/ASP.NET developer wanted".
I find very very very little people actually looking for Python/Ruby or other nice-language guys. Even worst, people start laughing at me when I talk about Python or Ruby. They feel I'm learning some useless language and that I'm a useless programmer. (hurts me that nobody finds me useful here).
And I agree with Joel. I too haven't met a good programmer who's being laid off or is paid low or isn't enjoying his job.
On other hand I know (bad-)programmers, including a couple of my cousins, who are trying to find a decent job since a year.
P.S: IMO 1.) bad programmer=does his job for the money.
2.) bad programmer=knows nuts except the syntax of a couple of languages.
I still haven't met a great programmer who doesn't have a job.
The fact that this would be relevant seems to assume that everybody reading (or at least the original poster) is a great programmer. What about those of us who are probably just average? Go away?
if you are not a great programmer, why not? if the reason is that you are just in it for the paycheck, it's time to take stock and figure out what it is you want to do instead. if it's because you haven't had the self-discipline to work at becoming better, that's a problem you should address.
everyone has the seeds of greatness within them. if you choose not to become great, it's your loss.
I've RTFA. I haven't read any of the comments here, because it's a very busy day for me, so pardon me if I'm repeating something that's been said 10 times already.
My thoughts: late 2008 is a shitty time to be an <X>. This is true for most X, a counterexample being "short-selling speculator". It's a really, really bad time to be a useless private equity "whiz kid", to have earned more at 24 than you ever will again. It's only a moderately bad time to be a programmer, because programmers are still useful. But everyone's hurting. Even graduate students are getting hit by shrinking funding pools and intense competition in admissions and for fellowships (and academia sucked even during the good times).
"Leaving the industry" (unless your industry is investment banking) because of the crappy economy makes no sense. Bad times occur, and they also pass, and so will these.
The one exception is - its a great time to buy. If you're lucky enough to have cash or a high-paying and/or secure job, suddenly everything costs less.
Really I think the "game" so to speak is to move from being a programmer or development engineer into things like project management or solution modeling. Sure, the point is valid that hiring is "biased" towards kids in their early twenties who are really good programmers. But the idea I would think is to progress up the ladder so that when one is in mid-career, one is not doing the day-to-day programming so much as more management type of tasks. Myself, right now I do test automation, and so spend my days mostly writing test suites using the silktest language and the like. But I don't plan to be still doing that years from now. Hopefully I can sort of move up the ladder a bit into being like a test lead or something. So instead of leaving the industry, I recommend people look to see about ways of climbing the proverbial ladder.
Either this is a troll (which I doubt) or you are seriously talking to the wrong crowd. Writing software is a profound discipline that is infinitely more creative and challenging than the "up-ladder" jobs you aspire to. That these shallower disciplines happen to enjoy higher status and compensation is purely an historical accident that will be washed away as the market gradually becomes efficient. This in fact is already happening, not because the deadweight are changing their minds or learning, but because creative people are increasingly realizing the value they can create on their own, without any of the "project management or solution modeling" that you think the "kids" should grow into.
Good management is a very, very difficult skill. I've tried managing small teams (4-6 people, usually non-technical or semi-technical volunteers) and I basically sucked at it. It's much, much harder than programming.
Of course, any manager who reaches for "project management or solution modeling" has basically failed already.
My feelings mirror one of the other comments in the thread: most software jobs suck. Not everyone can work at Google or Fog Creek, and outside of the protected bubbles of the major tech centers, software work tends to be a tedious grind. (Even in the protected bubbles, I know a lot of dissatisfied techies -- free soda remains charming for only so long when you're working insane hours in a cube, on death-march projects, taking all of your creative orders from the MBA with the corner office.)
The sad thing is, I think that Joel and the guy posing the question are both partly correct: the software industry does pay really well for new grads, and yet it does discriminate against older techies. Programming is a questionable long-term career choice. Instead of insulting the guy for asking a question, why not have a discussion about the problems he perceives? Software may be better than ditch digging, but that doesn't mean that programmers should be eternally complacent and unquestioning minions of code.