What unemployment? Nothing like that in United States of Software
college2startup.tumblr.com
college2startup.tumblr.com
-A highly analytical mindset
-The ability to handle tough math
-The ability to read dense material and process it quickly
-The mindset to persevere, test, investigate, and find obscure problems in complex systems
-The ability to see a project through to its finish
-The ability to explain complex logic and design, verbally and in writing
It also helps immensely to have
- The ability to work well in a team, and good general social skills (the notion that this isn't important in software development is a silly myth, it's incredibly important)
- The ability to complete lengthy and difficult academic programs, without veering off into less demanding majors that give you more time to party.
- A family or other benefactor that can fund and support you through these academic programs (I knew a dude who tried to major in CS while working 25hrs a week in retail. Extraordinary people can do this, but it's very difficult to carry physics, math, cs, and a humanities elective under these circumstances. Many smart people fail even when school is their only "job").
It makes absolutely no sense to compare a person like this to the national average. The general unemployment rate has nothing to do with the unemployment rate for people like this.
So is the unemployment rate actually low for software developers, or is it simply low for all people with the traits listed above, regardless of field? You could reasonably argue that jobs go begging in software largely because the field is not competitive with the other professions/trades that people with these traits have available to them.
And a 25-hour-a-week job doesn't seem that overwhelming. I think I worked 20 hours a week with a 30 minute commute each way - unless you're having a truly difficult time with the core concepts, a 15 hour course load and a 25 hour work load isn't much harder than starting any new job.
for (a = 0; a < n; a++) { for (b = 0; b < n; b++) { do_something(a,b); }}
How many times is do_something called? If you can say n^2 in under 15 seconds you are now better at math than the average American.
This was a notoriously difficult prof at a notoriously tough program, though. So maybe not typical.
Be analytical, practical and tenacious. Know how to abstract, design, program. Know tools, know platforms. Know how to triage and actually ship stuff. Be good to work with. Keep learning, constantly. Read tons of code.
But "tough math"? Honestly, haven't needed anything more than simple statistics for most problems.
"Tough math" seems more like an ego thing. I'd watch out for that.
I mentioned this because if you want to be the kind of programmer with a CS or related degree, you'll need to be very good at math.
There's a level of "street math" that good programmers tend to have (statistics, maybe some trig, maybe basic matrix arithmetic), but you'd be surprised how many excellent programmers don't even use algebra. A friend of mine interviewed at a very famous quant hedge fund (a decade or so ago) and shocked his interviewer by answering one of the questions with a system of equations in two variables.
I should have defined "tough math," because a lot of people on HN have gone far enough with math that what I described above wouldn't be considered "tough". But it actually does serve as a gatekeeper for most engineering and hard science curricula, including CS.
That said, I've never seen a CS degree that required any more math than a year of calc and maybe a semester of linear algebra. That doesn't seem so hard, one just has to keep up with the homework. Maybe you are thinking of computer engineering?
Of course they have since dropped the stats requirement. And the calc 2 requirement. So now it's a semester of calculus and a semester of linear algebra. I guess too many people failed calculus 2 and stats.
BTW, even with the calculus prereq, I'd agree that linear algebra would typically be a harder class, so I definitely understand why you're surprised someone would pass Linear Algebra and fail Stats.
At the price startups are willing to pay, naturally. I imagine demand exceeds supply for doctors willing to work for $30k + equity + copious free beer, too.
I know a lot of people feel that $80k or $120k for developers is quite generous. It may well be generous, but if you can't hire someone for it, it is by definition below market. You know all those articles we've read about structural change? Here's another structural change: the market clearing price for engineers may soon durably transition to that of e.g. management consultants or lawyers rather than that of e.g. HR clerks or marketing directors.
I moved from Boston to Silicon Valley in '99, and found it was significantly more expensive with only marginally better salary (which I was happy to accept as we would leave at lunch and go surfing, which for me was a worthwhile tradeoff).
I moved from SV to Washington DC in '01, and found the cost of living slightly less, but salaries approximately the same.
I'm now in the process of moving to NYC, and the cost of living and salaries both are a little higher (I don't really care about money though, so I'll admit that it hasn't been a factor in my moving decision).
Anyhow, if I'm reading you right, you think that the best college grad in 2019 will be about as good as you are in 2019, causing your salary to decrease? If I'm reading that right, you will have a very interesting eight years in industry and not worry about new college graduates ever again.
Generic career advice for every engineer: broaden skill set, get reassigned to a profit center, negotiate aggressively on comp.
I used to work for $30k prior to discovering that there exist better options. Now I try to be the little Internet fairy whispering to young devs "There are better options!" ;)
2. Everybody gets told to get into engineering in college
3. Boom crashes. Companies lay off engineers. The new engineering graduates don't get hired and are unemployed
4. Everybody flees engineering
5. Back to step 1.
I think we are at the end of step 1 and 2. -
In 2000 there were far more people graduating with computing degrees than in 1995; but the average quality was far far lower. The people who suddenly found that they couldn't get jobs when the dot-com bubble burst? Most of them didn't belong in the industry in the first place.
And at least you end up with educated people and the fruits of engineering work. The alternative is giving up: "I might as well not learn anything very useful, because there might be a period in the future where it's not so useful for a while."
"Are you in college and bothered about the job market ahead of your graduation, should you consider switching majors? maybe. The industry is booming and doesn’t look like it will be slowing down anytime soon. In the middle of all the unemployment, maybe we can take solace in the never ending demand for Engineers."
After a boom there is always a bust. And the bigger the boom, the bigger the bust.
If you live somewhere outside of about 4 or 5 locations in the USA, getting a programming job can be hard. Also, skills that are hot in a place like NYC or Silicon Valley are often next to useless in other areas. (learning this the hard way)
This is a bit concerning, if so.
I spent a lot of late nights helping him come up to speed because he's not a bad guy. Even though he probably should have been doing this himself, the fact of the matter is that he chose poorly and now knows a lot about something that is growing less and less valuable every day. You can say that he's not an "engineer" but that's really just the No True Scotsman fallacy talking. It's really hard to compete on the job market when hiring managers just cut out huge swathes of your knowledge a priori, and the fact that happens is what concerns me.
For example, I'm willing to bet that 99% of the most successful iOS developers had not written a line of Objective-C until 3 years ago. Apple simply provided an opportunity and they embraced it, learning the skills they need to adapt.
The guys who are having trouble are the guys who decided that the knowledge they needed for their 9-5 C job was "good enough" so they stopped learning. That's what kills careers.
That's mostly, I think, an argument for moving out of technical backwaters if you're in a technical career. If you let yourself be limited to skills that are more valuable in Minneapolis than the major tech hubs, you're eventually going to be stuck with skills that aren't even valuable in Minneapolis, as the "hot" tech hub technologies become mainstream and finally migrate there way out to the backwaters.
However, shops that turn out embedded system components & other infrastructural support will keep chugging along.
Generalized, it means software -- the technology and the economy -- runs at a higher tempo. In order to step into the stream, you have to first match the new tempo.
I suspect that the rest of the economy stays in a slump because they are out-of-phase tempo-wise with software technology ... or that the tools that drive up the tempo of innovation in software has not made it out to the mainstream yet. (And even if it did, it will leave people behind simply because there are people who will refuse to impedance match).