Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How happy are you working as a programmer?
349 points by kalzium on Feb 1, 2016 | hide | past | favorite | 535 comments



Any time I catch myself complaining about my career I do my best to jolt myself out of it. That's not to say I have nothing to complain about or that aspects of my career and my job can't be improved, but my god, is there really any other profession in the world that is as lucrative, open, and challenging as programming? There are no bullshit certifications to go through, the best tools and resources are free and open, and the more technology advances the more important it becomes. In no other field can someone start a company with basically zero capital and have a realistic shot at becoming profitable. I am absolutely addicted to programming and the only real downside is that there aren't enough hours in the day to do it.


Indeed.

But what about everyone else? The longer I work in this field and the more I understand about optimization and physical processes, the worse I feel about the work I do and the work of most programmers. Not "but it's just a social app?!" people, but the people in medicine, law, education, small business, hardware, logistics, etc, all pushing business forward bit by bit, automating away the repetitive pieces and making it easier for those in monetarily advantageous positions to capture the flag.

It's hard for me to be too happy when I see ubiquitous animal suffering in a system I'm helping to persist, seemingly towards the end of life on earth altogether. Why do I do it? I need money, and I'm only so strong for now. How can I cooperate when the biggest and greatest are of a world of defectors? Selfishness wins? It's all too easy to conclude, "I can't make a difference, not really", and the probability of making a difference drops to 0, prophesy fulfilled. After all, rent is due, student loan is due.

Count me in as someone who, given the support of basic income, can and will live frugally and give my working self 100% towards ethical objectives, as I understand them. In the meantime, this whole "but we have it so great compared to everyone else!!" just makes me feel even worse, over-burdened. If I can't make a difference with all these advantages, without seemingly herculean efforts, then who?


"Count me in as someone who, given the support of basic income, can and will live frugally and give my working self 100% towards ethical objectives, as I understand them."

Amen, brother/sister, amen. Exactly how I feel. Also I see you are empathetic towards animals. I have adopted animal welfare and animal rights as my single biggest ethical objective. After working for about 20 years on writing software for domains like transportation, telecommunications, social media, I have decided enough is enough and am going to work towards doing some work (mostly software-related) in the animal welfare area this year and increase it every year. I am not saying anyone who works in the other fields are bad, since people working on different things is what makes the world work. I just feel that I should separate work that pays the bills (Wb) and work that is meaningful (Wm) to me. And the goal is to minimize Wb and maximize Wm in the 24 hrs available. With basic income, Wb would be zero, so that would be ideal.


Just a side question on the issue of animal welfare, but how do you handle the paradox of the spider and the butterfly? I'm not sure it has an official name, so a simple description is that some animals kill other animals to keep themselves alive (such as a spider hunting a butterfly), so how do you provide for the welfare of both?


Good question. I am not opposed to the killing of animals, just the torture involved in the killing. If you see videos of how animals are farmed in slaughterhouses and warehouses, you wonder how humans have degenerated into something so vile that they dont even consider the pain and conditions these sentient beings go through.


I'm fairly certain spiders are not concerned about the suffering of the butterflies they consume..


Are you seriously comparing animals killing and eating other animals for food with what we do to animals and birds in slaughterhouses? Have you watched videos of slaughterhouses? Have you seen how fur is plucked off rabbits for angora, and feathers off birds for down jackets? In almost all cases, the skin also comes off and they are not even killed after the act but mercilessly left to die on their own. Almost everyone, even if they choose to ignore it, acknowledges the cruelty in the meat and farming industry.


Which shows the same amount of concern that animals give each other when they kill/eat/toy with them.

Maybe humans should do better because we can, but if I am going to go about stopping other humans from committing horrible treatment, why should I then 'make peace' with how other animals behave? But to make this problem worse, look at how some animals mate. If you were to only allow peaceful instances, the species would be extinct in three generations. But maybe that is the good thing to do, because the duty is to the individual and not the species. Perhaps the humane thing to do with the spider is to not kill it, but to stop reproduction so there are no more spiders killing butterflies.

Morality sure is weird.


Have you watched videos of spiders eating their prey? It's more horrific than what we do in most cases. They paralyze them, wrap them up, let them sit there to contemplate their demise, and then suck the blood out of them while they're incapacitated and conscious. Spiders are but one example of the horrific predator/prey dynamic in nature.

And to be clear, I'm just as horrified by our treatment of animals as you are but I've learned to make my peace with it. I'm just hoping that lab-grown meat becomes a viable alternative some day and we don't have to grow animals for food.


Just reiterate what you just said and see how it sounds. If everybody looked at atrocities and tries to "make their peace" with them, you can imagine how the world will turn out. I feel at this point you are just trying to defend your previous points, some of which are on very shaky ground.


>If everybody looked at atrocities and tries to "make their peace" with them, you can imagine how the world will turn out.

Which brings us back to the issue of the spider and the butterfly. Do you just make your peace that the butterfly will be tortured to death, or do you intervene, thus indirectly causing the spider to die a torturous death of starvation?


You intervene. Aware creatures eating each other is just a hack the universe needed (apparently) to get energy flowing into more and more complex, intelligent organisms. We can and will, given time and non-self-destruction, figure out a way to get all our energy from non-living sources (given some definition of the word living). With that kind of power, perhaps we could end warfare in general in our sphere of influence.

Although it is undeniable that there is a vast beauty to the living systems on Earth, that doesn't mean there couldn't be something more beautiful and alive... without so much... digestion.


The point is we can have everything we currently have without resorting to that torture (killing of cows and pigs in slaughterhouses, de-beaking of chickens). Thats what I am trying to eliminate or abate. Animals preying on other animals is natural, and also something they cannot avoid.


I figure these chickens wouldn't be alive if it weren't for us, and if asked, would they choose not to have ever existed in favor of existing and meeting a horrific demise?

Another thing to consider - if we genetically engineered chickens that couldn't feel pain, would it be unethical to debeak them?


Let me get this straight. Are you saying that animal cruelty is a non-issue? Or that its just a matter of perspective? Animal farming to me is reason enough for people to take up animal welfare as a cause. I could also add myriad other examples - trophy hunting, dog fighting, pulling out tusks out of elephants while they are alive.


No, I'm just giving you my justifications for ignoring the issue.


At no point did I want or expect that. I dont expect my causes to be taken up by anybody else. I can also give justifications for ignoring issues that are important to you or anybody else. Doesn't really serve any purpose.


Spiders don't have the luxury to be.


Spiders lack moral agency.


They do (lack moral agency), but you and I don't (at least we think we don't, but that is a different issue to save for elsewhere). So, while the spider may not be morally wrong for torturing its prey, I am morally wrong for allowing the spider to torture its prey when I am in a position to stop the spider.


In the case of humans this is obviously just not an issue, though, since we're perfectly capable of existing healthily without killing/eating meat/etc (in fact, it's way more efficient). For other animals, I don't know that we have an obligation to provide welfare for eg spiders and butterflies beyond our own habits, but it's an interesting question.


Have you already done or have leads on what kind of work specifically you can do in the animal welfare area?


Yes, I have a general idea. I will be polishing and refining it in the 2nd quarter of this year. As of now, it will mostly be a website that provides info about how to inculcate a cruelty-free lifestyle (hopefully without being too preachy). I want it to gather a much larger scope (maybe games or mobile apps to help people understand) but as of now I want to start somewhere, and that will be a simple static website.


Let me know when its up, and what you end up doing to further the cause. Would love to help if possible.

Speaking of which, one simple way to enact change in your own life is to minimize the use of animal products in daily actions - i.e. going vegan. You may have already done this, but the impact of an individual's decision to abstain from consuming any animal products has a huge effect.


Thanks for the offer. I am excited about this, and would love any help, even if its just in the form of feedback. And yes, I am vegan. I wouldn't dream of taking something up as a cause, if I wasnt already doing something in my life that helps it :)


Awesome. After many years of cognitive dissonance, I finally made the leap to veganism. It has been a challenge, but I am a firm believer that change starts within, and I should reflect that through my actions.


From a fellow vegan/vegetarian, big hug ! I don't get emotional much, but animals always make me tear up - just seeing them joyfully playing or giving companionship to a human. Sometimes it all seems hopeless, but enough of that thinking. We have work to do :)


I think I can add two items to the discussion.

1. People have been automating away other people's jobs for millennia. Even though this has been happening, poverty is at an all time low.

2. It's not your responsibility to make a herculean difference.

