Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.


Fair enough. That's context that we don't get when your comments are cross-posted here.

That said, I still feel bad for the guy who posted the original comment: he wanted some advice on what to do next, and got called a little girl.


"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."


Where is it implied that he doesn't want work that he enjoys? Are stability and enjoyability mutually exclusive qualities?

In any case, it's neither lame nor depressing to want to pursue a career that will allow you to stay employed until you're old enough to retire.


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?

http://seattletimes.nwsource.com/html/businesstechnology/200...

A nice construction job?

http://paper-money.blogspot.com/2008/12/new-residential-cons...

Middle management at Circuit City?

http://money.cnn.com/2008/11/10/news/companies/circuit_city/...


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:

http://www.joelonsoftware.com/items/2006/06/16.html

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?"


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.


the scarcity

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 doubt those types continue pushing and exploring

Ageism is rampant in the IT industry. Can you blame people for migrating to "safe" jobs when they have families to support?

I've often thought, if I ever start a company, I'm going to exclusively hire 50-somethings (I'm in my 30s now).


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.


Plus, don't you pick up things more quickly in programming the longer you are in?


Some things get easier, but that particular hill is as high and as steep as you want it to be.

One thing that is true is that you need at least 10 years of full-time experience to become competent at the design and architecture of large systems.


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.


The thing that ticked me off about the guys post was that he was basically looking for a job where he could just go punch the clock until retirement.


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.


No other industry?

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.


In bad times, X is always better than being unemployed.


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: