ahdh8f4hf4h8
I would take this with a giant grain of salt:
1.) N is in the hundreds of students, all with similar backgrounds - likely a highly specific population. It may not generalize well.
2.) The videos were pretty short: 3-15 minutes long.
3.) The overall effect size is pretty miniscule - it would make little practical difference.
4.) The video topics were roman history and real estate appraisals.
It will be interesting to see if this generalizes (to longer durations, more technical topics, more diverse population, etc.), but given the above I wouldn't change any personal habits based on this study.
Sadly, a lot of the really old code was much easier to maintain than most of the code I work on today. The company had an excellent engineering culture, and thorough design and documentation was the norm rather than the exception.
The current set of Googlers that are complaining aren't the ones that built the company though. Google's success was built in the late 90's and early 2000s when they really revolutionized internet search and then email. I would argue that since 2010 they have lost this edge - even Bing and DuckDuckGo give better results now for many searches. Many of their interesting projects today are acquisitions.
I'm curious if SV's culture has changed in the last 15 years, and what future impact this may have - at least from the outside it seems like some of the brutal meritocracy attitude that made SV great has died off.
In college, I graduated with an Electrical Engineering and Applied Physics degree in 2000. My passion was always software, but at that time almost everyone (in NE Ohio) was giving the advice that electrical engineering would be more lucrative in the long run. I literally read the phrase "the bud is off the blossom" when researching computer science in 1995.
I wound up never doing EE professionally, and have working in software since graduation.
In retrospect, I would have followed own instincts and studied philosophy and math with a minor in Comp Sci. I think the Com Sci minor would be sufficient from a technical side, math would have been a better prep for data science/ML, and philosophy is just good for building mental models and examining your beliefs.
This sounds like what happens when a bunch of Java/C# developers jump over to python without learning the "python way" - this is more related to the developers than the project
> But nowadays, I don't think modern Python fits any use case real well
Python has effectively taken over the data science / machine learning space. For most use cases, the algorithms are massively more important than the language.
> poorly managed ecosystem and hodge-podge of tools like virtualenv, pyenv, poetry, etc. that never quite become standardized and
This is true, but Java and C# also have many issues in this respect. The move from Java 8->11 is particularly painful - many fundamental libraries related to security or connection handling were not backwards compatible. Many libraries now require multiple branches for different JDK levels. Maven and Nuget are about as good as pip - they all have weird edge cases.
I use both Java and Python on a daily basis - each has their strengths and weaknesses. Java is great if need long running processes with weeks/months of uptime, Python is great for backend data manipulation and analysis.
The modern market does favor a handful of large players for each market - this is true in almost all sectors though. This not a monopoly though; as long as the top players change over time it is still a working market.
I also don't think tech will have long lasting monopolies, unless government regulation makes it so. Who's worried about IBM or Intel nowadays? Anyone using myspace or vine? All of these were dominant at one point.
I do expect a shift in investor mindset - right now tech companies are not held to the same profitability standards, so the tech stocks are very expensive for even wildly optimistic projections of future growth. It's as if the market is already pricing in a future monopoly for these companies. Given how fragile tech monopolies tend to be, I expect a correction at some point (not a good short though - no way to predict the timing)
Most of us are on the winning side of the game right now - central banks have dumped a ton of money into investments and banking, software has very low marginal cost at scale, and companies can be unprofitable for decades if they have a good story. Big Tech has also been immune to regulation and taxes. If the regulatory/legal space or the market want ROI now, then many of us may be the losers in the next round of our economic Squid Game.
There's been too much binary thinking by the media and politicians - for example masks aren't 100% effective, but they do reduce the viral load by 30-50% which could be the difference between getting mildly sick and getting a fatal exposure. We shouldn't let perfect be the enemy of better.
I do agree that more dissent and conflicting expert opinions were needed in this crisis. Especially dangerous is the idea that "if only everyone did X", then all will be well. This is rarely true.
I think the government's role should be to transmit the best possible information available at the moment, give some strong recommendations and incentives (and change them when new information comes to light), but never use force and coercion. It simply doesn't work in the long run.
You want to avoid refactoring if no one else is going to test the change, or if your automated test coverage on the module isn't too good. It's too easy to introduce changes that won't be noticed before deployment.
Chances are most code already works well enough even if the design or code is suboptimal - often the system only changes in certain parts and changes there often. If you can identify the parts of your system that are likely to change due to changes in scale or business requirement, than that is a natural area to focus on in future redesigns or refactoring.
Once you get our of analogies and into actual problems, then you can have a reasonable discussion about future tradeoffs. I find even with non-technical managers, debt/wealth is just not a good analogy for code.
Also, often poor code is just part of a larger process problem. You really need to optimize for the whole project, not just code-level to improve the situation.
Closely related is the concept of conditional probability - how does the probability of something change as you include other information.
It takes some studying to understand probability theory well, but it is very powerful once you start to think that way. Most of the garbage science reporting in the media would be fixed if reporters actually thought this way and honestly applied it.
With the "Prime" models, Toyota should be able to pivot to an all EV car pretty easily if they needed to.
You do need to consider the context and background of a person before you can properly understand or trust their opinions and advice. For example, a physicist may be ignorant of how car engines actually work; a mechanic may be ignorant of some of the underlying physics. You really need to get to know people and build a long term relationship to understand if their opinions on a topic are useful and informed.
I don't think there is a simple rule to working with other people - you just need to build a wide body of experiences yourself, and beware of relationships that grow too quickly or where the other person appears to have a hidden agenda.
For most applications, having a really good relational data model, and controlling data updates through a service/microservice will give most of the benefits of "object oriented" design without any of the drawbacks. The service will act as a "live object", data integrity will be preserved, data science modeling will be easy, and the application can be designed using whatever tomorrow's preferred platform of the day is, or even some low code stuff for simple applications.