I can see that the fewer people (the knowledge of this that you're exposed to) there are that try to make a difference the larger your contribution needs to be to even out all the slackers. At least that's how we feel.

If we all (those who care) felt this way we'd all get stuck and not do anything.

The correct reaction (and only plausible) is to "do your part" as if you were one in 7 billion.

The reason why the richest of the rich (think Gates) have campaigns that are public is because they know, even with their wealth, that they cannot make a very large difference with a lot of people changing their habits be that giving or lifestyle.


> But what about everyone else? The longer I work in this field and the more I understand about optimization and physical processes, the worse I feel about the work I do and the work of most programmers. Not "but it's just a social app?!" people, but the people in medicine, law, education, small business, hardware, logistics, etc, all pushing business forward bit by bit, automating away the repetitive pieces and making it easier for those in monetarily advantageous positions to capture the flag.

That's a rather depressing way to look at it. As an engineer, nothing bothers me more than being forced to do a task that can be automated. It's dehumanizing in the same way that working an assembly line or picking fruit in a field is. It's called work for a reason - it's not fun, but it's gotta get done. Every time we automate a dehumanizing aspect of a job, the world collectively benefits.

> It's hard for me to be too happy when I see ubiquitous animal suffering in a system I'm helping to persist, seemingly towards the end of life on earth altogether. Why do I do it? I need money, and I'm only so strong for now. How can I cooperate when the biggest and greatest are of a world of defectors? Selfishness wins? It's all too easy to conclude, "I can't make a difference, not really", and the probability of making a difference drops to 0, prophesy fulfilled. After all, rent is due, student loan is due.

What are you doing to change things?

> Count me in as someone who, given the support of basic income, can and will live frugally and give my working self 100% towards ethical objectives, as I understand them. In the meantime, this whole "but we have it so great compared to everyone else!!" just makes me feel even worse, over-burdened. If I can't make a difference with all these advantages, without seemingly herculean efforts, then who?

Do you really need a basic income implementation for this to work? Can't you simply downsize your expenses to x/10 what they are now, work x/10 as much to pay for them, and do whatever you want for the other (10-x)/10 worth of time?

Or better yet, can't you start a non-profit that actually works on the issues you feel need fixing so you can earn an income while you do work 100% towards ethical objectives?

I don't mean to be rude, but it sounds like you have more excuses than answers.


"Do you really need a basic income implementation for this to work? Can't you simply downsize your expenses to x/10 what they are now, work x/10 as much to pay for them, and do whatever you want for the other (10-x)/10 worth of time?"

I am genuinely curious to know as to how this equation can be practically implemented. To be really effective in your non-work time, x would have to be at most 5 or less. There are multiple problems with this: 1. Reducing expenses to half is pretty tough given the biggest expense is rent/mortgage. 2. Reducing work to half is harder since there are not very many companies that are okay with 20 hrs or less a week. This also means you wont get health insurance.

I guess it can be done by moving to a different country with cheaper expenses, job hunting for a while till you find a company that meets your needs, etc, etc. But as a single person or a family in the US, this just doesnt make sense.


> To be really effective in your non-work time, x would have to be at most 5 or less

That doesn't sound very effective to me

> Reducing expenses to half is pretty tough given the biggest expense is rent/mortgage.

This is simply a matter of finding a location to live where rent is not a big expense. All you need is an internet connection. You don't have to live in the Bay Area to create software and there are plenty of cheap places to live, both in the U.S. and in other countries.

> Reducing work to half is harder since there are not very many companies that are okay with 20 hrs or less a week. This also means you wont get health insurance.

I take it you don't have a lot of experience freelancing, but it's very easy to find as much or little work as you're willing to do - I did it for years. I also find that the best health insurance policy is to take care of yourself. Beyond that, just get the highest deductible plan you possibly can and minimize your health risks (thankfully programming is not very hazardous).

> But as a single person or a family in the US, this just doesnt make sense.

If it doesn't make sense for a single person in the U.S. then who does it make sense for? Ask yourself who you're trying to convince, me, or yourself? Ever notice how much easier it is to come up with reasons why something is impossible than it is to actually try it for yourself?


I feel like you're missing the point here.

You've made it pretty clear that it's possible, if you're willing to jump through a bunch of hoops and are a programmer, to begin to have the privilege of an altruistic lifestyle. That is, the kind that will help thousands if not millions of persons to get higher quality of life.

'just move somewhere with low cost of living' - what about family and friends? non-profits are hiring in the middle of nowhere, I guess? what about most housing requiring a year-long contract? what about rural internet connectivity being a complete joke, and most cellular plans are by the GB?

'just take care of yourself and get a low deductible health insurance plan' - what about if you aren't healthy? what about if you have dependents? Where's the good care now that you're living away from cities? You're suggesting we move away from the best that humanity and technology has to offer?

'just cut down your expenses by 10x!' - ...you're joking, right? It's going to be really hard to live on $200/mo in any american city. Cost of living is going up everywhere, unless you're suggesting moving somewhere that's not growing. And wages have been stagnating for decades. See this post by Michael Church - https://www.quora.com/Why-do-software-engineers-make-so-much Only so much can be cut.

'just freelance! I did it, so can you' - times are changing, and that lifestyle simply isn't compatible with your average student coming out of our education systems. Also, freelancing suffers from being a chicken and egg kind of problem.

"If it doesn't make sense for a single person in the U.S. then who does it make sense for?"

Exactly. Hardly anyone. Our society is structured in such a way that it's very hard to be altruistic, compared to being selfish and seeking greater and greater pay through whatever job.

Have a social app idea? Here's $mil!! Uber for Z? $mil!! Oh it didn't work out? Ok, what else, what else...

Have a altruistic app idea that will improve the quality of life in a way that's hard to measure? Er haven't you heard? Not even schools can get funding. Teacher pay is frozen indefinitely.

Why does it take someone to be independently wealthy first, or live a lifestyle very much unlike the rest of the population, to be an effective altruistic in our society?


I have answers to all your points, but I can't help but think you'd just come up with ways to debunk all of them. All I can say is that I wholeheartedly suggest you take a step back and ask yourself why you see roadblocks everywhere instead of opportunities. Skepticism and even a little cynicism is understandable, and I indulge in it every once and a while too. But it seems to me like you're going out of your way to convince me (or more likely, yourself) that it's impossible to change your situation or make an impact in this world, and that's something you should really examine. I say this without a hint of derision or condescension.


Okay, let's take a step back. I mostly agree with you and I'm not at all offended; there are answers and the way is open. I can go against the flow of money and work for other reasons, especially if I'm a talented, determined programmer. In fact, I have made huge strides towards being able to dedicate myself fully to work I think is important. Made an impact? No, not in any direct way, not yet, but I am trying and moving step by step towards that ability and execution. Through autodidactism, frugal lifestyle, a productive career in software, and planning.

What about everyone else? The question was, 'how happy are you working as a programmer?", and I answered, "not particularly, because I'm in a favorable position to see how hard it is for everyone else, and how much harder it seems it's going to get as automation continues to consume existing business processes".

Can you really say with a straight face that more than a very lucky small minority of the 7.3+ billion people can realistically pursue a lifestyle of altruism? Many of them can't even work for money, but can only think on how to survive to the next day, the next week. You don't even have to go to a third world country to find it. How happy are those people, and what is your advice for them?


> Can you really say with a straight face that more than a very lucky small minority of the 7.3+ billion people can realistically pursue a lifestyle of altruism?

Honestly, I think the best thing we can do is to continue to try to innovate and automate. Global poverty has been dropping consistently for decades and that rate doesn't appear to be changing. I credit this to globalization, advances in technology, and relative peace throughout the globe because of strategic alliances and military stalemates.

The best thing we can do as engineers is continue to add real value to the world by automating as much as we can. Robots work for free, and despite what people love to parrot, efficiencies are enjoyed by everyone, not just the 1%.

In other words, simply contributing value to society through your work is altruistic. As opposed to those who don't work at all and contribute nothing, for whom I have very little sympathy or patience.


>I also find that the best health insurance policy is to take care of yourself

>minimize your health risks (thankfully programming is not very hazardous

health risks from being seated and sedentary all day are quite extreme.

Unless you meant they should join a gym and increase their expenses, thus increasing the amount of work they need to do to pay their bills.

So we've got:

health insurance,

car insurance,

gym membership,

housing/rent,

food,

gas,

internet connection,

electricity,

any current debt (student loans, car loans, mortgage, personal loans, etc),

any savings contributions for retirement.

So yeah, just cut all those expenses by 10x, have a job that allows you to work less than 20 hours/ week from anywhere, and have a altruistic goal that can also be met remotely without interacting with anyone ever.

Oh and also, be a programmer - remember that an altruistic life is reserved for very specific niches of society, altruism should never be the goal of the huddled masses.


> Unless you meant they should join a gym and increase their expenses, thus increasing the amount of work they need to do to pay their bills.

On what planet is a gym membership required to maintain a healthy lifestyle? How's this for an option: instead of owning/maintaining a car and paying for car insurance, ride a bike to work. Now you've killed two birds with one stone.

> internet connection

How about instead of paying for an internet connection you go to a library or hang out at a coffeeshop when you need to use it. Or go in with a neighbor to get it cheaper.

> any current debt (student loans, car loans, mortgage, personal loans, etc)

Sell the car, sell the house, and as far as the student loans go, consolidate them and pay the minimum for as long as you need to.

> So yeah, just cut all those expenses by 10x, have a job that allows you to work less than 20 hours/ week from anywhere, and have a altruistic goal that can also be met remotely without interacting with anyone ever.

Most people's expenses can be cut by about that much if they just give up the luxury of owning and operating a car and move to a region/neighborhood that has much cheaper rent (or take roommates gasp!). I have to image if your very survival depended on a 10x decrease in your expenses you'd be clever enough to make it happen.

> Oh and also, be a programmer - remember that an altruistic life is reserved for very specific niches of society, altruism should never be the goal of the huddled masses.

I don't remember me or anyone else ever saying that in this thread.


> ride a bike to work.

LOL, in a rural location that you suggested to lower rent? Work is likely to be at least a 20 minute commute by car, more than 15 miles each way for sure. ( the US average commute time is 25.4 minutes) Also, biking to and from work would reduce the time you are able to spend on your altruism even further.

>How about instead of paying for an internet connection you go to a library or hang out at a coffeeshop when you need to use it. Or go in with a neighbor to get it cheaper.

Because no one is going to hire a remote freelancer without an internet connection? are you even serious? this is laughable.

>sell the house

right cutting your expenses is much easier when youre not paying rent, youre right just be homeless! then you can help all the animals you want!

>as far as the student loans go, consolidate them and pay the minimum for as long as you need to.

right, still left with a student loan payment at the end of that, so this doesnt offer any solutions at all.

> luxury of owning and operating a car and move to a region/neighborhood that has much cheaper rent (or take roommates gasp!)

So where do you have in mind? you must have something really specific in mind because i cant think of a single area with very low cost of living and very high bikeable/walkable streets - please enlighten us as to the perfect place to live.

>I don't remember me or anyone else ever saying that in this thread.

right, but youre giving advice that says "you dont need basic income to be altruistic, you can just work remotely and live somewhere cheap, then work less and use your free time to be altruistic"

Wherein the 'working remotely' applies only to a very niche set of jobs (which all universally require an internet connection and specific set of skills)

Sorry man, your hypothetical solution is plainly not realistic.

In order to help save the lives of animals thats what this person should do?

They should:

Move to a low cost of living area

Work at most half as much as you do now (and have a job that is somehow OK with that)

sell your car

sell your house

consolidate all loans

get a remote freelance job

get rid of your internet connection and only use the library

cut all your costs by 10x

bike to work

oh right, also:

dont have a spouse

dont have children

work in a remote-friendly industry

desire to perform remote-friendly altruistic work

dont save for retirement

dont get sick

dont get injured

but yeah man, this sounds totally doable for anyone who wants to support a cause, this sounds like the type of society anyone would want to live in; way worse than providing people with a basic income enabling the entire country to pursue their altruism


Man, you're right. It's impossible. Oh well.


I didnt say its impossible.

I said its completely unreasonable.

Do you honestly think thats reasonable? For someone to be altruistic they /should/ have to make all those decisions and sacrifices?

If you do, i'd love to hear why you think it should be impossible for a secretary, or a janitor, or an accountant to be altruistic and to work towards altruistic goals. Or for that matter someone living in New york or san francisco. Should those cities be devoid of altruism because they are more expensive?

I don't think you've earnestly considered the implications of your suggestion and that was the point of my responding at all. "helping animals is easy! just quit your job and move across the country" echos exactly the ops sentiments that it takess a herculean effort to effect any change in todays economy. You disputed that by laying out a specific herculean effort and tried to brush it off as a simple life decision.


> Do you honestly think thats reasonable?

Not only do I think it's completely reasonable, I have done it myself and know others who have done it as well. Come to Minnesota, there's plenty of work, both remote and contract, and your cost of living can be very low depending on where you live. We also have great mass transit, are the most bike friendly city in the country, have the lowest unemployment rate in the country, and the best parks system in the country as well.

> If you do, i'd love to hear why you think it should be impossible for a secretary, or a janitor, or an accountant to be altruistic and to work towards altruistic goals.

Why can't these people work toward these goals in their spare time? Why does it have to be an all-or-nothing proposition? And if it does, why can't you start a non-profit where you can pay yourself a living wage and take donations from others who don't have the time to help but have the money to help. And why not just cut your expenses today, keep your high paying job, and donate your additional money to causes you believe in?

People can be altruistic without being rich or privileged. To suggest otherwise is completely offensive and short-sided. And being rich and privileged doesn't automatically equate to someone being more effective altruists. In fact, it's often the opposite case because their experiences are too isolated and foreign to be relatable to the causes they support (see charity-as-tourism).

But what it comes down to is you not wanting it to be hard to do something. And I'm not saying it isn't hard, because it is. But most things worth doing are hard, and complaining about them doesn't do anybody any good. Instead of complaining and creating long lists on internet forums of all the reasons why something is too hard to do you go and actually test your assumptions.

I don't mean to sound harsh but I can't help but respond to such negativity with anything other than exasperation. I can't motivate you, but I hope you find somebody or something that can because it sounds like you want to make a real difference in this world.


You are right, I dont have a lot of experience freelancing. And I agree that the differential between rents in different places in the US large enough that one can decrease or increase it significantly by moving. I do however think that "the best insurance policy is to take care of yourself" is not really something you can bank on. Unexpected things happen. You have to set something up to prevent that as much as you can.

In summary, I am not as opposed to your equation after this reply from you, but I still maintain its hard to do. As a challenge, I am going to see if I can accomplish it. Thanks for the kick in the back! :)


Btw I couldnt find your email in your profile. I would love to get in touch. If you can send me a quick note, (my email is in my profile) that would be great.


Great comment, I feel the same way sometimes :(


I agree with this, except for the last line. Software Engineering is a great career in a lot of ways (interesting subject, smart people, flexible, relatively less bureaucratic, good pay etc) and sometimes I forget how damn good I have it compared to most folk. But at the same time there are lots of other things I enjoy and want to do in life beyond just software engineering.

I think as an industry we get a bit obsessed about wanting rockstar programmers who want to do nothing but make software. I enjoy my work, I'm grateful for it and I want to get better at it, but there are also lots of other things I want to do, so personally I'm not going to spend all my free time programming and I think that's ok.


> But at the same time there are lots of other things I enjoy and want to do in life beyond just software engineering.

I absolutely agree and I learned that the hard way. I guess what I meant was my regret is that it's simply not healthy to program during every waking moment, even though I often wish I could. It's a nice problem to have and certainly better than hating your profession.


> smart people

Uh, I'm not so sure about this. Programmers tend to have a bad habit of severely overestimating their own intelligence. This is one of the things I dislike about the profession: Everybody is so self-assured of their own brilliance.


Hmm personally the majority of people I've worked with are all of at least above-average intelligence and many of them are also very interesting. Met quite a few self-assured smart people at uni (I was one to an extent) but I think most of us grow out of it. Or maybe I've just been lucky where I've worked.


I can't "disagree" with your post persay, but I can say it doesn't take into account people with different prioritization. That a job is Lucrative does not make it enjoyable. Challenging, as well, can be good, but a day of constant mental challenge does leave you feeling absolutely drained, despite what some sister comments are implying. (And before the inevitable "you have a silver spoon job" comment, I started my working life as a mover for a few years to pay for school/living expenses; It's a different sort of tired for sure, but both sorts keep you from exercising various leisure activities post-factum; but again to preempt comments, yes, mental work does leave your body in better shape in the long run and as I say below, grateful for that)

At the end of the day, and perhaps this is in itself a very egocentric world view, I'd be hard pressed to find any work that if I were doing it _as work_ I'd be happy doing. I chose programming because I have a knack for it, have focused my time on it to build skills, and as you say, it's lucrative. But every second of the day (and the implied unpaid overtime that seems prevalent in our industry) there's a little thread in the back of my head going "there's so much to see/do in the world, and already so little time." I want to make music, learn to paint, visit countries I've never heard of, but as long as supporting a family, covering healthcare/retirement savings/housing costs etc are all in the picture, even with as lucrative a career as we have obtaining those ends is a long process that you will likely emit some blood and tears for.

So am I Happy as a programmer? Probably more-so than I'd be in many other fields, and certainly grateful for what I have. Am I Happy in an absolute sense? No, I wouldn't say that; and no amount of comparative logic, despite recognizing the ego-centrism, is going to help me reconcile that internally. I'll do my work best I can, not whinge too much, (pushing for a better system in the interim where appropriate for the selfish sake of my own "happiness"), but the moment I get "out" will be one of the truly happiest days of my life. (I could see myself eating those words, and I'll certainly own up to it if that's so, but I don't see that as likely from where I'm currently standing)


If I'm reading you right, "realistic shot" = 1 in 10 succeed right? I'm not saying that's right or wrong, good or bad, but just to let people know that's generally the statistic that gets thrown around for becoming profitable as some new tech startup trying to make it. I am unsure if that stat is VC-funded only or contains bootstrapped startups and VC-funded ones.

I absolutely agree with your post. This is what I feel when someone asks me "how's work". Any time someone talks to me about wanting to switch careers, I recommend tech for those very reasons -- there are few other high-earning career/profession that can compare.


I think the original poster just means that, compared to other industries, the odds of success starting a software company (especially a bootstrapped business or consulting business) is a lot higher than other industries. I'd take software odds over the odds of starting a restaurant that succeeds any day.


Yep - and with that I completely agree -- just wanted to convey that the odds aren't like... 9/10 succeed, but like you said, it's waaaaay better than starting just about any other type of business


This is so true. It's human nature to take everything for granted. I need to constantly remind myself that even though I'm not rich, my salary as a frontend developer is definitely way above average. On top of it I work for a big corp with a lot of benefits and most important of all a healthy work climate with exceptional work life balance.

To really appreciate our situation one could try to take a month off, and try to live with a limited budget after paying off all the monthly fixed costs. If you have to decide between buying a fancy gadget or food, I think it will be easier to emphasize with people who have to work hard just to provide for their families.

I'm happy working as a programmer because I don't have to do repetitive work like for example selling something. Sure, it's not always as exciting as working on a green field project because there is enough legacy code to maintain but overall I like my work.


> the only real downside is that there aren't enough hours in the day to do it

I opened this comment section just to write that line. When your hobby becomes your job, you never work a day in your life.


Assuming that you do not come to hate your hobby in the process. I know plenty of people who turned their hobby into a job and came to hate it because of all the other things they had to do for work that they avoided when it was just a hobby.

Plus, some of them were like me in that being told or required to do something, even if I would have done it anyway, instantly lowers the enjoyment of that activity a bit.


I quit.

I had a nearly 20 year career in software, excellent references and well paid. I became completely burned out and hyper-cynical at the pointlessness and shallowness of it all. I can't get excited or even much beyond passing interest in an industry that is almost completely devoted to making the problem of too much stuff far worse.

So instead of getting excited at another pointless startup or tech that's "going to disrupt x" (it usually won't, and often it isn't even a sensible idea to), or "change the world" (nope, not that either), I gave it all up to work with my hands doing something. It's nice to actually feel like I am /doing/ something I can feel proud of, and is sustainable. Moving electrons around is just so unfulfilling.

I'm utterly jaded at the constant replacement, or latest shiny framework that's going to improve little, just change lots and sell more crap. The web has become an almost unusable mess where a single page loads 30 or 40 domains of ad, crap and tracking bringing us back to dial up speeds unless you block most of it.

I still follow tech, but my personal projects are dead as even when i have the time to (I have far more of that now and I feel so much better for it), I can't bring myself to code any more.

The money was nice, but I don't even really miss that. I do regret not being able to afford aerobatics as a hobby any more though!

Many of my peers have quit tech too, and of those who remain some would like to do something, anything else, but mortgage or other commitments keeps them tied to the money.

After three years I'm happier, healthier and don't miss it in the slightest.


I'm utterly jaded at the constant replacement, or latest shiny framework that's going to improve little, just change lots and sell more crap.

I can relate to that feeling intimately.

The intellectual content of programming has definitely changed since the simpler times which were, for me, formative. There's a combinatoric explosion of proper nouns, frameworks and libraries, and doing anything seems to entail 95% of time spent pouring over 27 browser tabs of API references.

This wasn't what made me love programming when I did systems programming in C as a teenager, and it's a different skill set. I wrote things like highly asynchronous & modular MUDs, chat servers, etc. Sure, one had to consult man pages of system calls once in a while, but fundamentally, it was much more of a closed system with a straightforward standard library and few dependencies. Of course, some of that is because my tinkering wasn't subordinated to economic imperatives or Enterprise Business Rules, but I do think it was qualitatively different in a more objective way, too. Now, it's an overwhelming river of gewgaws that each have their own APIs, conventions, methodologies, life cycle, etc.

It doesn't help that a lot of these gewgaws are clearly conceived for the same reasons academic advisors conceive schools of thought and seed conferences with spam publications relating to them by their pet graduate students. Maybe I'm just old, but it seems to me a lot of fashionable frameworks and doodads are more about O'Reilly book royalties, speaking engagements, consulting projects and *Con registration fees.


Similar background here, and complete agreement with you!

Started out seriously with the Amiga and it was a delight - the OS was beautifully designed, and there were so many ideas that should have caught on. I'll name just one - datatypes.

Work started out with C and Unix, and so long as you had K&R and W Richard Stephens you were good to go. Loved the design of this too until I got to the GUI - X was not fun. Messing around with MUDs was fun, as was knocking up internal chat servers etc.

Now programming is gluing modules together with the aid of a web browser, often with little real understanding (no time for that). No need for a real grounding in the math or tech when you can just plug lego bricks together which leads to the mess that's PHP or most of the PHP code I've seen.

Design has moved on but it's as much about change for changes sake as improvement. It's now about driving the advertising click stream, or locking us in to the app world, even on our phones rather than improving productivity.

I agree that's it's about fashion and selling those certifications, exams and training - yearly (lol) microsoft certified x etc. Can't say I've come across a one of them that indicates in any way that someone is even basically skilled in the tech in question.

It's just a continuation of that complexity for complexity's sake.


I remember being 16 and forging teacher's noted to get out of study hall to go to the library. Why? Because they had a REAL computer there! A Commodore PET! With 4K of RAM and BASIC!

I came in, sat down, and thought "what do I want this machine to do that would be cool?"

And so I wrote a game. Other kids loved the game enough to fight over who could play it. That was pretty cool.

But I look at programming now? Damn, those days are gone. You don't sit down and in a day or so create something totally from scratch that people love. Instead you get a framework, or another, or half-a-dozen frameworks bolted onto a 3-year-old programming language. You head a bit down the happy path -- until you don't. Then you spend the rest of the development effort either a) giving up on what you wanted to code and instead coding what the framework makes you, or b) struggling with the framework instead of the problem.

Worst part? I don't think it's needed. You can do a ton with just plain html, some css, and a bit of simple functional-like programming. But if you try to show that to a new programmer? It's like telling them they need to carve their computer out of bear skins and tree stumps. The culture itself rejects just freaking doing stuff people want. Instead, if it ain't new, it ain't cool. And if it's got one piece of complexity? Might as well have a thousand.

I hear you guys. Sad that it's turned out this way.


> You can do a ton with just plain html, some css, and a bit of simple functional-like programming

Or, you know, you don't need a virtualenv running inside of docker running inside heroku running whatever to make your stuff run

Or setup 20 "automation chores" before you write a line of code

Yeah, things today look like 80% is nitpicking and 'best practices' (by whom?) and 20% writing some code that will fall off because of bugs in all those abstraction layers You don't need


Let's suppose I want to write a quick app to text people horoscopes. They enter their phone number and the horoscope is texted to them.

My first step now would be write a command-line function to send the texts. Once that's working, I'd knock out 5 lines of html and start showing it to people. I'm not even sure I'd wrap the freaking thing in <html> tags. For something nobody may ever use, it's simply not important.

The way the vast majority of programmers would begin this would be to set up a container. Then start installing a framework. Then buying a domain, downloading some tools, purchasing a gateway....

Programming is still programming, of course. But the way people think about programming today is total crap. You can ride the "It's cool! It's new!" horse around the merry-go-round a few times, but sooner or later it's gotta start getting old if you have any sense at all. Know what's a travesty? The number of working programmers in the world who have worked for years and have yet to actually make something that people use.


You know, you have the freedom to NOT pick a framework at all. It's not like it's mandatory. Use components and wire things your way.

Don't like legos? Reinvent the wheel then. Go nuts ;), programming is a way of expressing yourself. Like an artist feel free to do whatever you want.


I've been thinking a lot about those days, and how magazines like Creative Computing and the Commodore computer manuals provided all the necessary foundation to make engrossing 1-2 day projects. It is totally possible today, but one needs to realize those magazine articles and project tutorials need to be created that guide new developers. That is us, we're the people that need to create the engaging, he's how its done in a day tutorials that do not depend upon new fangled shiny frameworks, but rather implement the new shiny idea in the minimal form that is its essence. With WebGL, creating jaw dropping tutorials is simply a matter of time and creative effort. Many new developers are fascinated with graphics and 3D - and the browser supports it much better than BASIC was supported back in the Apple II, Commodore era. Minor plug here: I've been pursuing this idea of a browser based return to the magical creativity of those early days with my www.3d-avatar-store.com - a web app and API that creates lip syncing 3D versions of real people. The combination of technologies that enable me to make this site is a gold mine of creative technology. My major issue is finding the time to create the tutorials, now that I have most of the hard stuff done.


IME the barrier is much higher now; if a kid writes a tetris or space invaders, he would be laughed at by his peers, when in fact either of those are significant accomplishments for a beginner. Expectations are so much higher now, it really changes the dynamic.


> You don't sit down and in a day or so create something totally from scratch that people love.

Why not?

It's up to you.


By "you", in the latter paragraphs, I mean "one" As in "one doesn't just sit down"

Apologies. Of course that's what I keep doing. Really happy about it too. That just ain't the way 99% of development happens.

ADD: The point of my OP wasn't that I hate programming, it was that programming itself has changed. It used to be a direct expression of creativity and had quite tight feedback cycles. Yes, I still code that way. But for all the other coders I see? Most of the profession is stuck inside a prison of its own making.


I pretty much agree. Just thought your comment sounded a bit defeatist, which I now see you aren't.


"I gave it all up to work with my hands doing something."

Yes I did this as well. Worked for 15 years as a programmer in financial services. Really found it depressing.

Retrained as a care assistant to work in a nursing home. Find the physical work suits me better and enjoy spending time with the residents. Also did a Physics BSc part-time.

But mainly my headspace is free now when I come home from work. Still do some side programming though - starting Scheme and SICM at the moment...


>The web has become an almost unusable mess where a single page loads 30 or 40 domains of ad, crap and tracking bringing us back to dial up speeds unless you block most of it.

I choose my current job because it was a small company, that actually shipped stuff to customer. You give us money, we'll ship you something in the mail. To me that is an honest, simple and satisfying business. Now the company has grown big, we spend most of our time figuring out how to do up-selling, tracking of users, social media bullshit and tries to push useless subscriptions. We still have basic stuff like order tracking and returns that aren't working correctly. Sadly better service always lose out to "more features" for some reason. I think we could save a ton of money by fixing the basics and trimming features not used by most customer.

The level of tracking and tracked advertising we do pretty much sickens me to the extend that I want out. I just want to solve people problem, not push them to buy hairdryers and batteries.

I don't think I would want to leave the business, but sadly I'm a little to insecure in my own ability to start my own business. Right now, what I really want to do is help small non-IT business getting the services and solutions they need, without ripping them of. It just quickly because terrifying. The prospect of maybe not finding customers, or not being able to solve a issue scare me beyond belief.


I'm curious; what do you consider of something working with your hands? I came from the opposite background (former chemist, process engineer, chemical engineering) and opposed the minimal work that hardly anyone cared for. With programming, moving electrons makes it a much bigger impact with much ease.


I can sympathize with anexprogrammer and I think by working with your hands he might mean something like woodworking, metalworking, generally working "in the shop" making stuff.

I'm not unhappy being a programmer, but from time to time I immensely enjoy fixing things at home myself - I see result of my work here and now. Being a programmer I may not see finished result of my work for a long time.

I think it is quite beneficial for programmers to dabble in some hobbies that involve some handiwork - be it knitting or making playing dices out of metal.


I'm now in conservation and restoration, so a bit of all of those.

I considered restoring old vehicles, but didn't want to end up "just" a mechanic. It was working on cars that was my trigger to get out - I felt so much more satisfaction from restoring a car than I ever did from meeting a ship date. I think because it has a tangible sense of progress and completion, and there's something to point at that's more "real"


Ah, I agree, we all need to see progress and potential eventually. I was previously working in semiconductor and it would take 3-8 months to see any effect of my work. That long cycle time pushed me away. Now I am a front-end developer and love it. The feedback of aesthetics, no matter how small, reminds me that I can still have an impact. Thank you for sharing your new found love!


There's a (fair) book on this very subject: "Shop Class as Soulcraft" by Matheww Crawford. He earned a PhD in economics and after working briefly in a Washington think tank he quit and opened a shop repairing antique motorcycles. (That was the plan anyway. I think he really makes his living writing.)

I can totally relate to the need to have a life outside the virtual world. I've been programming for 30 years (data analysis in R&D mostly), and while I love the intellectual stimulation from writing code to do something new, I also crave physical contact with the world. But it's still not clear to me how best to make that work. Can I do this as part of a job, or must this happen only after hours?

I considered working in robotics, since that seemed an ideal mix of the two realms, but I'd rather not feed the military maw, which is where 95% of the work is. Maybe I should just reorg my garage to add room for a workbench and join the ranks of shadetree mechs. Lord knows I have enough machinery that need wrenching...


Conservation and restoration. Some of the things I do will hopefully outlast me. Your typical piece of software is replaced or rendered obsolete in a year or two.

Unless you do something out of the ordinary, in five or ten years time the app, game or website you built is long forgotten or replaced.


That's why I'm losing some of my excitement in programming and getting it back again in designing physical board and card games. Video game development used to excite me, but now most games are made to be consumed in an hour or two and forgotten for the next game.

Meanwhile board games last, there's value in old editions (I picked up a 40 year old copy of Diplomacy recently), and people still play games that are decades old (not all games, but enough to be worthwhile).

Also, even if I never get a single board game published (unlikely), I will still leave prototypes behind for my family to encounter. Meanwhile, my video games are on my hard drive and could disappear if they don't keep perpetuating digital copies of them.

Also you can make a video game version of the board game you made and now you can sell in two different mediums.


Hi, what did you do for a career change if it's okay to ask?


What are you doing now?


I enjoy programming but 'working as a programmer' is infuriating.

There are so many interesting product ideas yet 'me-too' CRUD app recreations of previously successful incumbents products are highly desired. This is particularly true in the startup ecosystems where kids talk about 'interesting' problems and finding 'purpose' and yet are blindly following the mantras and motivational speeches of trite capitalists.

I currently work as a freelancer/contractor in London and I am happy as I make enough money to finance my own intellectual and creative interests for months on end. I hope I'll soon meet other intellectually curious people doing the same thing, and hope we'll be able to join forces to teach ourselves things or perhaps even work on small projects together.

Of course I feel extremely lucky to be in this position which has nothing to do with wanting a slower pace and everything to do with wanting to exert my whole self. And I can't say whether it will be good for me or bad for me; I'm certainly learning a lot about myself and the practicalities of doing this.


I enjoy X, but 'working doing X' is infuriating.

I would bet that most people feel this way. Maybe we should consider alternatives to wage labor that better meet the needs of people instead of the needs of the capitalists...


Why do so many threads always have to devolve into a bizarre condemnation of capitalism? If you don't want to code for a living, then don't code for a living. Do it for fun and make money some other way. If you're upset that you have to work to survive, well, then maybe you need to have a reality check.


It's not bizarre. There is a long historical culture of criticism of capitalism. It's just been squashed in recent decades.

I am a particularly privileged individual because I have a choice of what labor I can do, and even how much to an extent. Most people don't have the choice of just switching careers because they feel like it, and even fewer have the option of even realizing that there is some sort of activity that would be more fulfilling than what they do to survive.

I believe the reality check needs to occur in the people who are too used to their own comfort that they can't even lift their blinders to look outside their own social environments and see the injustice that is happening on a massive scale in the world.


> I am a particularly privileged individual because I have a choice of what labor I can do, and even how much to an extent. Most people don't have the choice of just switching careers because they feel like it, and even fewer have the option of even realizing that there is some sort of activity that would be more fulfilling than what they do to survive.

This is poisonous thinking. Programming is one of the most accessible industries on the planet that doesn't involve physical labor. If somebody has the desire, they can learn how to program and land a job for FREE.

People seem to be squarely divided into two groups in this world: those who believe life happens to them, and those who believe that they make life happen.


> This is poisonous thinking. Programming is one of the most accessible industries on the planet that doesn't involve physical labor. If somebody has the desire, they can learn how to program and land a job for FREE.

Not when you spend 8+ hours doing a demanding but low-paying job (like most are) and then have to come home (+1-2h) to take care of the spouse/children/parents. And even without the latter obligations, there's only so much one can do after being exhausted doing the day; life is not just about working, and many (most?) people can't psychologically sustain doing only work for longer periods of time.


There are several aspects of life that are not fair. However, there are countless anecdotes of people psychologically sustaining to learn something new and improve their station in life.

I will say, I support opening opportunities to learn. Not everyone has a computer - help foster an environment that gets people access to one.

You cannot force someone to have the willpower to work on this, the _best_ you can do is offer opportunities.


No, that's not the best you can do. What we can and should be doing is questioning the systemic inequalities and structures that cause poverty and wage dependence to exist in the first place. Whatever conclusion you come to, if you don't first put in the effort to see if there actually is a reason for existence to be this way, then yes, maybe all you can do is offer opportunities to a select few.


Boy, you're right, it is hard. I guess that's good enough reason not to try.


Some people try. Some of them even succeed. It's worth to try, but let's not act surprised when the aggregate results look poorly.

Issues like this are, like it or not, best viewed globally, not locally. If you raise the bar until, say, 20% of people can't handle it anymore, then you can go and preach about willpower all day long, but it won't change the fact that every fifth person simply won't have it, and it's not really their fault.


Hey, thanks for not taking the bait there and snapping back.

This sort of neutral, put-things-back-on-topic reply is a great example for all of us. You made it look easy!


It's hard to pull yourself up by your own bootstraps if you weren't born with them (and not everyone in the world is). Acknowledging reality does nothing to dissuade people from trying their hardest, but sometimes one's hardest isn't enough.


It's a double-edged sword, IMO.

On the one hand, yes, you can get the education to become a programmer for free.

On the other hand, programming requires a semi-decent computer, which can set someone back a few hundred dollars.

And of course it's time vs money: sure, you can spend a lot of time and zero money to become a great programmer, or you can spend a bit of money and much less time to become a great programmer.

Some people can't afford that money to save the time.


'Needs of the capitalists'... You mean like plumbers, grandmothers, schoolteachers, homeowners, and software developers?


What? Have you ever participated in a criticism of capitalism before? Capitalists are by definition people who own and profit from private property (which includes things like small businesses, large businesses, land that is rented out, etc, and does not include things such as your personal home, your car, your laptop). All the people you listed are likely not capitalists in any sense, other than your simplistic analysis that anybody who lives in a capitalist society is a capitalist.

Those people that you all mentioned are the working class. They are the people who are obligated to trade their time in labor for wages which are used (usually 100%) to pay for their own needs such as food, housing, and savings for retirement, which will also be spend of food and housing, just later in life.


nit: Lots of plumbers are also business owners and employ sub journeymen employees. Those plumbers are capitalists.

I think your point is that people who make money off their labour/time (as opposed to their assets/employees) are not capitalists.

Generally your point stands though.


pension funds are the largest owners of companies - generally owned by middle class


Pension funds (as far as I know, please correct me if I'm wrong) are financial instruments which are meant to be used for future consumption during retirement. They are not financial investments that are used to generate more capital. This makes them distinct from capitalist investments which are used for the purpose of increasing their capital wealth, most of which is unable to be consumed.


Some of the alternatives that seem to work are better capitalism such as YCs "build something people want" model. I'm not sure socialist approaches work very well for programming apart maybe from academia.


Do you have any advice for freelancers looking for interesting clients?

I'm mostly able to find clients that either 1) want full-time employees or 2) are working on 'me-too' CRUDs (sometimes both).


My suggestion is actually not to find interesting clients. My suggestion is to find high-paying clients and then to become your own 'interesting' client (aka, reduce your lifestyle cost to a point in which you're able to use this money to sustain months of self-directed work).

Nothing is perfect and I've no idea whether this particular idiosyncrasy would suit other people - I'm still undecided whether it's for me.


Exactly this.

I've been consulting with various clients for the last 4 years. I make a few multiples more than I need to survive, and do not work more than 50% of the working days per year.

This is relatively easy to achieve:

- I have no debt outside of a couple school loans, which I prioritize paying down to zero. Everything else is either living expenses, or discretionary spending.

- I ensure my clients pay for everything they need—hosting, Github, any and all services. This is an easy sell, as it keeps everything firmly in their control and they can replace me at any time.

- I charge by the day, not the hour. My clients have never complained, and they seem to find it easier to think and budget in per-day terms.


Can you give more specifics on the typical project you take on? Genre/technologies/size/price.


That's basically what I've been doing. I'm not convinced that's the only possible way, which is why I asked. Working on pointless projects is fine for a short period of time (at least for me - I tried that approach multiple times in the past), but a potential source of burnout in the long run...


Have you considered taking a pay cut to work more full time but at a company that you think is doing valuable work? There are a lot of companies trying to "change the world", surely one lines up with your values. Though sometimes the skills they want are more specialized than generic software development (which is what I have :( ).


I would suggest looking in the mirror ;)

Let's be honest. Freelancers are not there to find "interesting clients". They are a temporary resource that enables a client to get a job done they under-resourced.

You have a choice as a freelancer 1) Become money focused. Earn as much as you can for as long as you can. 2) Become idea focused. Earn as much as you can until you have enough to bootstrap the idea. Rinse and repeat. 3) Become money focused but use your income to get the idea fleshed out using upwork.com

If you can get a few of you together it will be a better experience. Working at a co-location hub can be worth it.


Dumb question .. how does one go about getting started as a freelancer? Are there agencies or some other mechanism to get you started? Specifically, interested in how to get started in North America.


It's actually a larger question than you perhaps realize. There are different kinds of freelancing. The spectrum ranges from something that looks like "remote" work to something more akin to agency-like project work.

That former is much easier. The latter pays better but requires a whole bunch of other skills, and takes much more time. The two aren't mutually exclusive however, and that is what I've done as part of my strategy.

There is a monthly find a freelancer thread on here where you might be able to find a gig. Work on building your portfolio/reputation. I'd suggest small projects at reduced rates.

Next, I'd visit a lawyer and get a template contract worked out. Rather than have him write one from scratch, find one that includes a lot of the things you want and have him tweak it. It will be cheaper that way. Most important (IMO) are indemnification, terms of payment, and arbitration.

Get used to promoting yourself. Have your short and long "elevator pitch" together. Put together a landing page and get some business cards. Talk.To.Everyone! You never know where and when your next client will come from.

One of the issues you will run into is the feast or famine issue. You never know when you will get your next client, you have to always be on the lookout and courting -- overloading the queue because a percentage will drop out. If you don't find the next soon enough, then famine. If, as it happens often, several prospects say yes, then you feast. By feast I mean work a lot of hours and save up so you can weather the next famine.

What are your skills? Do you have a portfolio? How about an up-to-date linked-in profile?


You know I've been wondering this lately too. I haven't done any freelance work but I want to get into it. I'm still not sure the answer, but I started by turning on the 'Hire Me' buttons on my Codepen and GitHub accounts. I just launched a portfolio website (last night actually) that showcases a few of my projects and lists my contact information. I think my next step would be to check out sites like elance etc. But I'd love to hear other ideas from successful freelancers.


Not a dumb question at all. I've wondered the same thing myself. Say you're working full time and have $X/mo in fixed expenses. If you leave that job for freelancing, all of a sudden you're going to be making tons less than you were as a full-timer. How do you bridge that gap?


Find a friend or fellow techie to subcontract for.

Use that as a time to learn time management, invoicing and billing, taxes, etc, while you build up a network. This is basically freelance apprenticeship.

Do that for maybe a year and then start doing your own thing.


There really is no secret. Just go do it.

If you're serious about it then incorporating becomes a good idea to protect your assets.

I would suggest starting with family and friends at reduced rates to build a portfolio.


Here's my advice after 7 years of freelancing: https://medium.com/@marknutter/advice-for-the-freelance-deve...

(sorry for the blogspam, I'd repost it here but it's long and I'm too lazy to paraphrase right now)


Pick a niche (with good characteristics) and make sure to be good at things in that niche. From there on, the client or employer will obviously pay you in the way that you want (freelance or employee). The work will also be maximally interesting. I personally get a fantastic rate doing pretty much what I like from my home office.


Could you give an example of niches like that? I'm currently doing all sort of things, ranging from reverse engineering to wordpress websites (yeah, i'm a freelancer...), and I'm super curious to hear what people found out to be "good" niches and what were "bad" niches?


Echoing with the OP said. Figure out who your ideal client is: who they are, what projects they offer, how much they pay, etc. then go to where those ideal clients would hang out. Talk to them, understand them and figure out how you can relieve whatever business discomfort they’re facing.

This will take some time but you’ll eventually get a stream of the type of client that can support the lifestyle you want and want to work and refer you continuously.


The problem with CRUD apps is that they are architected around persistance, the product particularities and business logic are then like second class citizens that must play by CRUD-world or the framework of the year rules. The result is often a mediocre and painful to maintain app which may fulfill a bureaucracies' objectives but for the programmer it feels like being forced to be unprofessional , as if a surgeon was asked to perform an operation with a rusty saw.


I worked in landscaping and then as a custodian making $7/hr before I started learning to code. Working as a programmer has transformed my life. I've got a lot of autonomy in my days, I enjoy solving technical problems, I get to work from home and see my 2yr old grow up.

Yeah it sucks when your manager puts heavy deadlines on your team, or having to do things you don't necessarily agree with, or navigating corporate politics, but at the end of the day it's the best. I don't come home physically exhausted, I don't make shit money, and if I ever end up in a job I don't enjoy, I am able to find a new one fairly easily.

I think it's easy for programmers to hate life sometimes. Most people who are good at this line of work started doing it because they enjoyed it before it was making them money, that's how it was for me. Sometimes I miss haphazardly stringing code together to make something fun, but at the end of the day being a programmer has made me feel fulfilled.


I joke with programmer friends that we should become gardeners instead. I guess the appeal of physical labor is you get to leave work at work.


I've enjoyed working in national security and defense. It's a laid-back environment and I can leave work at work without feeling stressed.


What a world we live in. Defending the security of a nation = laid-back, no stress. Writing yet another CRUD backend for a mobile app = crazy hours and ulcers.


I mostly agree that the environment in government contracting is pretty laid back. We definitely have surge times, but generally we're focused more on getting things done correctly over fast. I think there's also a good understanding that people aren't as effective when they work over 40 hours/week for consecutive weeks.


Having been in government, this seems to be the opposite of what I've seen. Makes me think it is fully a byproduct of culture, independent of the work done.


Woah, can you expand on this? Are you a contractor or a government employee? What makes it laid back? Are the deadlines just more reasonable?


I'm a full-time employee. Managers and government benefits are a pretty big part of it. Work hours are very flexible (some roll in at 6am, others 10am), lengthy vacationable time, etc. Like morga3sm said, we want to do things correctly.

It has its downsides of course: getting a TS security clearance can be stressful, but that goes away afterwards; not being able to tell your SO what you do other than high-level stuff; career advancement and progression can be a long process and you basically know where your salary is going to go when you first start (because it is standardized); and so on.


I find that incredible (in a good way!) My idea of govt organizations was strict dress code, clock in at 8 AM on the dot, leave at 5 PM sharp, unknowable bureaucracy above your head.


Yep, that was my idea at first too! But in the summer I see people in flip flops and shorts :-) Execs still wear suits, but us lowly engineers not so much.


It depends on the contract. For the most part, the scrutiny of government auditors ensure that you actually can't work more than 40 hours in a single week. Sometimes the contract also ensures that the work cannot be done outside of a government-controlled facility.

So if you're the actual do-the-work peon instead of someone in any of the several tiers of useless middlemen, you work regular 8 hour days, get 10 or 11 paid holidays, and when you get home you are simply done with work until the morning of the next workday. It does not matter much if you do your job well or do it poorly, because there are so many other people working on it that you will never get recognition for a job done well, nor will you get any blame for doing it poorly, so long as it does what it says on the box.

The deadlines also vary by contract, but as every layer of middlemen adds its own padding, it wouldn't be remarkable to have two years to develop yet-another-CRUD-app with zero scalability, compatibility, or interoperability requirements.

No one doing the actual work is a direct government employee, because the uniform pay schedules are completely incompatible with industry norms. The government employees are simply there to make sure the contractors do what is required.

The net result is that you can get all your work done in just 2 hours and look busy for 6, or amble through it at a sloth's pace, gold-plating everything, achieving 100% test coverage, using ordinary software as a teaching lab for industry best practices, and such.

There are plenty of downsides, of course. The work is never glamorous, and you never really have much say in what you do or how you do it. You have zero job security, as you could be out of work if the wind changes direction in Washington, DC. The codebase will always be complete garbage when you are first introduced to it. The unimaginative and slow environment is not stimulating, so you absolutely must have a hobby or side-project that can engage you mentally outside of work.


> There are plenty of downsides, of course. The work is never glamorous, and you never really have much say in what you do or how you do it. You have zero job security, as you could be out of work if the wind changes direction in Washington, DC. The codebase will always be complete garbage when you are first introduced to it. The unimaginative and slow environment is not stimulating, so you absolutely must have a hobby or side-project that can engage you mentally outside of work.

