Having said that, it isn't a utopia and it isn't for everyone. One of the many reasons why I hate the current "Everyone learn to Code" trend is because if you don't love it, programming is as exciting as reading a EULA or TOS or any legal contract. That's certainly how some of my friends see programming, and I can totally see why.
Overall it's pretty good, and I'd be fine even if I was paid half of what I'm paid, after a 2001-style crash. I can think of very few other jobs that have such nice prospects.
Thought not.
You should have an upper hand though with a CS degree. I had to learn everything on my own, and there are still areas that I don’t know and you should.
When my major didn’t work out, I managed to land a IT-job instead and I’ve been here since.
Developers would do well to realize that they're skilled labor, not academics or superstar artists, and start behaving accordingly.
But I see the error in my ways and humbly realize that I'm just "skilled labor".
Really, if you compare the level of thinking of an average developer to an average academic, the academic often has nothing but his degree.
The level of parroting and complete lack of critical thinking is widespread among academics.
You may be one of the 20% in your particular area of interest. If you're doing the kind of work that most engineers tend to avoid, you will never be unemployed. ;-)
The only thing I have used since graduation, for work, that I actually studied for a class was big-O notation and reasoning.
But! Every week, in every engineering class, they assigned problem sets. Every week I read them through and knew, with certainty, there was no way I could do them. Then, every week I turned them in, completed correctly.
So that was what I really learned in school: that I have no real sense of what I can learn to do, and do. Since then, I have just done things, without worrying about whether I was really capable.
So just like any other engineering job?
It was certainly my backup plan. I never took a CS course, but figured that I could be a programmer if physics and math didn't work out. In fact I went through college with no employment-related objectives.
But to be fair, CS also treats programming as a backup plan. That's why there are coding interviews. How many CS majors actually get "CS jobs," i.e., pursuing the advancement of computer science? Probably the same number of physics majors who get physics research jobs. The rest become programmers.
Or at some companies perhaps being a whiteboard genius helps. But the output of those companies is ... mixed.