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.
Even if some completely broken companies, this was good advice, it would be a recipe for a pretty pathetic existence.
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.
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.
The last sentence is actually not bad advice though.
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.
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...
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...
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.
The "one ring to rule them all" approach...
There is no future in software development as a job
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.
I guess we will see how this pans out in the end...
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.
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.
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.
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.
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.
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).
Finding other programmers or like minded people is the hardest part it seems for me.
Why not? What's stopping you from learning?
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!
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 :)
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".
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.
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).