I work there and today's been utter chaos. Lots of meetings with upper management and people wandering around confused. I came in to work in a new position in a new team with a new manager. They probably shifted all the people they didn't care about into roles where they would be unhappy and eventually quit, as opposed to outright laying people off. Meg's mentality is that basically any unit of HPE has a pricetag. I'm probably going to stick around for a few months and quit if I can't transfer back to my old team.
There's a lot of video content on a lot of topics, but their content is shallow. If you want to get a deep understanding of something, reading textbooks and official documentation is likely the way to go.
Their business is overly-dependent on the iPhone. The fact that 60% of their revenue comes from iPhones might leave them vulnerable to shifts in consumer behavior and/or market saturation.
iPhone sales drive sales of their other products and services. Apple is already facing heavy competition to iTunes; overall sales are declining and app revenue is making up a larger % of iTunes revenue in recent years. The decline of iTunes revenue is largely attributed to the glut of streaming services. I suspect their competing streaming service will need to be a loss-leader in the future in order to fuel grow for their cash-cow.
Now, I don't think that Apple is dying, not at all. But I can see how their situation is a bit more precarious than a heavily diversified company like Microsoft (whose failures demonstrate their impressive resiliency).
How is Microsoft that much more resilient, though? They're an absolute joke in the phone/device market. They're a market leader in the least exciting, fastest-declining market - the Desktop.
On the server side, they're hovering at 30%-ish, and are almost completely absent from the start-up scene as well as the high-end super-computer space. The startup scene, which, I know, I know, but still, it is where the future is, is definitely not interested in anything MS, from what I can tell. Nothing bug a sea of MacBooks with people pounding away at Node/RoR/language-of-the-day. The hip 20-somethings pounding away at a thousand start-ups don't seem to be betting on the MS stack. And those are the tech leaders of tomorrow.
Forget about the start-up space, fine. What about other institutions like banks/finance/airlines? That's all Java, running on some kind of Unix-derivative as well, most likely hitting a non-MS database.
MS is doing ok in the video game console space, but Sony is doing better. They're doing ok with Azure, but nothing spectacular, AWS and Google Cloud and Dig. Ocean and the numerous others aren't feeling too much pressure.
I guess really besides Office - what do they have that's a giant run-away success that will ensure their long-term survival?
Most of the markets you name are not winner-take-all! Add to your list enterprise/consumer cloud services (Office 365, Outlook, etc) and also the Azure platform (I don't know how competitive their Azure offerings are).
Just by being a significant "also ran" in those markets Microsoft ensures its survival in the medium term. They are diversified enough that the rug cannot suddenly be pulled out from under them and they are in a position to pump money and pivot into any of those markets where they see traction.
While Apple's situation is better today, their ability to respond to rapid changes in the business is under question.
MS's has money coming from all over the place, even they biggest segment, "commercial licensing" consists of a huge number of products, including Windows, Office, SQL Server, Visual Studio, etc.[1] So they can weather a decline or shift in one or two key markets because they have their hands in so many pots.
In addition to Office their Windows volume licensing is quite expensive, and I assume most of the Fortune 500 companies use Windows desktop clients.
Sure they're declining on the server-side, but the majority of mid-large sized companies except for tech startups use Windows OS.
For the companies who are 100% Microsoft and who happen to drift everything themself, it quickly gets ridiculously expensive if you calculate MSSQL, Sharepoint licenses etc.
Software Engineer @ big old enterprise company doing security work.
Side projects: None. I believe in having a life outside of programming. I don't touch code after 5PM. Currently training to run a half-marathon and getting more serious about powerlifting.
Reproduce the bug. Reproduction steps/environments are usually provided by support engineers or QA. Look through log files for any specific error messages, and use grep to find where in the code the error is coming from if it's not specified in the exception stack trace or something like that. Look at the code and form a hypothesis about where the bug might be located (use a "binary chop algorithm" discussed in books such as Code Complete and Debug It). Create breakpoints and step through the code with a debugger and record your observations. If you still haven't found the bug, use the data you just collected to form a stronger hypothesis and repeat the process until you've identified the source of the bug. Then apply the fix, and run some unit (or integration?) tests to verify you didn't introduce a regression or that you actually treated the symptom instead of fixing the root of the problem.
This might not be the best approach, but it generally works for me. I highly suggest reading the following books: Debugging, Debug It! and parts of Code Complete.