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?
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.
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)
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.
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.
I opened this comment section just to write that line. When your hobby becomes your job, you never work a day in your life.
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 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.
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...
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.
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 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...
I'm mostly able to find clients that either 1) want full-time employees or 2) are working on 'me-too' CRUDs (sometimes both).
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.
This is almost entirely due to a severe lack of perspective.
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.
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.
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.
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?
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.
You are free to start your own business and get rich except it's not so easy, very few people can do it.
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?
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.
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.
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-...
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.
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.
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.
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.
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 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.
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).
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.
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.
Is animation that different? It's also "create on demand on schedule".
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...
You may not be up to your job, but probably more likely it's that.
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 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.
You're not the only one. :)
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.
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.
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'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.
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).
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.
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.
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).
Basically I live in constant fear of the day I'll hear 'overqualified' at a interview
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.
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 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.
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.
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.
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.
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)?
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.
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, 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.
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".
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.
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.
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.
Alas, reality is only what it is. I suppose writing code in an office beats manual labor or a life of crime.
- 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.
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.
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.
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.
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.
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.
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.
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.
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.
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 so often spiral into an endless loop of "this could be done better, rewrite from scratch, must have more decoupling!!".
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.
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).
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.
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.
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 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.
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...
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.
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.
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 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 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.
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.
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.
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.
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 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 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.
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.
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.
to answer the op's question 10/10 I'm very gratefull.
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).
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.
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.
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.
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.
But it wasn't always that way -- my last job wasn't very challenging and it felt like I was just a cog in a giant machine (which, I was). It was pretty soul crushing despite being a "good" job. I felt bad about hating it so much, because compared to most people's jobs it was still much, much better in every aspect.
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".
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.
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.
- 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.
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.
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.
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)?
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.
At least the web, with all its faults, targets all platforms at once.
(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.
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.
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.
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 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 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.
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.
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 :)
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.
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'm impartial to working as a programmer, though it pays the bills quite well.
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).
12 years experience in web development.
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.
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.
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.
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.