These are the same downsides you see in the private sector.


> For the most part, the scrutiny of government auditors ensure that you actually can't work more than 40 hours in a single week.

Have yet to encounter a contracting environment where is is true. In fact, I was explicitly told that since I was salaried I was expected to put in whatever work it took to make deadlines, despite only putting 40 hours down on my timecard. Considering the facility I worked in had a DCAA office embedded in it I find it hard to believe the government did not know this was going on.


Oh, how delightful. Call the government ethics hotline and inform them that your employer is defrauding the government. You might get a nice bonus out of it, in theory.

In reality, whistleblowers always get screwed. You would have to extensively cover your own ass, and gather evidence that absolves you, specifically, of wrongdoing first.

If you are reporting time worked as anything other than the actual number that you were working, that is illegal. So alternately, start reporting the actual hours worked. If your employer makes an issue of it, tell them that you will need a signed, written copy of any order they give you that instructs you to violate the law.

If you get fired, you can retaliate by getting someone sent to jail.


I haven't worked there in almost four years, so that would be hard to do at this point. Even if I was, part of what sustained this is that we were a classified program, so only cleared auditors could access the full information.

Furthermore, our government customer didn't care as long as they got their deliveries on time and as cheaply as possible. I know in theory a program office can't lean on DCAA, but in practice (especially considering the clearance situation) I don't know if the PO would obstruct such an investigation. After all, from their POV getting what they want for less is not fraud.


I consider it likely that they're still doing it after four years. Even so, you can still report what happened four years ago.

The DoD inspector general hotline is (800) 424-9098 or http://www.dodig.mil/hotline/hotlinecomplaint.html .

The GAO fraudnet hotline is (800) 424-5454 or https://www.gao.gov/cgi-bin/fraudnet.cgi .


Are you in SIGINT? If you're not in SIGINT, I agree with everything you've said, otherwise my experience has been pretty different likely because I'm in SIGINT. Most of us are employees and the work can be pretty satisfying and rewarding, especially when you can see the effects and/or results when you're just a small cog in the machine.

It's possible we're in different countries, though :-).


11 or 10 paid holidays? Do you mean that's the total number of holiday days you get in an entire year? Does that include public holidays?


The federal government has exactly 10 federal holidays: New Year's Day, MLK Jr. Day, Washington's Birthday, Memorial Day, Independence Day, Labor Day, Columbus Day, Veterans Day, Thanksgiving Day, and Christmas Day. Government controlled sites are closed on those days. That means contractors can't work at such a site on those days. Rather than requiring their employees to work elsewhere, contractor companies often just concede that their employees can get a holiday too, and most of them even make it paid time off.

Some companies observe different holidays, such as by adding Christmas Eve and the day after Thanksgiving, and removing Columbus Day.

There is no such thing as public holidays in the US. Some days are bank holidays. Some days are school holidays. Some days are federal holidays. But there is no law that requires any employer to give all of its nonessential employees paid time off on any particular day. The only sort-of-exception is that an employer can't prevent someone from voting on Election Day, but that does not have to be paid leave.

Wal-Mart, for instance, has only 5 paid holidays: Easter, Memorial Day, Independence Day, Thanksgiving, Christmas. (Note that Easter is always on a Sunday, a time when many people already have a day off from work.) And if you get holiday bonus pay for working on those days, your hours are rumored to be cut afterward to compensate.

Some companies are also generous enough to allow 80 additional hours of paid time off every year, to be used as either sick leave or vacation days.


To me as a US English speaker this meant public holidays, since we normally call the other type of holiday "vacation". He probably gets at least 10-15 of those as well.


I have a good friend who lives in Alabama and works for one of the many DoD contractors.

When he leaves work at 5pm he actually can't access his work email. Nobody can send him anything from work on an unsecured line.

When he leaves work at 5pm on a Friday, nobody can contact him about work related things until he is on site at 8am on Monday morning.

He's a senior level unix admin. That can't ever be paged. I'd say that's pretty okay.


Depends on the company and facility situation. I worked for several years in such an environment, but the facility was open 24/7. You could be paged at any time for critical issues, but of course would always have to come in to find out what it actually was. Not being able to bring work home just led to the expectation that you would spend more time in the office.


Yeah, that and a lack of responsibility sometimes attracts me. My whole career (+15yrs) has basically been in industries where things are not allowed to go wrong. Some days I wish I was a lumberjack or maybe a programmer in an industry where you don't kill people or cost millions of dollars with a bug... But at the end of the day I can't stop myself from programming and I want to work on things that make a difference, so I'll leave the wood-cutting to my spare time.


Odd that you would pick lumberjack as an example since that is a job where mistakes frequently do kill people.


Yeah, I know, I realized that as I wrote it, but I guess I like to be out in the woods and do some heavy labor.

A bit of a simplification maybe, but as a lumberjack there are N+2 moving parts you need to care about, the saw, the tree and N coworkers in the proximity (N < 10) (if there's a moose and I catch it with my falling tree, it doesn't count as an accident, it counts as a bonus). With software there are thousands of moving parts and you can be pretty sure that no matter the amount of testing and code-reviewing, the parts will move in new unexpected ways once they reach the customers. Besides as a lumberjack when you leave work you leave work. You only have to worry about not killing someone during your working hours.


It wasn't landscaping but, I worked in a shop where the supes were often abusive. That isn't always true.


The appeal of physical labor? People only do physical labor because they are either unlucky or simply lack the knowledge to choose another path. I don't expect that to be the popular perspective on "PC" hacker news but that is the real world for you. Show me a gardener who wouldn't want to make 6 figures instead of breaking their back day in and day out for close to if not minimum wage? Appeal? Yeah right.


I disagree with your POV.I would rather say that everyone likes a change.Most of the programmers have very active lifestyle where they pursue physical labour based hobbies.To bring in an age-old platitude , "Everything is good in moderation" .You have extremes like a person who decided to leave programming to become a farmer[1]. And several other examples like this exist.What you need to understand is the satisfaction which comes from making things. I love programming solely because of my ability to create. Infact I feel that it is the ability to create that would drive any job.A skilled artisan pursues his interest because of the satisfaction he obtains from his creations.The same goes for us programmers. It comes down to the fact of skilled labour possessed by you.And if you really think that blue collar workers earn less,then you are quite mistaken[2].

TLDR; its the passion for creation which drives any job.As a programmer having things setup in hours or weeks and then seeing your product being used by a percentage of the 3 billion people[3] who use the www.It brings a hell load of satisfaction in me.

[1]:http://hello-world.io [2]:http://money.usnews.com/careers/best-jobs/plumber/salary [3]:http://www.internetlivestats.com/internet-users/


I see your POV but simply don't think it's realistic. Not to mention the salaries you linked are, as far as I can tell, lower than most 'white collar' jobs.

Most gardeners, plumbers, construction workers etc. are NOT artisans. They are just normal people trying to get by as best as they can with the means that they have. They often have lower level of education etc. etc. This is the real world. Not to mention that most programmers don't actually like programming... it's just the myth perpetuated on these (and other alike) boards. These are 90% of programmers that aren't on HN etc. They just don't care. They don't love programming at all - it's just their job.

This passion for creation is great - but it's simply too idealistic. Most people hate their damn jobs and hate it mostly because of how exhausting it is to make not very much money.


You are right. But... I'd be a gardener. If it paid me the same I make now. At least for 3 months a year?

I worked at Lowes in college hauling lumber and I miss it dearly (rose colored goggles and all). I was in the best shape of my life, I didn't think about work (lumber?) at home. It was a simpler life.


I wonder if you'd have enjoyed it as much if you weren't as young as you probably were at the time (late teens/early 20?)

That sort of work can really wreck your body as you get older.


Last summer I discovered I particularly like gardening. I think I'd be a gardener too if it paid the same.


I guess its something that grows on you as you get older.

Ive toyed with the idea of buying a little house in south europe, cut my expenses, work IT part-time/remot and have some land to grow stuff on.


> I think I'd be a gardener too if it paid the same.

this is exactly my point


If you could make 6 figures, I think a decent chunk of people would prefer it to doing office work and making 6 figures. Anyway, the point is that some amount of physical labor as part of your daily life helps make you feel less like a slug. And for some people having that labor not strictly be exercise is compelling.


I used to landscape - and if it were practical, I'd go back to it. There was a lot about that work that was very satisfying. I wouldn't give up on programming, but it would be something I did just for fun and/or side profit.

Do you know people who do that kind of work? I spent three years working with a decent sampling of them. Sure, some feel that it's drudge work and that they're stuck doing it for lack of options. They get through their day doing the minimum necessary - you can find those types in our field as well. But a lot do take real pride in what they do, and in doing it well.

Of course many if not most would take an office job for more money if they opportunity were there - but that doesn't mean none of them derive pleasure and satisfaction form the work they're doing.


I'm not quite saying that it's not possible to derive pleasure and satisfaction from physically laborious work. I am saying that it's a very pretty picture that's far away from real life to claim that that's normal. Most people do not like their job. Most people don't like their job as PROGRAMMERS.

What fantasy world is everyone living in that they love their jobs and derive pleasure from it? What 1%'s of gardeners are we talking about here? I assure you 99% of them would rather not be gardening.

It's very likely if you are doing a physically laborious job you are making very little money, struggling to feed your family, give your kids the spoils they want, your wife is mad that you can't take her on vacation etc. etc.


I don't know about gardening, but I've certainly sacrificed financially in order to be able to farm. When you consider the huge capital costs, you have to love it. Anyone who doesn't love it would be far better off selling out.

Granted, it isn't that physically demanding. The biggest amount of labour I find is repairing/modifying equipment, and that comes with interesting problem solving challenges, which my programmer mindset tends to enjoy.

Still, I can see why gardening would be seen as appealing.

> your wife is mad that you can't take her on vacation

Why would anyone get mad about that? My wife is a grown adult, she can pay for her own vacation. Farming is my vacation.


> Why would anyone get mad about that? My wife is a grown adult, she can pay for her own vacation. Farming is my vacation.

All I can say is that you are incredibly lucky if this is a true statement.


The gardener example is extreme, but not all physical labor is minimum wage. I have friends that have traded their cushy 6 figure knowledge worker jobs for more down to earth jobs where they work with their hands. From what I can tell, they have traded short term monetary gain for long term happiness, and it definitively has its appeal.


and the realities of the job economy is exactly why "not PC"?

of course physical labor does not pay as much, as long as the pool of workers is significantly larger. Doesn't mean that some folks would choose another career path if other fields would pay as much as software engineering does.


This is an extremely narrow view of the human experience.


I've made this point elsewhere. But I consider this the realistic view that comes from a good amount of experience and simply using my eyes.

You say narrow - I say broad. For most people the 'job' they do is just a thing that brings money in. They have no feelings towards it - it's just a thing they do. They are more concerned with their family, their relationships in general, how they are going to support their kids, how are they going to pay their damn bills etc. etc.

Under this condition I find it hilarious for someone to justify -- sitting from their computer screen with an IDE open on the other monitor no doubt -- the fantasy happiness that can be had from doing a lower paying and physically more challenging job. I don't know gardening, but I do know construction, intimately, and imagine that gardening as a profession is not too entirely different. Most people who do these jobs are not doing it for some fantasy happiness. They are doing it out of necessity.


This must be a common joke amongst programmers. We often joke that we should all become potato farmers. Being outside, watching things grow, working with something physical. I totally get the appeal.


I actually got fired once because I didn't work crazy hours. Now I work at another company where it's much more laid back. I don't do any work when I get home or on the weekends.


> I think it's easy for programmers to hate life sometimes.

This is almost entirely due to a severe lack of perspective.


Definitely agree. Try taking a job that pays minimum wage (if you have one), or work in a shop, as a builder, or find friends who have to work all hours to survive and you'll realise how damned lucky you are.


No. Just because "it can be worse" doesn't mean someone doesn't have the right to be unhappy. It's a totally specious argument. "Your kid died? Well, what if BOTH your kids died? You have a lack of perspective..."

Yes, they would no doubt prefer their high-paying job over a minimum wage job. But that doesn't mean that they no longer have any right to be unhappy with their lives. This is exactly the point of the hedonic treadmill[1]. There are happy people with rough jobs and unhappy people with great jobs.

[1]The hedonic treadmill, also known as hedonic adaptation, is the observed tendency of humans to quickly return to a relatively stable level of happiness despite major positive or negative events or life changes.


> "Your kid died? Well, what if BOTH your kids died? You have a lack of perspective..."

Glass half full vs glass half empty. The hedonic treadmill has nothing to do with it. It's about being thankful and making the best of things. That's the antidote.

However you look at it being a programmer in today's society has the potential to give you an amount of choice and wealth enjoyed by very few other industries. You can make your own luck by simply being motivated enough to learn, and the initial outlay to create a massively profitable business is tiny compared to many other fields. So make the best of it. You could work for 3 months a year and do what you love for the other 9.

Are you really telling me you can't make that work? It is about perspective.


Yes, I am not arguing the objective benefits of our occupation.

I'm saying that having a job like this doesn't mean you ought to be happy, anymore than being rich means you ought to be happy, as is well known.


I have a side question, did you end up pursing a CS/Engineering degree? I'm trying to get a dev role and have a business background and looking for some advice on getting in.


The majority of the CS degree isn't very useful to dev work. Most of what you'll use in your day job you'll learn on your own, or on the job. A CS degree is mostly academic, and also mostly a sampling of a bunch of different domains to whet your appetite.

However there are a few topics I consider essential... operating systems, algorithm runtime/performance, data structures, basic software engineering/design patterns, memory management (seriously, everyone should have a course in C or C++) and functional programming (like Haskell).

Even hacking away at a PHP or Node server, there are times when a bit of knowledge of Big-O runtimes can save you from creating a script that never finishes.


I have a similar background in that I was primarily self-taught before finding a paid apprenticeship that lasted almost a year and then being employed as a consultant by the company.

If you can afford it, I'd recommend pursuing a formal route. It exposes you to a lot of ideas and ways of thinking that are hard to get in practice. After having programmed for around 4 years now, I often wish I'd studied CS.

In lieu of that, I think Udacity's nanodegrees programs are probably a good way to end up in a paid position relatively soon.

(I'm assuming you're looking to break into web programming. I can't speak for other areas.)


I eventually want to purse the formal route and do a part time BSc or perhaps get a MSc, for now I need something to pay off loans


I'm self-taught and I got my first job through going to user groups and scoping out what was going. Second job was with a much more difficult problem domain, but I'd taught myself some CS from textbooks during my first job so in the interview I came with lots of examples of work (both day job and freelance) and piped up about CS topics where I knew about them, and admitted when I didn't but stressed that I wanted to learn. I beat several other people to the job even though I was the most junior.

A lot of devs even at a mid or higher level have little curiosity for the theory side of things, and eventually you'll run into problems that require knowledge of it, so being enthusiastic (and a bit self-starting) in that area pays dividends in my experience even if you're not the most experienced dev going for a job.

The only caveat is that both were/are small companies, so no HR apparatus to go through.


I can give you a little advice from seeing some non-degree-having peers make it.

Have some idea what you're doing. Talking the talk is great, but you must be able to walk the walk. Apply to everything that sound like you can/want to do it, even if you don't technically meet the requirements. Those are mostly for HR pre-filtering since HR doesn't really know what they're talking about in 99% of cases - they're just looking for keyword hits.


Great thanks. I've built stuff before and have been learning/coding for the past ~4 years so I don't classify myself as a complete beginner.

When applying without a CS background how tough are the technical interviews? Do they tend to expect more or are they more lenient and look more at fit and ability to grow?


> When applying without a CS background how tough are the technical interviews?

It's very rare, in my experience, to be asked a pure CS question in the interview. For some positions you may be silently expected to have some degree of familiarity with CS concepts, for other - especially entry-level - positions you don't need CS knowledge at all.

Being able to produce working and good looking code is all most companies want from fresh employees, I think. It's unfortunately still hard to find people with that skill, but if you have it you can learn everything else.

In short: apply everywhere, go to interviews and don't be afraid. You'll be pleasantly surprised (I hope).


Depends where you're going. Top companies like Google, Facebook, Microsoft, etc are looking for people who can pass some tough CS questions, whereas more standard corporate or mid-stage startups are going to be a bit more lax. I've seen everything from "parse this integer from a string without your language's built in parse function" to "build a small database schema using ER diagrams" to "write us a P2P chat server with a central login server".


I interviewed a referral once, this kid had written a couple of trivial android apps in notepad, which was something at least. But when I drilled down he really didn't understand anything he was doing with respect to the build (ie didn't know what the classpath was), didn't know anything about basic collections, didn't know tools like eclipse, version control. He claimed to be eager to learn, but no one has a full time dev to spare teaching anyone intro classes on this stuff.

So, from my perspective, if he would have known the tools, basic concepts, and had taught himself more, he would have been a hire. Otherwise, he just wasn't self starting, and really wasn't eager to learn, or he would have come with more ability.


In that kind of situation you can basically do a contract to perm internship kind of thing, point them at resources, and see if he's fully competent to be junior at the end of the contract. Not everyone can afford this of course, but sometimes people don't even know what they should be learning, but will gobble up knowledge if pointed in the right direction. A weapon waiting to be aimed, if you will.


I had a friend who started his CS degree at the same time I started learning on my own, and he is just about to graduate while I've been in the field for about 2 years now. So it worked out for me to not seek a degree.

He's also a vastly different person than I am, writing code is not a passion of his, while it is of mine. I'd be writing code whether or not it was my job, while he'd rather be doing other things.


6/10. I'm less than 3 years into my career, but I think I've worked for some of the best companies with great pay, benefits, environments, etc, including a tech giant and two startups. End of the day though, work is boring. Its always work. Your time and effort is going towards making someone else rich and their priorities are more important than your own.

The only things I really look forward to are vacations and events outside of work. Learning things is always exciting and sometimes its extremely rewarding getting a project (or even a feature) off the ground and seeing a company rise and beat projections. But then a few weeks later, its just back to work and nothings really different. Its a temporary victory at best, then expectations just get higher and more grind.

The best you can possibly hope for is enjoying the people you work with and getting a couple good exits. I'm never married to my work and I would be incredibly depressed if I allowed it to define me as a person. It pays the bills, and generally pretty well.

Even compensation wise, it peaks very early and probably won't get most rich without a ton of luck. Its depressing to make comparisons, but 99.9% of developers will never make half of what a specialized MD or successful lawyer or someone in finance might make. Granted, the barrier to entry is much lower in CS (sometimes nearly nonexistent depending on the line of work).

edit: Reading some of the other comments made me realize how dissatisfied I am with this line of work. On average, the people really are incredibly boring, especially at large companies. It is true that it is dominated by men and many are socially awkward. Its even worse that I think being on a computer for so many hours a day for years at a time makes everyone a little less socially adept, at least compared to the sales folks who spend most of their days on the phone. I'm literally spending my weekends looking for the most reckless and dangerous things I can do (lately its been surfing 2-3x head high waves, before it was motorcycling through snow/ice storms) to compensate and its completely unhealthy.


Its depressing to make comparisons, but 99.9% of developers will never make half of what a specialized MD or successful lawyer or someone in finance might make.

Why not make a much less depressing comparison and compare developer wages to manual labourers or retail staff? Compare a typical developer to a typical retail worker and we get way more money for way less stress. We're not at the top end of the scale, but we are nowhere near the bottom either.

We get to sit in comfortable offices, working on interesting projects (mostly), building things that make a difference to people, without getting dirty or abused by the public, and we're pretty well paid for it on the whole. And there's always the possibility that we might hit on an idea that returns literally billions of dollars. Or work for someone else who had that idea and walk away with literally hundreds of millions of dollars. Most people don't have that sort of opportunity.

I've been a professional developer for over 20 years, and I've enjoyed most of it. It afforded me the opportunity to do my own startup for a while, and when that failed it was easy to get back in to work with a job that pays quite well. I certainly wouldn't want to do anything else.


> compare developer wages to manual labourers or retail staff

apples to oranges.

we're highly specialized knowledge workers. well most of us are, so it is more fair to compare with bankers, lawyers, medics, architects, politician and middle managers which can count on a year to year income growth instead of having to playing idea lottery.


I'd compare us only superficially to capital-P Professions like lawyers, architects, engineers and the like. There are no bar exams to get a license to practice programming in the industry; no liability -- it's really easy for people to misrepresent themselves and for companies to take advantage of us.

Comparing us to retail workers has some merit. We're not professions, have no collective representation, and can be easily replaced (despite current myths about how difficult it is to hire programmers there are hoards of new graduates and self-taught individuals making the leap from other careers and professions because of the money and cushy benefits -- most hiring processes seem to be designed to keep the majority of people out).


I wouldn't exactly call developers highly specialized. Specialized developers work in a tiny niche and make lots of money by being one of the very few in that niche. Any of us could potentially become specialized, but very few of us actually are.

Hell, most of us could jump fields without losing steam. Systems administration, security, database administration, all of these can be done by a decent developer.


At some level. But I would never hire a developer to do security, or sysad. Because they have the wrong mindset for it. I want some OCD single-minded person keeping my network safe. Not someone who like to just 'get it done' as efficiently as possible. Totally different goal, and to be really good at it takes a different person.


Arguably, none of us are chartered. But I agree, you have to compare like-for-like.


On one hand, yes, absolutely. We have much better than the vast majority of the people and there are times when it doesn't feel right to complain about it.

On the other hands, it's turtles all the way down until you reach "well, we are still alive, at least that's something".

While some humility and reality check is good, aspiring to have something better (be it in the monetary terms or whatever drives you) is also important to make progress.


> Why not make a much less depressing comparison and compare developer wages to manual labourers or retail staff?

Some software engineers undertook difficult curriculums in highly selective universities. In that case, I think it's understandable to feel a little bit depressed when comparing to former classmates in more prestigious fields. Personally, I have to admit that sometimes I feel that way (even though I'd probably do the same if I could go back in time because I love this field).


We get to sit in comfortable offices, working on interesting projects (mostly), building things that make a difference to people, without getting dirty or abused by the public, and we're pretty well paid for it on the whole. And there's always the possibility that we might hit on an idea that returns literally billions of dollars. Or work for someone else who had that idea and walk away with literally hundreds of millions of dollars. Most people don't have that sort of opportunity.

Very well said.


Less stress? Retail workers turn up a 9 leave at 17:30 - they dot get called up outside of work in an emergency to fix some one elses code that causing a problem.


If I'm 45 minutes late for work 3 days in a row with no good excuse, no one gives a fuck. Retail worker shows up 45 minutes late one day and they're most likely fired. I also don't have to worry about people fucking around with my shifts and thus how much money will be in my next paycheck.

Having even a modicum of job and financial security removes so much stress from your life.


> If I'm 45 minutes late for work 3 days in a row with no good excuse, no one gives a fuck.

Unfortunately it doesn't work that way for all developers. At my last job there were continual reminders and reprimands for being even five minutes late.


In my first job ~25 years ago I got told off for coming in 5 minutes late even though I had gone on to a customer site at 9pm the previous evening and worked to ~1am to fix the problem.

Left there after 9 months and have never worked anywhere like that since.


you've heard of "code smell", right? that right there is a "career smell".


If you are a salaried exempt employee, you should not have to put up with that BS from timeclock nazis. But it is all entirely legal, and for many companies, obeying the letter of the law on paper is the only requirement for corporate policy.

Sadly, without the muscle of collective bargaining to back you up, your only real options are to politely beg your management to stop being timeclock nazis, or to leave for greener pastures.


In retail, you don't get free food / liquid. You have to stand on your feet all day. Customers are allowed to scream at you and you have to figure out how to make them happy. Bosses are more than happy to fire you because, let's be honest, there are 1,000 others that can do your job. No guarantees of a 40 hour work-week. No paid holidays, no benefits. Raises are like 25c, and that is only if the boss really likes you and you aren't in a union, shifts well past midnight on Friday and Christmas Eve... (don't care to continue)


> In retail, you don't get free food / liquid.

Water is free, most likely. I've never had free food programming, beyond nutra-grain bars, once.

> Customers are allowed to scream at you and you have to figure out how to make them happy.

Toxic clients exist in the programming world, too. And as a low-level peon, you have a lot more leeway in telling an abusive customer to get out than you do a multimillion dollar client.

> shifts well past midnight on Friday and Christmas Eve...

Still happens for developers.

As strange as it may sound, I think I personally was happier waiting tables. But it wasn't going to pay the bills. In general, I totally agree that most people, all things considered, are better off programming. But let's not overstate our case. :) There are definitely some programming jobs which are light-years better than any retail job because e.g., you don't have to deal with customers, but that's not all programming jobs.


Try crawling around in asbestos filled attics or rat infested crawl spaces for 12 bucks an hour.

Programming is much easier than so many professions I've had in the past it's absolutely unbelievable.


I was a "pest control technician" (exterminator) before I started programming professionally, so I know how you feel. My life now is a cakewalk by comparison.


Oh, man. At 16-17, I used to do that installing HVAC systems. At 21-22, I worked in a factory to support a family. Then I spent the next 3.5 years selling cars. Finally said, "Fuck this", and decided to start programming as work instead of just play.

Even the worst days of the last 9 years have never been as hard as the best days before it.


> I think I personally was happier waiting tables.

Sometimes, the social aspects of your job outweigh other factors. Throw in the simplicity of jobs like waiting tables, and I've found that it can be a lot of enjoyment.


Ignoring the financial aspect of it, I actually didn't mind working in a department store all that much. During downtime you got to socialize with coworkers (many of whom were female), during busy times the time just flew by, you got to move around a lot and be active, you weren't expected to know every detail about everything you were responsible for, just be able to answer some basic questions about certain products ("Why is this more expensive? Which one is best for situation X?"). Also your friends could stop by your workplace to chat from time to time.

As for the no guarantee of 40 hour work week... well, again ignoring the financial aspect of it, only working 20 or 30 hours a week was much more enjoyable than 40-55 hours (or even higher at some places) work weeks.


> shifts well past midnight on Friday and Christmas Eve.

Haha, try working as a developer supporting a retail-based operation! Our company pulls all-nighters on black friday and christmas eve.


There are plenty of people on so-called "zero hours" contracts who don't know from day to day when their working hours will be, may be called in at short notice to work an off shift, and have no predictability of pay.


there are plenty of programming jobs where you don't get bothered outside of work.


I assume you have never worked in retail.

As a retail worker, the pay is at or just above minimum wage and benefits like PTO and health insurance do not exist because the jobs are usually part time. Additionally, retail work always comes with irate customers who will piss you off, your coworkers off and your bosses off. So everyone is angry. Retail workers often do not have a set schedule, this is especially true during the holiday season. They have to find coverage before taking an unpaid day of leave. Lastly, because no real skill is needed to work in retail, workers are easily replaceable. 1 mistake can get you canned.

How is a situation like that more stressful than being on call of which you get paid to be on?


I don't think payment for on call is the norm in the USA - it can be very lucrative in the uk I knew of people on 4 in 4 who got called twice a year.

15 Years ago it was £400 for 1 in 4 plus Toil (time off) for time worked


> And there's always the possibility that we might hit on an idea that returns literally billions of dollars. Or work for someone else who had that idea and walk away with literally hundreds of millions of dollars. Most people don't have that sort of opportunity.

This reads like a sales pitch for the lottery, and as a random developer, your odds are pretty similar.


its not a good comparison since retail takes absolutely sero education or brains.


While I see your point (and I agree a bit), it's not exactly fair to put it this way.

There are many people working in these industries who didn't have much opportunity to get decent education, etc. For example, my parents. They are from rural areas from Soviet Union, where getting higher education was not something that goes by default as it is now (which might not be a great thing given the number of people with worthless law/business management degrees from the bottom 10% of universities... oh well).

