Hacker News new | comments | show | ask | jobs | submit login

There is no future in software development as a job. Move to a management position quickly, network, make friends with decision makers, don't spend too much time on crafting your skills, your reward for perfection will be more insane work and crazy interviews where one part not 100% done kicks you out. Work on your appearance, kiss up, lift, dress properly, use anti-aging cosmetics, make cool looking hairstyle, wear objects of power (like rings), work on your voice, make yourself seen by making presentations, even if pointless and/or stupid, do some trendy thing on a side and show everyone, appear confident at all times even if you have no clue what is going on. Demonstrate your skills by getting an MBA, PhD (even if from a crappy university, it doesn't matter) or a respected certificate. Basically, don't hack computers but people around you. Our field has shifted from meritocracy to over-politicized field, if you are a male you'd in addition face 50/50 gender ratio split pressure and given how few women are in our field, you'd compete for less than a half the available spots as everyone now wants to compensate this ratio in their mostly male teams.

If you really need to make software (like I do), make your own company and license/sell your work instead for >500% more than what would be your salary.

This is like reading advice from an alternate reality. Almost all the VPs, senior managers, principals, etc. that I've encountered in my career are poorly-dressed nerds, not ring-wearing, macho douchebags. If you are a politician in software, you will eventually get found out by someone competent and get the boot. The only way you can succeed as a politicking fraud is to hop jobs every-time the people around realize you can't actually do anything, or ride sinking ships.

Even if some completely broken companies, this was good advice, it would be a recipe for a pretty pathetic existence.

I agree it's a pathetic existence, which is why I am stating it plainly here as our field is becoming exactly as "any other field" quickly. You'd be surprised what goes on behind the scenes at the top level of most tech companies... Most boards of directors are comprised of non-tech members, bringing their own distortions everywhere. The only force we had was the pace of innovation, and that is no longer happening so massively in software as we reached the end of Moore's law, and only few bright spots are still on like AI/ML/robotics where companies can't afford to cross the "bozo event horizon".

That's just not my experience at all. But clearly, it's been yours. Perhaps there are two very different sides to this field, in which case my advice is to keep looking if you find yourself on the wrong one.

From where I stand, software engineering has been an absolute boon. I have friends who are doctors, lawyers, consultants, traders, writers, salespeople, marketers... On nearly every metric -- pay per hour, amount of bullshit I deal with, variety and interest -- my job beats theirs. I started coding when I was 10 years old because I was a big nerd who wanted to make video games. I never, ever thought I'd make a top 3% salary 5 years out of college doing something I love. I'm tremendously grateful for that. I've been really successful by just being good at what I do, and that's mostly what I've seen other successful people do around me.

At the end of the day, unless you own your own labor, someone else will be profiting off of it. The lower down on the ladder you are, the bigger the gap between the value you produce and your income. But that being said, software is not such a bad place to be relative to other fields.

The same for me. I've never seen much politics. It got bad once with an ex-IBM manager, but otherwise it has mostly been about how to get stuff built that meets customer requirements.

>Basically, don't hack computers but people around you.

Ding ding ding! I agree with most of your advice, but this is the heart of it. People are very basic machines. Your job as an employee is ONLY to a) make your boss feel good and b) make your boss look good.

Protesting this is simple naivety. The sooner you internalize and accept it, the better off you will be. I have met multiple men who've lost everything at retirement age because they were naive and allowed themselves to be lulled to a false calm by slick workplace politicians. These events are _not_ pretty.

In software, there is a natural merit barrier to performing even the minimal job functions that can allow us to confuse it for a meritocracy. This is why slick MBAs are reluctantly forced to accept people with basic hygiene problems inhabiting corners of their offices. But mistaking this for actual respect for merit is fatal faux pas.

This is a simple reality that most of the rest of the world was forced to accept during their first jobs out of high school. Software engineers are spoiled, and far too many of us allow it to go to our heads.

