A better way of saying it is that the whole of investors are better at accurately predicting the value of a company than individual investors. Which sounds almost like a truism when you put it in those terms.
Buffet doesn't claim it's impossible to beat the market. He only says that the vast majority of investors cannot pick individual investments accurately enough to beat a diversified, low-cost index fund in the long term. There are a bunch of caveats in here, namely LONG TERM – you might get lucky and strike it rich once or twice, but you are very unlikely to have those lucky investments pan out over decades.
Yes, Buffet is incredibly skilled. Buffet actually claimed once that he was born with a preternatural ability to invest in companies. The whole "you can't beat the market" quote is meant more to say that we mere mortals are to Warren Buffet what normal people playing pickup basketball are to Michael Jordan.
It probably depends on the company but I think this is right. If I interview someone with little working experience it definitely helps that they have some work on Github. But it would be strange to reject a senior candidate with a great resume who did very well in the technical interview just because they didn't have anything on Github.
Exactly. The biggest impediment is going to be insurance and liability. What do you think it will cost to insure a robotic driving vehicle? On whom does the liability fall in the case of an accident – the owner, or the manufacturer?
I think the companies that hire an army of 23-25 year olds are planning to fail fast anyway. Why bother trying to recruit older, more senior talent that is going to expect higher benefits if the skills that they bring to the table vs. a 25 year old (knowledge of scalability, long-term decision making, planning, deep technical knowledge, etc.) aren't going to be used unless the company survives the first few years?
I wish this happened more often in companies. Unfortunately I usually see the following happen.
A mid-level developer, let's call him Dave, becomes a critical employee after a few years with the company. He silently become "senior" without anyone really asking him to. Other developers notice this and often come to him for help. Management, however, doesn't notice, because nobody in management is exposed to Dave's actual contributions to the team. All they see are completion metrics – story points, etc. – and a project moving forward. Dave is too humble to point out that he did 80% of the work, and he doesn't have regular meetings with his supervisor anyway, so the subject would never come up. After a few years with the company, Dave gets bored and finds another job.
The company now has to pay recruiting costs and the ramp-up time that comes with a new person on the team. Dave, meanwhile, gets what he wanted – a promotion, and a higher pay check. The company could have saved money by giving Dave a 20% raise and a promotion (even a nominal promotion, to make him feel valued) but the management structure wasn't there.
This is how it normally goes, and this is exactly why there is such a short length of tenure in the tech industry compared to other industries.
They already are. I've talked to some recruiters who laugh at bootcamp programs on a resume. A few years ago nobody would ask me about my academic background in a job interview, but now they've started asking explicitly. I've been out of school for seven years, and nobody cared about my CS degree until this year.
The reality is that degrees and certifications will be used in hiring as long as they are a useful indicator of aptitude. HR departments need to eliminate candidates from the hiring pool. At their zenith, the bootcamp programs were useful for recruiters because only the truly dedicated survived the bootcamp long enough to graduate. But with the proliferation of such programs, I think the day is quickly approaching when the market will be oversaturated with graduates and it will cease to be a useful indicator of aptitude.
My point is that you likely learned programming by learning the basics of file I/O in C or Python or something similar. You didn't sit down and learn all about automata theory etc. first. You need the context of what C.S. is used for before these things make sense to you, so you start by learning a bit of programming. Since you must be definition have A first language, why not pick one that is most likely to be used?
You write tests to automate tests you would have to otherwise perform manually. That is the only reason tests exist, to automate the boring task of testing.
That's one problem with the TDD mindset. If you start by looking for things to test, you might come up with unlikely scenarios or cases that don't matter much for your user.
It's hard to teach an introduction to programming without teaching a particular language. If you have to pick a particular language, it makes sense to choose something the student is likely to use in the future. This is not hard to understand.