Obviously, there's a segment of people who didn't give a crap and held an attitude that education is for losers / nerds (before the word 'nerd' was cool) and I don't have much for them sympathy.

So it's not fair to just disrespect everyone working in the retail as 'zero brains'.


I'm saying the job requires zero brains or education. I did not mean to imply people who work in retail have no brains or even less than average. in my country it's not really a legit career choice. it's mostly high school kids or people under 23 who do it as it's compensated below adult minimum wage. after a certain age you either get promoted or fired.


I see, sorry for getting you wrong.

Meanwhile in Lithuania, it's fairly typical that the majority of people working in retail are in their 40s and been doing that for the last ~20 years with very minimal increments in salary (usually because of increased minimal salary).


It's not about disrespect. It's about how much effort you put in to get to that point.

How much effort is needed to get a cashier position? Show up, be sober - you got a job. Many people in IT started learning the ropes in their own time after school. Although it was a hobby, it was still an effort that turned out to be helpful in job market.


Here in the US it's not so different. When I was 20, I worked at Target when I took a semester off school. I think only two or three of my coworkers were around my age. The rest were 30+.


Meaningless class based prattle

Hardest management job I ever had - working night shift manager at a food store while going to college during the day. Like surviving a hurricane while running a marathon while the building's on fire, every single night. I lived roughly a decade of "real" management in my senior year.

Cashiering required a surprising amount of memorization of obscure procedures and policies and item codes, not to mention carefully tracked flawless arithmetic skills when giving change.

The general manager was an artist of endcap design. At non-megacorp retail you're on your own when designing displays. Its truly an art. At the megacorps you have teams of CAD drafters, graphics artists, and sales consultants designing displays, at a non-megacorp story you have yourself, and the boss expects you to do as good of a job as the team. Teams are usually much less productive than individuals, so its not as hard as it sounds.

Stock clerk at higher levels was insane. Its really a two level job and the new hire teen kids merely threw product on marked shelves, but if you were there more than a year and were not an idiot you watched the more experienced guys and took over for them, after which you spent all your time on rotations and resets and price changes and sales stickering and being a reception clerk for the 50 or so direct store delivery trucks we had. I don't care if you have 20 pounds of soup cans for a 10 pound shelf, make all of them fit somehow and you need to accept deliveries from dairy and bread and beer and you have two hours until break time to get this all done plus or minus helping out everyone else.

I've noticed over many decades that despite enormous quantities of (self serving) propaganda, the hourly pay rate people get generally has little relationship with how difficult or important the job is, on a large enough scale.

Another interesting observation is the dumb people didn't survive on the job nearly as long as the smart people, and the dumb people absolutely suffered horribly compared to the smart people.


Anecdotes like this make me wonder what will people in the bottom 1/4 of the bell curve do for a living in the future?


Depends very much on the retail job. If you're expected to sell stuff and work on any sort of commission, then retail jobs take a lot of (a certain type of) smarts if you want earn good money.


Retail managers certainly act that way, but I wish it weren't so. The one thing that has the potential to bring me to a brick and mortar store instead of buying online, is the chance to talk to an employee who is an expert on the product. Sadly it doesn't happen too often. Usually you get someone with enough brains to operate a cash register and no more than that. Ask a good question, you get a blank stare in return. Or they tell you to google it. And because they get paid garbage money, they often can't even afford to buy the product they're selling, so they don't have firsthand experience with it. Could be so much better...


But the thing is I could have been an MD, lawyer or someone in finance - these things were well within my reach. But I was sold a false dream and now I am stuck in misery.


Why not just switch? Is it too late? You can always take out loans if it's money; that's what most people would have to do anyway I imagine.


working conditions in all of those industries are terrible compared to almost all software jobs. and the work in finance and law is tedious. you're dreaming.


Uhh... I have to ask: what, exactly, were you expecting? Exhilarating highs and a path to millions?

It's a job. Most people don't have jobs that'll make them "rich". Be glad you aren't living paycheck to paycheck, or worse, are unemployed because the job you had was optimized away with computers.

To be blunt, there's a sense of entitlement evident, here, that I have trouble grokking. You get to spend all day in a comfortable office working with no more than your hands and brain making double to triple what a day labourer pulls in with a hell of a lot more effort.

And your complaints are, what, you have to hammer someone else's nails, the work is repetitive, and it isn't a fun party every day while you amass untold riches?

Look, I get being dissatisfied. Humans love looking at that greener grass on the other side of things fence. But appreciate what you have. Seriously.


This is a horrible comment. There is 100x more to a career than living a comfortable existence.

Personally, I want to feel purposeful at work and that I am contributing to a better world. I also absolutely require regular challenges or I end up severely depressed. Also, I have undertaken extensive education partially as a way of raising my standard of living and having a more enjoyable life outside of work.

THERE ARE SO MANY THINGS TO DO WITH YOUR LIFE! Yea, it's not always going to be a party, but there's a hell of a lot more to it than sitting in air conditioning. And you're allowed to demand a hell of a lot out of your career as long as you are willing to put in the work to get it.

My search for a challenging and intrinsically and extrinsically rewarding career brought me to study the life sciences. Then I ended up in a healthcare company doing menial crap and then a graduate degree in bioinformatics. I'm looking through job-ad after job-ad, and while the occasional one looks challenging I am absolutely terrified that I am going to end up as a desk-monkey who doesn't interact with people and again gets no challenges.

I hope I am wrong and I can make this career work for me, but I am already looking at applying to medical school in a year if can't find a challenging and decently rewarding job in bioinfo. Sucks, because I had originally intended on being a doctor when I was in undergrad but went in another direction because I wasn't 100% sure about it at the time. Unfortunately, I am 100% sure I do not enjoy being a desk jockey.


> This is a horrible comment. There is 100x more to a career than living a comfortable existence.

I thought so too. However, the funny thing with market economy is that it IS pretty efficient, so jobs that are regarded as satisfying and challenging are approached by so many talented people that they don't have to pay very well and the conditions are usually not great.

The solution is to either accept that the role of a career is to get to you to early retirement ASAP (Mr Money Mustache style) or to get excited about something that most people don't care about.


> jobs that are regarded as satisfying and challenging are approached by so many talented people that they don't have to pay very well and the conditions are usually not great.

Agree! If I could be a florist on a developers salary I would jump at it and never look back.


Yes, I am beginning to realize that a lot of people actually don't want to bang their heads against the wall regularly at work. I do, though :/

Solving an insanely hard problem I have struggled with for days, weeks, or months is the most satisfying thing I've ever experienced.


>Personally, I want to feel purposeful at work and that I am contributing to a better world.

And yet you are depending on your employer to provide you with this?

>but I am already looking at applying to medical school in a year if can't find a challenging and decently rewarding job in bioinfo

I see you running into the same issue.

Just because you've received "an education" doesn't entitle you to a glamorous, exciting job. You'll probably have to make that yourself.


They don't owe me a purposeful, challenging job with a livable wage you are ABSOLUTELY right. However, I don't owe anyone 40+ hours a week when I get nothing out of it but the ability to pay rent and eat.

I am okay with dying. I don't see a point in living a life where I spend my days contributing to a company that does nothing for the world and I am bored out of my mind. I would rather work at McDonald's if that's the case. I am being serious! Money is only a secondary goal.

My ultimate goal is to work for myself and I will at some point. Hopefully that means starting a company focused on genomics, big data, or healthcare, but if not I will buy a gas station and run it myself.


THERE ARE SO MANY THINGS TO DO WITH YOUR LIFE! And you're allowed to demand a hell of a lot out of your career as long as you are willing to create it.

No one will ever just give you an interesting career tailor-made for you. Find out what is interesting, fulfilling, and challenging, and make that your career over time. You start in your company doing menial crap but then move to interesting crap over time, by being intentional about what the company needs, what you need, and how you can leverage one to get the other.


I spent 4 years in a healthcare company in a job that REQUIRED a BS in the life sciences. I never had single day where I was challenged by the goals set by my managers. For 2 years I doubled those goals every single month, some days I was able to quadruple those goals. I was the highest performing one in the department, I asked regularly for new "opportunities" only to get more crap that would not have been challenging for me at the age of 15.

I am sorry that doesn't fit with your world view, it was the worst experience I have ever had and I won't go into another job where they promise me career growth, opportunities, and challenges after I "prove myself." I've already wasted a HUGE amount of time, the past 4 years have been extremely inefficient compared to what I could have been learning in a challenging job.

The only reason I went to college was because I thought it would lead to a job that was actually challenging. My parents never had those, they don't have beyond a high school education. So fuck me for believing education could lead to a challenging job (and you better believe I am prepared for extensive work on top of my education). I've been working since I was 15, I had a full-time job the last half of my senior year in high-school as a stock room manager and yet I still have never had a regularly challenging job. I have never had less than a stellar performance review.

BUT, all my experience isn't the right experience. It seems I am assumed to be borderline mentally-retarded on anything I have not done 100x before.


> I hope I am wrong and I can make this career work for me, but I am already looking at applying to medical school in a year if can't find a challenging and decently rewarding job in bioinfo. Sucks, because I had originally intended on being a doctor when I was in undergrad but went in another direction because I wasn't 100% sure about it at the time. Unfortunately, I am 100% sure I do not enjoy being a desk jockey.

Do it. I'm a programmer in my first year of med school. Love every single day. Beats sitting in a chair from 9-5 pounding in to a computer. FWIW I still do a ton of programming on my own.

Also, the field needs more doctor-programmers. You'll find boundless areas to apply your CS skills. Plus, if you don't try, I think you'll always wonder: what if?


How did you make this transition? Did you take the necessary course work in school, or take time off of work? Where do you get meaningful recommendations after leaving school?


While I agree with many of your feelings, I think you should try to think of this in a more positive way. Many other people go into med school without really having any professional experience at all or knowing what they are signing up for. You on the other hand now can be pretty confident that if you do go to med school, it's what's best for you.


A lot of the loudest voices in tech are people who appear to be rapturously happy and fulfilled working 10-12 hour days. It's easy for young people to get the message that good coders love working all the time, with the obvious corollary that if you don't feel that way, you're not a good coder. It's not an accident--spreading that idea makes it easier to buffalo people into the ruinously long hours that some parts of the industry are infamous for.

It's important to cut through the 10x rockstar ninja buzzword bullshit and remind people--especially young people--that most coders are working for the weekend just like anyone else.


This, right here, is a brilliant comment.

The pop culture obsession with the valley tech industry, and the resulting insane expectations folks hold when entering the industry, is a disservice to us all.

I love the work I do. It's not life changing. It's not going to make me rich in money or in spirit. It's a cushy lifestyle job that gives me the time and monetary freedom to do the other things I'm passionate about.

But that doesn't align with the fantasy of the valley, or frankly, the American protestant work ethic.


Working with your brain takes just as much effort as working with your muscles. Think back to taking a multiple hour exam in school, and how knackered you'd feel at the end of it. Now imagine doing that for 8+ hours every day, trying to solve problems that you don't even know have a solution. Yes, your body may still be ready to go, but there's nothing left upstairs to make it happen.


Oh come on.

Working with your brain is a breeze. Yes, you get mentally exhausted. Eat some damn sugar, problem solved. You know what you don't get, that manual workers do ? Crippling disabilities, having no energy left once you get home, a terrible salary, dangerous work conditions.

We have it easy. Stop lying to yourself.


Exactly. My partner hates it when I mention that I had a boring day with little interesting to work on, so I spent a couple hours reading reddit. Meanwhile she works in a fast-paced, no stopping, energy draining customer service managerial job. She hardly even gets breaks, no less time for catching up on your favorite internet blogs.

And yet, for some reason, I get paid almost three times more than her per hour.


You've obviously never heard of repetitive stress injuries like carpal tunnel and others. Your brain doesn't do the typing/pointing and such crippling injuries are fast becoming the norm in most long-term tech workers. For some, it's putting them out of a job or even out of a career. Easy my fucking ass.


Boo hoo hoo

Now, I hate the "but other others have it worse" logic, but let's go ahead. I have a family member who was a mason. Started at 16. He is now 45, is unable to do anything properly because his back is completely busted.

I'd love to say that this is an isolated case. I'd love to say that the other construction workers I know are in better health. And I'd love to say that percentage of construction workers with health problems is extremely low. But they're not. Their job is physically hard. They're laying bricks, moving things, moving around on roofs. The body can take it, but not for too long. And they can't take breaks, because their job doesn't allow it. Their body is perpetually being used, and all they can do is reduce the rate at which the damage is done.

Now let's compare with the average developer, which can do regular wrists exercises, sits in a comfy office chair and can perfectly well go exercise after work. Whee, such danger. Take care of your body at least 30 minutes every day.

And yes, carpal tunnel sucks, and can put you out of a career. It can't put you out of 80% of jobs because your back, or your leg, or your shoulder is busted.

Compare both, and tell me the construction worker doesn't have it a thousand times harder than the dev, I dare you.


I wasn't comparing, just simply pointing out your error.


"Working with your brain takes just as much effort as working with your muscles."

Well, funny you should say that. Years ago when I first moved to New Zealand (as a backpacker) my mindset was to find a job immediately, then look for a better one. My first "job" was as a labourer. Carrying large marble table tops up narrow windy stairs. Hardest job I ever did! Quit after one day, and my back is probably still thankful for it.


So you weren't physically strong enough to do the job is what you learned. If you weren't smart enough to program, how easy would you find it?


>Working with your brain takes just as much effort as working with your muscles.

Does working with your brain leave you susceptible to long-term injury or disability?


Repetitive stress injuries like carpal tunnel if you use computers, so absolutely yes!


Obesity and diabetes, sure.


I don't know how old you are, but I have a similar experience level with the person you're responding to and I think I and many of my peers relate in some ways. I think the parts he said about getting rich are a bit silly; that's probably more of a personal regret of his/hers then anything else.

On the other hand, I think many other people I've talked to who have only worked for a few years kind of feel lost. I guess in a way we've been so busy with school and constantly pressured into finding a good paying job and that it would all be worth it that we didn't take enough time to experience life and find out what actually makes us happy. In fairness, it's also a bit difficult to know if you'll enjoy a job until you actually do it for a while.

I like my job, don't get me wrong, and I really do appreciate all the opportunities it gives me. I think the real question is whether that job enables you to do what you truly want to do, or handicaps you instead. I am fortunate enough that my job is the former, but I've certainly taken jobs where it was more the latter.


On the other hand, I think many other people I've talked to who have only worked for a few years kind of feel lost.

And that, I think, is a failure in our culture. American Protestant ethics teach us that your job should be a deep, elemental, almost spiritual part of who you are as a person. The result is that, when people graduate, and get that job, they discover that working is, quite often, a pretty shallow experience that, if you let it define you, will lead to a pretty unsatisfying existence.

So now you have a choice: get dissatisfied and start changing careers, hoping you can find something to give you a sense of meaning and purpose (which, if you're like a lot of people I know, very probably means you never excel at any one thing and therefore never get to the point of having a sustainable career that can fuel a fulfilling lifestyle). Or, start spreading those wings and becoming a well rounded person so that you're defined by more than your career.

I advise the latter.

Speaking for myself, I have a great lifestyle job. I love the people I work with, and the projects are reasonably interesting but not life changing, and occasionally repetitive. The work environment is comfortable and laid back, and I get to leave work at the office. The job absolutely will not make me rich, but it allows me to engage in not exactly cheap extracurricular activities (traveling, skiing, etc), while leaving me with free time to pursue numerous hobbies beyond programming.

To me, this constitutes success.


Indeed I'll admit I had a rough transition but I've come to accept that my job is just a job. I really like the people I work with and the company I work for, but the thing I like most about it is that it enables me to do the other things I want in life.

Of course, one day I would like to pursue a PhD so that I could study full time, but that's a dream for another time I guess.


Its depressing to make comparisons, but 99.9% of developers will never make half of what a specialized MD or successful lawyer or someone in finance might make.

What percentage of people with law or finance degrees to you think actually make what you seem to think people with law or finance degrees make?


Not to mention that by being a developer, I started earning money in my early 20's, without hefty university debt. Less risk (plenty people study for the bar and fail) and upfront costs.

There's also less chance of getting a casual 9-5 environment in finance.


I'm having a tough time finding it, but there was a really good article that analyzed median performance of law school grads and found that, if law school was a security, it would be below a junk rated bond.


How many would be specialized MDs dropped out during the course/residency?

I'm sure something similar happens to top finance positions.

Also, developers have a nice chance of making it big by either starting up or getting equity.


Nice chance is overstating it by a HUGE amount on the 'making it big part', yes quite a few developers in the start up world can get equity, the former rarely happens.


In fairness, I work in the U.K. and most of my friends that I went to uni with, now in Law or Finance (including PAs) make more than I do.


> End of the day though, work is boring. Its always work. Your time and effort is going towards making someone else rich and their priorities are more important than your own.

I feel exactly the same. I've been in the game for nearly 8 years now, and it doesn't get any better. At the end of the day, as you say work is work, I don't think I would feel any better working in another career. I like programming, I just don't really like working as a programmer :D

For the last two years I've been contracting which helps as I get to pick and choose projects a bit more, and if I get bored, contracts are only usually a couple months at a time so it's easy to get out ("I can't renew, I've already got another contract"). I'm focussing on saving to buy a small property outright with no mortgage, so once I am living there my living expenses will be greatly reduced and I'll have more freedom to explore my interests outside of work.


> Your time and effort is going towards making someone else rich

You are free to start your own business and get rich except it's not so easy, very few people can do it.


Unless you're rich to start with then you'll still end up making either your investors or your landlord rich. Do it right and you get rich too.

But then you're often still perpetuating the system by then employing people who work making you rich.

Start a cooperative, forget about being rich and seek the fulfillment of all its members.


I've often thought about the possibility of designing a company specifically to maximise the wealth of its employees. Choose a location with a low cost of living, give equity to all employees, maybe provide accommodation / food as part of the benefits package.

I'm not sure if I'm describing a cooperative, I just know that most normal companies do the exact opposite of this: they force you to live in a high cost area where you spend a large proportion of your salary on housing and other living costs.

I know there are plenty of good reasons why humans have decided to live in cities, but I can't help thinking there's a better way.


>I know there are plenty of good reasons why humans have decided to live in cities, but I can't help thinking there's a better way.

The fallacy is in believing you can't have both a reasonable cost of living and the benefits of a city. There are plenty of such places, globally. As more and more people realize that it's unnecessary to assemble in specific places I think we'll see a sea change. Programmers are going to be some of those most able to take advantage of it (they already are).


It would be cool if you could expand on this. Do you live in one of these places?

I'm also wondering when there's going to be a sea change. London is full of people in their 20s spending ~50% of their income on rent, and pretty much just breaking even overall.

I feel like people are going to get sick of this eventually. Either people will leave the most expensive cities, or new ways of "hacking" housing will emerge.


That's basically the point of most law and financial firms (at least when they start out). Until it went public (and still to a large degree), the whole point of Goldman Sachs was to make its' employees rich.


I guess you could say it's also the point of most tech startups, but only for the founders and the first few employees.


You know this cooperative(aka socialism :) sounds good on paper but it does not work most of the time in real life.

If someone takes a risk to build something valuable, he/she deserves to get rich.


Paying people the same value they contribute is not socialism. It's called: Being a good person.

Capitalism seems to have made us all think it's completely okay to exploit someone else's surplus labour. How is the risk the founder takes that different to Employee #1's? Their payout is usually vastly different, but their contribution not so much.


> Paying people the same value they contribute is not socialism. It's called: Being a good person. <

I am sorry but the whole disagreement is on what value a worker contributes.

According to Capitalism and Capitalism supporters, a productive activity is the sum of (Land/raw materials + Labor + Capital). Capital is nothing but deferred consumption. If you don't consume what you could consume, then that constitutes as capital.

When you say that Capitalism exploits another's surplus labor, what you don't understand is that the Capitalist pays for that surplus labor via capital (or time). Any worker in Capitalism is entitled to the full share of the profit as long as he does not expect wages to be paid out immediately, and that he is willing to wait until the profits pour in.

Because most labor is paid immediately, and workers have no risk or delayed consumption, they don't get the share from the profit.

Karl Marx noticed this phenomenon, but was unable to understand the role of Capital(and yea I know he wrote a whole book on this concept). To him, careful inspection revealed a 'conspiracy theory' among the capitalists which he dubbed as class struggle and class interest.

> How is the risk the founder takes that different to Employee #1's? < When you compare the risk of the founder vs risk of the employee #1, it is the matter of how much capital is on line there. Clearly the risk taken by someone who has invested $1000 is less than the risk taken by someone who has invested $10,000 into the same venture at the same time.

Funny thing is when people talk about a cooperative, it's no different than an early stage equity startup where nobody gets paid a salary. The moment a cooperative pays salary before the revenue, it will need capital and the person providing the capital would deserve a bigger share from the profits.


> Karl Marx noticed this phenomenon, but was unable to understand the role of Capital(and yea I know he wrote a whole book on this concept). To him, careful inspection revealed a 'conspiracy theory' among the capitalists which he dubbed as class struggle and class interest.

You possess an either infantile and misinformed understanding of Marx, or you're just being ideological here. Have you read Capital? It's not just one book. Marx very well understood the concept, role, and agency of capital. His careful inspection did not reveal a conspiracy theory; instead, it elucidated the ways capital influences our material existence. There was no conspiracy among capitalists, only naturally flowing consequences of capital's impact on the material bases of society.


> You possess an either infantile and misinformed understanding of Marx, or you're just being ideological here.<

I don't understand what is offending you so much here. I am claiming that Marx does not understand Capital, and just because he claimed to have analysed the role of 'capital', it doesn't mean that he 'understood' it. A christian biologist writing about the role of fossils doesn't mean he understands it.

> His careful inspection did not reveal a conspiracy theory; instead, it elucidated the ways capital influences our material existence. <

Did Marx not say that the employer is able to claim a right to 'surplus labor' because the capitalist class (state being one of them) protects this right(property rights)?

Does he not claim that almost all property is acquired via theft and coercion of the labor class? I understand that conspiracy theory is a loaded term, but his idea of 'class interest' is nothing but a conspiracy theory. That somehow all the capitalist are conspiring against the workers, without being explicitly aware of it.

Karl Marx did not understand that Capital allows production but doing division of 'labor'(used here to mean 'tasks'). Workers don't need to invest their time in the production process, and wait for the revenue of a business to pour in, while a person specializing in saving, does the job of providing the wages.

That this is a necessary factor needed in any economy and it's impossible for any society (including the one recommending by Marx) to live by not having division of capital accumulation from labor.


> I don't understand what is offending you so much here.

Why are you assuming I am offended? I'm calling out your erroneous claims of Marx's work as either misunderstanding or ideology. I'm not in the slightest bit offended. Your clarifications haven't moved the needle on being unable to determine if you're being purely ideological, or if you're infusing ideology into what is, fundamentally, a misunderstanding of Marx.

> I am claiming that Marx does not understand Capital, and just because he claimed to have analysed the role of 'capital', it doesn't mean that he 'understood' it.

Just because you think you know what Marx says, and because you have a couple of his terms in your head, does not mean you understand Marx.

You are claiming that you understand capital better than Marx, who devoted 25 years to analyzing and explaining it--particularly insofar as it relates to the material conditions of our existence, and how it informs, produces, and reproduces the social, economic, cultural, and political structures of human society. Considering the vast breadth and depth of Marx's work, that is a very bold claim to make. You can certainly disagree with the more philosophical and political conclusions Marx draws from his understanding of capital, but to make a blanket assertion that he simply does not understand capital is something that requires an incredibly strong argument. Even Marx's detractors do not make such wide-sweeping, hand-waving claims as "Marx doesn't understand capital". They typically disagree on finer points, many of which have more to do with the material ramifications of capital on political economy and social structure.

> A christian biologist writing about the role of fossils doesn't mean he understands it.

Please. You're creating a ridiculous argument here.

As an ignostic, even I wouldn't say the religion of a biologist is inherently relevant to determining whether or not that biologist understood the role of fossils. There are plenty of Christians who do not find their faith at odds with the scientific consensus on evolution and the fossil record. If you read the biologist's writing about the role of fossils, and it accurately describes the role of fossils in accord with the greater body of scientific work on the matter, what exactly does the biologist's faith have to do with determining or proving anything? Sure, it might be worth considering as a signifier of a certain probability of misunderstanding based on factors external to the biologist's own work, but it's sounding like you're giving automatic preference to a non-Christian biologist's writing about the role of fossils for absolutely zero reason. The non-Christian could be a complete imbecile who winds up on the History Channel shouting, "Aliens!" You're making errors based on a loud segment of Christians who reject the science of evolution, and automatically applying their ignorance/misunderstanding/ideology as something that the Christian biologist shares. That's foolish.

---

Anyway, this is really an irrelevant tangent from a thread that was asking about people being happy programming. Although, Marx might find it rather relevant, as there is quite a bit of voiced discontent that he'd categorize as expressions of alienation. The labor of the many is transformed into the capital of the few. Dialectically speaking, it's a struggle of contraries that co-exist with different interests. Labor has nothing and its members are required to sell themselves to subsist and exist. Capital has everything, and is motivated to keep as much of that everything as it can, while expending as little as necessary to further increase the share of everything it has as more of everything is produced by those who have nothing. What does labor get in return? Nothing but a wage that is (ideally) as low as possible to prevent them from leaving the workforce (and certainly not enough to permit capital accumulation by the laborers themselves). Moreover, those with capital are additionally motivated to protect this arrangement that they might continue to profit off those who sell themselves to subsist and exist, so that those with capital do not have to work.

> Did Marx not say that the employer is able to claim a right to 'surplus labor' because the capitalist class (state being one of them) protects this right(property rights)?

You're somewhat confusing categories and their relations here. Surplus labor is that labor which is demanded of and performed by a worker that exceeds the labor necessary to pay for her wage. In the majority of cases, surplus labor is unpaid. It is a necessary condition of increasing capital through profits, which is most simply the extraction and control of the surplus value created by workers in excess of their labor cost. The capitalist appropriates this surplus value when the products of workers' labor is sold. Marx goes further to argue that capital accumulation is the condition that drives production--when production ceases to be profitable for the capitalist, capital will eventually be diverted elsewhere, withdrawn from the unprofitable enterprise, etc. There are, of course, absolute and relative surplus values, but suffice to say that capital accumulation is the driving force of the capitalists. Private property is that legal protection that is based on a history of convincing people that objects were only useful and valuable if they could simultaneously possess them use them for themselves. It has nothing direct to do with surplus labor, but is instead used to establish and defend the private ownership of the capitalist means of production, and thus the claims to surplus value and capital accumulation. If you cannot understand how this accurately reflects the workings of capital and capitalism, I'm simply not sure how we can get you past your ideological lens.

Marx does not argue that "almost all property is acquired via theft and coercion of the labor class". At least, not in such a crudely simplistic way as that. Profits are acquired via alienation and exploitation of the labor class. In earnest material modes of existence, property didn't exist until those who were more powerful began staking and defending claims on the products of others' labor--so that they themselves would not have to labor. This has continued a circuitous and tortuous route through human history until our present age in which we've codified these practices into centuries of legal trappings that convince everyone it is good and right, and entirely fair and above-board. Or so Marx might loosely argue.

The notion of class interest is no more a conspiracy theory than the capitalist narrative that labor and capital work hand-in-hand to create a better tomorrow. Class interest is trivially easy to spot and demonstrate--both in Marx's time and our own (and far back before both, as well). Look at pg's now-infamous essay on income inequality from the start of the year, and his vociferous critics. Class interest on display in both. The capitalist 'class' is inherently motivated to protect their interests and see them expanded. This is not some insane idea that requires tin foil hats, or the ravings of a lunatic. Marx doesn't exactly argue that the capitalists are inherently conspiring against the workers. Just that they are guilty of accumulating capital from surplus value that is the product of surplus labor for which the workers have not been compensated, and the capitalist does not own.

> Karl Marx did not understand that Capital allows production but doing division of 'labor'(used here to mean 'tasks').

This is how I know you have no serious understanding of Marx and his work. Marx has most certainly written of, categorized, and fit division of labor into dialectical materialism and his explications of capital and its place in human society. Exhaustively.

> Workers don't need to invest their time in the production process, and wait for the revenue of a business to pour in, while a person specializing in saving, does the job of providing the wages.

The wages are not provided by a person who specializes in saving. They are provided by the capital accumulated from the surplus value appropriated from the workers' own surplus labor, for which they are not compensated, Marx would say. Wages come from the revenues of the business. If there are no revenues, there are no wages.

You seem to be making a number of simple mistakes here that are perhaps related to misapplication of your understanding of working in tech/startups to the role of capital. It's a pretty easy set of mistakes to make, but it seriously would require a lot of discussion to even try to completely straighten all of this out. Marx is almost universally misunderstood. Even among those who understand him better than most as a result of spending years studying his vast body of work, there is still disagreement on how to properly understand him. It's the nature of such a prolific beast.


I'm fine with this, as long as the risk/reward ratio is equal.

Maybe each employee has to donate credit to the company for expenses if they don’t have the cash?

I started my company with bank loans and credit lines. If it goes bust, it's my reputation and I will have to pay back the money.

If someone isn't willing to risk this as well, they aren't an equal partner and shouldn't share equally in the reward.

Some people aren't willing to risk this much, yet still want to contribute. They are employees.


You misunderstood me, I am not saying you should exploit your workers, pay them fair wage. What I am saying is that founder who took the risk should enjoy the fruits.

> How is the risk the founder takes that different to Employee #1's?

Employee #1 will probably be getting a salary, if the company fails he can get a job somewhere else. Meanwhile the founders who worked on the idea probably used their savings initially not to mention quitting their jobs and working on the idea and facing humiliation if the company fails.

That takes courage which everyone cannot do which is why founders deserve to get rich if they build something valuable, employees not so much unless they are willing to stick it out till the end.


>What I am saying is that founder who took the risk

Please describe what "risks" the average high-flying tech startup CEO has taken.


I am not sure what you mean by the high flying CEO, I am talking more from the founder's side who puts his money and time on the line. Take Musk as an example, he invested most of his money in Tesla and Space X and both the companies came close to bankruptcy.

Those companies and many others will not work as a cooperative.


Why not?


Because most people who will be working in the cooperative are sane and will bail out if things get tough. You need a crazy founder to take enormous risks.

Just look around you, most of the tech titans are founders who took risk, can you give examples of tech cooperatives which are equally famous?


>if the company fails he can get a job somewhere else //

Because it's so hard to adapt CEO skills to the jobs market? Whilst peons can pick up a low paid job and should just lap it up and be happy about it??

If the founder is taking a risk running the company then the employees are taking a risk working there; their risk is often as great, the chance to lose one's livelihood.

To my mind a guy in sales that wrote up £1 million of orders in one days work and a guy in janitorial that cleaned the toilets all day both did a days work and both deserve a days pay - they're both humans who gave a day of their lives to the purposes of the company.


The founder is also putting his money on the table while the employee is not. The employee can just say no to working in a startup, nobody is forcing him to work there.

The janitor should be paid the market rate, nobody is denying that but he should not expect to get rich via the company


As someone who extremely capitalist and believes in free markets, I don't believe cooperatives are inherently socialist.

In a free market people are free to create their own ownership structures. If people want to setup up a company, and distribute equity equally to employees that's completely up them


The problem is that risk has become an absurdly exponential factor of increasing wealth where hard work is at best only additive. Risk should not take the value that you provide and raise it to the power of 10 just because you might have failed.


For whatever reason, society seems to value risk-taking 10x more than it values work. Just look at the replies in this thread. People are actually arguing that founders deserve their megawealth because at some point they risked something, and that employees do not deserve it, regardless of how much they work, because they didn't risk anything (although I would argue that employees #1-4 risk a hell of a lot more than most founders).


> I would argue that employees #1-4 risk a hell of a lot more than most founders

How can it more risky for first four employees?


a cooperative is usually not really about socialism. they just have members instead of shareholders. there are big banks structured this way.


> Your time and effort is going towards making someone else rich

I don't mean to harsh but I don't understand this sentiment. Will any serious company exist if everyone thought like this? Why would a builder put another brick if he thought he is getting paid very less compared to million dollar building he is creating? Will any sales guy put so much of effort if he thought he is getting minisicule % of what he is selling?


Yes, lots of serious companies would (and do) exist; they're called worker-owned cooperatives, wherein all members of a firm share the risk and reward/of running the business, instead of one or two individuals paying themselves an arbitrary "risk premium" that workers have no say over.


> Even compensation wise, it peaks very early and probably won't get most rich without a ton of luck. Its depressing to make comparisons, but 99.9% of developers will never make half of what a specialized MD or successful lawyer or someone in finance might make. Granted, the barrier to entry is much lower in CS (sometimes nearly nonexistent depending on the line of work).

Med student here. Programmers don't have to take out 200K in loans. Also, when you do something like medicine, you're basically giving up a DECADE of you life before you actually start making the big bucks. Residents make less than the average programmer. Med students make negative $$. Debt compounds.

But seriously, if that's what you want, stop romanticizing and just do it. Though I have to say, do law school. Doctors that became doctors for the prestige and money are really the worst.


There a many countries where you don't have to borrow a single cent to study medicine. Instead, you even get paid a small support every month.


That's true. I have heard that in these countries the docs typically don't get paid as much, though I don't have a source for this.


That's somewhat true, but they are free to go wherever they want to.


>Even compensation wise, it peaks very early and probably won't get most rich without a ton of luck. Its depressing to make comparisons, but 99.9% of developers will never make half of what a specialized MD or successful lawyer or someone in finance might make.

Software engineers in Finance can make a pretty good living though. Definitely not as high as specialized MD or M&A specialists, but rivaling some successful lawyers for sure. Then again even for people with top business degrees M&A is a top tier which takes quite a bit of luck to get into. My 2c.


On average, the people really are incredibly boring, especially at large companies.

I wrote a post recently that is tangentially related to this. Don't want to shamelessly plug myself, but I think you might enjoy it:

http://likewise.am/2016/01/22/more-lessons-from-my-twenties-...


You are less than 3 years into your career, and you think you have worked for some of the best companies, and yet you are unhappy. How do you know you have worked for some of the best for you? You are going by names.

My guess is that you are talking about hot valley companies, and guess what? In those, someone with little experience will not get to work on anything fun, because they have enough talent that almost everyone is batting below their weight. You see similar things in startups where there is no challenging technical component to the business: If all you need to do is scale an app that is just a bunch of forms, then guess what? it will be boring. Go work at a company that is doing science instead, and then tell me it's boring.

You complain about compensation peaking early, as if that's a bad thing. In the US, 300K is not insane for senior devs, and that doesn't count miraculous exits. Many doctors don't make that, and they had to pay for a lot more education, and handle the terrible life of the resident before they can get to real money: And let's not forget, the top of the market for doctors involves getting your own practice. How long does it take to save the money, and have the name, for the practice to be that profitable?

There are a lot of people with law degrees that wish that, at 45, they made the money that anyone with a breath makes in SV when they are 22.

I have seen finance: You don't have a life when you work for a big hedge fund. Not even close.

And let's not forget, you don't have to live in San Francisco to get paid very well writing software. I have a 4 bedroom house that is worth about 200K. I work from home. It's not hard to amass major savings when you don't have a $5000/mo mortgage. And if I am sick of the place, I can spend a month working from Puerto Rico, or an island in Georgia, go to conferences in Europe. How many doctors can say that? How many lawyers? And I am no early googler: I have never made a dime in equity.

As far as people being boring: Different people have different ideas of boring. For instance, I find the classic "I work in software, but look at my unique outdoorsy activity" profiles that most of SV seems to follow to be very boring. Yes, you can enjoy your rock climbing, or your kayaking, or whatever else you do, but it's not something that is really any fun to hear about: People with different activities like that just get to vomit information onto the other. At the same time, many people find the things I do, like reading literature, history and philosophy, to be boring as hell. There's nothing wrong with that.

Also, in America, we hide the things that might make us interesting, different from the crowd. When instead of belonging, we try to fit in, we do what everyone else does. For someone to be really interesting, they have to be different. To be different is to take personal risks of being disliked, because what will make you interesting for one person will make you a weirdo to another. In my experience, the more you get to know about someone, the less boring they are, precisely because of all the little things that we couldn't see before, when all they were to us was a role at a company and some clothes.


Be realistic. 300k a year is waaay above the median for senior dev salaries save for a few very specialized niches (fintech and biotech spring to mind).

This is exactly the kind of misinformation that makes newbs to the industry think they're gonna be rich rockstars programming... stop it.


$300k? Where? How? While I have metric-tonnes more to learn, I'm a senior developer. I write and maintain (with our team) the main services (it used to be _all_ the services before we grew) at our SAAS providing 10s of millions in revenue. I make less than half that.


I don't think this invalidates your argument, but your assumptions about my work choices are completely wrong. I have almost always been the youngest person at offices dominated by scientists and mathematicians. Most of my work before graduation was at a national lab in condensed matter physics. I joined my current job as the 7th hire because the team is mostly comprised of math and EE PhD's from MIT and Berkeley. I'm not working on creating "forms" that "scale". Its all data science and optimization models/machine learning and the related engineering.

At the end of the day though, the business isn't about how much you are learning and any early stage start up is going to conduct R&D based on short term returns. If I could work somewhere like Voleon, I might have greater freedom, but I don't have an advanced degree to get a foot in the door.

I agree about traveling. That is one of the only things that continues to excite me. I spent several months working remotely and plan to continue doing so once this company starts to get revenue (if ever). That's certainly one freedom working from a computer provides that most other occupations don't get to enjoy.

That being said, at the end of the day, its just work. And thats fine. Thats still better than most jobs. But this line of work has a relatively low ceiling (in terms of job satisfaction, not compensation) if you want more and I feel like sticking too it makes it only easier to accept that ceiling. Maybe this is too strong, but it almost feels like giving up and settling for something easy/cushy.


Thank you for pointing out the fact that software compensation peaks early, and you pretty much hit a ceiling unless you win the startup lottery. A lot of people see the early money and forget this. As a software developer, 20 years into your career, your buddies that majored in finance, marketing or anything else, really, will likely have eclipsed you in terms of compensation, as they'll be senior directors of this or vice presidents of that.


There's not enough director or VP positions in the world for every buddy out there.


Tell that to my buddies :-)