>There is no future in software development as a job.

You're getting some push back on this because it's not really universally true. It depends on the individual's goals and ambition. You absolutely can spend 30 years as an employed software developer if you're happy with where that leaves you (and a large number of people are, and there's nothing necessarily wrong with that).

However, if you want to be more than an employee/pawn, if you want to make decisions, if you want to get more than a pittance of the proceeds -- you must accept and realize that your field of operation must be human psychology, and it must be correctly applied in its various forms (politics, marketing, etc.).

The sooner this is accepted, the better. Literally just in the last couple of weeks, I watched a multi-million dollar company with dozens of employees get wrested away from a competent (if complacent) engineer by useless, image-obsessed political hacks.

The kicker? That's not the first time it's happened to him.

Do not let the small successes that people are forced to give based on merit go to your head, or you'll end up like him.

This is some of the worst advice I've ever seen. Do this if you want to die sad and alone with nothing but your money beside you I guess.

The last sentence is actually not bad advice though.

It used to be better, now if you aren't running your own software company you are treated as a 3rd class citizen and you have to become sleazy "Saul Goodman" to prosper. I am super disgusted by the state of affairs right now, which is why I am running my own businesses, but don't expect this would get any better as the computing tech innovation pace has slowed down to a crawl, stabilizing existing power structures for the next 50 years.

I guess it depends who you work for. I prefer to work at small new companies until they get off the ground. Then I shift to the next small new company. Small meaning < 30 employees for the whole organization. Pay isn't as great, and the work is definitely more under pressure, but I find that the only thing expected of me is quality work. I don't have to worry about trying to climb ladders or schmoozing management. I understand that not everyone has the skill set to do what I do, but I think that if you're tired of Mega Corp social engineering, taking the pay cut for more personally rewarding work is a great path to go down. After all, quality of life has very little to do with what you have beyond a certain threshold and more to do with what you make of it. I get paid less than other developers in my area, but I work entirely from home and I choose the technologies, architecture, language, etc.

I actually tried them all, ranging from megacorps that were darlings of techies and Wall Street to nimble startups with amazing tech. It was politics everywhere, at startups even more nepotistic/cronyistic than in megacorps (e.g. seeing a wife of a cofounder and CEO wasting money on getting selfies with some marketing pseudo-celebrities instead of doing real marketing, and knowing I can't say a word because she basically controlled her husband).

What you said resonates with me. I would like to talk to you in detail. Can I PM you?

This is both cynical and exceedingly true. It's something I totally missed early on as a naive developer-puppy who just assumed that doing a good job was enough. The politics tend to be even worse in smaller companies where everyone knows everyone and it's harder to carve out your little corner of expertise and hide/ignore the drama.

Maybe this is true, but plenty of big companies are hiring tons of engineers... so I don't know how this is true universally.

> There is no future in software development as a job.

Wrong. I've been at it for 30 years. It's not all roses, but it's still pretty good. The key is to be doing something where 30 years of experience is worth more than 5 years of experience. I'm in embedded systems, and the experience matters there (to enough people, even if not to everyone). Web programming? I'm less convinced that it matters there.

> Move to a management position quickly...

It is my explicit career goal to never become a manager. I've seen what that looks like, and I don't want it. I might make more money if I did, but it's not worth it.

At some point your brain stops working, you won't be able to compete with fresh graduates, the capability:wage ratio will be very low in your case; you'd get a prompt boot, never to be able to be employed on the same level again. Experience in our field has negative value and unless you get another M.S./PhD every 10 years to demonstrate you are still on top, you are toast.

False so far, and I'm 55. I kick the rear end of fresh graduates. They can type a lot faster, turn out more lines of code per day. Great. I don't write the bugs that they write, so I don't have to take the time to find and fix them. I don't make the design mistakes that they make, so I don't have to fight the design flaws to get things done. They work harder; I get more done, and I get paid accordingly.

And if you think that the answer for "your brain stops working" is to go into management, all I can say is that I'm glad you're not my manager...

You are probably in 1% of lucky ones. Imagine you have a bad year (sickness, family issues etc.) and you don't have management that is used to you around (e.g. there is a reshuffling). How long would you manage to stay? You should put this into your equation. I also dislike being a manager but I am more capable manager than all managers I've been under (maybe I am just unlucky but I don't think so). We all know the best teams self-organize and don't need managers, yet all companies enforce some power structure around to keep control, and reward mainly members of that power structure.

> I also dislike being a manager but I am more capable manager than all managers I've been under (maybe I am just unlucky but I don't think so).

In my case, I'm pretty sure that I wouldn't be better than the ones I've been under (maybe I would be better than one or two, but not the majority). I'm also more likely to get fired as a manager, due to a tendency to say what I think.

If you're a better manager than the managers you've been under, you may be of more value to your company as a manager (even if you hate it). I may be selling myself short, but my value as a manager could be less than zero...

Software companies are about power structures more than they are about software.

Where I come from ppl your age get downsized and replaced by younger employees with less pay. The +50yo will never get a job but is still +15 years away from pension. At the end of tge day only the money matters. You can't pay rent on "job satisfaction". Neither can you eat it or retire on it.

In my experience, fresh graduates may (arguably) run faster, but they don't know which direction the finish line is.

> At some point your brain stops working

Yes, when you die.

Children are much better at learning new spoken languages, but by your logic no adult should even bother trying to learn a new spoken language.

This is very cynical, but not basically wrong.

> wear objects of power (like rings)

The "one ring to rule them all" approach...

I absolutely disagree.

    There is no future in software development as a job
How can you make such a blanket statement? Software is a more lucrative position for more people now than ever in history. You want to be a manager?? Who will you be managing?? Programs that write other programs??

Programs will write other programs, there is extensive work on this problem in progress with some nice low-hanging fruit available in research already. The future will need genius-level swengs only, all mundane/boilerplate/lookup tasks will be done by semi-automated systems and most swengs won't be needed anymore. I am working in this field and can clearly see where it goes and we finally have means to accomplish it within 1 generation. If you aren't involved in AI/ML/robotics, you are going to be most likely sorry, fighting for low-income developer jobs for those that can't afford automation tools.

We go through this once a decade. The problem is a fundamental byproduct of the disconnect between humans, to whom mathematics and logic are foreign concepts that take consistent work to internalize and apply, and machines, for whom ambiguity, context, and perspective are foreign concepts that take consistent work to "internalize" and apply.

Call me a philistine, but I don't really believe we will ever get the natural->logical language mapping perfect enough to obliterate the need for developers on a massive scale. New languages beget new possibilities, which companies want to employ people to exploit, and so on.

Higher-level languages have "obsoleted" the task known as "programming" over and over again, to the point where there will often be 4-5 "automatic programming" layers between the code written by a person and the code that a physical machine executes. It's been 35+ years since your average developer would write machine code directly (i.e., without depending on an "automatic programming" environment (aka "a compiler") under the covers).

There will always be a need to translate natural language into logical language.

The thing is there was enormous progress in natural language processing lately; it's now conceivable to enable some simpler forms of programming using your voice commands only (imagine webapp or mobile app builder controlled by voice) that would satisfy needs of 95% of population, putting many companies out of business. Even at top 5 companies there is a panic about it and many managers will tell you in private they personally think in 10 years there won't be many high-income sweng jobs unless you are in ML or related field, as they see demos from their research labs.

I guess we will see how this pans out in the end...

The thing is that no matter how good NLP becomes, natural language is inherently fuzzy, just like humans are inherently fuzzy. Human languages do not provide the precision that a computer must have. It is possible that the computer can learn to guess correctly in some percentage of cases, perhaps even a very high percentage of cases, but it can never be more than a guess because that information is simply not expressed in conversational English (and I'm monolingual, but I assume it is pretty much the same in other human languages).

Perhaps we are moving to a day when all programming will occur verbally, and each programmer will be paired with an Echo which he verbally instructs as it writes a program. But we will still need a person who is assigned with converting natural language to machine language, including reading in the contexts and assumptions necessary to make assumptions that are almost always correct.

That's the part that I don't see how computers are ever going to be able to beat humans on. You can't squeeze blood from a stone, and if the data isn't there and isn't in any of the spied-on data collected by all the listening bugs all over the house and all the location bugs carried in a person's car and pocket and all the network bugs on the person's computer and ISP, and so forth, the computer won't have the data necessary to furnish the desired response.

Conversational language will not have the necessary precision without special effort being dedicated to expressing ideas in a logical, mathematically-valid way. The people who expend that special effort are called "programmers".

IMO the only hope of a programmerless future is one where the language has meshed to the point that every conversational statement is a valid program after the NLP's macros have been expanded or whatever, and the computers understand this with a 0% error rate. A world where a master programmer reprogrammed human language to be computer-native. I don't see us getting there.

It's like LEGO - you have some basic building blocks and you can compose some cool things with them. Your first LEGO set has only 3 different blocks, but nevertheless you make some nice tools just with them. Then some smart person adds another 2 blocks later. Then another 3 blocks. Then an electric engine. Suddenly your scope becomes much bigger. Then somebody makes mini LEGO to mask rough edges, making your creations almost realistic.

In other words, initially intelligent app builders will have very limited capabilities. As research advances, those capabilities will increase, in a snowball effect. At some point you'll be just talking to your phone and maybe touching screen here and there when making most web pages/apps, and all will be assembled from those building blocks. I believe we can now finally see a dimmed light at the end of the tunnel.

How is that different from say Unreal Engine, where you can already make a top-notch (graphics wise etc.) 3D game without any programming - by using their blueprint model? The point it, it still requires someone expressing the desired gameplay mechanics in terms of the blueprints ("lego blocks") -it's not that different from programming, except maybe looks more friendly than code.

It's a looong way from tools like that to a state where a CEO can ramble on his vision for some app in 100% natural language into the microphone, and clever AI figures out all the blanks and automatically programs it for him.

Yes, you are getting it ;-) So currently Unreal allows you pretty fast development using some blueprints. Now what is missing is some AI tool that understands a bit of context. Imagine you want to animate some character there. You can stand in front of a webcam and tell UE that the character should move like this, and perform the move. Then you review it, you see you really don't look nice on video, but the basics of movement are there. So you say "do it like this, but more artistic", and your AI will try to figure out what that does mean from some pre-trained "artistic" movements, and you can pick from the results; then you'd like to beautify it as you are out of shape and generally don't look like a model, so AI takes some pre-trained model info and launches a GAN to construct 3D body that looks like a "model" but follows your movements. Treat it as an advanced "pocket knife" that can automate some higher cognitive functions in the sense like "computer is a bicycle for our mind", and current AI allows you to do more complex tasks automatically. This will get better presumably, so each new iteration can do better than before.

I see your point now. I agree that, thanks to better tooling and libraries (some of those maybe based on AI), there'll be less reinventing the wheel, and so less jobs for non-awesome programmers. I think it has already happened in games, where, due to widespread adoption of engines, there's less need for experienced C++/maths/etc folks (and, thus, less room in the job market left for non-geniuses) and instead we see jobs for lower skill "engine operators" (ex. gameplay programmers in C# for Unity).

It has not happened yet in the general/business programming field thanks to:

1. Software and automation being applicable practically everywhere (and also in part thanks to bubble money) - the field is still growing at a mad rate.

2. Business problems being less conducive to algorithms and AI. For example, try coming up with a good AI which can figure out how to handle an edge case in a supply chain app. The AI would essentially need to understand humans.

Consumer demand is endless. The more they have, the more they want. Machine Learning, or whatever it turns into, will just expand the opportunities and the requirements.

...but also enable laymen to do many things all by themselves instead of hiring another person to do it for them. If done right, ML will increase power of everyone, if not done right, only of a few.

Currently the "art of programming" is a gift to a few. But if you look around you, almost everything people do is some sort of an algorithm, i.e. sequence of steps affected by inputs. ML will allow grasping some very difficult concepts which our brains can do naturally and help automate them, making those algorithms easier.

> If you really need to make software (like I do), make your own company and license/sell your work instead for >500% more than what would be your salary.

The hardest part about this (for me) is finding a project/product to begin working on.

I'm assuming you came to that sort of idea while working for others (which seems like the best way to learn).

If you do all the other recommended things, you'll start hanging out with people who spend money to solve real business problems. The projects will come to you then.

Would you say this is true even if you're not living in a tech hub like SF?

Yes. You'll meet different kinds of business owners, but they will have real problems.

I see - would you also agree that you will meet other people (such as other programmers/designers/etc) over time? I haven't met more than five at my current job.

IMO the hardest part is not finding the product, it is finding a person to handle the marketing/sales for you.

Most of the time I would assume there's always someone you can work with for this.

Finding other programmers or like minded people is the hardest part it seems for me.

For me, I can't do the front-end stuff, so I am stuck with not able to do anything with my ideas. This is where the networking part would help.

> For me, I can't do the front-end stuff

Why not? What's stopping you from learning?

I tried many times, I simply doesn't seem to be good at it.

I'm in a similar situation, but don't think of this as an unsolvable problem:

1. Find people who are great at it and be interested in how they do it. I think of this as learning to read good design before you write it. They may be interested in how you do what you do as well. 2. For me, one of the most productive steps was learning the basic mechanics of the bootstrap CSS framework. It did not make me better at designing beautiful web pages, but it did help me make something minimally usable (i.e. not repulsive) that lets me get my ideas roughed out. With a few days of learning, you may be surprised by what you can do. 3. If the best you can do is a cookie cutter design that lets you get started, congratulations! You can get started! What I mean is, I have felt what you are feeling, and there are ways around the problem. Good luck!

I really hope this has some elements of satire in it.

I wish... I worked for many companies everyone wanted to get in, and am still approached by big 4 ones G/FB/AP/AM (no MS as I rejected their offer already). What I observed is that consistently the ones that move to the top are the ones that master the practice of appearance, backstabbing, instigating fear of "missing the train" in superiors, throwing peers under the bus when fitting, betraying trust, sensing and adapting to prevailing winds, and most importantly making their superiors feel happy (I even experienced how a female colleague arranged a large deal with another company by having an affair with their VP, then got rewarded by becoming a head of a new office - I quit in disgust). It's Roman empire game all over again, software is no longer nerd/geek game (only if you wish to become a slave to psychos). If you still want to experience BS-free environment, move to bleeding edge AI/ML/robotics instead, that might have some 15 years future before it becomes another nightmare and all failed manager-types from other fields move in.

I have noticed there is a stark contrast between those who are aware of the political environment and those who aren't. You seem to be hyper aware and 'plugged in' to hear these stories. Most developers just write code and post memes on the team slack/hipchat channel, completely oblivious to things going on around them.

You should blog about some of this, changing names and obfuscating to "protect the innocent" so to speak. Also, read up on the Gervais Principal if you have not :)

Maybe it's that half of my family are politicians/lawyers, many of them leaning towards high-performing psychopathy and observing their behavior since being a child, their attempts to control me, expressing frustration I figured out their game and deny them, and then observing the same at work with those "ambitious persons", thinking anyone that does work is an idiot and should be handled like a child in a kindergarten, has something to do with me being hyperaware of what is going on around me.

Frankly, one of my favorite things in the office was to emit bubbles of incomplete information to individual persons and observe who gets to know that piece of information, mapping alliances at work - they were oblivious of being tested, always triumphant they knew better and it was just fun to simulate a clueless person on my side just to understand how did they exactly operate. Try it, it's fun and a quite harmless "game people play".

That second paragraph makes it sound like you picked up some of those psychopathic tendencies. It doesn't seem healthy to play those types of games with people, as harmless as it may be.

Yes, the reality of life is that it's not a meritocracy or even within a stone's throw of it. There's a fine line between acknowledging the reality of it and succumbing to it. The abyss gazes also.

The comments you wrote in this thread really hit me. I truly appreciate your writing them down, and as other posters have said, writing a blog post about this would be really helpful to us. What you're saying is true. No one cares about the tech.

The Socratic method, isn't it?

Those "most developers" make it to Senior, and then stay there until they leave the company. I was at MS for 6 years, and can confirm much of what the GP said. Some people succeeded on merit, of course! But mostly any real success was extremely proportional to your skill at Machiavellian intrigue, and willingness to engage in it continually. That was surely the main game. Every org change or VP change was surrounded by a lot of Game of Thrones.

Exactly. I've also been burned out from an highly political environment, seeing how people raise to the top by basically following advice of the kind given in '48 laws of power'.

But in a way it's been eye-opening, seeing this darwinian play go on, it confirms a lot of my theoretical understanding of evolutionary psychology, I find it quite fascinating. Not only that, but just observing it shows you how to improve in this area.

But from what I've observed, most people are completely unaware of this side of things. A certain personality seems to be affected by this "issue", and that personality seems to correlate quite highly with caring deeply about their work, pursuing excellence in their field and so on. But alas, no-one has written more clearly on the topic/ psychology of corporate politics than Michal O. Church, I do recommend reading his essays for those affected by the issue (even though he has acquired a bad reputation around these places, probably because this is a sensitive issue).

So you've never worked at those companies, and you are assuming what it's like to work there? And are you claiming you make 500% more than say a senior engineer at G/FB?Am?

I actually worked for better companies (with emotional attachment from developers), one top-end pioneering company that invited all developers at least once a year to Silicon Valley regardless of rank, and one in particular that refused G's acquisition multiple times and G was forced to make an alliance with it, and this company is loved by many at HN these days. Ranked higher on Glassdoor than G/FB, and more than 50% of departures to G returned back within a year, telling all of us it's not worth it. Also having friends at G expressing their jealousy at what I was working on that they could only dream about at G. Which is why I am targeted by those big 4 companies all the time, and couldn't care less.

Hah, so will you tell us the company? Sounds like some of us should be applying there... (though it did seem to make you not want to stay and be a developer there?)

You all should ;-) But I believe in independence and my inner motivation is that no company utilized my potential to more than 10% even if I was working on their most difficult problems and created things that got to #1 spot on HN no one has created before (and boredom sets in). Even G tried to motivate me by telling me they are now having "the most complex piece of software ever built" and I have a chance to work on it. Will talk to FB again shortly, will see what they want this time, but as I said, I don't really care.

Nope. It's not far from the truth.

Well, if it does, I can copy and paste it here under my name without the satire.

I knew you were joking when you said our field used to be a meritocracy.

This is the truth if you are locked into only working at fortune 500 companies (ie. large enterprise shops). Once you branch out from those to small/mid-sized companies you find a lot more variation and not so much stupidity. I find mid-sized companies tend to be the sweet spot between minimizing stupid politic and receiving decent pay.

Just wanted to add that bitL vision is the actual truth even if the cynical aspect has been singled out. What bitL describes is the single most important factor in career advancement for a lot of software companies I've seen.

This is a great post. Read it and do the opposite of everything it says.

>There is no future in software development as a job. this

Applications are open for YC Summer 2018

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