> but 99.9% of developers will never make half of what a specialized MD or successful lawyer or someone in finance might make.

It is exactly the other way around. Mark Zuckerberg is a PHP programmer, not an MD or a lawyer. Same for Bill Gates, Sergey Brin, Larry Page, and another host of lesser known billionaires and millionaires. In other words, an MD or a lawyer could impossible make what a successful programmer might make.


You're talking about the 0.1% of programmers who became millionaires and billionaires. The parent comment was specifically about the other 99.9% (and he/she even specified the number).


If you miss excitement, social connection, and orders of magnitude higher compensation cap in your life, while you still like coding, then I suggest you consider sales. Not just technical sales (though that gets your foot in the door), but eventually landing strategic sales accounts. It is pretty thrilling cold-calling people to establish your bona fides with a new customer; only a tiny fraction of the population finds it and public speaking (which you will also be called upon to perform in sales) not paralysis-inducing terrifying. You have to genuinely like people and be interested in them to really excel at sales. At the high-end of sales, where you lead sales organizations, sales-metric-based compensation plans will easily exceed that of nearly all programmers save the ones exiting unicorns with founder-level equity positions intact. You are constantly learning both technical and non-technical subject matter. There are grind-y parts, sure (every job has that), but I've never seen in sales the kind of grind programmers routinely endure.

Once you establish a successful sales record, you wield enormous influence upon product direction and implementation. If you keep your coding chops up to that point, then it is not inconceivable for you to be able to throw your weight around and pick and choose both what to code and actually implement it. Of course, if you aren't good at coding, then the engineering lead will continue to hate your guts. They will all hate your guts at first regardless of your skill level and ability to smoothly work with their teams, but if you are really, really good you can earn the respect of most after awhile.

Very good sales people who are still top 20% coders are an extremely rare combination. It would be difficult NOT to stand out in the crowd. That's good and bad.

The Great Filter in my suggestion is getting out and meeting people trying to connect with them. There are lots and lots of programmers, even "brogrammer"-types, who claim they are very extroverted, etc., who I find will freeze when faced with a list of contacts or a room of strangers and tasked with establishing connections. The vast majority of people, extroverted programmers included, are extroverted with people they know; it's human nature. Of those who can manage to overcome that nature, even fewer will come back with a systematic collection of facts and data about their contacts that you can work with as the start of a sales funnel. Of THAT population, even fewer will actually follow through the sales funnel. Out of THAT, anyone who can continue following up prospects and re-running them through a sales funnel under different campaigns is a unicorn. This is why sales is often broken up into pieces and parceled out to different people. But programmers possess a systems-thinking background that uniquely positions them to excel at sales if their personality really fits it.


Why do you think most developers should be paid similarly to a highly specialized doctor?

First of all, you might be thinking of doctors like neurosurgeons. Less than 1% of practicing physicians in the US are neurosurgeons, and some neurosurgeons make as little as $250k (often ones with special academic appointments). Not all of them make $1M/year or even $700k/year.

Second of all, you might in general be overestimating doctor compensation. See this report:

http://www.medscape.com/features/slideshow/compensation/2015...

Primary care doctors earned an average of $195k in total compensation. Half that is $97.5k. There are many developers who make more than that -- certainly far more than .1% of developers. That is, in fact, the median pay for software developers:

http://www.bls.gov/ooh/Computer-and-Information-Technology/S...

Granted, you did say specialized doctor, and we see from the MedScape report that they make $280k on average. Half of that is only $140k. There are fresh college graduates who make more than that in total compensation. I've even known relatively new developers making $250k once bonuses and vesting stocks are taken into account. Either way, $140k in total pay is not uncommon at all for an experienced senior developer. Again, certainly far more than .1% of developers are in that income bracket.

Finally, and perhaps more importantly, I think you might underestimate the difficulty of becoming a specialized doctor. It's certainly much harder than becoming an average programmer. The educational requirements are vastly higher and more rigorous. The debt load is in the six figures for all but children of the rich. And the time investment is at minimum 11 years (4 undergrad + 4 medical school + minimum of 3 residency). But since we're talking about specialized MDs, the residency will actually be longer than that, as long as 7 years for a neurosurgeon, plus an extra 2-3 for a fellowship if desired. After all that, the doctor will potentially work twice as much as the programmer.

It's not fair to compare the average heart surgeon to the average programer, because the heart surgeon is by definition vastly above average among doctors in both education, grades, and pay. It would really only be fair to compare the heart surgeon to, say, a senior engineer at Google (or similar), where a total compensation exceeding $250k is common.

As for lawyers, many law school graduates I know don't even have a job. The days are long gone where a law degree was automatically a golden ticket. It's certainly true that the top lawyers make a large amount of money, but becoming a partner (say) at a large firm is just not comparable to becoming a programmer. These days, it's like winning the lottery.


They never said programmers SHOULD make as much as doctors (or lawyers or finance).


Why feel depressed about it then? The statements were also factually misleading -- (far) more than .1% of programmers make more than half of a specialized doctor on average.


Move!

Here's the thing: I love programming, I've been working has a web dev since I was 18 (34 now), but I always loved design and creating desktop apps. And recently I've been learning Swift and mobile design.

This year, the startup I was working with went bankrupt, and I just dive into depression and self-confidence as a developer. I couldn't stop thinking to myself: "oh no, not again all those web dev interview processes and more JavaScript, PHP code..."

I got burnout of web dev, I just couldn't see myself doing it any longer. I hate JavaScript and the whole current ecosystem, it's a fucking mess, I don't want to have anything to do with it. PHP bores me to death, it's getting more and similar to Java syntax. Traditional web apps are dead. Everything is an API with a frontend-app, and that's fine, but I'm done.

So I decided to move, I'm now learning design, UX, Swift, iOS. And I'm loving it. The creativity and motivation spark are back! I feel so free, the web was a burden to me, a constant pressure to keep up with frameworks and trends.

So before you quit, think of moving to something different. Learn a new paradigm, try something different. Tired of C++, learn Ruby. Tired of Ruby: Learn C# and Unity 3D. Tired of the web? Try building an iOS TV app.


I'm just the opposite - I was going mad making microservices with C# and have jumped ship to being a full stack webdev guy. I love JS, it feels so freeing and easy after working with such a heavy compiled language (I still like C# though). I really enjoy doing front-end work and I feel that I can utilize my creativity in ways I couldn't working on the backend exclusively.


I just spent 3 years out of college doing C#, and while it is my first real 'love' in terms of language, I'm doing some JS/Python work now and thoroughly enjoying it.

C# is great when you know what you want to build already, or have more than a few people working on the same system. But it hurts more than helps with exploratory/experimental work, or when you're just 1 or 2 guys doing the same.


How did you get into JS? I have avoided throwing myself into the "front-end" because I feel like I don't have any artistic bent and I don't enjoy pixel pushing.


I pushed for a project at work for months. Practised JS/web dev for about a year before that - when the time came I was ready. I go to a lot of JS meetups and I'll be speaking at my first this month!


> I got burnout of web dev, I just couldn't see myself doing it any longer. I hate JavaScript and the whole current ecosystem, it's a fucking mess, I don't want to have anything to do with it. PHP bores me to death, it's getting more and similar to Java syntax. Traditional web apps are dead. Everything is an API with a frontend-app, and that's fine, but I'm done.

I fear I'm on this path. PHP is dead to me. I also hate the JS ecosystem and I'm not fond of JS as a language in and of itself. I loooove Ruby and doing the backend of Rails site. Sadly, frontend is the new backend and JS takes up a larger and larger percentage of my Rails apps.


I went from PHP to Clojure and it was fun.


> I also hate the JS ecosystem

Why?

> I'm not fond of JS as a language in and of itself

You could use one of many languages compiled to JavaScript.


I'm in the same boat right now, going to what my brain finds interesting.

Was a hardcore Microsoft shop C# .NET dev. Going full NodeJS/Javascript dev now and learning design and UX (very therapeutic, like a coloring book).


Been programming for 32 years 25 of which professionally. I never had a job as such; I always started companies based around tech of which I was the lead coder/CTO and it gave me a great life. I have other hobbies but I love coding and find it hard to imagine living without it; the creative process, the making of something that did not previously exist, the idea that you can make something without any funds; be it with or without money. If everything fails today, I can start another company tomorrow without spending any money. I do not know of another field where that works like that.

I still get happy when something I worked hard on works and even sells.

That said; I would not work in circumstances some here work in; commuting for hours a day, glueing together crud apps, tons of stress and no upside besides money. I always say that if you are a decent programmer you do not have to do any of that. Unfortunately people do not like to take risks and apparently working like a dog makes them feel better.

In short; 10/10 happy coding more than fulltime for over 30 years. Hoping for at least another 30.


What sort of companies / products did you build? How did you first start? Did you sell the company, or is it a revenue generating model? How did you support yourself while building the company?


My first companies were all services companies so they immediately generated reveneu and were thus easily bootstrapped. I believe it was easier begin 90s to 2000s to do that though. With that money and also during that period I started building products: a dating site, a CMS, a freehosting OS and large freehoster, a POS for grand cafe's and some niche LOB dev products. I sold all of those after running them for a while; in the end they were all very profitable and fun because of the diversity. The company formed around the CMS grew to 300 people in the high times. That I did not like at all so I quit as CTO and opened the R&D dep of that company with 2 colleagues.

Currently I'm working on the hardware and software for a smart credit card while I have a services company to offload work to and do work for other clients.

Services still work well as bootstrap; first do some freelance work in a client office, start discussing working from home when the trust has been built, start suggesting to get more people on board when it gets busy. Before you know it you have a small team and you can start cloning that process until you have enough portfolio to do less intensive sales. You will never run losses: quite the opposite. When your team takes over enough you can work on side projects if you want to.


Been coding professionally 37 years. Started as a self taught video game developer back in the Apple II, Commodore era. I loved it at first. University had me working at a 3D graphics research lab with Mandelbrot himself, later on I was an OS developer for the 3DO and the first PlayStation. I worked on tons of high profile video games, and later transitioned to VFX for film, and worked on a ton of popular blockbusters. But the thing is: I love the work, but the management of software development is stone age voodoo and witch hunts, deceptive management, and psychological manipulation. Our career is create on demand on schedule. It's a recipe for stress and burnout. And I burned out. I returned to school, got an MBA (2nd in my class) and found that no one would hire me because my technology past was "too exciting" and "I'd never be happy with what they do". But that is exactly what I wanted! I even tried not including my previous "exciting" past work, but that read as either an unemployment hole or was figured out with a Google search of my name. I had to eat, so I returned to developing. I created a startup for my technology passion (www.3D-Avatar-Store.com : neural nets that 3D reconstruct people) and now work in facial recognition. All the things I love and hate about the career at still there. If I could do it all over again, I'd have thrown that temper tantrum at 17 and gone to animation school rather than a normal university.


>>> Our career is create on demand on schedule.

Spot on. Lately, I've started questioning if agile development isn't the worst thing that has happened to my overall happiness :)

Waterfall had severe drawbacks, but in any reasonably sized organizations, you'd have a lot of time on your hands in between projects, QA testing and acceptance testing. I still miss being able to hack on small stuff on work time without anybody breathing down your neck.


I wouldn't want to go back to waterfall, but my experiences with "on demand on schedule" (a very astute phrase, that) have caused me to realize it did have advantages.

Good software usually doesn't result from massive upfront requirements analysis, design, and scheduling, and the iterate and repeat approach has huge benefits (provided you've done some planning about where you're going).

However, waterfall did have one big advantage, in that it forces the business side to be clear about what they want. This is an impossible and unfair task, and of course the business side will need to change, amend, modify, limit and expand scope, and so forth. The advantage is that it's unfair to everyone. I know this will sound terribly cynical (and every time I say it, someone asks, not unreasonably, "why do you even work where you work!?"), but waterfall is a contract that puts everyone in breach. The all too common corruption of agile turns into a situation where only the developer is failing to make deadlines or deliver on promises, with a daily standup reminder of this fact.

I'm only partly cynical here. Software is a big, confusing, chaotic mess, and that's ok, it's the nature of the craft. However, people, especially on the outside, get frustrated. I think that the business side perceives the impossibility of truly estimating and planning software better when they try (and fail) to do waterfall. It puts them in the position of coming to the developer or technical team and saying "sorry, I know we sent you those specs, but it isn't working, we need to change our minds." With (corrupted) "agile", they are cleared of this responsibility, and they can just show up every day (or every few days), think about nothing but a very specific task, ask the dev for a time estimate, and then wonder why it hasn't gotten done (yet).

When agile works well, it's when the entire team is ok with measuring progress by the value of working software, released frequently. Those have been rare occasions for me, but that has been the best experience, the happiest one, for me. Corrupted agile has been the very worst. Waterfall is somewhere in the middle.


>> , in that it forces the business side to be clear about what they want.

+1000, business analysts? I haven't seen a business analyst in 10 years.


> If I could do it all over again, I'd have thrown that temper tantrum at 17 and gone to animation school rather than a normal university.

Is animation that different? It's also "create on demand on schedule".


Animation tools do not go obsolete as quickly as software frameworks, so an expertise can develop that far exceeds the expertise we can develop because our OS/language/framework foundations turn over over three years. Plus, in animation one is dealing with story telling; much more satisfying than the typical software project.


I believe he means that doing the MBA had no effect. Might as well try something interesting even if ending back in the same place.



Can't complain. Great company. Constantly wondering if I'm good enough to keep my job, though. I'm trying to prepare for that day I'm told, "Let's talk. We like you a lot, but we've decided to let you go. If you need referrals, let us know." I mean, everyone says I'm doing well. I just don't feel it, so I work a lot more than I probably should, and I'm always ridiculously paranoid. I'd say I'm happy but I'm worried. I bet it's more common a combination of feelings than I think. The funny thing is that the company is full of really nice managers who keep it honest (as far as I know), and would tell me if I'm under-performing. I'd hope so, at least. So I guess so far, so good.


> Constantly wondering if I'm good enough to keep my job, though.

I wonder this quite often too. It would be interesting to see a study involving programmers and their confidence in their skills compared to what other people think and also how much they read about programming online.

My gut instinct is to say that because we want to read a lot of new/interesting stuff online, we're exposed to (seemingly) tons of people who know TONS of things that we don't know in the aggregate, so it affects our self esteem...


I'm surrounded by the people we read material from, the guys who write it all. I try to learn everything I can from them. I'm just hoping I can express a level of competence that enables me to keep my position. The longer I can keep it, the more I'll learn, the better I'll be a year from now and after.


Are you aware of imposter syndrome? https://en.wikipedia.org/wiki/Impostor_syndrome

You may not be up to your job, but probably more likely it's that.


Being aware of it does nothing to remove the certainty that at some point the people you work with are going to turn around and tell you to go home and never come back. Just as soon as they realise you're worthless.

The most interesting thing I've seen written was on here, pointing out a problem in the logic. "If they haven't noticed you're as stupid as you think you are, they themselves must be even stupider. Therefore imposter syndrome at some point requires that your colleagues are morons, yet if you believed that you probably wouldn't feel as inadequate."

Alas my brain still believes.


Especially as I went from "on my own" to working with a team of f*cking brilliant people, I had some serious self-doubts. We instituted a review system that includes anonymous peer reviews, and it was insightful to see what others felt I was both good at and upon what I needed to improve. Seeing what others value in me helps me realize that, while I have so much to learn, I am providing value not only to my employer but also my team.


> "If they haven't noticed you're as stupid as you think you are, they themselves must be even stupider."

Ah, the old "I'm not ok, you're not ok" section of the OK Corral[1].

[1] http://changingminds.org/explanations/behaviors/ok_not-ok.ht...


Quite the same problem here, I also think I'm under-performing. Doesn't help that I'm on HN instead of working


Second-guessing yourself is a good sign. As Michael Atiyah said, "Only the mediocre are supremely confident of their ability. The better you are, the higher the standards you set for yourself."


Can you share that file? Seriously, please.


It was the easiest and highest-paying job I've ever had. Unlike previous jobs where I had to be at work somewhere between 5am and 7am, I never had to had to be in the office until 9am. I regularly solved interesting problems, and I could go home after 8 hours without feeling exhausted. I had a regular schedule, and never worked more than 5 days in a row.

This is all past-tense, of course. It paid enough for me to work a few years, then take several years off to pursue a master's degree.


I started learning how to code at 14 when my parents bought me a Sharp MZ-700 instead of a C64 like I asked (I guess the salesperson had a better commission on that!) and since there were basically no games I had to write my own, that was about 30 years ago and I've been programming ever since

I still love coding, getting in the zone, learning something new, in general the feeling of being able to make the computer do what I want it to do, and I am still good at it, but career wise it's getting to be not nearly as fun anymore, since as the years go by it's a smaller and smaller part of my day, being pushed more and more into team leading and endless scrum / standup / grooming / planning / ... meetings, having to deal with politics and so on.

The money is definitely much better now than it used to be, but I would honestly take a 50% pay cut if I was able to just deal with the code working at home, I am a fairly frugal person and wish there was something like basic income so I could just spend my days programming on projects that interest me. You don't see musicians being forced to become conductors as their careers progress and being given less and less time to practice their instruments, why is it that we developers often end up doing that?

Unfortunately I don't have an entrepreneurial bone in my body so I am really not sure how to get from where I am now to where I'd like to be, and I am sure I am not the only one in this situation.


> I would honestly take a 50% pay cut if I was able to just deal with the code working at home, I am a fairly frugal person and wish there was something like basic income so I could just spend my days programming on projects that interest me.

You're not the only one. :)


sometimes I wish that all these software-made billionaires instead of buying the n-th yacht or mansion set up a fund where you could apply and get to work on open source projects at reasonable living wages, sort of like a "basic income for coders" basically.

Pipe dream, I know, one can always dream though, I definitely envy artists / craftsmen that can live off their work, but I don't see that possibility for us programmers as it's not like you could open a "virtual shop" with code you worked on on your own because it interested you and people could see and "ohh, this distributed database election system by teatraodonpuffer looks nice, what's the sticker price? sure, I'll buy it"


Well, this weekend I'm particular happy. A private equity guy in NY paid me $150 an hour to 'learn PHP immediately and fix his site.' He paid me for all 48 hours because he assumed 'I ate, drank, are his job the whole weekend.' I told him it was too much, I usually charge $100 an hour. He said he hopes I'll be available whenever he needs me. Best believe I will.


Reminds me of a time I was Skyped at 4 AM by a previous client who needed my help. Told him it was 4 AM in my timezone and I was well past when I needed to sleep. Offered an hour at double my usual rate for 10 minutes of work, you bet I was wide awake.


Yeah, in my case, ithe work was very very simple. Slightly tedious because I had to type up lookup tables, but once I familiarized myself with php, it didn't take 5 hours.


I'm a programmer who doesn't really get to program. I work for a consulting company. Most development work is off-shored, which means most roles for UK staff are more client facing.

Right now I'm building a web front end for a bloated piece of enterprise software. There's no technical difficulty, it's just frustrating and boring. I can't leave to work in 'proper' software development because I don't have the relevant experience, and because I keep being given crappy jobs like this, I'm not getting the experience I need. Plus my educational background isn't great. To top it all off, I came to programming late, I'm already in my 30s and I'm painfully aware of time ticking away.

I'm in a strange mental state where I feel simultaneously bored and burned-out. The day job saps my motivation so much I find it virtually impossible to work on side projects in my spare time.

I don't think my experience is very typical of the high-achieving HN crowd, but if anyone has been in this position and can offer any advice I'd be hugely appreciative.


If you want a path out of this, you're going to have to motivate yourself. There was a point in my career that I was falling asleep at my desk because I was so bored and no one cared about what I was working on. It's both a sad and funny memory now, but I'll tell you what I did to get out.

I remember stumbling into some blog posts by some great programmers who were doing some really interesting things and thinking to myself "how will I ever get there?" I was in my mid-late twenties, time seemed to be flying by and each year I was no better a programmer than last.

I decided to jump into the programming "scene." That's right, it's a scene just like punk rock. Started going to meetups for whatever, any language, any technology, and started meeting some intelligent motivated people. The people you meet at these meetups/programming groups will start to inspire you. You'll also find jobs with problems to solve. Companies go to these things to find motivated talent. They don't want the Java bean enterprise developer who punches 9-5 and calls it a day. The people who go to meetups and tech groups are constantly self-improving and learning; go to one, join, dive into the programming/tech culture, and live that lifestyle. Don't look back. Doors will open, opportunities will present themselves, and you will have the chance to solve problems.


In the same boat, mate. I upvoted you to 500 though, enjoy the downvoting!


Why do you think you came to programming "late" if you are in your 30s? Have you faced any age discrimination?


I don't think I've ever faced any direct age discrimination, I'm just aware that there's no reason why anyone would hire me when they can have an enthusiastic 22 year old who's fresh out of uni.


>here's no reason why anyone would hire me when they can have an enthusiastic 22 year old who's fresh out of uni.

Have you worked with many "modern-day" 22 year-olds lately? Unless the company is intentionally looking for naivete as a trait, there are plenty of reasons to hire someone with more experience and maturity.


Though I've been writing software for 15 years, and have worked in the technology industry exclusively throughout my life, I have spent only one year of my professional career as a developer. My job was always a managerial/project management kind of situation - I have equal competency in technology and media/content, so I could always carve out a niche. Then, one day, I decided to abandon my cushy job at Amazon to become a developer for startups that I was interested in working for.

I spent all of 2015 pursuing this goal - it was a mistake. I loved the work, but really, really disliked the work environment with which I had to put up. Startup environments are noisy, and I could never really hear myself think. Despite all the flashy tools like Slack, Trello, and Google Docs, my teams never got quite as much done as the enterprise environments running Office 2010 that I was growing sick and tired of the previous year. Other team members would routinely stay home, not coming in to join the team during the work day. Scrum was held remotely every single day. Frankly, it was a mess.

I am now back in a cushy, boring office job. Didn't have the stomach for this insane brogrammer NYC startup culture. 5/10.


I think you're problem was going for a start up and not going for Enterprise. Majority of start ups have no idea what they're doing.


There is still something to be learned from startups. I worked enterprise for most of my career and it was always the same story. Ambitious projects, large teams, lots of red tape + politics, inferior technologies; and by and large 'UX' that was largely an afterthought.

I'm still incredibly thankful for the experience, but the lesson was not in actually learning how to do things right. Instead it instilled in me a deep yearning and desire to overcome organizational dysfunction, mediocrity and to overcome technical ineptitude.

Startups is a different animal. You ship things fast, and for the most part, you work with teams that care deeply about all aspects of the product, working with the best tools for the job. Sure, theres cargo cult tendencies - the beginning of this paragraph is evidence. The downside of many startups is that you move so fast that many times you never get to perfect anything, and the constant pivoting in unsuccessful startups tend to wear you down over time.

All in all, I learned much more about shipping code, adapting to the unknown and building products from startups than I did in enterprise.


This is a very insightful comment. I found myself realizing daily, during my 2015 adventure, that the likelihood of success for me would have dropped precipitously if I did not already have a solid idea of how to handle version control, test-driven development, etc.

The speed at which startups move is a cause for concern, however, because many of the people with which I worked were simply "lean in" types, and would have been able to get a job doing just about anything. The problem was that many of these ninja rockstar 10x efficiency evangelists didn't really work with Git well and didn't really value the command line. Linux knowledge was very minimal.

I worked for four startups, and found that only one of them had ONE employee who had a solid computer science background.


I'm not. I have been doing it since I was 9. I pulled most of the heavy-duty, hardcore all-nighters during my teenage years; I grew up writing C, and was hacking on socket code and compiling kernels when I was 12-16. So by the time I was 20, I was utterly burned out. Most of my peers discovered the crazy, hyper-caffinated, 24/7 techie life in university years, and still have a few years of this insanity left in them. I don't.

I'm 30 now, and feel like I've been running on fumes ever since. I am still interested in software architecture at a conceptual level, of course, but suffer from immense fatigue at the keystroke-based deliverables aspect. It's always a motivational struggle to write even a little code, with few exceptions. I procrastinate horrifically, because I find it tedious.

Some of it may be because my work entails dealing with fairly uninteresting and unexciting things, and some of it is the cash flow schizophrenia of constantly operating at the very margins of economic survival, but above all else, it's just psychological, cognitive and physical fatigue. I'm also fairly extroverted and have always been interested in the social and political dimension of what I'm doing, but, through eight years of self-employment, have pigeonholed myself into a solipsistic role without a collective--rewarding to those who crave peace, quiet and code, but not at all catering to my particular reward centres. I love selling what I do, but the dreaded implementation of what I just sold is like pulling teeth. Deprived of a collective, recognition, the competitive aspect, and any sense of larger purpose, it's a real challenge to get myself to work on code.

In retrospect, I probably would have been better off sticking it out in corporate America and tracking myself into technical management. However, I left the employment world at age 22 and decided to hole up in a business model where I'd be most economically rewarded if I could get myself to write more than a few lines a week.

I am deeply specialised in a niche vertical that can pay well, so one would think the money would keep me going (I can easily bill $250/hr for what I do), but it doesn't. Some of that is a business and life problem, but some of it is that I just don't care enough to pound code anymore at virtually any price--though, of course, that's not to say that taking the bricks of economic stress that come with a bootstrapped eight-year consulting-turned-product death march off wouldn't help.

I still do it, but it's taken me five years to write a slightly half-assed software suite that an energetic and motivated programmer could have done in far, far less time.


Have you considered that there's something wrong with you emotionally? You sound like you're constantly under stress and even anxious about your economic survival. Those two can very effectively dig you into a slippery hole of depression which would just amplify them and you'll falling into that depression even further.

It's like a loop that nearly impossible to break out of, and even when you do returning to a comfortable life rhythm will take considerable effort, too.

Also, for a lot of people there is no rock-bottom, you'll just keep slipping deeper and deeper.

So, my advice is to ask for professional help—which I realise is one of those "easy to say; hard to do" type of advices, but try to ask for support from your friends—and try discovering something new, which can be completely outside of IT!

Another thing that you can try—which is very effective, but doesn't require you to dish out money is downloading some CBT (Cognitive Behaviour Therapy) tracks or guidance applications. There is quite a few of them and they can help a lot (although they might not be as effective as with professional guidance).

Also, something "odd" which I can also recommend is 7cups.com (which is an online therapy platform; you can have 1-1 sessions or group sessions, it's great if you need to just talk to someone). You can even try becoming a guide (called a "Listener"), helping others can also help you (and this especially true, if you're an extrovert).


1. If there are objective sources of stress (e.g. problems of economic survival), I don't perceive that to be an emotional problem. Emotional problems, as I would use the term, are problems which are strictly endogenous in nature.

2. I generally go about my business just fine and am quite functional. But since the OP asked if I'm happy per se doing software work...

3. I'd probably be happier in engineering management, or in technical sales and marketing (i.e. of the highly consultative sort). I seem to have a pretty healthy - even cheerful - appetite for those things, when the opportunity to do them arises.

I'm not depressed. I'm just beyond burned out on coding as a mode of existence, and then some.


> 1. If there are objective sources of stress (e.g. problems of economic survival), I don't perceive that to be an emotional problem. Emotional problems, as I would use the term, are problems which are strictly endogenous in nature.

I meant psychological problems rather than emotional, but I feel like those two are intertwined, anyway. Sorry for the confusion.

Being burnt-out is also a type of stress. What I meant to say is that, if you're constantly under stress it can have an impact on your emotional/psychological state as well, and you shouldn't underestimate the damage psychological stress can do to your personality.


Duly noted! But the question was about whether I'm happy working as a programmer, not whether there are large, existential and cosmological life issues to solve here apart from and beyond that.


Apart from the highly rewarding business model I've gone through exactly the same path as you have. I have no appetite for coding now. But at the same time I don't know what else I can do. I don't want to give up the lifestyle I have now but starting from scratch will mean getting a pay cut. It's a vicious circle.


I would sincerely, sincerely suggest to research the MISERY most of our world is in. There are 1 billion people without food or clean water. Imagine what someone with your skills can do to help? You don't need to make any money - and implementing deliverables in that scenario will only alleviate actual, real PAIN for others - not fuel the chase of more profit for someone who has hired you.

I'm sure you've probably thought of this before, but I thought I'd throw this out there anyway. Volunteer to make the lives of people trying to help people better, with software. You probably don't even need to write anything new most of the time, just know the good software from the bad and deploy it to awesome effect on operations for good across the world.


I'd be interested to know a good place to start with this kind of thing.

Do you have some examples of software engineers contributing their skills to charities, open source projects aimed at assisting in these situations or just some boards or communities that can assist in finding a starting point?


I'm searching for an efficient (read: not waste my time and affect my means of living) way to do this myself. The easiest way to start is to look for non profits operating in your area - or close to you - ask them to go have coffee with you (use LinkedIn). Do a virtual chat if necessary / pressed for time or distance. Discuss their work, and I guarantee you that ideas will come rushing out, this is what makes us tick. Then, just start. Do something for someone, talk about it.

This retired gentleman, for instance, who volunteers his time installing Linux on computers that are being sent to children in Africa: http://www.linux.com/news/featured-blogs/200-libby-clark/827...

That's a great start! He was not even a software engineer!


It's a luxury for someone who isn't deeply in the hole and doesn't have a family to support.


Okay; I can empathise with that (not an empty statement).

In that case, I can suggest that your happiness (and 'effortless' productivity) can stem from wanting to dig yourself out of that hole and "set your family up for life" - because looks like you've committed to that direction.

This is easily construable as a presumptuous statement, these things are so much easier said than done. I have no right to play "guru" out here. I just care that a fellow peer in this same struggle is unhappy and talking to you as I would talk to myself and self-counsel.

Whatever you do, good luck, because you don't seem like one of the "bad people". Cheers.


Thank you, that's much appreciated.

I don't know if my goals are anything so lofty as setting my family up "for life", but certainly, part of the issues are economic and, to some extent, money can cure them.

I'm not a low-income individual--certainly not by non-SV US standards. But I started this business with $200 to my name and a high personal expense base, and ground my financial history and financial position to powder as a result. I also lost big on an upside down property in the housing crisis, a still ongoing matter. The volatility and sliding-backwards stress of self-employment in a non-scalable niche is a big part of my stress, with cash flow being the dominant stressor; a highly volatile $200k income can be effectively discounted to like $65k. I'm often envious of people who get paid a good salary to just code and not have to think about anything else.

However, I'm capable of conceptually and emotionally disentangling all that from the question of whether I fundamentally like programming per se. I'm still burned out on it in the best of circumstances. If money were no object, I'd do it a few hours a week to meet some functional need, but I doubt I'd be writing new software.


If you can bill $250/hr, why not hire people? Sounds like it would help fill your social/conceptual gap.

Someone in a regular job might need to ask for a promotion to management, but with your own company you become a manager as soon as you're willing to pay for someone else's time.


1. Because I'm not billing $250/hr @ 40 hours/week. I wish! I just meant it's considered a normal consulting rate for what I do.

2. I've tried to transition out of consulting and into 100% product company, but have not so far been successful. There's a significant short-term revenue hit in that.

There's plenty of recurring product licencing and support revenue, but not enough to break me even, so it gets supplemented with consulting. And you know how lopsided that distribution is; 75% of the work for 45% of the revenue, or something like that.

Amidst that kind of schizophrenia, it's very hard to hire someone, both for financial reasons and because the hiring decisions that would need to be made are very different in those cases.

3. I've hired numerous people over the years, back when I was doing consulting/project work full time and not engaged in this productisation effort.

The people I could afford were mostly entry-level. In the niche vertical I'm in as well as the high-expertise business model I've created for myself, customers expectations are specifically for domain knowledge and multifarious skill sets. In other words, it doesn't scale out much beyond me and other folks exactly like me, so I couldn't find ways to bill my employees out.

Being a conscientious person who largely blamed himself and chose to view it as an entrepreneurial & management failure on my part rather than on theirs, I kept them on far longer than I could afford to, effectively working 2-3x as hard to keep the lights on and subsidise their salaries.

Clearly, the solution is to hire non entry-level people. But the folks with the expertise to be able to do the work are definitely a high-salary proposition, and I can't afford it.

4. Hiring is very much a question of cash flow. Learned that on hard mode. If someone took my $ANNUAL_GROSS, divided it by 12, and disbursed it to me on the 1st of every month, damn right I'd hire someone again. :-)


My god, what is this amazing vertical?


VoIP/telecom, SIP.

It is far from amazing, and I'm not saying it always fetches that kind of bill rate, just that it is specialised work and requires telephony domain knowledge.


I read your description of your work and how it makes you feel. I thought it sounded awfully familiar. It isn't you, it's voice. I've worked in this industry for 18 years and it keeps getting worse, but there is money to be made. It's a trap, but a mildly soul destroying comfortable one. Do get out if you can.


Thanks. I do wonder if there's something in particular about voice that lends itself especially to cynicism. Every time I wonder that, I always figure: surely not, when there's actuarial software, Wall Street...


After a decade of doing it, I'm trying to get away from it.

To detail a little bit, I got into programming computers out of passion. The pay and the life was an after-thought. I'm still passionate and that is both a gift and a curse.

It's a curse because it slowly consumed me, my life, and much of anything else besides computers, throwing my life out of balance many times before, and each time I had to go to lengths to become "normal" again. Even now I have things in my (life's) program that I had to force them there to keep me straight and healthy.

It's a gift because despite reckoning all the damage it did in my life it still brings me joy. I'm like a sort of junkie in this regard, and now just like a junkie I feel the pain of getting away from it.

Now, looking back, the funny thing is, if I have to chose again something to invest into like I did twenty years ago, I'll repeat my choice (for better and worse). The take away would probably be that if you get into it and you're passionate about it then your passion will serve you well (feeding you with happiness), and if you're less passionate about it then your lack of passion will also serve you well (by keeping you human, the job itself being a relatively healthy one).


I have been programming for 22 years. There have been times where i hated it and wanted to get rid of my computers. However, presently I'm really happy working as a programmer. The key for me is curiosity. How do things work? How should i solve this problem? If I'm not curious then I'm not having fun, and if I'm not having fun I'm not happy. My job at present doesn't feel like a job because I'm learning all about Hadoop and solving new and interesting problems with it. I'm sure I'll have down periods again, but i know i can find ways to regain my curiosity by switching tech stack or problem domain and get through those rough patches.


How's the job market 20 years down the line? I'm ten years in the field and trying to switch into management, becase growth prospects and scarcity of senior opportunities scares the hell out of me.

Basically I live in constant fear of the day I'll hear 'overqualified' at a interview


Only half of those 22 years have been spent as a professional programmer, so I'm still young enough for it to not be a problem. Besides, i have spent my entire professional career at the same company which is big enough for there to be enough internal opportunities to switch focus. Still, if it ever does get to be an issue I'll just become self-employed. I doubt that age matters all that much if you're a consultant / contractor.

I have been offered a management track several times and always say no. I don't think i would be happy doing it.


I've heard a hiring manager label me overqualified just 5 months into my career.. It was a company handling outsourced QA work. Worked out good for me.


I've installed my first linux(Slackware) at the age of 14 (im 35 now) .. since then I think i've been "programming" until i started working , when it became the thing that pay the bills. Now... i think it's like everything in life ... i have bad days and good days , I've worked for places where i felt challenged and for other places where i was in only for the money (that never worked) , at the moment it kind of sucks ... I'm only in for the money (so is everyone else) so the job i do is not very challenging leaving a feeling of sort of emptiness , but as i said , it will change ... I've been here before and i know it can change very quickly . So all of you that feel quite down , have some patience and make a move , things will get better.


Same thing happening to me, in my good days I worked with giant tech people, and I left them because of money and another reason.Now each and every day I feels like doing nothing, don't know how to get out. Just looking where to go, where to concentrate. I really love programming but now days I feel Im lost.


It's a complex place to be , I'm looking for other jobs that seems to be the light at the end of the tunnel , and it makes you feel good that you're working towards a solution in a way, good luck!


Thanks buddy !


I love it. I've been programming since I was 12 (I'm 32 now). For me, the key to avoid burning out, is to constantly keep learning new things. I currently work remotely for a NYC dev agency, and we have a massively good team.

I have a couple of side projects, and one of them is generating an income of $500/week. Just keep building stuff during the weekends. Try to learn marketing, UX, UI, etc. Apply those new skills to your side project, and iterate again.

It's also important to not work in isolation. The most effective way to become a better programmer and keep learning things, is to pair constantly with better programmers than you are.

I spend about ~14h/day in front of a computer. If I don't enjoy what I do, then I'd be wasting my life.


How did you fall into side projects like that? I've been doing some side projects and while I could comfortably do all the mentioned activities, I don't even dream that it would turn profitable one day. Do you have some sort of method to determine these projects you work on?


I co-founded a startup and sold it ~3 years ago. There's no secret in turning something into profit. Just put your thing out there and ask for feedback.

At the end, users won’t care about the underlying technologies used in your startup.

They don’t care about what programming language you used. They don’t care if your website is a Single Page Application or you used Turbolinks. They don’t care if you have a micro-services oriented architecture or if you created a monolith.

They only care if you solve their pain or not. And they will pay you if you do a good job. That’s all.

If you build the wrong product, it won’t matter how many sound technical decisions you made along the road. Technical decisions are important to keep the team morale high, and to maintain momentum and speed, but your users don’t care about that. That's all there is. Really.

If your users don't like your product, get feedback and go back to the drawing board. Iterate.

Read a book or two about marketing, experiment and learn. Bad products win all the time, not because they are better, but because they are better marketed.


Is there anyway to contact you?


`juanzuluaga` is my Twitter handle


9/10

I'd say that's roughly half because I enjoy the work and half because over the years I've got better at looking after myself, being self-aware and cultivating positive habits.

For me, the big wins have been:

(1) Regular exercise (daily cardio, weight training 3x a week)

(2) Daily mindfulness meditation.

(3) Flexible hours, remote working.

In some circumstances, (3) can be hard to negotiate. But (1) and (2) are up to you.

See also this excellent survey of positive psychology: https://www.coursera.org/learn/happiness/


I'm 33 year veteran of programming. I'm more or less 7 years from retirement. I've worked as a civil servant, at two startups, a large corporation, and for a three letter government agency. I made a decision early in my career not to move into management, but to advance to the "team lead" position at most.

I love and hate my job every day. I have no better time than when I am coding, but I hate frameworks pushed in lieu of design and architecture. I am a polyglot (C, Java, SQL, PL/SQL, XPath, JavaScript, XSLT, bash) and enjoy coding in all of them. I am looking to learn a few more (Python, Lua) giving the time. When a team pushes something like an ORM in order to be "pure Java" it makes me sad since it is seldom accompanied by rational comparison for design factors and true reasoning. I make a good living, well above average, since it is our industry that is driving the world economy. I believe it will continue to do so for some time. My personal motivation to do insanely great things is nearly expired. I have not the will to fight for better implementations with my current employment. I'm generally too tired at the end of the day to work on my personal projects, but not entirely. If it were not for the cut in pay, I would love to start teaching programming. Maybe I can do it part time after retirement.

In re-reading my text prior to posting, it seems like a description of burn out. Perhaps, but I am not unhappy, just unmotivated by the mundane nature of my work. I work to pay my bills and make it to retirement, not to change the world. I hope that whomever reads this can find both motivation and compensation. Good luck.


I'm at the start of my career but am starting to notice some of the downsides you've experienced. Any advice on how to avoid some of the trappings?


Easier said than done, but I believe you need to be in charge. This can take many forms, but I lean toward self employment creating a product the customers use as a black box. Let me elaborate on the points of that last statement... "Self employment": I talking small company where you are in charge. Trying to be an entrepreneur in a large corporate setting or another founder's startup means that at the end of the day, they decide what is next, not you. "Customers use as a black box": Again, this is about who is in charge. If the customer is familiar with the inner workings or the possible features, they will leverage their investment in you to change priorities. What does this mean? You need to find a way to produce a product that people will pay you for, and pay you enough to support yourself and others (depending upon the complexity of the product). As you can see, I value self determination above anything else (as far as work goes). My motivation currently is fear of loss (albeit very little of it) of employment. I don't think that would change much if I were "self employed creating a product the customers use as a black box", but it would pivot much more closely to my choices than choices made for me.


Programming is a means to an end for me, not an end unto itself. I like to make products, and—in many cases—the path of least resistance is to write code to make that happen.

As a result, my happiness as a programmer is directly correlated to how much user impact I see in the work I'm doing.

I also love my immediate coworkers, which helps immeasurably :)

edit: I'm in my 13th year of professional software development, and I have worked at a company where I can reasonably expect a 40 hour work week for the past 2.5 years. My stress level is at an all time low, which helps my happiness, too.


After 21 years in the business I am finally starting to realize that I want it to be something that it isn't. In the past, I have always been interested in programming as a means of creative expression. The last thing a programming team wants, however, is creative expression. You are successful as a programmer to the degree that you are able to make your thoughts, your solutions, your algorithms, and your code consistent with those of the rest of your team. Creative expression is ground away through application of best practices and through code reviews.

I have a healthier relationship with my work, and am thus more successful, now that I view it as assembly-line work and don't try to express any creativity at my job. That said, I don't find the work to be the least bit fulfilling, and I am working to make a career change.

I find programming to be an easy path to a steady, but ultimately empty living. I would only recommend the field to those who want nothing more from their job than a paycheck and who find meaning and fulfillment entirely in the nonwork parts of their lives.


I loved it when I was younger. The older I get, the less satisfying it is. At this point, I just tolerate it. I realize more and more how damaging it has been to spend 25 years sitting at a computer. It is not all bad - the career is great for supporting my family and the life we have built. I work with decent people. But I do not intend to take another programming job after my current one.


What are you going to do with your username?


Make an offer


great one mate.


I'm not, at least not really. Started to code at the age of 15, been doing this for 16 years everyday now. Currently working in a big corp, where you have the feeling that people won't let you bring any positive change, won't let some innovation coming to their desks, you just have to do what people have been doing for years because "hey we've been doing it for years for a reason". It just feels like trying and trying but nothing will change.

Its been pounding on me for years now. I have no reason to complain yet I feel sad, empty, I reckon I'm useless at my job and yet my boss is way more than happy of what I'm accomplishing, I don't understand.

I wanted something great from my career, I thought I'd be surrounded by passionate people, but to this day it's been a huge joke, you just have to do what someone higher in the food chain tells you to do and use that bullsh*t bloatware because he's got some present from another bigcorp placing its product making you more entreprisey and more agile, to no avail. You just have to accept choices made by someone. You just have to contemplate others on the market using something exciting while you're stuck with Java 6 with no one around you wanting to move on.

I feel I have no reason to complain, because life could be so much more painful, I'm well paid and I could be working on an assembly line for way less or living in a country where fear for your life is the only thing in your mind all day long. But... It's just that it's not the big dream I was expecting, and I feel that for someone not working in the bay area but following HN all day long, I'm suffering from an immense sadness of not being part of it, it's like I'm just watching people succeed on my TV screen, eating junk food. I know this is a biased vision and a lot of people aren't happy there too, I just can't help feeling this.


8/10

Pros: - I get paid a lot of money doing what I did as a hobby when I was younger

- I come in whenever I want and leave whenever I want

- I can work from home whenever I want

- My work is intellectually stimulating

- My coworkers are smart and interesting

- I get to play with dogs at work

- If I don't like my job, I can get 5 other offers within a week

Cons: - I still make less than I would have if I pursued law, finance, or medicine

- Most interviews are some sort of hostile, cargo-cult nonsense

- Those 5 offers would not offer me anything significantly different from each other or my current job

- Nearly all of my coworkers care more about playing with the latest technologies and building unnecessary frameworks than actually making things

- The best companies/jobs are all in Silicon Valley or SF, whereas I want to live in NYC

I don't really like the "industrialized software development" model most companies follow. Wherever I work, I am 2-5x more productive than the average developer. When I start, I usually am on a team with people who are similarly productive. But, as our success grows, we hire more people who are less productive (against my wishes), and the people I used to work with either leave or get promoted to management, which means I don't get to work with them anymore. I also get promoted to management, which means that I spend less time programming and more time doing things I don't enjoy.

Yes, I get that it's hard to hire exceptional people. I get that companies would rather consist of many easy-to-replace mediocre people than a few hard-to-replace exceptional people. I get that, at a certain size, predictability matters more than speed, and having more people on the team allows their idiosyncrasies to cancel out.

I just wish that I could work on a small team of really smart, really well-compensated people. Does such a thing exist? Should I take Google's job offer (from what I hear, they over-staff every team)? Should I look into hedge funds (not super interested in building stuff I can't use)? Should I say "fuck it" and try to get a job as a quant or trader (I've gotten offers in the past)?


As a programmer, very happy. As a lone dev propping up a design agency as it clumsily transitions from print to web, developing static sites and WordPress junk, not so much.

Occasionally something interesting crops up but I generally want to find an in-house role working on a web app or something.

I don't have to be happy because I am putting my partner through university so they can pursue an academic career and putting food on the table.


I am doing contracts (enterprise java), it pays well so my wife doesn't have to work and takes care of 2 kids while paying mortgage. Happy? I believe it is about the people who surround you at work - where you spend most of the time - i like my team and many other people in my current company.

The work is boring in general but i am trying to make it more interesting in getting more involved in production investigations (can be exciting quite often) and helping other people at work find some crazy bug or better understand something...


Working as a programmer, very happy.

Working, not necessarily that happy.

Programming is a manifestation of curiosity. Therefore, programming is a spark that, once ignited, probably never really dies. You can suffocate it and pretend it's out but when things free up again it will come back. If I wouldn't be working I would simply be programming on my spare time more than I do now. I can only speak for 30 years down the line, though, so YMMV.

Working is a whole another thing. It's a great opportunity to work on interesting and challenging things. It's also an opportunity to see those interesting and challenging things serve goals you don't find so interesting and challenging. That's obviously because the owner of the company gets to decide what the company makes. The problem is decent income and good benefits. There's really no other way to fix that problem except to stop working and get your income from a company of your or your investment returns.

Much of what I do at work is not programming even if I am a programmer. Most of it is communication, maybe comes down to fixing bugs so that other people can continue their work, and then there's a slice of actual development in between, at times. It's not necessarily development that would always be fun but it's still interesting and challenging. I could imagine doing something else but the nature of work wouldn't change except that the payoff would likely be lower. I could work on something else but not as an employee.


Well, it's intellectually engaging, and (if you have halfway decent ergonomics) not particularly physically taxing.

Is it what I'd do with my time if I didn't have to make a living? Maybe a few hours a week.

Is it more enjoyable than most of the alternative ways I could imagine making a living? Hell yeah!

Does it have its exhausting, hellish days and political bullshit? Doesn't everything?

Could I stand to do it in a bureaucratic corporate setting, doing nothing but maintaining a small corner of some horrible enterprise monstrosity and filing TPS reports? Probably not.

How happy am I doing it in the small company / startup setting I've been in for the last 15 years, with plenty of autonomy and a decent proportion of green-field work? About as happy as I'm going to be working any "day job".


I think in general programmers tend to be happier when they are constantly learning new things, so I set myself up for a job which is constantly challenging. I work in the advertisement and campaigns industry (no, not tracking or banner ads) where we build large campaigns for global brands with technologies such as VR and WebGL. In general, I think we build the type of projects that tend to get a lot of hate on HN, but it's really challenging and fun and I've won many awards (Cannes Lions, dozens of FWAs, Awwwards, etc.)

Over the past 3 years working in this industry I've learned more things about more topics than I have in the past 10 and I don't see this changing any time soon.

I've worked for several different companies over the years; a Java shop that builds large web-shops and corporate websites, a local startup focusing on science, a local radio station maintaining their site. All of them bored me after 6 to 12 months of learning their tooling and technologies. Many tech companies tend to stagnate on their stack and are afraid or too invested in it to change which is a huge contrast to where I'm working now.

Sure, the work I do isn't saving the world or disrupting a stagnant industry like many startups claim to do, but it's certainly challenging and keeps me happy as a programmer.


I enjoy it, but only if I'm treated with respect, not micro-managed, and trusted to do my job. Ironically when managers set deadlines and add process, it demotivates me and the code ends up shipping later. The silver lining, however, is that I learn what not to do if I decide to start my own company (I have a note on my PC called, "Mistakes from previous companies that you shouldn’t make"). So in general, even if I'm unhappy at a job, I try to consider it a learning experience and move on to the next thing.

Edit: I should add that working remotely has been absolutely fantastic and adds to why I enjoy being a programmer. I feel lucky to work in a profession that allows this amount of flexibility.


Would you be willing to share your list of mistakes with the group?


Pretty damn happy. I'm a little over 3 years into my career programming and I've just started at Google which has been a goal of mine for awhile. The challenge is pretty immense (in terms of having to learn so many new languages and pieces of tech) and the compensation is unbeatable. Years ago I never would have imagined I could make such a good life for myself programming.

I have also met some wonderful friends and intellectual peers through my programming jobs, and I'm even trying to write my own language now for laughs. I'm trying to encourage everyone with the aptitude to get into it because it is rewarding in many different ways.


Ooh, new languages are always interesting to know about. Do you have any sharable things about the design or implementation? :D


I'm still at an early design phase but I intend to be loud about it when I am at a sharable point. I'm building it as a "rapid prototyping" language that combines some of the best (and to some, worst) features of J, Perl, and Ruby. One of the design principles is that every Project Euler problem will be a sub-80 character one-liner.


Being forced to work for a living is absolutely the worst thing that could ever happen to a human being. As far as that goes, I would do almost anything to break free of this yoke and enjoy my life.

Alas, reality is only what it is. I suppose writing code in an office beats manual labor or a life of crime.


As a programmer, I see some benefits that make me happy. I can list here some of them:

- I have ability to automate something. I can tell the PC import data automatically instead of doing by manual, or make apps let me store some sensitive data that I don't trust anyone else (and their apps, of course).

- I have opportunity to be a digital nomad, work everywhere over the world. Yeah that's just my vision, but now I can work everywhere in my country. Travel and work, perfect couple, especially when I'm single now. I'm trying to do all things that a husband cannot do, before I find my spouse out :D.

- I have skills to turn my ideas to real products which may help someone. Now I'm an iOS Engineer, and yes, making several apps, not big ones but helpful for somebody. But at the first, I always try to resolve my problems, then believe that someone may in trouble like me, they may find my apps useful.

- Because of making apps, I found a romantic approach that I can give my friends as I made an app exclusively for a girl, a drawing tool let us remind our moments in the past.


My cynical elevator pitch is, we're internet construction workers on a good day and Internet janitors on a bad one. That said, I chose this life at 17 and haven't looked back. I'd be miserable as a lawyer or some other professional. Programmers are treated like professionals, but we get a lot more leeway when it comes to how we live our lives.

I guess what I'm trying to say is I'm happy, but working at a startup is hard and that can sometimes be depressing.


9/10 - Interesting problems; working remotely, to my own schedule; living in paradise; pants optional.

Prior to my current gig it was

8/10 - Interesting problems; well fitted-out office with great people to work with and coffee nearby; the opportunity to grow technical and people skills and mentor.

In the 90s I worked in public service doing accounting and marketing gigs. I'd rate those jobs about 3-4/10. So I'm pretty happy with the transition.


Right now? I'm pretty unhappy. I don't think I want to talk about exactly why publicly while I'm still in this job, but to give you an idea of how bad the situation is, literally all of my friends have been trying to get me to quit for months, with the exception of people who have given up because they think I must be insane.

On the other hand, I have a decade of full-time experience and I've been happy for about seven out of ten years. All things considered, that's not too bad. The other way to look at it is that I've had maybe five roles at one company, two another another, and one at a third, and I'd say four of those have been good. That's only 4/8, but it's possible to bail on bad roles and stay in good ones, which is how it's worked out to being good 70% of the time. Considering how other folks I know feel about their job, I can't complain about being happy 70% of the time.

In retrospect, some of my decisions have been really bad. If I could do it over again, I'd bail more quickly on bad roles and stay in good ones for longer.

My dumbest mistake was the time I was in an amazing position (great manager & team, really interesting & impactful work), except for two problems: an incredibly arrogant and disruptive person whose net productivity was close to zero who would derail all meetings and weird political shenanigans way above my pay grade. When I transferred, management offered to transfer the guy the guy to another team so I'd stay and I declined because I felt bad about the idea of kicking someone off the team.

From what I've heard, the problematic dude ended up leaving the team later anyway, so not having him kicked off didn't make any difference, and the political stuff resolved itself around the same time. The next role I ended up in was the worst job I've ever had. And the one after that is my current job, which is, well, at least it's no the worst job I've ever had. Prior to leaving the amazing job, I thought that it was really easy to find great jobs, so it wasn't a big deal to just go find another one. Turns out it's not always so easy :-). If I hadn't bailed on that and just fixed it, I'd be 4/6 and I could say I was happy with my job 80% of the time. Oh well, lesson learned. Looking back, I was incredibly lucky to get the roles that I did, but that same luck blinded me to the fact that it was luck and that there are some really bad jobs out there.


4/6 is 66%, and yes there are some really bad environments to work in, mostly related to people.


After 25 years of this, I now see the logic in communism (though it is idealistic). So no more working for suits and getting nothing while they extract the profit from the surplus labor I produce. Capitalism is all about exploiting or being exploited, and I haven't the temperament for it, given that I've taken too many red pills by now.

So ... it's going to be contribute to OSS (because the creative part of still worth something), become a truck driver, and write plays in my spare time... Art is the only thing that means anything in the long run - the fruits of business mean nothing, especially in IT given how the "churn" is less than a decade.


Completely agree, I'd prefer working in OSS full-time and accept a minimum wage to keep looking for gigs to maintain my basic necessities.


I love programming. I started programming to automate my work as a radiologist in residency. I don't get paid for programming, but i think it helped me get a nice academic job when market for radiologists was bad. I program mostly as a hobby and as a way of life. But i help out my colleagues by sharing some of my software tools or sometimes just solving their data problems from time to time. Most of the time i am collecting computing power, bandwidth, storage capacity, and ofcourse collecting and learning from data...


3 years since I graduated from my CS program. Enjoyed the internship and the first year as a python developer. Then I had the bad luck of landing a Node.js + MongoDB project. I've been hating on programming (particularly JS) ever since. Just like @abalshov, I procrastinate as much as I can. Side projects and Open Source contributions have dropped to practically zero. It's just...tiring. Assembling X library with Y framework and then spend 10 hours trying to figure out that one bug. This isn't what I got into CS for.

The pay isn't amazing either. Though I'm good at what I do (a lot better than some colleagues who are getting paid much better), I just can't get excited for yet another startup job (which is where I've been most of my career) which is working on a non-problem.

The work needs to be interesting for me to be motivated. So far, it's mundane. And given I'm not in the US or any western country, I haven't found many companies working on interesting stuff here. It's all ideas copied from the valley and hammered into the ecosystem here.

Perhaps I need some inspiration or some creative idea to put things into perspective. But yeah. Things could be a lot better. I've recently started getting into Statistics/ML and learning Clojure on the side as a distraction and that's been going well.


In a word, yes.

Is there an implication that work should be fun and fulfilling so as to make me happy? Work does not make me happy. It affords me the money I need to keep my family healthy and safe. Happiness comes from within: art, literature, mathematics, science, family, friends... life.

I just make money by selling some portion of my waking life to the pursuits of others by helping them realize their ideas in software.

The ideas I have are just not marketable. My curiosity hasn't led me to dream about ways I can extract rents from financial tools or make advertising more profitable. I find myself to have more in common with Donald Knuth or John Conway than Larry Ellison or Bill Gates. If I could find a way to work with hard, fundamental problems or pursue hunches that may have no fiscal utility I'd be happy as a clam at high water. Alas I never had the privilege and opportunity to pursue a career in academia and, given what I understand of the current climates there, probably wouldn't find it fulfilling either.

So I content myself with tinkering and following my own hunches and try to maximize the dollars-per-hour exchange I make so I can spend less time with the mundane world of markets and value and return to the land of whimsy.

Update To clarify, I don't want to put myself in the same esteem as my heroes, Knuth or Conway. What I do find in common with them is a curiosity and propensity for selecting problems merely because they are interesting and with disregard for external factors such as economic utility.


Extremely happy and thankful. I think it depends more on where you work than what you call yourself or how much you make.

I enjoyed programming as a kid but after learning more about how much programmers were often exploited (especially in the games industry) and having a few bad experiences doing small contract jobs I figured it wasn't for me.

Luckily I somehow stumbled into it again half-way through university and started doing full-time contracting.

With some of my clients, work was a nightmare. They'd demand the impossible and wouldn't be satisfied no matter how much effort and thought I poured into it. The work was unrewarding and I constantly felt like a fraud.

With others it was complete bliss. I got to work with clever people who are good at what they're doing and learned a lot from them. My input was appreciated and I was given a lot of control over my work. The teams were great and the people I enjoyed spending my lunch breaks with.

Over time I earned enough money to be able to search for more of the latter kind of work while turning down more of the former. These days I can pretty much pick and choose and make sure to keep an option to walk away if I'm not certain about a job I'm taking.

I have never been happier. But if you had asked me when I was in long-term contracts with the worst clients, I would have told you a very different story.


Pretty darn happy.

It's inside work with no heavy lifting, I get paid way above the median wage, and I get to intermittently learn new things, and build new stuff.

I'm not a constantly ecstatic ball of happiness, but that sounds more like a drug-induced dream than something that real people get to be. Instead I'm "mostly satisfied, with occasional peaks, and some bits that annoy me." - and that's a lot better than the non-programming jobs I've had.


I'm in my forties now, I've been working as a programmer since I was 18. I love writing code, I love doing it as a job and in private projects. I could not imagine my life without having this skill. I haven't gotten rich off it, but I very well could have, and it's still a profession where monetary success and upward mobility are common.

Writing code for work can be a mixed bag, though, since you don't necessarily always get to work on things you like or in a manner conducive to productivity. But even in "not-fun" projects, the reason why I often perform better than other programmers is because I love it. As a rule I have learned that people who are going it nine-to-five with zero actual interest in the skill set aren't as happy or as good.

So how happy you are working as a programmer depends on many, many factors. Is programming a creative outlet for you? Are you working on something you care about? Are you getting paid and appreciated? Are you susceptible to burnout? All things being equal, if you already are a programmer, chances are you'll eventually be happy working as a programmer.


I'm happy if I follow this golden rule : "Premature optimization is the root of all evil -- DonaldKnuth"

I so often spiral into an endless loop of "this could be done better, rewrite from scratch, must have more decoupling!!".


Perfect is the enemy of done!


I've been programming for 15 years, since I was 21. It used to be my passion, work, and hobby. Over the last 3 years I've gradually shifted from development to managing projects and product development, and recently moved to the team leader/manager.

Right now I really like the product and management side of the work, but the technical / programmer side I am very burned out on. I used to spend my free time consulting, coding, researching, and had dreams of starting my own company. Now I want to go home and relax, work with my hands out in the yard/garden.

I've been at the same company for 7 years now, we typically have enough freedom and project variation to learn new skills and keep from being bored. There are simply to many frameworks/languages to keep up with to stay relevant. I don't see myself finding another development job after this one, at least not without time off/a break. The money is great, and I've been fortunate to save well, and we live will below our means.

Honestly, I'm working on a plan to be out of the industry by the time my daughter graduates high school and I'm 45.


> Now I want to go home and relax, work with my hands out in the yard/garden.

I find that stuff you've mentioned to be a great complement to working in the software field. Perhaps it's because we're exercising our creativity in new ways, where we wouldn't necessarily be able to do in a routine software job (there are only so many new challenges one faces day to day).


Gardening is very enjoyable as is working on my home. Something very gratifying about seeing your hard work in physical form versus virtual work.


Fellow project/product manager! I also programmed for 10+ years and got burnt out. But, I still program in my abundance (hah!) of spare time, and would gladly go back to programming for a living if the nature of the work fundamentally changed.


I've been trying to learn Elixir in my spare time, feels a lot like the breath of fresh air Ruby/Rails was when it came out.

Also, been toying with data science/machine learning w/ Python.


Not in the least. I spent a good portion of the past 15 years trying desperately to rekindle the flame that brought me into the business, but I just couldn't seem to do it. As of November last year, I quit, and I'm now back in school at the ripe old age of half_dead.

At present, I have no idea what the future has in store for me, but whatever it is I hope it grants me some level of satisfaction at least.


That's a difficult question to answer.

On one hand, it's a cushy job. I work from home almost whenever need to. I can find remote work if that's not enough. I'm paid well. I get a decent vacation time. It's easier than physical labor.

And I love to program. I enjoy solving problems and writing code to implement it. I even enjoy debugging and tracking down bugs.

But at the same time, I haven't found working as a programmer to be very enjoyable. It's rare that my interests and my work tasks intersect, so most of the time I'm toiling away on projects I'm not really interested in, wishing I was working on whatever small project I've come up with at home.

Also, as I've grown older I've become increasingly annoyed by the "culture" around programming and computers.

TBH, I often wonder if I wouldn't be better off doing something else and just programming at home in my spare time.


Not particularly.

I have few friends or hobbies. Most of my coworkers can't even hold a conversation, much less go clubbing or play sports with me.

I've had chronic burning pain in both legs since age 14. The doctors say too much computer usage led to poor core strength which damaged my spine.

I think computer use damaged my body as well as my social skills.


I enjoy working as a programmer but I do not enjoy it as much as programming as a hobby, which I do too.

I have found that my growing skills outpace the level of challenge provided in my day job. I just think this is a fact of life when your work stems from your hobby.

As an analogy, I think of someone who works with metals (e.g my father). The type of work asked of him was routine stuff where as he was free to sculpt cool gifts for his family. The unfortunate fact is that it's easier to make a living doing routine stuff since those requirements are far more common.

Perhaps there is a company that would match skill growth with challenge growth but somehow I think I'm in a sort-of 'limbo' where I'm not skilled enough or hold the experience to work at those places so I must resign myself to the less interesting jobs.


Really stoked!! I love what I do (front end, design, occasional dalliance further back the stack). I taught myself HTML and CSS in my earlier years of high school and kept building upon those skills through university. I actually studied an unrelated field but getting an entry level job in it was difficult even after a masters so started working in tech and it's a blast being able to come into work every day, do an activity I love, and get paid more than I'd be getting paid doing my credentialed field.

Some days I'm just in awe of how lucky I am.

I work for a nonprofit so we are more mission focused than the average company and don't have to deal with certain kinds of bs to the same degree. My team is great, I've got a nice range of people to learn from.

Now, time to get out of bed and go to work...


Super Happy. Happier than I have ever been in my working life, due in large part to said job allowing me to enjoy not-working-life more than at any previous point.

I was a Journalist, the video and multimedia producer for a medium market newspaper. Pay was lower middle income level. Hours were flexible when flexibility was an option, but revolved around an inflexible daily deadline.

I just spent my 4th weekend in a row snowboarding, and yesterday was 11" of powder. As a remote employee, I still have deadlines, but they are from days to months depending on the project. Pay is upper-middle income level. My boss is great, smartest person I've ever called a boss, and extremely reasonable and personable.

Right now, life is good.


Frustrated most of the day! But somehow strangely satisfied.


10/10 would choose career again. Just started my own consulting company at 30 years old. I get to work at 5:30 - 6:30am everyday because I can't wait to start hacking and making awesome things that make my clients happy. I like to swap between working on building stuff for my clients and a product and having my own business gives me the time to do both.

I truly love programming and solving problems, so it never feels like work. Well, that's not a completely true statement; not everything is going to be fun and awesome, but 99% of the time it doesn't feel like work.


10/10. Electric Engineer turned programmer, never looked back. I get to work on a field for which there is absolutely no regulation, and mobility is very high. I don't get paid as much as a lawyer or a doctor, but neither have their stress level. I pretty much get to the office any time I want and leave any time I want, or not at all if I decided to work from home. I get plenty of time between project cycles, and over 30+ years learned how to establish proper expectation on clients and managers, so it is very rare for me to get in a crunch.


Happiness at work is not a figure, it's a curve over time. Programming has high highs and rather low lows :)

When everything goes well, when I am working on code bases I like, on interesting features or on Open Source software, I am pretty happy.

When I am tracking an obscure bug that annoys my users for days, in an obscure proprietary code base and with a tight deadline approaching, I am somewhat less happy.

Sometimes, it is a stressful job, especially when you are close to production systems. But the rest of the time, it is so rewarding I would not for a second consider doing something else.


I’m happy for the most part. When I am not happy is when I’m busy fighting with time thieves, mostly bugs and oddities introduced by someone else working on the same system that I would not have picked to work with if it was my decision.

I’m at my peak happiness when I work on my own solo projects or on projects where everyone is “one team, one dream”. Although I’ve built up some thick skin over the users I’ve worked on too many projects with splintered goals amongst team members, even well-meaning ones, that I start to think that I’m too tired for that shit.


I once met famous author Chaim Potok who said "You should never choose to be a writer. You should only do it if there is nothing else you can do." I think I feel that way about programming.


I've gone back an forth between working as a programmer and working as a system admin (plus some data stuff for grant programs). I have been happiest as a programmer and the most depressed. Strangely, it wasn't legacy code, new creation, programming languages I hated but was good at, or languages I loved that made the biggest delta in experience. It was the policies surrounding the programming that made or broke the job.

I think the single killer to programming is the production support rotation that is something more than emergency pages. At the end of one job, I was constantly being woke at 1AM because of database issues that I couldn't correct (not the DBA). I really don't need much sleep to feel great, but the disturbances for a week at a time was a killer. Worse, our team had no power to fix the problems, and the team who could was really not that interested. They would wake up (maybe) and fix their issues. Management didn't really care because they thought it was part of the job. I really blame our immediate bosses for not making the fix a priority.

tldr: programming is fun even in crappy languages, its the environment that will kill you.

PS: SQR and T-SQL are the from the devil - when you're looking forward to shell, awk, and perl you have issues - VB was ok, Pascal was "really, me, now" moment, and Objective-C & C are still my favorite. Being only allowed to code review other people's C and C++ was bizarre and painful.


I`m not a programmer, but I want to be a programmer because I might be more happier with programming.

It`s my third year of doing my current job, IT project managing/IT system managing in Teleco company(Not in the U.S.) and I always dream about being a developer which I wanted to be before I got this job, because I like write a code I like learning something new. I don`t like my current job because it is very monotonous, it has very little things to learn as an Engineer(As far as I experienced). It`s just all about risk/cost/quality/deadline management + a lot of paper works. At the same time, however, I also afraid that If I quit my job and be a developer, I might lose everything that my job give me now - high salary, job security, not bad work/life balance(9 to 6~7). Because, in my country, most of developer cannot have those things like good salary as mine, w/l balance(close to 10 to 10 almost everyday) and job security. Yeap. Being a programmer in my country is quite tough choice.

Many of my friend having told that I have to stay in my job and write a code as hobby, and some people says I should do things that makes you happy. Someone says 'Working as a programmer is not as fun as programming for hobby', but the other says that if I 'stuck' in my current job, there will be no 'improving'.

It`s really really hard choice for me.


I've only been doing this about a year but I have to say it was the best decision I have ever made. Like some of the other here have said, I have never found an industry quite like it. Not only is the profession lucrative, exciting, and in constant demand, but it also has the best community around. I mean how many other industries have an open-source community like we do where we actively try to help each other. Every other profession I have seen is basically dog eat dog.


    6/10. I'm less than 3 years into my career, but I think I've worked for some of the best companies with great pay, benefits, environments, etc, including a tech giant and two startups. End of the day though, work is boring. Its always work. Your time and effort is going towards making someone else rich and their
    priorities are more important than your own.
    The only things I really look forward to are vacations and events outside of work. Learning things is always exciting and sometimes its extremely rewarding
    getting a project (or even a feature) off the ground and seeing a company rise and beat projections. But then a few weeks later, its just back to work and
    nothings really different. Its a temporary victory at best, then expectations just get higher and more grind.
I can second this. I have been working in the industry for 10 years and I figured that while I work for (probably big) companies and code someone else's ideas I'm stuck. Not to mention that the bigger the company the more enterprisy the software.

That's why I started to do my own development on my own ideas at home. Ever since I started to do so I'm feeling much better. I regularly contribute to GitHub projects as well. I also feel rejuvenated by being LEAN and using the fewest possible 3rd party libraries. Now I know the code I'm using since I can see the source of all libraries I use and they are much simpler than the enterprise stuff. I'm sure that after a number of successful side projects I will be able to work on my stuff full time. This is my primary focus at the moment and the thought of achieving this makes me more happier now reaching a 7/10.


Pretty happy. I was stuck for ahwile on php, and then found out you can do stuff in Python. So I can imagine that a switch of another language can make you happier. (Feeling like a beginner again and getting more confident by each thing you learn new).

Also, programmers like to create things, and if you're just maintaining projects, you're probably less happy. So for me moving from employee to freelance (creating over maintaining) increased happiness.


9/10.

Been working as a programmer since I was 18 (32 now): on and off (worked part time & took some time off for studies), but mostly on.

I like the project I'm working on. I only go to the office twice per week and work from home the rest of the time. I like my coworkers. My pay is pretty good (enough that I don't have to worry about supporting my wife & son).

On the downside sometimes xcode crashes or git behaves in weird ways that I don't understand.


I like programming but I'm tired of the hours, of being salaried, and of employers that could lay their filthy hands on everything I make outside of work. I hate "unlimited vacation" but it's nearly impossible to avoid. I like how my small company job is much more intellectually stimulating than my old big company one, but the work never ends and I should be making a lot more in this city.


Which city? and why you don't like unlimited vacation? I personaly don't like it because it's a bit hypocritical.


Boston, and because I feel like the culture at companies with unlimited vacation is that people are much more afraid of taking longer vacations. When I had 4+ weeks guaranteed, I took advantage of it every year without guilt, even the full amount all at once, as did most engineers. Now I feel guilty for every day. I don't feel like there are any borders between work and leisure. Slack is always active even with inane dialogue.


I worked for a few years as a programmer but also exercised my people skills over time (being in NYC). I eventually realized I didn't want to write code for work anymore, only for fun. I eventually did a bit more management related stuff at one of my gigs, and now I run a small development shop which requires very little coding on my part. I'm really happy with how things have turned out.


Great story, I'm jealous! Assuming by "run" you mean you own the shop, I would love to learn in more detail how you were able to leap from day-to-day programming to being able to afford your own company.

I see a lot of responses like that in this wonderful thread: I used to program for a few companies, then I got into management a bit, and now I own my own company. That's listing step 1, 2, 3, and then jumping to step 59!


I had been freelancing on and off for years, so I understood how those relationships worked. I started off freelancing on my own, then brought on a part time contractor to help take on some of the extra worked and scaled up from there. Now I have multiple contractors working all the time. I did the jump while also moving into the "nomadic" lifestyle, backpacking around se asia while building everything up, which kept expenses way lower than my nyc rent.

- sent from ho chi minh city, vietnam :)


I have mixed feelings about it.

I wanted an intellectual challenge and to serve my community, yet what I'm mostly doing is glueing libraries I don't even understand together and squeezing out performance and page impressions to make someone I don't care about richer.

I wanted to consider myself an artist, not an interchangeable cog in a materialistic machinery. A craftsman that truly cares about his work and learns from others, not blindly following imposed cargo cult and so called best practices with the ultimate goal of optimising for the lowest common denominator and promoting cheap labor.

I wanted to learn and discover new things that are truly useful, but what I see is an extreme focus on tooling. The latest new cool framework on the block while showing complete disregard for already existing knowledge and tools.

They said technology was to make our lives better, yet it has become a means to an end in itself. I wish for a more perennial school of thought in software, a back to the basis, and I'm not even 30.

But I have to pay my bills somehow.

Then again, we have it much better than other labor in the workforce.


I like programming. I like architecting. I like ops. I like putting things together and seeing them working. All the things that make me good at me job, the technical side, I like this. It's the projects I don't enjoy, where I have to take a technical implementation and make it ready for the user. It's the maintenance of projects. Adding in features that were never supposed to exist. Butchering code because of deadlines. Working with other developers who really don't care, and don't read documentation, and don't try to understand things. It's explaining why we shouldn't do something a certain way, or why we should, to someone who doesn't care or doesn't understand.

The thing I don't like is everything that got added on when I turned my hobby into my profession. But it's all that stuff which is the reason why my family live the way we do.

I'd be happy doing something I truly believed in, but at least I'm not working in a mechanics garage in mid winter for national minimum wage.


I love programming. The first ten years of my career I was doing hardware and networking, nothing programming related as I had yet to learn it.

This has been the best career change that I could have ever had.

I've also worked construction for five years. I don't think I'll ever want another job. Probably because I've already been on the other side and I know what life is like there.


I'm not a programmer, I'm much more, if you have 10+ years in software and only think of yourself as a programmer that's likely the root cause of your unhappiness. Like dilbert creator blogged a while back, be pretty good at two things is much stronger than being very good at one.

to answer the op's question 10/10 I'm very gratefull.


I've been programming for more than 20 years, slightly over 10 professionally, and although I'm more than a programmer... programming is what I love most of my job.

I guess I'm around 8/10, probably because I'm not always writing code that has some impact in the business, people or whatever; mainly because I'm more than a programmer.

OT: I downvoted you by mistake, so I'm replying to cancel the effect (if that doesn't work, my apologies).


I've been doing this for 10 years now and I can see myself trending away from it honestly. To stave that off I'm taking jobs which pay less are more interesting: firstly I did some functional stuff and now I work for a non-profit that does mobile healthcare for hard to reach communities.

It's very easy to get jaded. It's very easy to stare at the bespoke insurance application you and 6 other people have built (or slotted together from hideous technologies your client has already purchased) and wonder what the point of it all is.

Writing code for something you're passionate about helps.

Working out how to do things--not even important things, but just _other_ things--outside of work helps.

Remembering that the effort / money ratio in programming (esp if you live in fancy parts of the states, which I do not, or want to sell your soul to the London bankers, which I also do not) is really pretty fantastic helps as well.


9/10 - I program for work and for fun. I am doing the thing I was born to do. I haven't become wealthy doing it, but I'm upper middle. I am enthusiastic and amazed and lucky to live during the time of nascent technological marvels (that I expected to happen) with virtualization and massive scale solutions.


While doing custom enterprise apps in Java isn't the sexiest or the best paying job in IT I enjoy it quite a lot. Working on a standard and stable stack with well-established conventions minimizes the hassle of jumping through the technical hoops and allows me to concentrate on the actual business problems.

A couple of years ago I moved into an architect postition and while the high level of abstraction, customer interface and leading and instructing the development team is enjoyable I feel my personal development has slowed down significantly because I have very little time to contribute to the actual code. On my spare time I'd rather concentrate on my other hobbies and when I do programming it's mostly dabbling in Ruby, Clojure and other stuff I'd hardly be using at work. Currently I'm looking for a new gig that would be a lot more hands-on.


Depends. My current job is cushy but very badly paid.

By cushy I mean they have flexi time and let me work 100% from home even though the office is less than 10 miles away. The boss is not pushy about deadlines and the work is not challenging.

By badly paid I mean I make about half of what I should be at my level of skill and experience.

I live in a small town. I could move to a big city and get more money, but I think my happiness level would drop. I really like it here. Life is good.

Of course, at least once a week I start getting paranoid and thinking that the company will eventually go under (we've had a few rough patches) and I'll have to move. And then I'll have spent 10+ years being underpaid with nothing to show for it, and it won't look good to a potential new employer. I worry that I'll be too old to be employable. That I should move now for my families sake. But then, I wonder how many successful well paid programmers look back over a career and think "well, I'm glad I spent less time with my family, because now I have all that extra money"

As for the work, as I said, it's not challenging. I've been tinkering with computers since I was a child, and its been a natural career path for me. I really don't think I could have been anything else, it was always going to be code. There are moments when I think I'm wasting my life standing in front of a monitor for 8 hours a day, but there are worse jobs, and I have to put food on the table. And that's really a complaint about society in general, not an issue with my particular choices.

I code outside of work hours, making apps and web-services mostly for my own use. I've never been very good at making money off any of them, but that's not really the point. I do it because it's who I am. My worst nightmare (sad but true) is coming down with some kind of a medical condition that would prevent me from typing or looking at screens. It would kill me.


It depends on the project I'm working on. If I have to work on a Wordpress site and write plugins I really want to quit. But then there are interesting (hobby)projects where you can decide on how to build your app and how to solve problems which is rather fulfilling. Overall happiness at the moment: 60/100


I am moderately happy. There is no one big thing right now that would dramatically change my happiness as a working programmer/dev. There are little things that could be changed by me or the people I work for that would increase my happiness. But I am happy with the big picture and how things are moving. Day to day is a rollercoaster. Finding new bugs can be frustrating. Bashing your head against bugs that don't make sense can be horrible for happiness, but at the same time, once you solve it and the weight is lifted off you feel great. The hardest part for me is believing in myself, that I am capable of solving something that I am having trouble understanding. That and dealing with corporate America.

I don't see myself working as a programmer my entire career. I have about 5years professionally, but how much longer, I don't know.


Being "just" a programmer was okay. I'm loving life as a software/information architect and "general problem solver" though, it's fantastic. I get to play with lots of interesting algorithms, data analysis/machine learning techniques, data structures and storage tools; I write the most interesting part of applications, and I get to hand off most of the boring testing/CRUD/user interface/etc stuff.

Another benefit is that at this level management is more concerned with the quality of my work than the volume, or whether I get in at 10:00 or take a two hour lunch break from time to time. I like to say "you're not paying me for the code I write, you're paying me for the code other people don't write because I'm here".


I think it's a job like any other. There are days when you hate it; there are days when you love it. One thing I do notice is I actually do programming on my own time, coding my own projects. And on bad days at work, I wish I could instead work on my own projects (so it's not programming per-say I dislike). I guess the same idea works for a carpenter or an electrical engineer; it's a lot more about where and for whom you do the work than work itself.

Programming, however, is definitely a field where you can learn the profession and get a job making good money without getting formal education. I notice a lot of recruiters are more interested in your passing a sample test or viewing your past projects than necessarily with your University diplomas and certificates.


I am quite happy with my work and work environment. I think for the following reasons: Management that knows the field and knows how to manage. A delightful combination that is rare. steady release cadence. Every 4 weeks a release, new features land as ready. Always more data. Long term vision on product improvement and let us programmers decide on how to improve it. Combination of research and production work. Can be on the edge,but make sure it doesn't cut to much.

In summary we are treated like professionals and work professionally.

It's not pure commercial work at uniprot.org but it must deliver. The site is popular enough and constraints are interesting. All in all happy.

The job pays decent and allows me to be flexible with time. Which is important to me as a dad.


I like the work, but I don't like who I have to work for: it's all marketing, finance and/or surveillance. Looking for a moral job that doesn't rely on dishonesty, misdirection, or the invasion of privacy for business advantage. Hopefully manufacturing?


What makes me happy depends on what type of work I'm doing.

- Scripts, tools, etc. Here I really enjoy being able to automize tasks. Then being able to combine scripts, tools, etc. into even more useful things makes me even more happy. Some things almost become magical once they have been automized.

- Games. Here I enjoy being able to create something fun out of nothing.

- Debugging. Finally finding a hard to find bug can give a quite unique rush of happiness.

- Research/innovation. Working on something brand new which no one has done before and finally releasing a product which people enjoy is sheer pleasure.

- Web development/user interfaces. Finally finding the right combination of simplicity and usefulness to create a really usable product is also a very pleasurable journey.


Well, as the old saying goes: "Choose a job you love, and you will never have to work a day in your life."

I think its pretty much what I am doing. But the big question that pops up after a certain period of time: How long are you going to love something? 5 years, 2 years, 1 year or 6 months? That truly varies from the project i am working on. As long as its all fun, i continue the job. If not, i move to my next job or a next project. There are so many IT, programming jobs (for more or less money). I think what matters is that you are loving what you doing. So far, for last 9 years of professionally working at 8 different companies that has been my norm and I don't think it's that bad or worrisome.


Im not even working as a programmer, but everyone says so and pay me well for that title, I get to do perhaps 5-10 minutes per 40h week of "work", actual programming.

The rest is listening to bullshit from coworkers and reading hackernews, reddit etc.

Ive changed workplaces, this is my 3rd in 5 years, and its the same in my experience from those 3 very different "enterprises", "way of working", "agile" and other scrum bullshit methods, manager talk, backstabbing, backtalking and bad coffe.

At work I am quite miserable. Working with technologies I loved and grew up with, Linux, python, distributed systems, yet I look forward to just quitting one day. Maybe start working as a window-cleaner or similar.


Saying I love my work is an understatement. I get to work remotely as a consultant paid well over the market price but treated like a long term employee and travel as I please. I know the CEO and VP and its a fairly large company with 5 large high-rise buildings throughout the world, 2 in California. I get to work on my side stuff pursuing my startup AND the boss not only knows about it but thinks its cool as long as I get my stuff done. How can you possibly ask for more than that? The only downside is I don't relate to anyone having to drudge through traffic each day, having an asshole boss or caring if its the weekend or not. Hell yah.


I am happy at the moment. Doing contract work, have clients I've known for years, and getting into my own IoT projects. Life is good for now. I just told me wife though that it feels like it could all come crashing down at any moment.


Some years ago i was not so happy to be a programmer for life thinking about what i wanted to be 10-15 years down the road, after getting older i started to realize how good it is to have this skillset and that its worth my time venutring into new fields of informatics.

Programming always brings oppertunities from small stuff like side projects up to your own company. And we are in this one profession which has a bright future ahead in a society that is owned by programms. Right now we have the freedome of choice if you dont like your current job you can easily find a new one with the same or better pay.

We are the Artist, Stonemasons and Architects in conjunction.


8/10. Four Years ago (with 26, after studying Design) I started working as a front-end-developer, and two years ago started learning proper JS- and programming-skills. The work is mostly rewarding and the pay is much better than it would have been as Art-Director in a design- or advertising-agency. There is no overtime and the co-workers are really nice. The only small downside is that there is no senior front-end-developer with more experience than me, since the company consists of ~100 Java-Consultants and 5 Mid-Level Front-End-Devs. Sometimes I could need a mentor, like the Junior-Java-Devs have.


10/10 - I'm extremely happy after I decided to stop pursuing web development and switch to native mobile. I started doing web development in 1996 (15 yo) and around 2012, I was extremely frustrated. There were too many frameworks, databases, and tools which just made tradeoffs of solving one problem for creating another. It seemed like web products weren't getting better and the brittleness of development was increasing. I started mobile development in 2008 when the first iPhone SDK came out and fully switched over as a career in 2012 and I couldn't be happier.


Are you also maintaining Android versions of your apps?

At least the web, with all its faults, targets all platforms at once.


I don't. I recognize that Android is definitely a more dominant platform. My best experiences in mobile have been working with a strong native Android developer. I do love the web for some things, but for what I'm really excited about, the web is just the wrong answer--yet people keep trying to make it the right answer.


Very! But being a programmer does not necessarily make you happy though. In a similar way that having lots of money doesn't necessary make you happy. If you invest some time in looking for a good team, at a company that encourages learning - you're getting closer. Work on something you're interested in. If you're missing one of those things, change it... Keep changing it until you find something that works for your lifestyle. You'll either find it or figure out programming isn't for you.


I hate programming, but I couldn't think of a better place to "sunset" my programming career! I'm really lucky to be working with such kind & talented people.


Happy. Broke, but happy. :)

(I earn around $100/hr, but my life organisation skills are so miserable that I can't yet make the ends meet. And I have to travel around 50 times per year).

Scala/Java.


$100 an hour? If u work 5h per day for 22 days it's like 11k per month. Unless you got some serious addiction/debt problems I don't see how can u be broke :P


50k debt, living in world's most expensive country (Switzerland) as an immigrant, working remotely as a consultant with sporadic work patterns, having a diagnosed ADD. :)


Sorry to hear about that man, hope things improve soon.


Can you please explain how $100/hr is not enough? Do you work 5 minutes a day?


I've been programming for ~25 years and I still love programming. Last night I resurrected my old Xeon 8-cpu server and spent all night trying to install centos on it. Turns out my specific bios needed special settings to boot from USB.

My goal is to learn vagrant and spin up vms to handle variable load tasks. I want to be able to process website data using Hadoop and store the various outputs to my database. It's not novel but it's all new to me and I'm excited.


We should have a website to centralize all of these testemonials


There kinda is: http://devpressed.com/


5/10. Finally working on my dream project, a medieval rpg. Was scared off by Breshenham's algorithm to doing web stuff in the noughties, followed by small iOS titles this decade. Slowly getting to be a competent 2D game developer. Taught myself graphics and am proud of every small victory. Love the programming aspect and the literary aspect of story & world creation. Why only 5/10? Because ...life, bills, health, taxes,drama etc.


My satisfaction as a programmer comes and goes with the project and the team. While I love building programs and working through the logic, the thing that I am building matters more to me than solving the problem. So as long as I and the people I'm working with personally care about the project, I'm happy. If I'm not interested in the project, I'll do the work (work ethic is always important) while finding another job.


I enjoy an environment that respects developers, their comfort, and their passions while pursuing new techniques and technologies to better their stack and make developers' lives easier.

However, I temporarily gave that up to see how I'd like the corporate world of Java programming. Although I don't mind working around people (previously worked from home), I will say this: I care more about the software instead of someone's weekend.


Depends on the role. I change roles a couple of times a year. The good ones give me freedom to come up with novel solutions and have major design input, growing my skills and giving me a good sense of ownership and respect. I look forward to work each day on these contracts.

The bad ones just want a grunt who asks no questions and turns out code without contradicting the project leads or architects, even when they're talking shit. No fun at all.


I don't like being used to make people money. That part of it sucks. Programming is great, the fact that you are making things is incredibly challenging and fulfilling. Being viewed as a boy genius instead of a human being is the trade-off. I feel like this industry has forced me to become more anti-social. Always on the lookout for the next snake trying to steal your work or use you for their next big promotion.


Watch out for repetitive strain injuries and high stress levels. Don't burn yourself out. Keep work at work, even though it may be tough because you love what you do. Make sure your current job and product are aligned with your goals in life. Be passionate about what you are working on. Keep yourself challenged and you will love it all. Don't undervalue yourself. Make an impact and change the world.


not happy but at least i can feed myself and go on a date. I was hoping I'd receive better compensation than I do. I certainly did not go to college for this. however I have been able to afford a (not big but okay size) appartment in a bad neighbourhood. this I use to rent out rooms. SO far it's been a very smart investment. which means hopefully I'll be able to move on to a better life someday.


When I first started out as a self-thought programer and worked for the first company where I really enjoyed my work, the second was horrible, third was cool at first until it began to suck. I am now usually assigned tasks like changing the margin of buttons and other annoying stuff, I don't feel my skills are improving and am not gaining any knowledge. Really horrible


I definitely go through times where I struggle with the team dynamics, product direction, management. Perhaps all fields have similar analogs. But I'm not sure I'd be able to stay away from programming. It's been a lifelong pursuit and I have just as much fun now as I ever did. I am definitely happy, and I think I would be quite unhappy were I to stop.


Honestly, I really love it. Yea, there can be insane deadlines and it can be frustrating work, but it's so satisfying overall. In my job, I get a lot of freedom to do my own things here and there, and we're getting into a major rewrite of internal systems to use Azure. Currently it's a huge amount of fun.


If you are unhappy as a programmer you should quit your job immediately and try sales/marketing/anything else.

I was disappointed with the way companies I worked at organized their programmers so I started Software Engineering Daily, a podcast about software.

This economy rewards software skills and general acumen as much as programming.


I'm happy working as a programmer, I wouldn't have done if for the past 35 years if I didn't like it!


Hate it.

I started coding at 14 and had my first paying contract at 16. Worked in a large startup once and freelanced until 22. Even though I was making 6 figures, I was extremely unhappy and depressed with the monotony and boredom my job had become.

I was fortunate (and probably lucky) to have been able to move to finance (hedge fund) at 23.


> I was fortunate (and probably lucky) to have been able to move to finance (hedge fund) at 23.

Would you mind sharing more about how you did that?

I like programming and enjoy the challenge, but it depresses me that I'm in my early 20s and have already hit the salary ceiling.


I love programming. The line between work and play is very blurred for me. The only thing that makes me cringe every morning is the fraking drama. I became a programmer cause I thought I would have less interaction with people(among other reasons). Why are office politics like freaking high-school?


Working as a freelance programmer for last 10 years. I am happy working as a programmer from home.

However being lazy on exercise, and social life makes me hate it for few hours in any given day of the week. Then I bounce back, get out ... get stuck in traffic.. and then working from home seems great again :)


Very interesting comments itt. My take is that can be happy when doing stuff that is either very (very) well paid, super cutting edge/interesting or have the power to change the world. Is my current job like that? It pays well but no. I try to make side projects then and iterate.


I like the field, but as someone who's done graduate work and peered into what is plausibly possible, seeing the industry's preferred technologies is like reading Donald Trump's twitter feed. More, I will defer to email, as it'd cause flamewar. :-)


There was a moment were I wanted to quit. Then like most things, I accepted it for what it was and moved on. My current focus is saving enough money to go back to school and get a Ph.D in Mathmatics. I need another 300k saved before I can do it with my family.


I find my job real boring (not programming itself) and I'm not sure if it's going to change. I'm not sure if I could risk getting a better programming job and my workplace would be left in a bad place if I actually do leave. It depresses me.


I pretty much enjoy iOS dev for 3+ years now, with all its quirks and annoyances.

Apple drops new frameworks and features every year, so there's always something new and interesting to learn. Not to mention Swift.

So yeah, I wouldn't really do anything else in this field.


I'm like 8 years into my career, and CTO-level now, and I'm happy most of the time, depending on the non-technical situation at a moment ;-) (dealing with requests from non-technicals can be exhausting sometimes :D)


Very. Used to be an accountant. It is much more satisfying to create something.


Back when I was working at a MegaCorp who kept trying to turn me into a tech lead/manager? Miserable.

Now at a small company where I just code all day long and nothing else? Extremely happy.

Where you work and who you work with matters.


I absolutely love being a programmer and wish there were more hours in the day for me to tinker with stuff and spend time on toy projects.

I'm impartial to working as a programmer, though it pays the bills quite well.


It probably helps to see programming as a tool and being employed / acting as an entrepreneur from a field or a cause you care about. That way, the daily job and the stress may become more bearable.


C'mon, quit with the 'software engineer'codswallop. We're programmers, p-r-o-g-r-a-mm-a-r-s, and the sooner we all come to terms with that, the more karmic our profession will be.


I started programming a C64 at 10 yo - that was 31 years ago OMG. I'm happy when I can work as a programmer, even if that is just a very small percentage of my time now.


I am really happy I have a job that pays good money and get to meet lots of new people. It's good to live normally again.


I worked as a programmer, briefly, after college, it sucked, expectations were ridiculous, pay was crap. I would never work as a programmer again.

I really enjoy my career as a Software Engineer though. It's been, mostly, fun, and as I've learned and grown I've got the chance to work on more and more interesting things.

Currently I'm helping to build a cloud provider for a specialized sector of the economy that has eschewed the cloud (until now).


I'm happy working as a programmer, I wouldn't have done it for the past 35 years if I didn't like it.


Programming is no work.. It's fun


Ehhh, like a 7/10.. One of the many reasons I ended up applying to med school.


I don't even think about retirement, that is how much I like programming.


"I enjoy X but working as a Xer is boring."


i enjoy programming. but with projects that come and all the politics take the fun away & also make the product nonsense till heads are counted.


Hahaha! If you have to ask, you can't afford it.


12/10 :) - Working with interesting problems - Finding better ways to do things - Great people to work with and learn from

12 years experience in web development.


Currently, I'm not happy working as a programmer.

I really love the job, I've done coding and software development as a hobby since I was 14, maybe 15 years old, because it was always my dream to do this kind of thing.

After I've finished my apprenticeship as a java ee / android dev 2 1/2 years ago, I continued to work for the same company who hired me as an apprentice in the first place. After that, I decided that I need a "change of scenery" and to explore the big world of professional software development.

The second company, which I currently work for since a year now, is however somewhat very different. I've started my career with an already existing business project (imagine your typical java enterprise project here -> rdbms + application server + java rich client), supporting it, making the clients happy with _everything_ they want.

It was in a really bad condition (architecture, software design, ui design of the main application, the client was fed up with), but it was doable, so I decided to make a change. I started developing a new client, with modern design and a cross plattform approach, and everyone loved it, I got great response from everyone and the project even got a stockup of developers from 2 to 6 - just because of my work and the resulting interest of the client (= more money++ for my company for a project which was theoretically thought dead). Everything was great.

The last 3-4 month however were terrible. I learned enough about this project to understand of what hell im into now: the client hasn't the slightest idea of what this project is doing anyways. The team leader had no experience in leading teams or even projects, because he was actually an architect which has done a solo job on this project for 4-5-6 years now.

After all, the project was developed because the client's company had money. But this is a different story, however...

The feature requests of the client were getting more and more, the time to accomplish goals was getting less and less. There wasn't even time anymore to test things, (I know, testing - haha, but this company is pretty well known in the world of testing and test-consulting, every other project there is heavily tested for example), or to get rid of technical dept. - every accomplished jira task was just a patch of code and hopes, pushed into the project git, hoping that everything will work - but of course, if you changed something, everything fell down like theres no tomorrow.

I just couldn't work like this anymore, I've tried it several times to talk with my boss or my project lead to get rid of, or at least, minimize the impact of technical dept on this project, because it was the main problem which consumed most of the time AND budget, when solving features for the client. After the "critical path" of this project, and 2 happy clients, we had a sit in with the whole team, including the team leader, and my boss.

We talked about everything, what went good, what went wrong, how to improve ourselfs and how to manage clients in order to prevent something like this the next time and I was really, really happy with it.

As the time went by, the project lead was taking a break because of way to many additional workhours, I was fine with it. It was just one month to go until new year, and after that, I thought, everything will be fine - of course it wasn't.

The workload doubled in this month, no team lead, just me and my coworkers who had just half of an idea of this _great_great_ project. Anyways, we've made it. Everything the client wished for was done and even more, they were happy.

As my vacation began and the new year started, I fell into a deep depressive hole. Me and my project lead were so terrible burned out, that after 3 weeks of vacation, I needed another 3 weeks just to get into real life again. Today is my last free day of this 6 week timeout and I hope that I've got enough power and endurance to get back on track.

I've learned a lot about company politics in the last year, how to handle clients, new coworkers, bosses and a lot of do's and dont's on enterprise java development. But I've also learned alot about the "darkside" of software development.

I love the craftmenship and all the clever thoughts and every single person I've worked with - but if you start a career in that industry or a new job be aware, that money is the only thing that counts at the end of the day. So be grateful if you're getting paid to play with the newest technology or just try stuff out.

P.S. - Sorry for the long personal post and the horrible spelling, english is not my native language. I feel better.


Edit: Unless you work for a international company with budget.


eh, pretty happy.


I just want to note that there's strong social pressure to not to claim that you don't love working as a programmer on this site. The odds a future boss or coworker is an HN regular is extremely high, and "passion" is high valued. Weigh the responses accordingly.


Well, as you can see from my comment, I, at least, am quite immune to this pressure. :-)

It's funny to feel like an old-timer at 30, but I've been doing it for 21 years. Everything old really is new to me again. There's nothing less exciting to me than the latest 100-line .js dependency to include or yet another API reference to glaze over.


You have been a professional developer since you were 9?


Not a professional one, of course. :-) However, I think it's fair to say I've been programming since that age because of the sheer amount of it that I did before I was 18, as it relates to the theme of burnout. I wrote fairly complex systems all throughout middle and high school. As I recall, I wrote my first multiuser server when I was 10 or 11.


If you're scared of putting your actual opinions on here, why do it in the first place? Why even have an account? I'm sure if you searched through most people's comment history here, including mine, any given future boss could find something they take offense with, if they only looked hard enough.

I also find your implication that everybody here is (or should be) lying about their experiences reprehensible.

Disagreement is natural, and so is having different life styles. There are lots of people on here who view programming just as a means to a (business) end, or who only learned it in college and see it as a job skill, as opposed to a creative outlet. These people don't generally have problems getting hired, and I can see how some jobs and bosses would even prefer them.

I'm in the "programming as a passion" camp, and I can see lots of reasons why bosses would prefer not to hire some opinionated old neckbeard who thinks he's a creative snowflake.


I'm not implying anyone's lying, I'm just saying there's selection bias. I doubt anyone's lying, I bet a lot of people just don't reply.


I'm 30 years old, I started programming BASIC on my Apple IIc when I was 7, so this is the only life I've ever known. It's difficult to see the forest from the trees enough to known if I like it, it just "is." What greatly troubles me is that to continue to push the envelope in the fields I work in as I always have and always looked forward to, I am essentially compelled to violate my personal code of professional ethics and build super creepy technology that violates the privacy of other people. I know that if I don't do it someone else will, but that doesn't help me. It leaves me very conflicted.


I'm a final year undergrad with a real passion for programming using modern, well-designed languages like Rust, Swift or Elixir and I enjoy it so much that I spend most of my free time contributing to open-source.

Lately however, I've heard a lot of "I hate programming..." kind of talk from my classmates and by talking to them, I came to realise that most of them are in just for the promise of a good pay, that they do basically no programming or side projects outside of labs and that they had an illusion that the basics of C++ the university taught them is the whole deal and are only now discovering memory management, templates and such, which makes them frustrated. Also, very few of them have tried anything outside of C++, mostly because they didn't know anything else existed and didn't bother looking.

This frustrates me a great deal, since I quite frankly think that if pay is your only concern, you're better off in law, medicine, the finance/banking industry, or hell - oil & gas management for that matter.

This is the reason that the tech industry over here, (UK/not London) is so old-fashioned and extremely boring, new players not able to spring up; because these recent graduate students everyone's hiring can't do anything more complex than what a repetitive Java shop can offer.


I love programming (desktop software dev for an engineering consultancy), but I have started to hate this company recently. It's my first dev job out of uni and I have been here three years.

Everyone is really nice here, but it's the management. The boss acts like we're in the 50's. Everyone must wear a shirt and tie, no headphones are allowed because it's 'unprofessional', any talk of unions or the like is 'communism' and no plants allowed in the office because he doesn't like plants.

Add to that we're woefully underpaid as developers. We tend to lose a lot of developers after three or four years due to the pay and the slowness the company has in switching to new technology and delivery models (web and mobile apps are on our roadmap, we haven't even started implementing them and won't for at least two or three more years) and they are generally replaced by graduates, meaning the code base suffers as a result.


Before my company switched to SCRUM/Agile and pair programming last November I would have said like 4/10.

But right now it's a 9/10.

Formerly we were four separate web developers. Only consulting with each other, and not really ever working together on projects. And two of the four of us constantly had 6 or more projects we were juggling concurrently (I know, right?) It was really rough, even with being able to work remote four days a week and having a fair amount of autonomy, it was wearing thin.

Then we ran an experiment, two of us doing pair programming on a single project. We loved it. Then the company sent some of us out for proper Scrum Master training, and committed to doing SCRUM properly.

Since the switch we have become a cohesive team. We rotate partners every sprint and we only work on one project at a time. I actually enjoy work now. The whole team feels the same way.


Plan your retirement by 40 in programming career


Programmer, like a poet, or a coder, like a typist?)




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

Search: